Jump to content
joshuag

Recurme – Processwire Recurring Dates Field & Custom Calendar Module.

Recommended Posts

The fix seems to be to set all events as recurring, and use a count of one for events that don't actually recur.
 

Share this post


Link to post
Share on other sites

@joshuag

Got some notices when installing that you might like to fix:

image.png.1d3395be3f3e6f6be1c719bdb565018a.png

Also, and much more importantly, on the UiKit theme, there are some big CSS issues:

image.png.bf6766c51bdd1181bcf8b62de0f77984.png

 

Also, I don't understand why the start date includes the time when "All Day" is checked. Maybe I am missing something, but I think that makes it quite a confusing UI. Is there a way around this?

Another issue I am having is how to define an end date/time if it's not a recurring event. I was hoping I wouldn't need separate fields for recurring and non-recurring events. Do I?

Thanks!

Share this post


Link to post
Share on other sites

I'm trying to pass options to both renderEvent() and renderList(), but the functions aren't picking up my settings.
Here's code from my list display page:
 

$siteEvents = $pages->find("template=meetingevent, sort=meeting-event-date-recurring");

$options = array(
'selector'			=> '',
'monthFormat'		=> 'F',
'dateField'			=> 'recurme',
'renderEvent' 		=> array(
	'dateFormat' 	=> 'M d, Y @ g:i a',
	'timeFormat' 	=> 'g:i a',
	'dayFormat'		=> 'd',
	'monthFormat'	=> 'M',
	'yearFormat'	=> 'Y',
	'hourFormat'	=> 'g',
	'minuteFormat'	=> 'i',
	'secondFormat'	=> 's',
	'ampmFormat'	=> 'a',
	'xBefore' 		=> '<li class="rm-list-event {original.name}">ASDF<span class="rm-event-date">{time}</span> ',
	'xItem'			=> '<a href="{link}" title="{title}">',
	'xAfter'		=> 'STRING {title}</a></li>'
),
'renderDay'			=> array(
	'xBefore'		=> '<ol class="rm-list-day {todayClass} rm-{dayName}"><li><h3>',
	'xItem'			=> '<span class="rm-date-day">{day}</span><span class="rm-date-month">{month}</span><span class="rm-date-year">{year}</span></h3>',
	'xListBefore'	=> '<ol class="rm-list-events">',
	'xListAfter'	=> '</ol><!-- close list-events -->',
	'xAfter'		=> '</li></ol><!-- close day -->'
),
'renderMonth'		=> array(
	'xBefore'		=> '<ul class="rm-list-month rm-{month}"><li>',
	'xItem'			=> '<h2>{month}</h2>',
	'xAfter'		=> '</li></ul><!-- close month -->'
),
'cache'				=> true,
'cacheName'			=> '',
'noEvents'			=> '<p>No events to show!</p>',
);

$content .= $recurme->renderList($siteEvents, $options);

Events.png.5c55137a87cef596121185bd64141a91.png
Output looks like the attached screen shot.
Note that I'm not seeing any of my customization (I changed the UL to OL and added some strings, to test). 
I'm also not seeing Dates displayed.
Clearly I've missed something here - any help appreciated.
 

Share this post


Link to post
Share on other sites

 

On 2/15/2018 at 3:58 PM, Smoo said:

Clearly I've missed something here - any help appreciated.

If I understand correctly you have to get the events from $recurme->find() or equivalent.

Share this post


Link to post
Share on other sites

Actually i completely worked around this, pulling apart the object returned by $recurme->event() and formatting the whole setup myself.
But next time...
Anyway thanks for the tip.

 

Share this post


Link to post
Share on other sites

Hi guys, sorry for the delay in replying.

I am going over the following details from this thread and will post an update ASAP:

  • Install issues - blank file path, notices.
  • UIKIT theme CSS conflicts.
  • returning data on non-recurring events
  • all day toggle 
  • render methods and output overrides. 

As soon as I have an update, I will post it here to the forum. 

 

  • Like 2

Share this post


Link to post
Share on other sites
On December 19, 2017 at 3:56 PM, netcarver said:

@joshuag Early on in the thread you mentioned a work-in-progress fix for the 2800 event limit, and also about a more elegant update feature when adding exclusions. Any update on this? I've scanned the posts in the rest of the thread but might have missed it. Have these issues been addressed in the current version?

Hi Netcarver, 

Currently, I am still unable to break that limit or 2800 repeats of an event. Even so, that is a long time:

Example Recurring Time:

Daily = approx. 7.5 years
Weekly = approx. 53.5 years
Monthly = approx. 233 years
Yearly = approx. 2800 years

I am working on a copy of recurme with a revised interface but it is nowhere near complete. The current exclusion works ok for 99% of the use cases. Although I do agree that it could be GREATLY improved. I would like to focus on fixing the more pressing bugs before releasing any huge changes to the interface. 

  • Like 2

Share this post


Link to post
Share on other sites

Hi Guys, 

Here is an updated version of Recurme. I would appreciate any testing/feedback. 

## [1.0.2] - 2018-02-21
### changed
 - Fixed Skipping Month Issue for months with more days (ie. Jan 31)
 - Fixed Broken $options[RenderEvent] options (see this post)
 - Fixed Non-repeating event data
     - Non-repeating events display without setting repeat to x1.
 - Added timeStart field. 
 - Added timeEnd field. $event->timeEnd
 - Added “All Day” toggle
 - Fixed Install notice $template->id
 - UIKIT theme compatibility Fixes

InputfieldRecur.1.0.2.zip

  • Like 1

Share this post


Link to post
Share on other sites

Thanks for the getting to these issues @joshuag

1) It looks like the UiKit theme issues are fixed

2) I can't seem to save a non all day event. I uncheck "all day" and enter a start and end time, but when I save the page, the "all day" is checked and the end time isn't saved.

3) The results seem to be off by a day - note 15/16 vs 14/15 in the results.

image.thumb.png.767404c826e201f13c394a541ec6d3f7.png

  • Thanks 1

Share this post


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

Thanks for the getting to these issues @joshuag

1) It looks like the UiKit theme issues are fixed

2) I can't seem to save a non all day event. I uncheck "all day" and enter a start and end time, but when I save the page, the "all day" is checked and the end time isn't saved.

3) The results seem to be off by a day - note 15/16 vs 14/15 in the results.

image.thumb.png.767404c826e201f13c394a541ec6d3f7.png

Hmmm. That is very strange that you can’t save. Do you have any js errors?

also, have you set your timezone in the config? 

Looking to see if I can Reproduce this. 

Thanks a lot! 

Share this post


Link to post
Share on other sites
4 minutes ago, joshuag said:
9 minutes ago, adrian said:

 

Hmmm. That is very strange that you can’t save. Do you have any js errors?

Looks like it's ok now - I changed the date to something else, then saved and now it's working. Not sure if it was some change tracking issue or what. I did try several times before, but seems ok now - I'll keep an eye on it and let you know.

Let me know if you have troubles reproducing the results table issue.

Also, would you consider changing the behavior of the code icon - I see that it's a tooltip for the RRule, but it might be nice if there was no target, because I thought it was clickable and the # target directs me to the top of the page and makes me think the link is broken. I actually think it might be nice if clicking it showed the RRule below, like the results table shows.

This question is not really specific to this module, but I am wondering if there is a standard way to handle multiday events that have different start/end times on different days, like a concert or conference. I am guessing these just need to be single separate events, otherwise it's not really a recurring event?

  • Thanks 1

Share this post


Link to post
Share on other sites

@adrian yes, I could change the rrule. Good idea. 

Thank you for testing this and the detailed feedback. I’m trying to track down why it’s not saving your start time or this would be happening. I’ll post a fix as soon as I can reproduce it and figure it out :) 

As for multi-day events, you are correct, they can repeat on those days, or be separate events. Currently I have no means to span days with events. 

Share this post


Link to post
Share on other sites

Looks like there is no timeStart in the POST data:

image.thumb.png.6bf87473168e8ed53dfc69e95d1039cd.png

{"startDate":1518699600,"endDate":1518854340,"allDay":false,"timeEnd":"03:00 pm","dates":["W7/14/Wed/Feb/2018","W7/15/Thu/Feb/2018"],"excluded":[],"active":false,"showResults":true,"rrule":"WKST=MO;FREQ=DAILY;DTSTART=20180215T050000Z;INTERVAL=1;UNTIL=20180216T235900Z"}

Share this post


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

Looks like there is no timeStart in the POST data:

image.thumb.png.6bf87473168e8ed53dfc69e95d1039cd.png


{"startDate":1518699600,"endDate":1518854340,"allDay":false,"timeEnd":"03:00 pm","dates":["W7/14/Wed/Feb/2018","W7/15/Thu/Feb/2018"],"excluded":[],"active":false,"showResults":true,"rrule":"WKST=MO;FREQ=DAILY;DTSTART=20180215T050000Z;INTERVAL=1;UNTIL=20180216T235900Z"}

There is no timeStart in the data since I am saving the date+timeStart as a Unix timestamp. 

  • Like 1

Share this post


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

There is no timeStart in the data since I am saving the date+timeStart as a Unix timestamp. 

It looks like the timestamp is not being updated, because that timestamp is showing 5am in the POST data after saving.

Share this post


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

@adrian Could you try this updated JS file? 

 

rrule-gui.js

This seems to have fixed the time update issue - thanks!

Just the results table issue to go :)

Share this post


Link to post
Share on other sites
1 minute ago, adrian said:

This seems to have fixed the time update issue - thanks!

Just the results table issue to go :)

Thanks a lot. Do you have your config timezone set? 

Share this post


Link to post
Share on other sites
Just now, joshuag said:

Thanks a lot. Do you have your config timezone set? 

I do have the timezone set (we are talking about in the PW config.php?). Anything else I can do to debug?

Share this post


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

I do have the timezone set (we are talking about in the PW config.php?). Anything else I can do to debug?

looks like anything before 6am is counting as the day before. :/ hmmmm.

Share this post


Link to post
Share on other sites
On February 21, 2018 at 11:47 AM, joshuag said:

looks like anything before 6am is counting as the day before. :/ hmmmm.

I think I have finally fixed this! woot woot. Thanks @adrian for all your help. I have attached a new .js file. Let me know if that works for you. 

:)

rrule-gui.js

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Just wanted to let everyone know that I sent out an email to everyone who purchased Recurme with the updated Recurme Module Package.

Thanks again to everyone who tested the changes and feedback. Especially @adrian:) 

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks @joshuag - just curious - did you also take a look at the rrule code icon idea I brought up?

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 is a new module that provides a simple solution to clearing all your cache layers at once, and an extensible interface to perform various cache-related actions.
      The simple motivation behind this module was that I was tired of manually clearing caches in several places after deploying a change on a live site. The basic purpose of this module is a simple Clear all caches link in the Setup menu which clears out all caches, no matter where they hide. You can customize what exactly the module does through it's configuration menu:
      Expire or delete all cache entries in the database, or selectively clear caches by namespace ($cache API) Clear the the template render cache. Clear out specific folders inside your site's cache directory (/site/assets/cache) Refresh version strings for static assets to bust client-side browser caches (this requires some setup, see the full documentation for details). This is the basic function of the module. However, you can also add different cache management action through the API and execute them through the module's interface. For this advanced usage, the module provides:
      An interface to see all available cache actions and execute them. A system log and logging output on the module page to see verify what the module is doing. A CacheControlTools class with utility functions to clear out different caches. An API to add cache actions, execute them programmatically and even modify the default action. Permission management, allowing you granular control over which user roles can execute which actions. The complete documentation can be found in the module's README.
      Beta release
      Note that I consider this a Beta release. Since the module is relatively aggressive in deleting some caches, I would advise you to install in on a test environment before using it on a live site.
      Let me know if you're getting any errors, have trouble using the module or if you have suggestions for improvement!
      In particular, can someone let me know if this module causes any problems with the ProCache module? I don't own or use it, so I can't check. As far as I can tell, ProCache uses a folder inside the cache directory to cache static pages, so my module should be able to clear the ProCache site cache as well, I'd appreciate it if someone can test that for me.
      Future plans
      If there is some interest in this, I plan to expand this to a more general cache management solution. I particular, I would like to add additional cache actions. Some ideas that came to mind:
      Warming up the template render cache for publicly accessible pages. Removing all active user sessions. Let me know if you have more suggestions!
      Links
      https://github.com/MoritzLost/ProcessCacheControl ProcessCacheControl in the Module directory

    • 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="optin" data-type="text/javascript" data-category="statistics" data-src="/path/to/your/statistic/script.js"></script> <script type="optin" data-type="text/javascript" data-category="marketing" data-src="/path/to/your/mareketing/script.js"></script> <script type="optin" data-type="text/javascript" data-category="external_media" data-src="/path/to/your/external-media/script.js"></script> <script type="optin" 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: https://github.com/blaueQuelle/privacywire/tree/master
      Download: https://github.com/blaueQuelle/privacywire/archive/master.zip
      I would love to hear your feedback 🙂
      Edit: Updated URLs to master tree of git repo
       
    • By David Karich
      Admin Page Tree Multiple Sorting
      ClassName: ProcessPageListMultipleSorting
      Extend the ordinary sort of children of a template in the admin page tree with multiple properties. For each template, you can define your own rule. Write each template (template-name) in a row, followed by a colon and then the additional field names for sorting.
      Example: All children of the template "blog" to be sorted in descending order according to the date of creation, then descending by modification date, and then by title. Type:
      blog: -created, -modified, title  Installation
      Copy the files for this module to /site/modules/ProcessPageListMultipleSorting/ In admin: Modules > Check for new modules. Install Module "Admin Page Tree Multible Sorting". Alternative in ProcessWire 2.4+
      Login to ProcessWire backend and go to Modules Click tab "New" and enter Module Class Name: "ProcessPageListMultipleSorting" Click "Download and Install"   Compatibility   I have currently tested the module only under PW 2.6+, but think that it works on older versions too. Maybe someone can give a feedback.     Download   PW-Repo: http://modules.processwire.com/modules/process-page-list-multiple-sorting/ GitHub: https://github.com/FlipZoomMedia/Processwire-ProcessPageListMultipleSorting     I hope someone can use the module. Have fun and best regards, David
    • By dimitrios
      Hello,
      this module can publish content of a Processwire page on a Facebook page, triggered by saving the Processwire page.
      To set it up, configure the module with a Facebook app ID, secret and a Page ID. Following is additional configuration on Facebook for developers:
      Minimum Required Facebook App configuration:
      on Settings -> Basics, provide the App Domains, provide the Site URL, on Settings -> Advanced, set the API version (has been tested up to v3.3), add Product: Facebook Login, on Facebook Login -> Settings, set Client OAuth Login: Yes, set Web OAuth Login: Yes, set Enforce HTTPS: Yes, add "https://www.example.com/processwire/page/" to field Valid OAuth Redirect URIs. This module is configurable as follows:
      Templates: posts can take place only for pages with the defined templates. On/Off switch: specify a checkbox field that will not allow the post if checked. Specify a message and/or an image for the post.
      Usage
      edit the desired PW page and save; it will post right after the initial Facebook log in and permission granting. After that, an access token is kept.
       
      Download
      PW module directory: http://modules.processwire.com/modules/auto-fb-post/ Github: https://github.com/kastrind/AutoFbPost   Note: Facebook SDK for PHP is utilized.


×
×
  • Create New...