0

I've been trying to diagnose a problem that I started a thread here:

Solspace calendar 500 error

I have it working somewhat using the following:

{exp:calendar:cal  
         {if segment_3 == ''}
          {exp:template_morsels:fetch 
            name="events_calendar_cm" 
            segment_4="{segment_4}" 
            segment_5="{segment_5}" 
            } 
         {/if}  
         {if segment_3 != ""}   
            {exp:template_morsels:fetch 
            name="events_calendar" 
            segment_4="{segment_4}" 
            segment_5="{segment_5}" 
            } 

        {/if}

}

Event_Calendar Morsal

 date_range_start="{segment_5}-{segment_4}-01"
 date_range_end="{segment_5}-{segment_4}-last"

I've also tried using different variable names like seg_4, seg_5, etc. No difference.

The calendar loads, however, it's only loading the first week on both cases:

http://figlancaster.com/events/cal/

http://figlancaster.com/events/cal/month/06/2014/

Plus, the segments don't seem to be parsing for 06/14.

Any thoughts?

1 Answer 1

1

Having {exp:...} tags used for parameters for another {exp:...} tag is a recipe for disaster. That's because {exp:...} tags won't parse before another {exp:...} tag. In your case, {exp:template_morsels:fetch} won't parse before {exp:calendar:cal}. You would know this by turning on Template Debugging and looking for your {exp:calendar:cal} code. Likely you'll see unparsed {exp:template_morsels:fetch} code in there.

Further, the way Template Morsels is used above won't help much with performance. TM allows caching of portions of template code in a manner which performs better than normal EE template or tag caching. However, caching two parameters won't do much to performance. What should be done, if Template Morsels winds up being the only solution (see the other thread about the 500 error first), is put the whole {exp:calendar:cal} code in a morsel.

5
  • If I try putting the entire advanced implementation from your site into a morsal, I get a 500 error when saving. I am able to get back to it by going to /system and going back into modules and it saves. However, if I try to refresh the morsal I get a 500 error again.
    – Jon Nixon
    Commented May 5, 2014 at 12:49
  • Since Template Morsels parses the code once to cache it, this means something is still causing the 500 error (eg. running out of memory). Efforts should be focused on the template code and setup, IMO.
    – Solspace
    Commented May 5, 2014 at 14:28
  • I found the issue. There was an event (My client added) that had a rule to repeat both daily and another rule that included every day of the month. Resolved
    – Jon Nixon
    Commented May 5, 2014 at 18:31
  • Just to confirm, one event had two rules, and both were set up similarly (one with "repeat daily" and another with "repeat - select dates" containing all days of the month)? Just trying to see where the catch was. Thanks :)
    – Solspace
    Commented May 6, 2014 at 4:23
  • Correct. There were two rules in place that sent the server overboard. 1 Rule said repeat daily then another select dates with every day of the month selected. After correctly setting FcgidIOTimeout to 90 I was atleast able to see the event repeat 8 times per day. I removed the repeat daily and everything worked fine. Also, removing old (2013) events helped performance as well.
    – Jon Nixon
    Commented May 6, 2014 at 13:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.