-
Posts
95 -
Joined
-
Last visited
-
Days Won
1
Everything posted by Alexander
-
We had a chat a bit with @Ivan Gretsky and understood that probably I need to complete our story with more details. Unlike common images of start-ups, this is not fun at all. As mentioned, we developed this system bootstrapped for 1,000 days with a remote team of 11 (4 female, 7 male) from Ukraine, Georgia, Netherlands, Germany, Switzerland, Poland, and Thailand. My second son was born during this period, and I was literally working on this with a baby in one hand and a laptop in the other. We lost connection with our lead developer, as he was in Kharkiv (Ukraine). We haven’t had a connection with him since July, but I sincerely hope he is safe… If someone had told me that it would take 1,000 days (I had planned for three times less) and several thousand engineer hours, I probably would have never started this development, as it looked so unreal. It took approximately half the time to develop the system itself and another half to debug it to the condition it has now. Of course, during this development, we had to rewrite everything from nearly scratch several times, and it still doesn’t look perfect, but at some point, we understood that it is impossible to develop the code on our own and we need to share it with the community. The code release itself was quite a journey. Especially the last weeks, days, and, most difficult of all, the last hours. Arina (our junior lead developer) and me spent all day in a smoke-filled bar in Belgrade polishing the last version prior to release. And, of course, at the very last moment, we found a very unusual error that was extremely difficult to debug at 1AM. And at 6AM, I had to rush to the airport. There was a 37.5cl bottle of champagne for the three of us: myself, Arina and our director (photo attached), and despite popular images of startups, there was no party at all, only a pretty intensive and really hard time prior to release. So my advise for everyone whom working on large code base are following: - multiply every realistic time estimation for three; - have always backup for lead developer; - be ready to release the code better soon than later, as it will never be accomplished. I write this here now because I wish to learn this before starting this journey. Of-course I expect that there another bunch of rakes around that only waiting for it’s time P.S. If someone could share simple user tracking event module for ProcessWire that we can adopt for use with tirreno, it would be highly appreciated. I was not aware how stars are important for GitHub ranking, so would like kindly ask to put one if you see this software helpful: https://github.com/TirrenoTechnologies/tirreno
-
Thanks, @Ivan Gretsky. I wasn't sure whether the community guidelines allowed sharing links. There's a publicly available online demo for anyone who doesn't want to mess with the codebase themselves. Online demo: https://play.tirreno.com/ (Login: admin/tirreno) You can find Tirreno's source code on GitHub. It needs PHP 8 and PostgreSQL and should normally work after a short installation, which was also inspired by ProcessWire. Source code: https://github.com/tirrenotechnologies/tirreno/ By the way, if you see the Frogger game, something didn't go quite right! Game: https://play.tirreno.com/game/ Enjoy!
-
We’ve been building web site with ProcessWire since 2013. ProcessWire serves to us as a secure, reliable platform, and honestly, I don’t remember any significant issue after 11 years of daily use (for us, PW is also a CRM). The magic of ProcessWire is that it is always growing with our needs and serves any unimaginable demand that our platform has had. All these years, our business has grown around ProcessWire, and as it usually happens, popularity brings the other side of the coin. In our case, it was online fraud and scammers. Our first approach was to use existing fraud prevention systems, but as our business is not pure e-commerce and fraud was indirect, there was no solution that matched our needs, so we started developing our system from scratch. This is where I exactly understood how ProcessWire and the community really hooked me. (-: First of all, taking ProcessWire as an example, we decided not to heavily rely on frameworks. It was a hard decision, because new school engineers like to bring as many dependencies as possible, but I continuously pointed to ProcessWire, and as a result, we created a fraud prevention/user behaviour analytics platform with ~4 PHP dependencies. The second decision that we took, looking at ProcessWire, was even harder than the first. The fraud prevention market, in contrast with CRM, is not widely targeted for open source software, but taking ProcessWire as an example, we decided to open source our system after ~8,000 engineer-hours under the AGPL license. For sure, after being open-sourced for one week, it's premature to give any feedback, and it is highly possible that open sourcing was a mistake. However, it brings me to the understanding that the real measure of software is not downloads or stars, but its influence over other developers, and from them onto other developers, like ripples on the water. From this perspective, I am infinitely grateful to @ryan, @Ivan Gretsky, @Soma, and every person behind the ProcessWire community for all the inspiration through these years. I'm so grateful that 11 years ago I met this community and had the chance to work with some of you. As I'm more reader than writer, I would like to use this rare opportunity to wish the ProcessWire community and your families a Merry Christmas and all the best in the New Year! Best Alex P.S. While this post is not intended to be an advertisement, if someone from community is facing challenges related to online fraud, user spam, or security, please feel free to contact me directly.
-
Hi @michelangelo, The fastest way to achieve the effect of Instagram feed, is to use Processwire Pagination with Ajax Infinity Scroll, for example https://infiniteajaxscroll.com There is no silver bullet to take thousands of results form any kind of database. You should take it part by part and Processwire Selectors with Limits are good solution or prerender them as static data and keep them cached, as guys above said. BTW, 1,000 divs on one page is realy bad idea in terms of browser capacability. Just open Instagram, scroll hounded posts and take a look how many resources it will takes from your console. Good luck Alexander
-
Is it possible to create an advance eCommerce website?
Alexander replied to Samk80's topic in Getting Started
Hi there Here is the future of e-commerce for Processwire framework: https://processwire.com/talk/topic/19911-future-of-padloper-new-project-lead/ by @kongondo Third parties solutions looks great until you will faced with customization and then, with issues after updates. It is always better to control the code by yourselves. Best wishes from the Alps Alexander- 29 replies
-
- 3
-
- product configuration
- product filter
-
(and 1 more)
Tagged with:
-
@Noel Boss, After short investigation we found a hidden symbol at the end of coupon code. Will add a sanitizer. Thanks again for bug report!
-
@matjazp Thanks for feedback. I believe it could happens, because you have specific symbols in the address (š). Sorry for that. Will made address normalisation soon.
-
@dragan It was a funny bug. Briefly, I am using XHR to validate wether a URL exists and normally it works fine, as I always test it with https URLs. (-; Due to a cross-origin XHR problem, http URL always returns error. Now it works well. @matjazp Thanks for your message. Indeed, we use only ROOFTOP as valid Geocoder response, but in your case it’s RANGE_INTERPOLATED. Now I added it accordingly and everything should works. Thanks again!
-
Hi @netcarver, Many thanks! You're welcome!
-
Hello @Noel Boss, Thanks for your message. I have checked Stripe logs. Seems like it may have happened because you tried to use an expired card previously. The Verikey service is completely free for you. However all subscriptions are handled by Stripe, and their system does not accept the form without a valid bank card. I’m sorry for that but unable to amend this formality. Anyway, I’ve created the ticket and waiting for their response. Many thanks for trying.
-
Hi, @matjazp We use Google Geocoder to verify an address before sending the letter, to avoid wrong recipient. Could you send me your address please and I will double-check it? Thank you!
-
Добар дан, @dragan! Thanks for your message. At the moment, I have time only for in-house development. Thanks for your report. Yes, it seems like something is wrong with checking URL JS. We are verifying it more precisely and hope to fix it shortly.
-
Hi Everyone, Today I am delighted to share my new product that we have created with Processwire. It's a verification system, that binds together a physical address with website. I’m using Processwire nearly from the beginning and I still believe that it is one of the greatest open-source platforms that exist. Being thankful I’m pleased to provide the service of Verikey verification to the Processwire community (and websites that you did) for free. Forever. Visit verikey.com Gift code: ###### (please, request by direct message) Feedback and questions are really appreciated. Many thanks my Mom, @ryan, @soma, @adrian and all Processwire contributors. Cheers, Alexander UPD: While subscription Stripe requires a valid bank card details. It’s a formality by Stripe for all subscriptions. The Verikey service remains 100% free and out of charge with the provided voucher code.
- 14 replies
-
- 19
-
@adrian, Let's leave this for the next week when my colleague, who take care about front-end come back from vacation. And now I know that @adrian @apeisa not mirrored nicknames or same person
-
Dear Adrian, thank you for reply. I use Rename on Save because I need it for API (for front-end photos uploading). For this moment more than 100 pages affected, so I make copy from old backup and now copy each files back to actual server. (every page have 10-20 photos, so it's long story But I realise moment, when all this happened. I use this code to make changes for page field (I mean, field type page): $chalets = wire('pages')->find("template=chalet, chalet_dining.id=13664, include=all"); foreach ($chalets as $page) { $page->of( false ); $page->set("chalet_dining", 13668); wire( 'pages' )->save( $page ); $page->of( true ); echo $page->title; } After that all images on server get new names, but in database they still with previous file names. And I wish you good luck with new Padloper!
-
Hi @adrian, I have another strange issue. Some of images has new file name on the server but old name on the page. Maybe you have an idea why it can be happens and how is possible to solve this?
-
PW dev and CUN last versions.
-
@adrian My settings: Enable fields -> images, Filename format: site-{$page->name}, Rename on save is ON. If page->name = 'high-7' I lost one of file every save. I fix it with: site-{$page->name}-### Now everything except lightning.pw works fine. After submit new password on https://lightning.pw/login/change_password I get Safari can’t open the page “https://lightning.pw/login/change_password” because the server unexpectedly dropped the connection. This sometimes occurs when the server is busy. Thanks for your help!
-
Dear Adrian, I have strange issue with pages which have numbers and hyphens in $page->name (ex. foret-17). Each save one of pictures becomes empty with error "file cannot be displayed". That mean, if I save page 10 times it lost 10 images. After changing page name everything working fine.
-
MAYDAY MAYDAY MAYDAY Hey Everyone, I'm looking how to send notifications about comment to user that created the page. Actually, I found piece of code FieldtypeComments.module:664 $f->addOption(self::notificationCreated, $this->_('Send notifications to user that created the page')); but its commented and not working. Maybe it possible to make it like "created_user_id:email" in admin notification settings or something like that? Thanks for any help.
-
Dear all, I can't find any explanation how to change "E-Mail Notifications" from Off to Replies by default. Any ideas? I found solution from Ryan which works perfect for me. include("./MyCommentForm.php"); $form = new MyCommentForm($page, $page->comments); echo $form->render();
-
And make sure, that you checked "Should page URLs end with a slash? Yes" in your Logout template.
-
@tuxy Make sure that you put right URL to your logout page in "<a href='/logout'>". I recommend you to use ProcessWire API to get right URL. <?php echo "<a href='" . $pages->get("id=33977")->url . "?redirect=$page->id". "'>Logout</a>"; ?> 33977 change to your logout ID page. If you don't know how to find page ID just try to edit that page and get it from url /page/edit/?id=33977 ?redirect=1 probably mean that you try to to logout from homepage, which always have ID=1.
-
@mr-fan Fastest gun in Bavaria. You post login, not logout code and "/somewhere/" never redirect you to the same page.
-
It's easy Add to any page if ($user->isLoggedin()){ //get link with current page id echo "<a href='/logout" . "?redirect=$page->id" . "'>Logout</a>"; } To logout.php <?php //get page id from input $redirect = $sanitizer->name(wire('input')->get->redirect); //get url from page id $url = $pages->get($redirect)->url; if($user->isLoggedin()) $session->logout(); $session->redirect($url); ?>