Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Philipp last won the day on October 29 2023

Philipp had the most liked content!

About Philipp

  • Birthday 01/08/1993

Contact Methods

  • Website URL

Profile Information

  • Gender
  • Location
    Germany, Heidenheim

Recent Profile Visitors

8,995 profile views

Philipp's Achievements

Sr. Member

Sr. Member (5/6)




Community Answers

  1. TL:DR I've updated a PW page we've built 9 years ago for the first time and it's still a solid experience. Backstory Back in May I was on a crowded train somewhere in the middle of Germany. Now working as a "Consultant" who builds slidedecks instead of websites, I happily noticed the men next to me talking about responsive webdesign with his friend. During the obligatory "This train is late" announcement we started to chat. My seatmate, a geography teacher, recently attended a web workshop at a large Hamburg agency. He told me he now understands the value of a CMS for updating their site and he wonders how to build a responsive layout. They don't get paid for this and work on their homepage in their spare time. And they have a Typo3 installation 😅 Back in 2013, together with my friend Marvin, we've rebuild our school website with ProcessWire optimized for mobile devices. Launched in 2014 this was quite an impressive feat including online time tables, a working event calendar (with import feature) and many small nice touches. After my encounter on the train, I checked the page and yes, It's still online and updated daily! The next day I wrote my old teacher a short email if we should have a closer look into the underlying tech and within minutes I got a super happy reply that he is so glad that somebody would help (again). So let's dive into what we've done. Situation First some details about this ProcessWire installation that is updated by a few teacher on a regular basis. Over the 9 years they've wrote nearly 900 news articles and kept more than 250 pages up to date. The asset folder is over 11GB. Build with Processwire 2.4 (?) and lots of janky code we've updated the page once to 3.0.15 somewhere in 2016 quick and dirty. They even used the old admin layout. ProCache, CroppableImages3 and a few other plugins were used. Every single one of them required an update It's used the classical append-template approach with a single big "function.php" included file. It's running on PHP 5.6 and for whatever reason no PHP update was enforced by the hoster (But the admin panel screamed at me) A privacy nightmare: Google fonts embedded directly, no cookie banner and a no longer working Google Analytics tag included The old ProcessDatabaseModule made a database backup every week as planned over all these years. Nice. No hacks, no attacks and all teachers are using their own account with assigned permissions Changelog I've updated the page with a focus on making it stable and reliable for the next 9 years. After making a development copy of the page, I've started working on the following changes: Updated ProcessWire and all modules to the latest stable version. After reloading a few times, no errors encountered Updated the whole templates to make it work with PHP 8.2 Removed all externally hosted scripts, disabled cookies for all regular visitors and introduced a 2-click-solution for external content Reworked a few frontend style issues around the responsive layout, made slight visual changes for 2023 (e.g. no double black and white 1px borders) Ported the image gallery feature to more templates (Big wish of the people updating the site, they've used a workaround) Cleaned up folder and structures, removed a few smaller plugins and admin helpers no longer needed All this was done back in May and - with a big break - completed now in October. It took a few days and most of the time was spent figuring out our old code. Learnings ProcessWire is robust as f*ck. I just clicked "Update" and it mostly worked instantly I nearly removed features for the PHP update. A custom written importer for the proprietary XML schedule was hard to debug and understand (5-dimensional-arrays...). Gladly I've tossed a coin and just gave ChatGPT the php function source and error message and within a single iteration it updated the code for PHP8. The "responsive" CSS framework aged badly. The used 960gs skeleton uses fixed widths for the responsive layout. I couldn't get it be wider than 320px on mobile screens. So the site is responsive but with a slim profile for now. Replacing it would be a complete layout rewrite Result and looking forward The Werkgymnasium site is now updated and live again. It still loads superfast and looks great after all these years. We have a few more features planned to help our editors input new content but overall it just works. Looking forward a few issues remain. ProCache would require the paid update but it still works fine. The layout needs improvement on mobile screens. There is still an error with the pagination. We'll cleanup the code more and then make the whole template public on Github so that maybe a few students after us can continue with the updates. Maybe even rebuild the frontend one day. I hope I can give you an update in a few years again. As a closing note: I'm still grateful for the amazing community here and all the features ProcessWire has to offer. My daily work no longer resolves around websites but PW has a permanent spot in my heart. Thanks Ryan and all the contributors.
  2. We're trying to run ProcessWire on an Azure-Setup using the Azure Web-Apps Service with the included MySQL. We used the default template from the marketplace meaning that MySQL is running on the same instance as the webservice. Beside some PHP settings and problems we finally got the Processwire instance running. As this was an IIS-server, the `.htaccess` was converted into an `web.config` based on the example that can be found in the forum here. This works fine so far and no errors etc. happen. The main problem is that the performance of the web application is incredible slow on Azure. Every request ist about 5-10x slower than our previously shared webhosting setup. We do not think that latency is the problem, because the slow-down is not the same everywhere. We currently can't detect what's the actual bottle neck is. The instance itself is running on a 200ACU + 3,5GB RAM which should be the problem (as any other Node app we have running on lower machines with better performance). We tried to avoid the Bitnami installer because it would be about 3-4x more expensive to run. So the main question is, does anyone has experience with performance improvements on Azure (Web Apps) or at least with running Processwire on a Windows host with IIS? We know that IIS is officially not supported on Processwire but maybe someone has an idea or got it running smoothly.
  3. This Looks really good. As said on HN: file size went down, SASS Support, fewer but better components. After learning Foundation (5) last month, I have to re-evaluate both Frameworks when Boostrap 4 launches. I really prefer the default Styling of bootstrap (and the components) but I don't like the Container>row>column approach with the outer padding.
  4. Nice site and a great description about the Solutions you found. Just an issue with a "regular" PC: When browsing with the IE11 and Windows 7 on a regular (Office) FullHD Screen, the logo becomes crispy and unreadable. See the attached screenshot.
  5. Can also confirm that ProcessWire works well as a JSON-Backend-Service for Ionic-Apps. (The german Ionnic page is built with PW) But in General, using ProcessWire as a backend is possible with native Android apllications. Mostly you fetch JSON from a REST-API and PW can deliver that. As an alternative, you could for example look at Parse.com
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> You forgot your viewport tag in the head of the page. Add this to the ProcessWire page.
  7. The minimize.pw module is fail-safe. If our server goes down, images are only run through the internal ProcessWire Image methods. I'm respimg for all my responsive image needs.
  8. I'm not sure how it fails in detail. Only had the same issue before and couldn't relate it to Lightning but to ProcessWire. Reported it here and it seems to be fixed.
  9. FTP should be running and it is scheduled to restart frequently. The problem with accessing images is a problem with ProcessWire itself. When the creation process fails, the image file is created but not accessible. This can happen, even when you fix your old image code. Try removing the files manually and then recreate them.
  10. Just another addition: Dell released a new IPS 27" (and also 24") UHD/4K (3840x2160) displays in the last week. While they're no reviews, the screens are shipping. Look for the Dell P2715Q or Dell P2415Q. The 27inch models costs about 700 Bucks.
  11. This is up to you. The module doesn't generate markup so you could just trigger the PHP call when a user clicks on a star. Theoretical, you fire a Javascript event when the users clicks the star together with the value (1,2,3,4,5) of the star. Then your code adds this rating.
  12. Finally found time so rewrite the thing. In short, it is now working but I can't figure out what didn't work before. 1) My $size was set to 0. This was my mistake. The width() options just ignored the $options array. 2) I manually removed all pages including the image files and re-upload them. This made PIM PageImage objects work as well as the ProcessWire ones. Sorry, this seems like a fault on my side. PIM works fine once you get the things around right.
  13. Not tested and quickly put together here based on the HelloWorld.module demo. This should give you an starting point. Hook before the page saves (I think this is possible?), then write the other field based on the source_url field. <?php /** * ProcessWire 'Hello world' demonstration module * * Demonstrates the Module interface and how to add hooks. * * See README file for further links regarding module development. * * ProcessWire 2.x * Copyright (C) 2014 by Ryan Cramer * Licensed under GNU/GPL v2, see LICENSE.TXT * * http://processwire.com * */ class Helloworld extends WireData implements Module { /** * getModuleInfo is a module required by all modules to tell ProcessWire about them * * @return array * */ public static function getModuleInfo() { return array( // The module'ss title, typically a little more descriptive than the class name 'title' => Rewrite field after save', // version number 'version' => 1, // summary is brief description of what this module is 'summary' => 'An example module used for demonstration purposes. See the /site/modules/Helloworld.module file for details.', // Optional URL to more information about the module 'href' => 'http://processwire.com', // singular=true: indicates that only one instance of the module is allowed. // This is usually what you want for modules that attach hooks. 'singular' => true, // autoload=true: indicates the module should be started with ProcessWire. // This is necessary for any modules that attach runtime hooks, otherwise those // hooks won't get attached unless some other code calls the module on it's own. // Note that autoload modules are almost always also 'singular' (seen above). 'autoload' => true, // Optional font-awesome icon name, minus the 'fa-' part 'icon' => 'smile-o', ); } /** * Initialize the module * * ProcessWire calls this when the module is loaded. For 'autoload' modules, this will be called * when ProcessWire's API is ready. As a result, this is a good place to attach hooks. * */ public function init() { // add a hook before the $pages->save, to issue a notice every time a page is saved $this->pages->addHookBefore('save', $this, 'saveShortUrl'); } /** * Save as another field. * */ public function saveShortUrl($event) { $page = $event->arguments[0]; //#todo Rename to your field names. $page->domain = parse_url($page->source_url,PHP_URL_HOST); //#todo Maybe some more error handling. $this->message("Save the domain {$page->domain}."); } } But maybe the experts on this topic hand help you with any further questions
  14. Maybe make it easier to "hook" into that and provide files for installation? Only Upload a Zip file and it will be loaded in the right place. Totally agree, that we don't need 20 modules for 20 super small tasks.
  15. I think there was a discussion about this some time ago in a thread here. While I quite like the ideas, I see some challenges that comes with this approach Who is handling the payment? What about taxes? How to "book" this income? How exactly should they work? Flattr? Paypal Donate? Why not just leave it up to the Developer, to include a Donate Link in his/her description? And I'm not sure if that many people would donate after all. If we/Ryan spent about 20-30 hours building the donate function and we only collect 200-300 Dollards in Donation after all..... - better build another great module
  • Create New...