Hallo,
ich habe die calendarlanguage-Erweiterung fast fertig.
Jetzt versuche ich seit einer geschlagenen Stunde, woran es liegen könnte, dass der Sprachenumschalter nicht den Alias der anderen Sprache benutzt.
Bis ich jetzt in der changelanguage-Erweiterung in der Datei TL_ROOT/system/modules/changelanguage/ModuleChangeLanguage.php die Zeilen 119 bis 142 entdeckt habe, welche die Einbindung der Newsaliase übernimmt.
Könnten Sie diese bitte entsprechen für das calendarlanguage anpassen?
Aufgepasst!
tl_news = tl_calendar_events
tl_news_archive = tl_calendar
Folgende Zeilen müssten dupliziert und eingepasst werden:
PHP-Code:
Zeile 73
<?php
$blnHasCalendarEvents = false;
?>
Zeile 119 - 142
<?php
// Switch calendar item language
if (in_array('calendarlanguage', $this->Config->getActiveModules()) && strlen($this->Input->get('events')))
{
$objCalendarEvents = $this->Database->prepare("SELECT tl_calendar_events.*, tl_calendar.master FROM tl_calendar_events LEFT OUTER JOIN tl_calendar ON tl_calendar_events.pid=tl_calendar.id WHERE tl_calendar_events.id=? OR tl_calendar_events.alias=?")
->limit(1)
->execute($this->Input->get('events'), $this->Input->get('events'));
// We found a calendar event item!!
if ($objCalendarEvents->numRows)
{
$arrCalendarEvents = array();
$id = ($objCalendarEvents->master > 0) ? $objCalendarEvents->languageMain : $objCalendarEvents->id;
$objItems = $this->Database->prepare("SELECT tl_calendar_events.*, tl_calendar.language FROM tl_calendar_events LEFT OUTER JOIN tl_calendar ON tl_calendar_events.pid=tl_calendar.id WHERE tl_calendar_events.id=? OR languageMain=?")
->execute($id, $id);
while( $objItems->next() )
{
$arrCalendarEvents[$objItems->language] = $objItems->row();
}
if (count($arrCalendarEvents))
$blnHasCalendarEvents = true;
}
}
?>
Zeile 212 - 214
<?php
if ($blnHasCalendarEvents && isset($arrCalendarEvents[$arrRootPage['language']]))
{
$strParam = '/events/' . $arrCalendarEvents[$arrRootPage['language']]['alias'];
}
?>
Es wäre cool wenn in der nächsten Version sowohl die Unterstützung für newslanguage als auch für calendarlanguage vorhanden wäre.
Im Anhang habe ich jetzt mal eine Version der neuen ModuleChangeLanguage.php erstellt, welche beides unterstützt.
Grüße
Marcel Debray
Lesezeichen