Jump to content
joshuag

Recurme – Processwire Recurring Dates Field & Custom Calendar Module.

Recommended Posts

Hi,

i noticed some problem with rendereing german umlauts.

My definition:

'monthFormat'     => '%B %Y',

Is there something to keep in mind?

Thanks

 

Bildschirmfoto 2018-12-14 um 12.06.22.png

Share this post


Link to post
Share on other sites
4 hours ago, itsberni said:

Hi,

i noticed some problem with rendereing german umlauts.

My definition:

'monthFormat'     => '%B %Y',

Is there something to keep in mind?

Thanks

 

Bildschirmfoto 2018-12-14 um 12.06.22.png

Hi, 

Do you have your html set to UTF-8? 

<meta charset="UTF-8">

Hope this helps. 

Share this post


Link to post
Share on other sites
17 minutes ago, joshuag said:

Hi, 

Do you have your html set to UTF-8? 

<meta charset="UTF-8">

Hope this helps. 

Hi,

my html is already set to UTF-8.

This effect only concerns the recurme calender rendering

Share this post


Link to post
Share on other sites

Bildschirmfoto-2018-12-22-um-07_18_47.jpg.397c69b7849e9b6540922bbd4f377a2f.jpg

@joshuag please take a look.
The special characters are represented correctly in the remaining website.

Could you please take a closer look at this issue?!

Many Thanks!

UPDATE

@joshuag Found a dirty solution for this issue.
Changes in the MarkupRecurme.module ( utf8_encode ) will do the trick.

1078445681_Bildschirmfoto2018-12-31um11_25_45.png.752c51414d2c6e37ad6afa0b1bd3b822.png

Lines 543 + 1248

543

'month'			=> utf8_encode($this->wire('datetime')->formatDate($event->start_date, trim($options['renderEvent']['monthFormat']))),

1248

$monthTitle = utf8_encode($this->wire('datetime')->formatDate($startTime, trim($options['monthFormat'])));

Perhaps you will find a cleaner suloution and add it into your next update.

Happy new Year to all you guys!!
 

 

Share this post


Link to post
Share on other sites
On 3/14/2018 at 9:10 PM, DonPachi said:

Fresh install of PW 3.0.62, I'm getting this error when installing the latest version of Recurme:


Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 262144 bytes) in /var/sites/t/X/public_html/wire/core/Modules.php on line 3921

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 262144 bytes) in Unknown on line 0

Never seen this before and I'm a bit stumped... Any ideas?

Edit: Increased memory limit with ini_set on the module to see where this goes and got a 30s execution time error. Can't figure this one out, there must be a loop somewhere as increasing that came back to a 800MB memory limit!

Edit 2: Solved! I'll send you an e-mail with details.

Hi @DonPachi,

I'm having the same issue, how did you solve it? 

Share this post


Link to post
Share on other sites

@joshuag Thanks for all of you hard work on this module. I agree w/ @chcs re: "The admin field, screens, and some of the tools you provide are very slick... but the object for custom output is harder to figure out, or simply not that useful depending on the nature of recurrence (or not). ".

I am making it work with all the additions you have made (from the feature requests posted in the forum) and from many of the great posts from the wonderful PW community.

I am having an issue w/ a second implementation of your module. When rendering the calendar, the ajax does not work when clicking to the prev/next month. The calendar simply disappears. I have verified the location of the recurme-ajax.php file in my templates/ directory etc...

"Please make sure that your site contains a hidden page home/recurme-ajax/ using the template "recurme-ajax" and that you have a matching file in your site/templates/ folder. IF for some reason this file is missing, you can copy the template file from the InputfieldRecur/templates/recurme-ajax.php"

I've compared my recurme-ajax.php file w/ InputfieldRecur/templates/recurme-ajax.php. They are identical.

When clicking prev/next in the calendar, $calendar in the recurme-ajax.php file is empty. Line 40     $out .= $calendar->render($options);

I have exhausted any thoughts why this may be happening.

Is there anything you our anyone else can think of as to what would cause this?

 

Thanks

 

Share this post


Link to post
Share on other sites

In case anyone else has this issue with the ajax calendar disappearing when clicking on the prev/next month.

My issue was the recurme-ajax template was prepending _init.php and appending _main.php files.

Disabling the prepend and append under the template files tab was the fix.

@adrian Thanks for digging in and discovering the cause.

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Please note that on line 695 of MarkupRecurme.module, the string 'All day' has not been available for translation:

// if allDay
if($event->allDay) { $event->time = 'All Day'; }
  • Like 1

Share this post


Link to post
Share on other sites

Hi

I have some difficulties with customize the lay-out.  I have a custom calendar and want to put the month with navigation on top of it (in place of 05 = month may).   Is there an API call $recurme->month()->next  ?  Is there an api call $recurme->month()->prev ?

Screen Shot 05-18-19 at 08.20 PM.PNG

Share this post


Link to post
Share on other sites

We purchased the module in August and have run into some issues now that we've had a chance to implement it.

Code > $event = $recurme->event($page);
Result > Notice: Undefined property: stdClass::$timeEndUnix in .../site/modules/Recurme/MarkupRecurme.module on line 856 

Robin raised this issue earlier in this thread and, if a solution was found, it wasn't shared or implemented in the downloads.

Update 12/13/2019

Replacing

$timeEndUnix = $data->timeEndUnix;

With

if(isset($data->timeEndUnix)){
  $timeEndUnix = $data->timeEndUnix;
} else {
  $timeEndUnix = false;
}

Removes the error, but I suspect that I was trying to use the method in the wrong way/context given a misunderstanding of the documentation. I'm having to use the JSON decode method (example: $times = json_decode($page->event_times)), with a lot of template-level processing, to populate my event detail pages. Is that the best way?

[/End Update]

 

itsberni and others have asked about handling time variance for a recurring event, which strikes me as a rather essential feature. Has anyone found a solution or workaround for this? I suspect that adding a second recurme field to an event page will lead to a lot of pain elsewhere (but I could be wrong), and cloning an event's page to support another time would require me to implement measures to connect the clones (doable, but sloppy from both an admin and user standpoint).

 

A couple of items which may help others:

  1. The "Repeat Never" switch does nothing for me out of the box (other than hiding the rest of the options) as every single-day event I entered was automatically being assigned a default value of End Never and repeating 2,800 days. I had to hack both the rrule-gui.js and InputfieldRecurme.module files to default to After 1 Time(s) to rectify this issue.
  2. Commenting out -- results.find('.inner').scrollTop(0); -- in rrule-gui.js, around line 1153, will save a lot frustration for anyone needing to exclude multiple dates from a results table.

Share this post


Link to post
Share on other sites

Hello,

just a question ... Is this module now free or ...? As I can see you can download a "free" copy of Recurme from the site, but it's not working because you still need a license key. If it is free to try is it possible to get a license somehow? 

If it is no longer supported not sure if I would pay for it. 

Thank you

R

Share this post


Link to post
Share on other sites
4 hours ago, Roych said:

Hello,

just a question ... Is this module now free or ...? As I can see you can download a "free" copy of Recurme from the site, but it's not working because you still need a license key. If it is free to try is it possible to get a license somehow? 

If it is no longer supported not sure if I would pay for it. 

Thank you

R

 
In MarkupRecueme.module file. 
Line 1082
 
Change the first “false” to “true”:
 
private function i(){$this->v = false;} // change to true;

Share this post


Link to post
Share on other sites
On 2/21/2018 at 10:46 AM, adrian said:

1) It looks like the UiKit theme issues are fixed

Hi @adrian, I'm having this same issue with the display but I'm using the most recent version of Recurme and PW. Do you remember how this was resolved or can you point me in the right direction? I know this plugin isn't supported anymore but it looks like it does exactly what I need so I'm hoping I can make it work. Does anyone have plans to take over management of this module? Any help is most appreciated, thank you!! 🙏

 

calendar.png

Share this post


Link to post
Share on other sites
5 hours ago, Ben Sayers said:

Hi @adrian, I'm having this same issue with the display but I'm using the most recent version of Recurme and PW.

You're dragging up some traumatic memories here 🙂 I'll PM my version of the module that mostly works, but still has some limitations because the module uses the non-timezone enabled version of moment.js and it's using a really old version so when you go to update to a recent version and use the timezone enabled version, lots of other things break, etc, etc.

Share this post


Link to post
Share on other sites
27 minutes ago, adrian said:

You're dragging up some traumatic memories here 🙂 

Yeah, I'm getting that impression after tinkering with it for the weekend. Should I even bother with it, do you think it's a viable solution or more trouble than it's worth? I did receive the PM, thanks!

Share this post


Link to post
Share on other sites
15 hours ago, Ben Sayers said:

Yeah, I'm getting that impression after tinkering with it for the weekend. Should I even bother with it, do you think it's a viable solution or more trouble than it's worth? I did receive the PM, thanks!

Ben - I think the inputfield interface of this module is really nice so it does still have potential. This is obviously just my opinion, but I think the way the data is stored and searched needs an overhaul - it's got some real performance and flexibility problems. I think if someone was to update the way it stores the data and to properly incorporate the timezone enabled version of momentjs, it could be a really great tool, but as it is, I do think it's more trouble than it's worth.

Share this post


Link to post
Share on other sites
24 minutes ago, adrian said:

@Ben Sayers - maybe direct your attention and efforts to help @bernhard with his new module: 

 

Nice, thank you for the heads up @adrian! I'm following that thread now.

Share this post


Link to post
Share on other sites

Hey guys,

I've discovered some pretty strange behavior. A date I set from 4/6/20 - 4/19/20 appears in the calendar in May.

can anyone help me with that?

thanks a lot!

 

Bildschirmfoto 2020-03-31 um 14.58.12.png

Bildschirmfoto 2020-03-31 um 14.57.54.png

Share this post


Link to post
Share on other sites

Speaking of strange behaviours... despite not having changed a single thing with our Recurme installation since early January, it's now returning EXCLUDED DATES with both $recurme->find and $recurme->renderCalendar for any month that's shorter than 31 days. I have no idea why. The Recurme debug report shows no anomalies between months. This issue would have been very noticed for us had it been present in February, and the events that are broken now are the ones we used to build and validate the system. Check your sites. It may have triggered following the leap year date and was difficult to notice since March was not affected.

My event pages (luckily) bypass the Recurme module to work directly with the page-related JSON-entry in the database, so no issues there. Others may not be so lucky.

Share this post


Link to post
Share on other sites

We have also noticed issues w/ Recurme dates displaying incorrectly. Similar idea as Arcturus, nothing had changed in months. What we found was the issue was triggered on a month that contained 31 days. From my re-collection it might have also affected the month by bumping it by one month. I'll post the fix that worked for us a bit later this evening.

  • Like 3

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By MoritzLost
      This module allows you to integrate hCaptcha bot / spam protection into ProcessWire forms. hCaptcha is a great alternative to Google ReCaptcha, especially if you are in the EU and need to comply with privacy regulations.

      The development of this module is sponsored by schwarzdesign.
      The module is built as an Inputfield, allowing you to integrate it into any ProcessWire form you want. It's primarily intended for frontend forms and can be added to Form Builder forms for automatic spam protection. There's a step-by-step guide for adding the hCaptcha widget to Form Builder forms in the README, as well as instructions for API usage.
      Features
      Inputfield that displays an hCaptcha widget in ProcessWire forms. The inputfield verifies the hCaptcha response upon submission, and adds a field error if it is invalid. All hCaptcha configuration options for the widget (theme, display size etc) can be changed through the inputfield configuration, as well as programmatically. hCaptcha script options can be changed through a hook. Error messages can be translated through ProcessWire's site translations. hCaptcha secret keys and site-keys can be set for each individual inputfield or globally in your config.php. Error codes and failures are logged to help you find configuration errors. Please check the README for setup instructions.
      Links
      Github Repository and documentation InputfieldHCaptcha in the module directory (pending approval) Screenshots (configuration)

      Screenshots (hCaptcha widget)

       
       

       
    • By joshua
      This module is (yet another) way for implementing a cookie management solution.
      Of course there are several other possibilities:
      - https://processwire.com/talk/topic/22920-klaro-cookie-consent-manager/
      - https://github.com/webmanufaktur/CookieManagementBanner
      - https://github.com/johannesdachsel/cookiemonster
      - https://www.oiljs.org/
      - ... and so on ...
      In this module you can configure which kind of cookie categories you want to manage:

      You can also enable the support for respecting the Do-Not-Track (DNT) header to don't annoy users, who already decided for all their browsing experience.
      Currently there are four possible cookie groups:
      - Necessary (always enabled)
      - Statistics
      - Marketing
      - External Media
      All groups can be renamed, so feel free to use other cookie group names. I just haven't found a way to implement a "repeater like" field as configurable module field ...
      When you want to load specific scripts ( like Google Analytics, Google Maps, ...) only after the user's content to this specific category of cookies, just use the following script syntax:
      <script type="text/plain" data-type="text/javascript" data-category="statistics" data-src="/path/to/your/statistic/script.js"></script> <script type="text/plain" data-type="text/javascript" data-category="marketing" data-src="/path/to/your/mareketing/script.js"></script> <script type="text/plain" data-type="text/javascript" data-category="external_media" data-src="/path/to/your/external-media/script.js"></script> <script type="text/plain" data-type="text/javascript" data-category="marketing">console.log("Inline scripts are also working!");</script> The type has to be "optin" to get recognized by PrivacyWire, the data-attributes are giving hints, how the script shall be loaded, if the data-category is within the cookie consents of the user. These scripts are loaded asynchronously after the user made the decision.
      If you want to give the users the possibility to change their consent, you can use the following Textformatter:
      [[privacywire-choose-cookies]] It's planned to add also other Textformatters to opt-out of specific cookie groups or delete the whole consent cookie.
      You can also add a custom link to output the banner again with a link / button with following class:
      <a href="#" class="privacywire-show-options">Show Cookie Options</a> <button class="privacywire-show-options">Show Cookie Options</button> This module is still in development, but we already use it on several production websites.
      You find it here: PrivacyWire Git Repo
      Download as .zip
      I would love to hear your feedback 🙂
      CHANGELOG
      0.1.1 Debugging: fixed error during uninstall 0.1.0 Added new detection of async scripts for W3C Validation 0.0.6 CSS-Debugging for hiding unused buttons, added ProCache support for the JavaScript tag 0.0.5 Multi-language support included completely (also in TextFormatter). Added possibility to async load other assets (e.g. <img type="optin" data-category="marketing" data-src="https://via.placeholder.com/300x300">) 0.0.4 Added possibility to add an imprint link to the banner 0.0.3 Multi-language support for module config (still in development) 0.0.2 First release 0.0.1 Early development
    • By bernhard
      --- Please use RockFinder3 ---
    • By MoritzLost
      Cacheable Placeholders
      This module allows you to have pieces of dynamic content inside cached output. This aims to solve the common problem of having a mostly cacheable site, but with pieces of dynamic output here and there.  Consider this simple example, where you want to output a custom greeting to the current user:
      <h1>Good morning, <?= ucfirst($user->name) ?></h1> This snippet means you can't use the template cache (at least for logged-in users), because each user has a different name. Even if 99% of your output is static, you can only cache the pieces that you know won't include this personal greeting. A more common example would be CSRF tokens for HTML forms - those need to be unique by definition, so you can't cache the form wholesale.
      This module solves this problem by introducing cacheable placeholders - small placeholder tokens that get replaced during every request. The replacement is done inside a Page::render hook so it runs during every request, even if the response is served from the template cache. So you can use something like this:
      <h1>Good morning, {{{greeting}}}</h1> Replacement tokens are defined with a callback function that produces the appropriate output and added to the module through a simple hook:
      // site/ready.php wire()->addHookAfter('CachePlaceholders::getTokens', function (HookEvent $e) { $tokens = $e->return; $tokens['greeting'] = [ 'callback' => function (array $tokenData) { return ucfirst(wire('user')->name); } ]; $e->return = $tokens; }); Tokens can also include parameters that are parsed and passed to the callback function. There are more fully annotated examples and step-by-step instructions in the README on Github!
      Features
      A simple and fast token parser that calls the appropriate callback and runs automatically. Tokens may include multiple named or positional parameters, as well as multi-value parameters. A manual mode that allows you to replace tokens in custom pieces of cached content (useful if you're using the $cache API). Some built-in tokens for common use-cases: CSRF-Tokens, replacing values from superglobals and producing random hexadecimal strings. The token format is completely customizable, all delimiters can be changed to avoid collisions with existing tag parsers or template languages. Links
      Github Repository & documentation Module directory (pending approval) If you are interested in learning more, the README is very extensive, with more usage examples, code samples and usage instructions!
    • By Craig
      I've been using Fathom Analytics for a while now and on a growing number of sites, so thought it was about time there was a PW module for it.
      WayFathomAnalytics
      WayFathomAnalytics is a group of modules which will allow you to view your Fathom Analytics dashboard in the PW admin panel and (optionally) automatically add and configure the tracking code on front-end pages.
      Links
      GitHub Readme & documentation Download Zip Modules directory Module settings screenshot What is Fathom Analytics?
      Fathom Analytics is a simple, privacy-focused website analytics tool for bloggers and businesses.

      Stop scrolling through pages of reports and collecting gobs of personal data about your visitors, both of which you probably don't need. Fathom is a simple and private website analytics platform that lets you focus on what's important: your business.
      Privacy focused Fast-loading dashboards, all data is on a single screen Easy to get what you need, no training required Unlimited email reports Private or public dashboard sharing Cookie notices not required (it doesn't use cookies or collect personal data) Displays: top content, top referrers, top goals and more
×
×
  • Create New...