Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/18/2020 in all areas

  1. The site of Jörg Hempel was built back in 2013/2014 the first time with ProcessWire, (version 2.3+ or 2.4). Then, over the years, individual areas were repeatedly rebuilt, equipped with new features, etc. Once, more than 50000 original images had to be exchanged and replaced by larger ones. I still remember that I wrote two days on the scripts, with which all original images were automatically exchanged via SFTP and all variants were recreated. At that time, a local computer ran three days and nights continuously in four parallel tasks. The exchange ran smoothly and without a single minute downtime of the live page. Today, the images (incl. variants) occupy over 130 GB disk space. :-) But due to the different version changes, PW 2.4, 2.5, 2.6, 2.7, 2.8(!), all none namespaced, to the namespaced 3.0+, a lot of unsightly solutions were created, e.g. to adapt unmaintained third party modules etc. In the front end were some old libraries in use, too. Therefore Jörg Hempel decided to rework all areas. (design, frontend and backend). Jörg developed the design together with the design agency Quandel Staudt Design from Frankfurt, Germany. The front end was built as a HTML click dummy by Benedikt Seifert from Jena, Germany. I was left with the wiring of front end and back end, as well as the redesign of all server-side processes. The new site now runs on PW 3.0.148 and PHP 7.4, using ProCache, AOS and my image helpers (Pia, PageimageManipulator2, CroppableImage3). All images use lazyload, and infinite scrolling was dropped, so we don't have to use the m.domain for mobiles any more. The extensive filtering possibilities of the archive and the blog from the old site have been preserved. Url segments are used for the filters.
    7 points
  2. @wbmnfktr many thanks, but the design wasn't my work. This goes to Quandel Staudt Design ! I'm more responsible for the massive disk space usage. ? I only have built the homepage and the menus, - and worked on little (front end) things like the archive thumbnails on the homepage for mobile view. The design agency wanted to have fixed partial blue overlays in the bottom, with blur effect for the covered image part. I found out, that sometimes the text was to long to fit into the blue area. My recommended solution was to extend the boxes downwards, so that longer texts fit, but not too much of the image motifs get covered. Since the thumbnails are on white background, it was not possible to simply extend the semi-transparent text boxes downwards. So, now the pictures automatically get lengthened with a black, transparent gradient below and also get the blurred effect directly embedded into the pixels. original thumb like in the desktop version the lengthened (and blurred) thumb the result with the fixed partial overlay
    5 points
  3. Very Good! Congratulations! https://gtmetrix.com/reports/joerg-hempel.com/W4poteAu https://tools.pingdom.com/#5c3bbe0cae400000
    2 points
  4. Nice work - I love coming up with non-standard solutions to design problems like the blurred overlay. Way back in 2005 I built an article block for a webiste that overlaid a gradient on the hero image for the same purpose of showing text on top and saved that copy of the image with the adjustment (before CSS3), and also generated all the article titles as images too as it was a non-standard font (this was before web font compatibility as well) so I know they can be a challenge, but a fun challenge ?
    2 points
  5. Kind of... Love on first sight... to be honest. Love the straight and clean look of everything. And I love the speed of that site. My internet connection is quite lame but still.. everything was almost instantly present and usable. There are... some things I could call a "glitch" but... maybe... it's just me and I will take a closer look later on. That's... WOW! My whole setup doesn't use that much of disk space. ? Well done @horst, well done!
    2 points
  6. As I understand it, PHP_EOL means "the end of line character for the current system". So when the code executes on Windows it equates to "\r\n" and when it executes on *nix it equates to "\n". It's cross-platform when it comes to outputting a line-break character, but not when it comes to looking for line-break characters in user input from Windows and *nix. I usually do this... $lines = explode("\n", str_replace("\r", "", $input)); ...which is faster than regex.
    2 points
  7. Hi all, I'm searching for Alpha/Beta tester of the new rewritten Croppable Image module. I opened a new repo on Github, with the name CroppableImage4: https://github.com/horst-n/CroppableImage4 It is a rewrite of the CAI3. I dropped all internal image manipulations, to be more future safe. Now I delegate all this to the parent core image fields methods. To be able to do this, I need to change some things and the module is no longer backwards compatible. A) For the alpha & beta testing, there is a new crop method name: $image->getCrop4(), this may be changed later to the legacy $image->getCrop() method. But for the testing period to avoid conflicts with CAI3, it is named getCrop4(). <- OBSOLETE, see the next post here in thread B) With the first param, you pass the cropname into the method. Optionally you can pass image processing options as a second param, like with the core image field. To do this, you may use an array or a selector string. C) You can use every known options param. Width, Height, Size is ignored! If you also want create WebPs in one go, please add "webpAdd" => true to the options array, (or webpAdd=1 to the options selector string)! D) The resulting image variation names will differ from those of the previous version 3! Please refer to the readme of the repo and, maybe compare it against the version 3, if you not already know it. Thats it so far. I have tested it a bit in the last days and haven't found any issues. But it would be nice if some of you can test it too.
    1 point
  8. @Sevarf2 - just updated the code to ensure that both the settings array and the key within the array exist. (This would prevent inadvertently adding a settings array or setting if the key is typed incorrectly), if they don't it will ignore the changeSetting() call.
    1 point
  9. Goldkinder Psychotherapie Website of the child and youth psychotherapist Heike Maßen from Mönchengladbach, Germany. A one-pager that gives an insight into her work and her practice rooms, as well as information about many relevant aspects. It's a simple responsive one-pager with a nice design from Uta Hugenbruch. The front end is build without any framework.
    1 point
  10. Nice look and feel. If you allow just a few remarks: On really large screens the main texts are too wide. I would either increase the font-size a bit, or define a max-width to make it more readable. The color contrast is insufficient (way below 1:4.5) for most text. If you care about accessibility, I'd adjust the colors accordingly. There's no h1 anywhere. And also no meta description. For SEO, I would also use a bit more text for <title> than just "Goldkinder".
    1 point
  11. Yes !, it fixed in this update, Thanks ?
    1 point
  12. Thanks @adrian, this one I have already fixed yesterday for newly cached pages. But there are currently 4500+ pages in ProCache that needs to be rebuild.
    1 point
  13. @horst - the site looks wonderful, but unfortunately the speed for me is actually unusable because of this: Unrelated to speed, but also notice this: HTH!
    1 point
  14. Guilty for that one. Oh... wait... ? Don't take meds unless necessary! You might want to know and feel if somethings is wrong with your body. Otherwise... Netflix-binging is fine. At least for good TV shows. Times are very strange right now. Done all my groceries through Amazon and other online shops just to stay away from other people. Actually... had to go to my car dealer to get some things fixed with my car but they are already closed until further notice. So... either online grocery shopping or whatever. WEIRD. TIMES. Keep and stay safe guys!
    1 point
  15. Nonetheless... someone had to implement all those designs and features. I really like it ... somehow. Kind of UIKIT and still some kind of custom. I know how often I struggle with a "designer's idea" of something so... a great job.
    1 point
  16. My local shop is well stocked with most things at the moment except milk (there's still a little), pasta, toilet rolls, paracetamol and Maltesers chocolate. Someone out there is preparing for a Netflix binge-watching session sitting on a throne of toilet rolls whilst getting fat on maltesers and presumably taking the paracetamol after they get a chocolate-induced headache I guess ?‍♂️ I saw someone today buying a large quantity of bottled water as well. I'm fairly sure that still comes out of taps just fine ? It's a pandemic, it's not quite the same as the apocalypse ? But in all seriousness, it is a very strange time. I just hope that those in need of vital supplies can still get them. Stay safe folks and, if you can, stay indoors.
    1 point
  17. Hi @kongondo just very curious as a padloper customer. Would it be possible for you to communicate a tiny bit more about what is happening maybe when to expect the fruit of all your hard work just so we know when to budget our sending you money for the upgrade to the next version thanks!
    1 point
  18. just for documentation purposes: looks like Ryan added an option in $config: $config->maxUrlSegmentLength = 128; see also:
    1 point
  19. Just stumbled across this older post and I want to say: IMHO this is the simplest/best explanation for registering / executing hooks! Thanks! This is also a problem for me when I try to post more complex questions in the forum. I'm often not understood.
    1 point
  20. Everybody please take this pandemic really seriously!! Panic does not help for sure, but ignorance or underestimating this situation will cost the life of thousands of people all over the world! As the following chart shows, the mortality highly depends on the amount of people that are in need of medical care at one time! Taken from link 2, see below. I have underestimated it myself just like almost anybody in europe has, as nobody of us here has ever experienced a situation like this before (in contrast to asia). Here are two links that I encourage everybody to read, even if you live in an area that has not (yet) been affected: 1) https://www.washingtonpost.com/graphics/2020/world/corona-simulator/?fbclid=IwAR0ABgvQGxm005seLywxDkZScKImi53Du9lzAlMwrDH6qsaaefW-Oux-Gao They have great simulations of how such an exponential growth can/will happen and what every single person can do against it! 2) https://medium.com/@holger.heinze_81247/coronacodex-my-commitment-during-the-covid-19-pandemic-76613656dac0 I hope that was not offending the forum rules that don't want political discussion... I work 100% remote now and I encourage everybody to do the same if at all possible. Not because I'm afraid (luckily I'm not at high risk as I'm young and healthy), but to take responsibility for all the people around me and keep the number of people needing medical care as low as possible so that the staff in the hospitals does not have to decide which patient (with severe symptoms) is treated and which is not (and will likely die).
    1 point
  21. Thanks very much for the help everyone. Hopefully this'll help others too so much appreciated. This is what I ended up with (went with @Robin S's solution in the end). MUCH appreciated help @BitPoet ? // Add annotations as anchor options within text $wire->addHookBefore('ProcessPageEditLink::execute', function(HookEvent $event) { $page = wire('pages')->get(wire('input')->get('id')); if ($page->template->name !== 'projectsSingle') return; $input = $event->wire('input'); $anchors = $input->get->anchors ? : []; $annotations = array(); foreach ($page->textAnnotations as $key => $annotation) { $annotationClean = 'annotation-' . wire('sanitizer')->pageName($annotation->id); $annotations[$annotationClean] = $annotation->text; } $anchors = array_merge($anchors, array_keys($annotations)); $input->get->anchors = $anchors; // $event->wire()->addHookBefore('InputfieldSelect::render', function(HookEvent $event) use ($annotations) { $inputfield = $event->object; if ($inputfield->name !== 'link_page_anchor') return; $options = $inputfield->options; $inputfield->options = []; foreach ($options as $option) { $anchorName = ltrim($option, '#'); if (isset($annotations[$anchorName])) {; $inputfield->addOption($option, $annotations[$anchorName]); } else { $inputfield->addOption($option); } } }); });
    1 point
  22. @Mike Rockett @teppo I created a merge request on GitLab. Happy to get some input on that. It includes an example implementation and an updated readme section on dynamic URL segments. One thing that I couldn't figure out is creating alternate-language URLs inside the hook. The LanguagePageNames module doesn't create the hooks for Page->localHttpUrl() if the requested page results in a 404 error (which it always does when generating the Sitemap since that's what triggers it). That's why the Sitemap module manually adds those hooks when initializing. However, even when the module has been initialized and the hooks should have been added by that point, localHttpUrl() is not available on any Page object inside the hook. I worked around that in my previous project by doing the same as the Sitemap module and adding the localUrl methods manually. It's however far from an ideal solution to have to add all that boilerplate. Any ideas? wire()->addHookAfter('MarkupSitemap::getAdditionalPageUrls', function ($event) { /* get arguments */ static $hooksAdded = false; if (!$hooksAdded) { foreach (['localUrl', 'localHttpUrl', 'localName'] as $pageHook) { $pageHookFunction = 'hookPage' . ucfirst($pageHook); wire()->addHook("Page::{$pageHook}", null, function ($event) use ($pageHookFunction) { wire('modules')->LanguageSupportPageNames->{$pageHookFunction}($event); }); } } $hooksAdded = true; /* add URLs */ }); I started working on the video element feature, but that's not as straightforward as I thought.
    1 point
  23. @Mike Rockett @teppo I just stumbled upon a local fork to the module I made some time ago that adds that functionality (additional URLs per page, added via a hook). I'll whip it into shape and create a merge request in case that provides useful or as a starting point. It's working quite well locally, just have to fork from the current state and add some docblocks.
    1 point
  24. A work colleague has to find a new appartment till the end of March, because she got kicked out of the flat-share appt. The real-estate market is already unaffordable for most "normal" people in Zurich under "normal" circumstances. But findind something even halfway affordable in such a short period of time is crazy under such definitely-not-normal circumstances.
    0 points
  25. Just some links I follow each and every day: https://gisanddata.maps.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6 https://www.zeit.de/wissen/gesundheit/2020-03/corona-pandemie-virus-covid-19-ausbreitung-live-blog
    0 points
×
×
  • Create New...