(solved)CGCalendar - recurring events have no custom fields

Have a question or a suggestion about a 3rd party addon module or plugin?
Let us know here.
Post Reply
maetmar
Forum Members
Forum Members
Posts: 36
Joined: Wed Oct 25, 2006 7:48 pm

(solved)CGCalendar - recurring events have no custom fields

Post by maetmar »

Hi,
I am using CGCalendar to create recurring events.
For my events I have created 3 custom fields.

When I now create a recurring event these custom fields are only displayed on the 1st date of the event. For all the follow-up dates they are not displayed.

The problem is, that in the database they are only stored against the first (master) event.

the master event looks like this:

Array
(
[0] => Array
(
[event_id] => 260
[event_title] => test1
[event_summary] => test
[event_details] =>
[event_date_start] => 2012-11-29 12:00:00
[event_date_end] =>
[event_parent_id] => -1
[event_recur_period] => yearly
[event_date_recur_end] => 2014-01-01 00:00:00
[event_created_by] => -101
[event_create_date] => 2012-11-29 09:36:56
[event_modified_date] => 2012-11-29 09:41:10
[event_recur_nevents] => -1
[event_recur_interval] => 1
[event_recur_weekdays] =>
[event_recur_monthdays] => 1,1
[event_allows_overlap] => 1
[url] => http://andelsbuch.at.www212.your-server ... test1.html
[categories] => Array
(
[Intern] => 1
)

[fields] => Array
(
[Zeitpunkt] => zeitpunkt
[Ort] => ort
[Kontakt] => kontakt
)

)
)

in "fields" there are the three customer fields called "Zeitpunkt", "Ort" and "Kontakt".

The first child event looks like this:

[6] => Array
(
[event_id] => 263
[event_title] => test1
[event_summary] => test
[event_details] =>
[event_date_start] => 2013-11-29 12:00:00
[event_date_end] =>
[event_parent_id] => 260
[event_recur_period] =>
[event_date_recur_end] =>
[event_created_by] => -101
[event_create_date] => 2012-11-29 09:41:10
[event_modified_date] => 2012-11-29 09:41:10
[event_recur_nevents] =>
[event_recur_interval] =>
[event_recur_weekdays] =>
[event_recur_monthdays] =>
[event_allows_overlap] => 1
[url] => http://andelsbuch.at.www212.your-server ... test1.html
[categories] => Array
(
[Intern] => 1
)

[fields] => Array
(
)
)
)

"Fields" is empty. But I see that there is a relation with [event_parent_id] to the original event.
How could I fetch the content of the custome fields from the parent event within the template?

That is the template I currently use (month list):
<div class="calendar-list" id="{$table_id}">
{if $compact_view neq 1}
<span class="calendar-prev"><a href="{$navigation.prev}">{$lang.prev}</a></span> &nbsp; &nbsp; <span class="calendar-next"><a href="{$navigation.next}">{$lang.next}</a></span>

<h1>{if $day > 0}{$day} {/if}{$month_names[$month]} {$year}</h1>
{/if}

{foreach from=$events key=key item=event}
<div class="calendar-event grid_19">
{assign var=month_number value=$event.event_date_start|date_format:"%m"}
{assign var=end_month_number value=$event.event_date_end|date_format:"%m"}
<div class="calendar-date-from grid_4">
<p><span class="calendar-date-title">{$lang.date}: </span>{$event.event_date_start|date_format:"%e"}. {$month_names[$month_number]} {$event.event_date_start|date_format:"%Y"}
<br>{$event.event_date_start|date_format:"%A"}</p>
</div>
<div class="grid_8">
<h2><a href="{$event.url}">{$event.event_title}</a></h2>
{if $event.event_summary !=""}
<div class="calendar-summary"><p>{$event.event_summary}</p></div>
{/if}
</div>
<div class="grid_7">
<div id="kategorien">
{if !empty($event.categories)}

{assign var='event_categories' value=$event.categories|@array_keys}
<p>{', '|implode:$event_categories}</p>
{foreach from=$event_categories item='cat_name'}
{/foreach}
{/if}
</div>

{foreach from=$event.fields key='fieldname' item='fieldvalue'}
{if $fieldname=='Zeitpunkt'}<p>{$fieldname}:&nbsp;{$fieldvalue}</p>{/if}
{/foreach}
{foreach from=$event.fields key='fieldname' item='fieldvalue'}
{if $fieldname=='Ort'}<p>{$fieldname}:&nbsp;{$fieldvalue}</p>{/if}
{/foreach}
{foreach from=$event.fields key='fieldname' item='fieldvalue'}
{if $fieldname=='Kontakt'}<p>{$fieldname}:&nbsp;{$fieldvalue}</p>{/if}
{/foreach}
</div>
<div class='clear'>&nbsp;</div>
</div>

{/foreach}

{if $return_url != ""}
<div class="calendar-returnlink">{$return_url}</div>
{/if}
</div>

Thanks for any help on this one.

regards
maetmar
Forum Members
Forum Members
Posts: 36
Joined: Wed Oct 25, 2006 7:48 pm

Re: (solved)CGCalendar - recurring events have no custom fie

Post by maetmar »

I solved it now this way:

{if $event.event_parent_id>1}
{cms_module module='CGCalendar' display='event' event_id=$event.event_parent_id eventtemplate='parent_event'}
....


I check if parent_id is maintained which indicates that the event is recurring. If this is the case, I call a single event with the parent_ID. In the template "parent_event" I make sure only the custom fields are part of the output.
Post Reply

Return to “Modules/Add-Ons”