Jump to content

update AG

Members
  • Posts

    50
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by update AG

  1. I was able to fix it with this hook in ready.php. It now sets the correct timestamp. $wire->addHookAfter("InputfieldDatetime::processInput", function (HookEvent $event) { $input = $event->arguments(0); if($input->get('_InputfieldForm') == 'testactivity' && $event->object->inputType == 'html') { $correctValue = strtotime($input->get($event->object->getAttribute('name'))); $event->object->setAttribute('value', $correctValue); } });
  2. @BitPoet Somehow it always saves the values from the origin fields also for the cloned fields in the formbuilder form session when I submit the paginated form to the next page. The post request values looks good to me?
  3. Hi Ryan, Happy (belated?) Birthday from me as well. Are you still in Atlanta or already on your new trip to the Netherlands? I'm also on a trip with my 2 kids to the states and I am right now in Atlanta, just in the neighborhood of Decatur. Maybe we can have a coffee before you take off again? Best, Oliver
  4. @BitPoet Is this module still being maintained? We are attempting to use it for paginated Formbuilder forms, but it appears to have an issue with loading values from the session for duplicated/multiplied fields within the fieldset. Instead of retrieving the correct values for each field, it seems to take the value from the first field and apply/overwrite it to all subsequent fields.
  5. That's even more confusing then. We have ProCache installed normally with no exceptions for pages. But even if that's the case - shouldn't then at least the homepage be bugged for page view counting? Because we don't experience any difference compared to subpages. Every page load (or reload) on the homepage is being counted on our site. At this point I'm seriously at a loss of ideas. I agree, I don't think that's the solution to our problem. I'll continue to check if there's a workaround for your issue.
  6. We're normally using the default lifespan of 1 hour (3600s). But even after bumping this up to 604800=1 week, we don't experience any changes. I can reload the page as many times as i want - on my computer, phone, whatever - it still counts every single page view. Are you sure about this? Of course ProCache stores HTML versions of the cached page and serves these instead of re-rendering the page from PHP. But wouldn't ProCache need to access the ProcessWire API to check if ProCache is even enabled or not? If that's the case, then the MostViewed module should be loaded as well, as we're accessing the ProcessWire API at the same stage as ProCache. At the ready function of an autoload module - which is executed immediately after the ProcessWire API is ready. Or is ProCache exiting this process as soon as it realizes it has a cached page for the current request? If so, could I prioritize the order of autoloaded modules? That would currently be my only other guess... Though it's weird that it's working just fine on our end.
  7. Interesting... I would've thought that HTMX could be an issue. We have ProCache enabled for every page, but we still get page views. When opening a private tab and clicking through our site I can see every click I made in the Dashboard. So I am genuinely confused on how it would not work on your end. When automated page view tracking is enabled, we're writing the page view inside the modules ready function. This should fire on every page load, as the module is being autoloaded. Do you see an issue here?
  8. Hi @DV-JF Seems like we missed a line in the module config in ProcessUpdMostViewed.module. Fixed it in the most recent Commit 51ecafc. You can either download the ProcessUpdMostViewed.module file again, or add this line of code manually in the getModuleConfig function just below permissions yourself. 'permission' => self::PAGE_NAME, It'll be fixed on the next version bump. You might have to reinstall the module to get the permissions to work. I haven't figured out yet if there is somehow an option to keep the database table when uninstalling the module to not lose any data on reinstalling the module. Therefore you might want to export the table manually if you do not wish to lose page-view data. Hope that helps! Cheers
  9. Hi @wbmnfktr sorry for the late response - I thought I clicked on "Submit Reply"... I've made some deeper monitoring on our website's traffic where we're actively using this module. We do indeed count some less views than our analytics shows us. But reading throught our modules' code I would not see an issue where actual page views won't get count. At this point I genuinely assume that the module simply filters out more crawlers than our analytics. Did you figure something out on your end in the meantime?
  10. I'm a bit puzzled about what might have gone wrong here since your project settings appear correct. The module is also compatible with ProCache enabled, so that shouldn't be an issue. Could you please share your Module-Config so I can analyze the problem further?
  11. It should work right away. You should see the tracked pages here: Menu "Setup" > "Most Viewed".
  12. Hi @wbmnfktr thanks for your feedback! Here's briefly how it works with the default values of 1 day, 2 days and 3 days: Think of the 1st timerange as plan A - it fetches the 10 most viewed pages in the last 24 hours. If for whatever reason there haven't been 10 pages viewed in the past 24 hours, we then move to plan B, which is the 2nd timerange. Here, we look into the past 48 hours for page views. The 3rd timerange is plan C, in case we still need more articles to complete our list of "10 most viewed pages". So really, the 2nd and 3rd timeranges are like our safety nets to always make sure that we have a full list of 10 pages, regardless of viewer traffic. But given your site is quite crowded, it's likely that the list will be filled up within the first 24 hours, so you may not ever even need the 2nd and 3rd timeranges. Regarding the waiting time post-installation: it all depends on your timeranges. If you've set them as 1 day, 2 days, and 3 days, then ideally you'd wait for 3 days. But in practice, if your site has a good traffic volume, you may start seeing your top articles much sooner! If you adjust your first timerange to be 7 days and 8/9 days as a fallback (10080, 11520 and 12960 minutes) you'd ideally wait for 7-9 days. Does that make sense? I've tidied up the way we log events to prevent any confusion. Just to clarify: - 404 page-views don't contribute to the count and so, to avoid clutter, they've been removed from the logs, even while debugging. - another reason for removing 404 from the logs: every missing image, file, etc triggers a 404 - which can and surely will eventually be a lot. - the tracking of our module isn't affected by what PageHitCounter does, because it's triggering a 404 event that we ignore either way. I've also updated the logs to include the reason each time a page-view gets passed over. This means not only will you know which views have been tracked, but also which ones weren't tracked and exactly why. Thanks for that - I've also updated the check for crawler. I'm using the same method as PageHitCounter - this seems like a reliable approach. I have updated the GitHub Repository with the most recent changes. You can check the releases section there to see them. Alternatively, you should be able to update the module directly from the module configuration in your ProcessWire installation by clicking the link 'check for updates' right next to the module-version. Hope that helped! Cheers
  13. Hi everyone, We have a new module for you: the UpdMostViewed module. It's an addition to your ProcessWire site that enables you to track page views and deliver a list of your most visited pages within a given time range. This data is particularly useful for creating frontend features like a "Most Read Articles of the Week" widget. Installation You can choose to: Head into your ProcessWire backend, go to Modules > New and search for the Module UpdMostViewed. Get the module directly from the latest releases on our GitHub repository. If you're using Composer for your project, you can add the module by running the command composer require update-switzerland/updmostviewed in your project root directory. Once downloaded, you can install the module via the ProcessWire admin. Configuration The UpdMostViewed module provides you with a variety of configuration options. You can exclude certain branches, specific pages, certain IPs, restrict counting to specific templates, define which user roles to count, ignore views from search engine crawlers, and more. Moreover, you can also customize the time ranges for the "most viewed" data. Links For more detailed information on usage, updates, or to download the module, please visit our GitHub repository and check out the module in the Module Directory.
  14. Hey @FireWire Whatever you did, it's working now: Downloaded your branch, deinstalled the module first and than installed your new version. All is working fine. Configuration of the settings now all work without getting an error anymore. Great help. Thanks a lot.
  15. You can access it directly and get a JSON response, when the path is correct: {"error":"FLUENCY_METHOD_NOT_ALLOWED","message":"Fluency API Error: Method Not Allowed"} But I didn't get anything so I looked closer to the path and saw that I had a wrong path. I had /processwire/fluency-1/api/translation/ as api-path, which was probably due that I deleted the module and reinstalled it so maybe it created this new path. I changed it now and it works. Second: Still when I try to edit the settings page in the Module I get the 503. See the attached network response. I still think it is somehow a security issue, when trying to save to the database due to all this serialized data in the POST-request. DB is by the way MySQL 8.0.
  16. I managed to get the Fluency Module installed and the settings set correctly. I installed in on another server a copied the settings directly from the database. So, that is that. But the Module is still not working. It looks like the translation-api page cannot be accessed. I get an "Unrecognized path" error (see screenshot), when I access the page /processwire/fluency/api/translation/ directly. Since the whole thing is working on another server it must have to do with some server restrictions but I can't figure out what it could be. Any ideas?
  17. Does anyone has a problem with installing Fluency (1.0.7) in Processwire 3.0.229 under PHP 8.2? I can install it but when it comes to selecting the preffered engine I get a 503 error. I suspect a mod_security issue since the module wants to save a serialized string (see below) to the database, when selecting the engine. Anyone run accross this problem and knows a workaround? Maybe @FireWire can help?
  18. The following code allows us to define multiple fallbacks for multilanguage fields. But somehow it doesn't work for fields with the Fieldtype "FieldtypeTable". $wire->addHookAfter('LanguagesPageFieldValue::getStringValue', function(HookEvent $event) { $mlObj = $event->object; // LanguagesPageFieldValue object $currPage = wire('page'); $french = wire('languages')->get(1033); $german = wire('languages')->get(1130); $italian = wire('languages')->get(1131); $russian = wire('languages')->get(1132); if($currPage->template->name == "job" || $currPage->template->name == "news" || $currPage->template->name == "doctor") { // Take the first non-empty value in order of precedence: foreach(array(wire('user')->language, $french, $german, $italian, $russian, wire('languages')->getDefault()) as $lang) { $newLangValue = $mlObj->getLanguageValue($lang); if($newLangValue != "") break; } $event->return = $newLangValue; } }); Inside the table field I am using this multilanguage field. What can I do to make it also work for multilanguage fields defined inside table fields? PW Version: 3.0.229 PHP Version: 8.0 ProFields Table Version: 0.2.2 KR Orkun
  19. I am trying to hook into text inputfields to add additional markup to it. But it only adds the markup for the default language tab. How can I achieve, that it also adds to the other language tabs? public function init() { if ($this->initSettings()) { $this->addHookAfter("InputfieldText::render", $this, "markAllowedFields"); } parent::init(); } public function markAllowedFields($event) { // Get the object the event occurred on, if needed $InputfieldText = $event->object; $allowedFieldTypes = [ 'FieldtypePageTitle', 'FieldtypePageTitleLanguage', 'FieldtypeText', 'FieldtypeTextarea', 'FieldtypeTextLanguage', 'FieldtypeTextareaLanguage', ]; $currentPage = $this->wire('pages')->get($this->wire('input')->get->id); $allowedFields = []; if($currentPage && $currentPage->id) { foreach($currentPage->template->fields as $field) { if($field->type->name && in_array($field->type->name, $allowedFieldTypes)) { $allowedFields[] = $field->name; } } } $return = $event->return; if(in_array($InputfieldText->name, $allowedFields)) { $return .= '<div class="gpt-wire-helper-container"><a href="#" class="gpt-wire-helper-link" >Do Something</a></div>'; } $event->return = $return; } KR Orkun
  20. Hi @kongondo We are in the process of upgrading a website which is using MM version v.0.1.2. After upgrading somehow the "All" section doesn't return any media anymore. I figured it out, that it was because of the following part in the selector media_manager_audio|media_manager_document|media_manager_image|media_manager_video!='' which is using the OR-Operator in the MM Fields. I have changed the code in MediaManagerUtilities.php to use OR-Groups for the MM Fields instead and now it works again. Do you perhaps have an Idea what could cause the OR-Operator to fail for the mm fields here? Since it looks like it is working for the templates? KR Orkun
  21. Thank you for your interest and input. The question about JS errors was particularly helpful: apparently a script from the old ListerPro version got stuck in my browser - clearing the browser cache helped. Embarrassing beginner's mistake ? Markus
  22. Just upgraded PW to V3.0.226 with all modules included ListerPro (V1.1.5). Now under «Access > Users» the user list is no longer displayed, instead a (double?) ListerPro configuration page. Editing and creating users works. Only the list does not. In other PW installations WITHOUT ListerPro I have not found this problem (only an unsightly, too narrow user table.). Has anyone also experienced this problem? And maybe even solved it? TIA for all suggestions, Markus
  23. Looks like the core module for resizing animated gifs doesn't work for PHP 8. On the Production we have PW: 3.0.194 dev and PHP: 7.3.33-10+ubuntu18.04.1+deb.sury.org+1 and it is working there. Is it normal, that a resized animated gif gets bigger? The original was 1mb, the resized one 2mb. And the resized gif also had some 'artefacts/shadows' in it, and it also doesn't changed when adjusting quality from 90 to 100. array(5) { ["filename"]=> string(88) "/home/www-data/xxxxxxxxx.net/site/assets/files/205849/xxxxxxx.gif" ["extension"]=> string(3) "gif" ["imageType"]=> int(1) ["info"]=> array(18) { ["width"]=> int(1200) ["height"]=> int(627) ["imageType"]=> int(1) ["mime"]=> string(9) "image/gif" ["orientation"]=> int(0) ["rotate"]=> int(0) ["flip"]=> int(0) ["channels"]=> int(3) ["bits"]=> int(8) ["gifversion"]=> string(6) "GIF89a" ["animated"]=> bool(true) ["delay"]=> int(4) ["trans"]=> bool(true) ["transcolor"]=> int(2) ["bgcolor"]=> int(2) ["numcolors"]=> int(256) ["interlace"]=> bool(false) ["appmarker"]=> array(0) { } } ["iptcRaw"]=> NULL } array(2) { [0]=> string(27) "ImageSizerEngineAnimatedGif" [1]=> string(18) "ImageSizerEngineGD" } string(14) "gif-trans-anim" On the Dev Enviroment we have PW: 3.0.194 and PHP: 8.0.28 and there it isn't working/resizing. array(5) { ["filename"]=> string(92) "/home/www-data/xxx.xxxxxx.net/site/assets/files/178453/xxxxxxx.gif" ["extension"]=> string(3) "gif" ["imageType"]=> int(1) ["info"]=> array(18) { ["width"]=> int(1200) ["height"]=> int(627) ["imageType"]=> int(1) ["mime"]=> string(9) "image/gif" ["orientation"]=> int(0) ["rotate"]=> int(0) ["flip"]=> int(0) ["channels"]=> int(3) ["bits"]=> int(8) ["gifversion"]=> string(6) "GIF89a" ["animated"]=> bool(true) ["delay"]=> int(4) ["trans"]=> bool(true) ["transcolor"]=> int(2) ["bgcolor"]=> int(2) ["numcolors"]=> int(256) ["interlace"]=> bool(false) ["appmarker"]=> array(0) { } } ["iptcRaw"]=> NULL } array(2) { [0]=> string(27) "ImageSizerEngineAnimatedGif" [1]=> string(18) "ImageSizerEngineGD" } string(14) "gif-trans-anim"
  24. Two issues to your useful module «EmailObfuscation»: 1. In PHP >= 8.1 a deprecated message is thrown for lines 247/248: is_nan() cannot handle NULL values 2. If a mailto link contains an "apostrophe" (’) in an RTE field (e.g. in <a href="mailto:events@saq.ch">d’annulations écrites</a>), the EMO javascript produces a strange character (see screenshots). Regards, Markus
  25. Hi @joshua Somehow the Scripts aren't loaded (the banner doesn't appear) when we access a url created with URL-Hooks https://processwire.com/blog/posts/pw-3.0.173/#introducing-url-path-hooks? Can you help? KR Orkun
×
×
  • Create New...