Funktionen getFormats, getDatesFromFormat erweitern
Guten Morgen,
ist es möglich diese beiden Core Funktionen zu erweitern?
Ziel:
Ich möchte im Backend im Anzeigeformat einer Eventliste zusätzliche Parameter (z.B. alle Events der vergangenen und der kommenden Woche,) einfügen (diese werden ja scheinbar in der getFormats definiert und in der getDatesFromFormat ausgewertet)
auf den getAllEvents Hook kann ich mich einhaken und könnte die entsprechenden Events bearbeiten bzw. filtern, aber wie komme ich an die beiden genannten Funktionen um dort die Filterauswahl zu erweitern? gibt es da auch einen Hook oder ist das Vorgehen da anders (oder nicht möglich) ?
Danke für die Hilfe
Liste der Anhänge anzeigen (Anzahl: 1)
gelöst
so habs geschafft!
hier die kurze Auflösung für die getFormats
PHP-Code:
$GLOBALS['TL_DCA']['tl_module']['fields']['cal_format'] = array();
...
'options_callback' => array('MyEvents', 'getMyFormats'),
...
das in eine neue Klasse gepackt und darin die Originalfunktion um 'cal_own' => array('past_7_next_7') erweitert
PHP-Code:
public function getMyFormats(DataContainer $dc)
{
if ($dc->activeRecord->type == 'eventmenu')
{
return array('cal_day', 'cal_month', 'cal_year');
}
return array
(
'cal_list' => array('cal_day', 'cal_month', 'cal_year', 'cal_all'),
'cal_upcoming' => array('next_7', 'next_14', 'next_30', 'next_90', 'next_180', 'next_365', 'next_two', 'next_cur_month', 'next_cur_year', 'next_next_month', 'next_next_year', 'next_all'),
'cal_past' => array('past_7', 'past_14', 'past_30', 'past_90', 'past_180', 'past_365', 'past_two', 'past_cur_month', 'past_cur_year', 'past_prev_month', 'past_prev_year', 'past_all'),
'cal_own' => array('past_7_next_7')
);
}
ausgegeben wird's dann über
PHP-Code:
use Contao\Events as CoreClass_Events;
abstract class Events extends CoreClass_Events
{
protected function getDatesFromFormat(\Date $objDate, $strFormat)
{
$Original = parent::getDatesFromFormat($objDate, $strFormat);
switch ($strFormat)
{
case 'past_7_next_7':
return array((strtotime('-7 days') - 1), (strtotime('+7 days') - 1), $GLOBALS['TL_LANG']['MSC']['cal_empty']);
break;
default:
return $Original;
}
}
}
die languages anpassen
PHP-Code:
...
<trans-unit id="tl_module.cal_own">
<source>Own events</source>
<target>Eigene Events</target>
</trans-unit>
<trans-unit id="tl_module.past_7_next_7">
<source>- 1 week / + 1 week</source>
<target>- 1 Woche / + 1 Woche</target>
</trans-unit>
...
und dann kommts auch in schön:
das Ganze natürlich ohne Gewähr...
Anhang 19643