Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#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} {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
{$label_location}
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
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
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:
{$mod->lang('cal_date')}
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
Seiten: 1