Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


markus-th last won the day on April 1 2021

markus-th had the most liked content!

About markus-th

  • Birthday August 1

Contact Methods

  • Website URL

Profile Information

  • Gender
  • Location
    Kulmbach, Germany

Recent Profile Visitors

2,308 profile views

markus-th's Achievements

Full Member

Full Member (4/6)



  1. Hello webguy, to integrate a Google tag on your site, you can integrate the code e.g. in the header template (sometimes _header.php). But the answer is not quite that simple, as it depends on how the templates of your site are structured. My templates usually look like this: _header.php _footer.php home.php (include header, templatecontent, footer) basic-page.php (include header, templatecontent, footer) ... and so on ? I hope this helps
  2. Look, here in the docs is every information you need ? https://processwire.com/docs/modules/hooks/#what-methods-in-processwire-are-hookable
  3. <script> function gtag() { dataLayer.push(arguments); } gtag('consent', 'default', { 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'analytics_storage': 'denied' }); </script> <script type="text/plain" data-type="text/javascript" data-category="statistics"> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('consent', 'update', { 'analytics_storage': 'granted' }); </script> <script type="text/plain" data-type="text/javascript" data-category="statistics"> // GTM </script> I use GTM only for Statistics, this is how it work for me.
  4. Looked at it on Andriod. No image ... tested with another website, work with image
  5. Look at this idea: Since I have been using this method, I no longer need any other approach to build up the content on my pages and I also need far fewer different templates. You don't have to use depth, but it allows extremely flexible output of content when needed. My basic_page template look like this: <?php namespace ProcessWire; include "_header.php"; $items = $page->content; foreach ($items as $key => $item) { $item->position = $key; $item->all_items = $items; } foreach ($items->find("depth=0") as $item) { echo $item->render(); } include "_footer.php"; And all matrix "content" templates are inside the fields folder.
  6. I can understand that, for me it's just always the same ID. Alternatively, you can also overwrite the LogoURL in admin.php. Directly before: require($config->paths->adminTemplates . 'controller.php'); with: $adminTheme->logoURL = $mylogourl I use this for multisites where I need different logos depending on the URL.
  7. I don't know if my way is better, but for me it has become standard ? This is easy done: I set the imagepath in AdminTheme to: '/site/assets/files/1020/be-logo.svg' (1020 is my settingspage) and to make sure that the image name is always the same I use the Custom Upload Names module. Now I can simply upload a new logo and have it available in the backend. I exported this configuration with some fields and settings that I need again and again with the Profile Exporter from @ryan and use this as a starting point for almost every new installation.
  8. I have a suspicion, can it be that you have a template and a repeater with the same name? Normally you can find all repeater elements under "Admin". You could try moving the pages there and then changing the template name.
  9. Very many interesting approaches. Therefore, I would like to show my solution as well. I also use the repeater matrix but with nested elements. This gives me maximum flexibility and requires fewer "static" elements.
  10. Ingenious, that means in the ready.php the HTMX request does not have to be declared extra. Note to me: RTFM ?
  11. @bernhard This works pretty well for static content, but unfortunately not for content filtered by URL parameters, for example. I really like to use HTMX to dynamically load and replace content on pages. Also asynchronous loading of partial parts of the page becomes very easy. Here is a simple example of the output of a product tile with URL hook <?php foreach ($items as $key => $item) { $pos = $start + $key + 1; ?> <div :hx-get="'/getproduct/'+<?= $item->id ?>" hx-trigger="revealed" hx-indicator=".loader" class="product-tile"> <div class"loader"> Some fancy loader :-) </div> </div> <?php } ?> The hook: (getproduct.php) <?php namespace ProcessWire; $wire->addHook('/getproduct/{prodid}', function ($event) { $id = $event->arguments('prodid'); $item = $event->pages->get("template=product, id=$id"); ?> <div> <p>Producttile</p> </div> <?php exit(); ?> And of course in ready.php include 'templates/functions/getproduct.php'; if (array_key_exists('HTTP_HX_REQUEST', $_SERVER)) { $config->appendTemplateFile = ''; $config->prependTemplateFile = ''; $config->htmxRequest = true; } Maybe that's what @Jonathan Lahijani means by gymnastics. For me personally, this is not a special effort and is actually already part of my workflow. Disclaimer: I know this is not Markup Regions ?
  12. @cb2004 Maybe it was a coincidence in my case, however, it worked exactly like that for me in 3 installations.
  13. @DV-JF I also had the same behavior that no core updates were displayed. This phenomenon was only with Processwire installations that were already somewhat older. I then noticed that the ready.php in the site folder were different for these old installations. Replacing them with a new ready.php resulted in the coreupdates being displayed again. But be careful, if you already have a modified ready.php, you have to make these changes in the new file too.
  14. If you are using Pages2PDF eg. WirePDF you can update the module from my updated fork: https://github.com/markusthomas/Pages2Pdf
  • Create New...