Jump to content

dotnetic

Members
  • Posts

    1,032
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by dotnetic

  1. I will also attend to the meeting. Looking forward to see you guys
  2. Same happened to me, as my IDE auto-uploaded this file because I had checked a setting to "upload a changed file" on save. Somehow it thought I changed the config-dev.php and uploaded it. Site was not reachable after that.
  3. Let's assume you want to change the title of a an edit page. You could hook ProcessPageEdit:execute in a file like site/ready.php like described here. Adapt the template name in the following code to your needs: $wire->addHookAfter('ProcessPageEdit::execute', function (HookEvent $event) { $pageEdit = $event->object; $page = $pageEdit->getPage(); if ($page->template != 'shop') { return; // return early } $this->wire('processHeadline', 'My new headline'); // or modify the existing headline // $headline = $this->wire('processHeadline'); // $this->wire('processHeadline', $headline . " - " . date('d.m.Y', $page->created)); });
  4. The method you are looking for is headline. You could hook ProcessPageEdit:execute in a file like site/ready.php like described here. Adapt the template name in the following code to your needs: $wire->addHookAfter('ProcessPageEdit::execute', function (HookEvent $event) { $pageEdit = $event->object; $page = $pageEdit->getPage(); if ($page->template != 'shop') { return; // return early } $this->wire('processHeadline', 'My new headline'); // or modify the existing headline // $headline = $this->wire('processHeadline'); // $this->wire('processHeadline', $headline . " - " . date('d.m.Y', $page->created)); }); For easier finding and helping others in the future, I made a support post out of this:
  5. That isn't a question of one or multiple developers. I mostly use a staging server to showcase new functionality before it will get added to the live server. We use RockMigrations to ensure our development environment matches the live server. This allows Bernhard and me to add new fields and templates without risk of overwriting existing data during uploads, as any changes are automatically migrated
  6. You should take a look into the Latte template engine, which is also available for TemplateEngineFactory or RockFrontend. I like latte more than twig or smarty. The syntax is somewhat similar, but it has advantages such as added security.
  7. AI will change humanity just like the internet did
  8. First of all: Great module, I really like to have an overview, because I got many templates (20) with access roles Improvement suggestion: I would like it even more if it just modifies the standard template overview instead of adding a new one. What do you think of that?
  9. Wow. Not 20 minutes later and after a little discussion @bernhard fixed this. Thank you very much.
  10. In the version 5.0.0 of RockPageBuilder, there is an unprefixed .block class in the less file. It collides with the .block class from TailwindCSS. It would be nice if this could be prefixed, so this error does not occur (see red rectangles).
  11. If that is what he wants, it can be achieved with using the picture element and source <picture> <source media="(min-width: 1440px)" srcset="https://placekitten.com/1024/800"> <img src="no-image.png" id="hintergrundbild"> </picture> so the image would only load on screen size at 1440px and above. The no-image.png could either be replaced with a blank image or a low res version, which will never get shown, because the element is hidden by default. But sure, it will produce a 404 if the image does not exist. I adapted my codepen, to reflect these changes. I am not saying that da2's solution is wrong. It is just another way to do it. But I think the version with using an image is much more flexible.
  12. Hi Bernhard, you could just use an image tag inside of the body with object-fit. The advantage of this method is that you even could use different images for different resolutions if you want to. Another advantage is that you do not land in specifity hell because the style attribute has a very high specifity. I created a small codepen example, that you could use as a base: https://codepen.io/jmar/pen/oNmmJeB
  13. Welcome to our lovely community, Rasso. I hope you are enjoying the benefits of ProcessWire as much as I do. We had the discussion about replicating / syncing fields on the server many times. I use RockMigrations as a reliable and working module for this. You write code with migrations and they get executed as soon as you save the file and refresh the admin. A migration can be inside the site/migrate.php file, or in a migrate method inside of your custom module, or somewhere else. Here is a possible example of a migration: $rm->migrate([ 'fields' => [ 'body' => [ 'label' => 'Content', 'type' => 'FieldtypeTextareaLanguage', 'inputfieldClass' => 'InputfieldTinyMCE', 'tags' => 'generic', 'contentType' => 1, 'langBlankInherit' => 1, 'inlineMode' => 0, 'height' => 500, 'lazyMode' => 1, 'features' => [ 0 => 'toolbar', 1 => 'menubar', 2 => 'stickybars', 3 => 'spellcheck', 4 => 'purifier', 7 => 'pasteFilter', ], 'toolbar' => 'styles bold italic pwlink pwimage blockquote hr bullist numlist anchor code', 'rows' => 15, ], 'home_intro' => [ 'label' => 'Home Intro', 'type' => 'textarealanguage', 'tags' => 'generic', 'inputfieldClass' => 'InputfieldTinyMCE', 'rows' => 5, 'inlineMode' => 1, ], 'subheadline' => [ 'type' => 'text', 'inputfieldClass' => 'InputfieldTextLanguage', 'maxlength' => 100, 'tags' => 'generic', ], ], 'templates' => [ 'basic-page' => [ 'label' => 'Standardseite', 'fields' => [ 'title', 'navtitle', 'seo', ], ], 'imprint' => [ 'label' => 'Impressum', 'fields' => [ 'title', 'body', 'seo', ], ], ] ]); With the migration you can also create pages and even fill them with content (if you want that) $rm->createPage(title: 'About us', name: 'about-us', template: 'basic-page', parent: '/'); There is no sync between fields or templates you create in the admin and RockMigrations (there was a YAML option once, but I don't know if it still exists), but you get an easy to copy code in each fields edit section, that you can copy directly over to your migration. I am also in favor that migrations should be a core feature of ProcessWire, but Ryan does not approve. So we have to stick with what we have, and RockMigrations is a great solution.
  14. You could do that with latte also like so: {$pages->get('/')->children->each('title') | join(', ')}
  15. I am as many others love ❤️the Latte template engine, and I use RockFrontend to integrate it into ProcessWire. One cool feature of Latte is, that you can easily create a comma-separated (or any other separator) list of items, where the last item does not have a separator (comma) afterwards, without needing PHP. Take this code as an example {foreach $pages->get('/myparentpage')->children as $item} {$item->title|noescape}{sep}, {/sep} {/foreach} Which will output a list like: first title, second title, third title If you want to know more use cases take a look at the documentation at https://latte.nette.org/en/tags#toc-first-last-sep
  16. This opens up so many possibilities for example for working with htmx or alpine.js. Thank you Ryan.
  17. You don't need Docker Desktop for ddev to run at least on WSL or Linux (not sure about MacOS, but they recommend using Colima). You just can use the free open source docker-ce (docker engine).
  18. I confirm this. This is one of the main benefits. Also every project can have its own configuration, for example if you need to run an old PHP or MySql version (which you shouldn't). Best part is, you can run the projects simultaneously.
  19. To extend on Horst's answer: you could use a NOT selector with multiple ids separated by a pipe, to exclude them from the result like $expertises = $pages->find("template=case-type, sort=sort, ,id!=123|443|3035");
  20. Thx @bernhard So basically a simple regex. Facepalm that I did not thought of that myself 😄
  21. AI often makes errors and once you tell them about its errors, it corrects itself. Had this on many occasions where I told the AI, that the information it gave me is not correct.
  22. I have this URL hook (in an autoload module, but the same occurs if I use it in ready.php) and want to use named arguments, capturing the category and an article, like described in ProcessWire 3.0.173 core updates: New URL hooks: $this->wire->addHook("/textilien/{category}/{article}/", function ($event) { bd($event->category); bd($event->article); }); The hook only works if the url looks like https://mysite.com/textilien/hoodies/myarticle. It does not work if the URL is only https://mysite.com/textilien/hoodies/ or https://mysite.com/textilien/. Is it possible to make the category and article optional? Or do I have to create a URL hook for every of these possibilities (what I did for now).
  23. Here is what I tried. Removed all site modules from the to be included instance (shop). Did not work. Also remove all site modules from the instance (web) where I try to include the first instance (shop). Did also not work. The error still occurs even with no modules at all. I am pointless at the moment, so I am going further with the url hooks approach.
×
×
  • Create New...