Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 17. April 2015 20:39

olihc
hat von CMS/ms gehört
Registriert: 24. Februar 2014
Beiträge: 15

Sprachsteuerung CGCalendar

Hallo liebe CMSMSler,

ich habe ein Problem mit CGCalendar. Ich verwende in meinem Template "Vorlage für bestehende Termine" ein paar eigene Sprachvariablen definiert:

[== php ==]
<div class="cal-upcominglist"> {if isset($pastitems) && $pastitems == 1} <h1>{$lang.past_events}</h1> {else} <h1>{$lang.upcoming_events}</h1> {/if} </div>                                                          <div class="calendar-list"> {if isset($navigation)} {if isset($navigation.prev)}<span class="calendar-prev"><a href="{$navigation.prev}">{$lang.prev}</a></span>{/if} &nbsp; &nbsp;{if isset($navigation.next)}<span class="calendar-next"><a href="{$navigation.next}">{$lang.next}</a></span>{/if} {/if}  {if isset($start_date_ut) && isset($end_date_ut)} <h3>{$start_date_ut|date_format:'%x'} {$lang.to} {$end_date_ut|date_format:'%x'}</h3> {if isset($navigation.current)}<p><a href="{$navigation.current}">{$lang.current}</a></p>{/if} {else} <h1>{if isset($day) && $day > 0}{$day} {/if}{if isset($month) && $month > 0}{$month_names[$month]}{/if} {$year}</h1> {/if} {foreach from=$events key=key item=event}   <div class="calendar-event">   <h3>{$event.event_title}</h3>    {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"}   {if $event.event_date_start == $event.event_date_end || $event.event_date_end == 0}     <div class="calendar-date-from">{$lang.date}: {$event.event_date_start|date_format:"%A, %d. %B %Y"} <div>{$lang.to}: {$event.event_date_start|date_format:"%H:%M"}</div><div>{$lang.location}: {$event.fields.Ort}</div><div>{$lang.public}: {$event.fields.Oeffentlich}</div></div>   {else}     {if $event.event_date_start|date_format:"%d%m%Y" == $event.event_date_end|date_format:"%d%m%Y"}       <div class="calendar-date-from">{$lang.date}: {$event.event_date_start|date_format:"%A, %d. %B %Y"} <div>{$lang.time}: {$event.event_date_start|date_format:"%H:%M"} {$lang.to} {$event.event_date_end|date_format:"%H:%M"}</div> <div>{$lang.location}: {$event.fields.Ort}</div><div>{$lang.public}: {$event.fields.Oeffentlich}</div></div>     {else}       <div class="calendar-date-from">{$lang.date}: {$event.event_date_start|date_format:"%A, %d. %B"} {$lang.to} {$event.event_date_end|date_format:"%A, %d. %B %Y"} <div>{$lang.time}: jeweils {$event.event_date_start|date_format:"%H:%M"} {$lang.to} {$event.event_date_end|date_format:"%H:%M"}</div> <div>{$lang.location}: {$event.fields.Ort}</div><div>{$lang.public}: {$event.fields.Oeffentlich}</div></div>     {/if}   {/if}   {$details=$event.event_details|strip_tags|trim}   {if $event.event_summary != '' && $details != ''}<br />     <div class="calendar-summary"><span class="calendar-summary-title">{$lang.summary}: </span>{$event.event_summary}</div>   {/if}   {* optionally display detail information   {if $details != ''}     <div class="calendar-details"><span class="calendar-details-title">{$lang.details}: </span>{$event.event_details}</div>   {/if}   *}   <a href="{$event.url}">{$mod->Lang('cal_more')}</a>   </div> {/foreach} </div>

Die Sprachvariablen sind {$lang.time}, {$lang.location} und {$lang.public}. Diese habe ich auch entsprechend in der PHP-Datei im Ordner "lang" des Moduls CGCalendar hinterlegt (Zeile 481-483), Datei nachfolgend: de_DE.zip

Jedoch werden die Sprachvariablen, also "Ort", "Uhrzeit" und "Öffentlich für Gäste" nicht auf meiner Seite angezeigt, obwohl die Variablen dem gleichen Muster folgen wie bspw. "Datum" ($lang['cal_date']). Das Datum als vordefiniertes Feld wird angegeben.

Ich kann mir nicht erklären, warum das nicht funktioniert. Könnt Ihr mir hier weiterhelfen?

Danke und viele Grüße,
olihc

Beitrag geändert von olihc (17. April 2015 20:41)

Offline

#2 18. April 2015 04:25

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Sprachsteuerung CGCalendar

Das ist relativ einfach zu erklären - die Sprachvariable $lang wird nicht pauschal komplett in Smarty inkludiert, sondern muss noch PHP-seitig für jedes einzelne Element separat an Smarty zugewiesen werden, also in etwa so

[== php ==]
$smarty->assign('label_location', $lang['cal_location'])

Erst dann kannst du es im Template via

verwenden.

Offline

#3 18. April 2015 09:43

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: Sprachsteuerung CGCalendar

Leider nur offtopic aber der Titel vom Thread brachte mich zum Schmunzeln. In der heutigen Zeit weiß man ja nie was man alles mit seiner Sprache steuern kann big_smile

Offline

#4 18. April 2015 09:57

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Sprachsteuerung CGCalendar

Änderung des PHP Codes ist hier nicht nötig. CGCalendar (bzw. CGExtensions) übergibt die komplette $lang-Variable an Smarty. Wenn also einige Texte nicht übersetzt werden, dann heißt das Stichwort "module_custom".

Nee, quatsch! Bringt hier wirklich nichts. Cyberman hat Recht. Ich dachte, es wird die $lang-Variable aus der Sprachdatei an Smarty zugewiesen. Es ist aber eine eigene Variable, die im Modul nur mit bestimmten Werten gefüllt wird.

Aber im Calendar-Template ist eine Variable namens {$mod} verfügbar. Das ist das komplette Calendar-Modul. Darüber kannst Du auf die Sprachdatei des Moduls zugreifen:


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline