-
Posts
1,018 -
Joined
-
Last visited
-
Days Won
15
dotnetic last won the day on November 16
dotnetic had the most liked content!
Contact Methods
-
Website URL
https://dotnetic.de
-
Skype
jens.martsch
Profile Information
-
Gender
Male
-
Location
Münster, Germany
Recent Profile Visitors
12,906 profile views
dotnetic's Achievements

Hero Member (6/6)
1.2k
Reputation
-
dotnetic started following multi-instance compile error , Provide a way to define / save / sync fields in the code base , Latte: Create a comma separated list of items and 4 others
-
Provide a way to define / save / sync fields in the code base
dotnetic replied to Rasso's topic in Wishlist & Roadmap
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. -
Latte: Create a comma separated list of items
dotnetic replied to dotnetic's topic in API & Templates
You could do that with latte also like so: {$pages->get('/')->children->each('title') | join(', ')} -
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
-
This opens up so many possibilities for example for working with htmx or alpine.js. Thank you Ryan.
-
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).
-
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.
-
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");
-
[solved] multiple URL hooks with named arguments not working
dotnetic replied to dotnetic's topic in General Support
Thx @bernhard So basically a simple regex. Facepalm that I did not thought of that myself 😄 -
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.
-
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).
-
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.
-
@MarkE I don't know what you are referring to, but the post you linked is about multilingual websites. I am talking about multi-instance (including data of one PW into another).
-
As this is not working right now and I need to proceed, I have chosen to use url hooks ProcessWire 3.0.173 core updates: New URL hooks instead, and provide an API where I pull the data I need via AJAX. Anyways I would be interested in solving the issue with multi-instance.
-
Why is this 👇 showing on an empty template file
dotnetic replied to eutervogel's topic in General Support
Please post the content of your template file where the error occurs. Do you prepend or append files to the template? I think this might be the cause. Go to your template in ProcessWire and to the files tab. Disable prepending and appending any files, and see if that fixes the error. -
I am using How to use multi-instance in PW 3.x (processwire.com) to connect two PW instances, because I need to display data from one instance in the other. But when using this code in one of my template files in the second instance, <?php $shopSite = new \Processwire\ProcessWire('../../../fugamo-shop/dist/'); I get the following error https://fugamo.ddev.site/textilien/ Compile Error: Cannot declare class ProcessWire\InputfieldFieldsetOpen, because the name is already in use (Row 0 in /var/www/html/fugamo-shop/dist/wire/modules/Fieldtype/FieldtypeFieldsetOpen.module) It works with two fresh PW instances, but not with my existing sites. I really don't know where to look to debug this. As you can see the PHP template file does not use a namespace. But even when using the namespace it does not work. I disabled template compilation in the settings, and also disabled automatic prepending/appending of _header.php and _footer.php Some more info, the site I try to bootstrap has many modules and fields and templates installed. The site where I try to include it in, just has a few modules installed and not many fields. ProcessWire version ist the latest dev 3.0.222 in both instances.