ngrmm
Members-
Posts
441 -
Joined
-
Last visited
-
Days Won
3
Everything posted by ngrmm
-
@robert it seems that this module does not work with the latest PW version Schwerwiegender Fehler: Uncaught TypeError: Cannot access offset of type string on string in site/modules/ProcessTranslatePage/ProcessTranslatePage.module.php:189 #0 site/modules/ProcessTranslatePage/ProcessTranslatePage.module.php(59): ProcessTranslatePage->setLanguages() #1 site/modules/ProcessTranslatePage/ProcessTranslatePage.module.php(41): ProcessTranslatePage->initSettings() #2 wire/core/ModulesLoader.php (168): ProcessTranslatePage->init() #3 wire/core/ModulesLoader.php (100): ModulesLoader->initModule() #4 wire/core/ModulesLoader.php (111): ModulesLoader->triggerInit() #5 wire/core/Modules.php (338): ModulesLoader->triggerInit() #6 wire/core/ProcessWire.php (775): Modules->triggerInit() #7 wire/core/Wire.php (413): ProcessWire->___init() #8 wire/core/WireHooks.php (968): Wire->_callMethod() #9 wire/core/Wire.php (484): WireHooks->runHooks() #10 wire/core/ProcessWire.php (909): Wire->__call() #11 wire/core/ProcessWire.php (665): ProcessWire->__call() #12 wire/core/ProcessWire.php (613): ProcessWire->setStatus() #13 wire/core/ProcessWire.php (315): ProcessWire->load() #14 index.php (52): ProcessWire->__construct() #15 {main} thrown (Zeile 189 in site/modules/ProcessTranslatePage/ProcessTranslatePage.module.php) Diese Fehlermeldung wurde angezeigt wegen: Sie sind als Superuser angemeldet. Fehler wurde protokolliert.
-
Install MarkupGoogleRecaptcha on FormBuilder form
ngrmm replied to couturef's topic in General Support
@couturef i doubt that the module is up to date please check the support thread of the module here: -
Trying to link to a specific place on another page
ngrmm replied to Charlie W's topic in General Support
@Charlie W your question ist not directly related to processwire. You would get or find an answer more quickly on stackoverflow. Or just ask chatgpt, claude, … acme/#sliding is correct. Just make sure that you do not have multiple elements with the same id. Then you link <a href='#siding>siding</a> should get you to your target <div id='siding'></div> -
New post: Using date range fields in ProcessWire
ngrmm replied to ryan's topic in News & Announcements
@ryan is it also possible to disable a date range via setting like: $wire->addHookBefore('InputfieldDateRange::getSettings', function($e) { $f = $e->object; if($f->name != 'booking_date') return; // // set Christmas until New Years Day to be disabled // $f->disabledDates = [ '2024-12-25 - 2025-01-01' ]; }); UPDATE: right now I'm doing this // // helper function // function getDatesBetween($startDate, $endDate) { $dates = []; $currentDate = strtotime($startDate); $endDate = strtotime($endDate); while ($currentDate <= $endDate) { $dates[] = date("Y-m-d", $currentDate); $currentDate = strtotime("+1 day", $currentDate); } return $dates; } $wire->addHookBefore('InputfieldDateRange::getSettings', function($e) { $f = $e->object; if($f->name != 'booking_date') return; $disabledDates = getDatesBetween("2024-12-25", "2025-01-01"); // // set Christmas until New Years Day to be disabled // $f->disabledDates = $disabledDates; }); -
access a related page templatefield's label in the current user language
ngrmm replied to froot's topic in API & Templates
@froot so related_tutor or related_movie, is a page field right? Is it a single or multiple page field? If multiple (by default), then you would need to select one from the array. like: …related_tutor->first->template->fields->skills->label and check this https://processwire.com/api/ref/field/get-label/ -
[SOLVED] How to hook into page ADD NEW and change sort order?
ngrmm replied to Klenkes's topic in General Support
I've no idea how to tweak that. But you could also create a custom backend page, see here. -
@rushy go here. There are many ways. Maybe one fits you
-
@leode you also edited your config.php right?
-
Resaving a page from the same variable and duplicate items in repeaters
ngrmm replied to DrQuincy's topic in API & Templates
@DrQuincy Matrix repeaters are pages themselves. They are different than usual fields. First you create a matrix type and add content. Then save the matrix page and then you can save your actual page. Each time you add a matrix type a new page is created. You can find these pages in the page tree under admin- 1 reply
-
- 1
-
Did you try str_replace?
-
@Purple your question is more related to php as to processwire. You better search in stackoverflow for these kind of question. Anyway, you could use a for loop. This code gives you the first images of the first five category children. for ($i = 0; $i <= 4; $i++) { foreach($categories as $category) { $image = $category->children->eq($i)->images->first; } }
-
I've one page in production which has similar bizarre issue. I'm not able to view an unpublished page as a superuser. But this happens only in chrome. No problem safari or firefox. I gave up to find out why ? Which browser are you using? Please let me know if you have solved this issue Found this here but I'm a noob in host server settings
-
How to add spaces left and right for vertical images
ngrmm replied to maximus's topic in General Support
@maximus actually there is already ratio inside the pageimage class see here: https://processwire.com/api/ref/pageimage/ And you could also solve this without generating new images. You could set a square container and put the orginal img inside it. Then use CSS to get what you want. -
This is strange. Are those category pages actual pages in the frontend? Or are they just helper page to store data and they do not exist as pages in the frontend? You could reset the module cache to make sure, it's not cache related. Do those pages/templates have any special settings? Any non defaults? content-type? url segments?
-
@protro I'm not familiar with rockfrontend. As you can see in a browser console your final code loads several files (uikit.min.js, uikit-icons.min.js, main.js, main.css) before loading your oswald.css file with the @font-face rules. The browser reads your oswald.css file and then sends a request to download webfonts. So two things delay the webfont download. The order of your js and css files and also the chaining via the font-face rule inside a css file. Most of the time it helps just to change the order and to set the css file at the first place. And as I said before the fastest way would be to inline those @font-face rules. If inlining does not help also, you could also give the browser a hint to preload webfonts like this: <link rel="preload" href="/site/templates/styles/whereever_your_fonts_are/webfont.woff2" as="font" type="font/woff2"> <!-- or for crossorigin <link rel="preload" href="https://www.domain.com/webfont.woff2" as="font" type="font/woff2" crossorigin> -->
-
@protro you could try to avoid FOUC by loading you oswald.css earlier or even one step durther and inlining the webfont css part into your head part
-
@kaz that is the way to go Or using embed option D and writing custom code
-
just add a dot before the folder name. PW will ignore the module. Then install the new Module
-
@V7dev in case you wonder, why you do not see the repater in you dump. Repeaters are pages themself linked to your actual page Also see here for more options to get the repeater items:
-
@V7dev you just need a loop $items = $pages->find("template=event_day, event_schedule.speakers={$page->id}"); foreach($items as $item) { foreach($item->event_schedule as $repeater_item) { echo $repeater_item->event_start_date; } }
-
@Tyssen I use this module which builds on this (yours). And it has template select fields on the module edit page. Maybe the old module has also these fields.
-
@cpx3 please triple check everything. It works for me. Which embed version are you using?
-
@cpx3 you could select the html5 native date field as your type and choos today as your default value. Your minimum values can be set via a hook $wire->addHookBefore('FormBuilderProcessor::renderReady', function($event) { $form = $event->arguments(0); if($form->name != 'your-form-name') return; $inputfield_1 = $form->getChildByName('your_date_field_1'); $inputfield_2 = $form->getChildByName('your_date_field_2'); if($inputfield_1) $inputfield_1->attr('min', date('Y-m-d')); if($inputfield_2) $inputfield_2->attr('min', date('Y-m-d', strtotime(' +1 day'))); });
-
Actually I prefer custom sizes or labels instead of numeric sizes. It far more intuitive to have small/medium/large instead of 3/12, 4/12 or 6/12 for users. In one of my projects I used numbers in combination with ion range slider (see screenshot). I don't like it anymore! After that almost all of the projects I tried to avoid column layout options via backend. Just here and there a „smaller“ or “bigger“ checkbox.