-
Posts
67 -
Joined
-
Last visited
-
Days Won
1
Everything posted by markus-th
-
The best SMTP server for you will depend on your specific needs and priorities. Here are some factors to consider: Email volume: How many emails do you send per month? Budget: How much are you willing to spend on email sending? Technical expertise: How comfortable are you with setting up and managing an SMTP server? Deliverability: How important is it that your emails reach the inbox? Features: What kind of features are you looking for, such as email tracking, analytics, and automation?
-
Nice, thanks for sharing. BTW: Works also perfect for the ProModule RepeaterMatrix from @ryan
-
@Klenkes I currently have the same problem with v 1.0.9, after a downgrade to v 1.0.8 everything works as expected again.
- 220 replies
-
- 2
-
- translation
- language
-
(and 1 more)
Tagged with:
-
Help with adding Google Tag Manager code
markus-th replied to That web guy's topic in Getting Started
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 -
Look, here in the docs is every information you need ? https://processwire.com/docs/modules/hooks/#what-methods-in-processwire-are-hookable
-
module PrivacyWire - Cookie Management & async external asset loading
markus-th replied to joshua's topic in Modules/Plugins
<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. -
Looked at it on Andriod. No image ... tested with another website, work with image
-
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.
-
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.
-
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.
-
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.
-
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.
-
That could have been me ?
-
@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 ?
-
@cb2004 Maybe it was a coincidence in my case, however, it worked exactly like that for me in 3 installations.
-
@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.
-
mPDF error: No font or default font set!
markus-th replied to Frank Schneider's topic in General Support
If you are using Pages2PDF eg. WirePDF you can update the module from my updated fork: https://github.com/markusthomas/Pages2Pdf -
mPDF error: No font or default font set!
markus-th replied to Frank Schneider's topic in General Support
Sounds you use a mPDF-Version < 8.0.10 PHP 8 is not supported on older versions. -> https://github.com/mpdf/mpdf -
Learned something again, thanks @bernhard for this hint.
-
You don't need a module, it can be done by a hook in the ready.php and an warningpage (with own template). -> https://processwire.com/api/ref/session/login-success/ $this->addHookAfter('Session::loginSuccess', null, function ($event) { if ($this->wire('user')->hasPermission("specific_role")) { $session->redirect($pages->get("/warningpage")->url); } }); On the "warningpage" log the user out with this code in the template: $session->logout();
-
The only problem i see is, you have to do some workarounds that each user only see his own subdomain. Otherwise all users see all sites in the adminarea. A hook in ready.php could look like this: $this->addHookAfter('ProcessPageList::find', function ($event) { $event->return->each(function ($p) use ($event) { if (!$p->editable() && !$p->addable()) $event->return->remove($p); else if ($p->template == 'subdomain-home' && !$this->user->hasRole("superuser") && !$this->user->hasRole(strtolower(str_replace(' ', '-', $p->title)))) $event->return->remove($p); // title from homepage and userrole have the same name }); });
-
Since I had to update more and more projects lately and also the PHP version of some of these projects was set to >=8 in the meantime I created a fork of the module and updated mPDF to version 8.1.3. With only some small changes in the WirePDF module I can now continue to use Pages2PDF without any restrictions. Maybe this is helpful for someone. https://github.com/markusthomas/Pages2Pdf
-
Strategies for including google places reviews
markus-th replied to Stefanowitsch's topic in Dev Talk
Of course, after all Kulmbach is the secret capital of beer ? Greetings to Bamberg ?