Zitat von
marcohe
Das Listenmodul musst du z.B. per DCA um die Checkbox erweitern. Im Hook prüfst du ob Checkbox gesetzt und schränkst dann die Liste ein über recurring und den alias in der URL ein. Im Template gibts du dann per Inserttag das Listenmodul aus...
Super. Danke. Nun habe ich auch eine Checkbox durch folgenden Code unter contao/dca/tl_module.php hinzugefügt.
PHP-Code:
<?php
use Contao\CoreBundle\DataContainer\PaletteManipulator;
// Beschreibung der Felder
$GLOBALS['TL_DCA']['tl_module']['eventlist']['fields']['onlyRecurringEvents'] = array(
'label' => &$GLOBALS['TL_LANG']['tl_module']['onlyRecurringEvents'],
'inputType' => 'checkbox',
'eval' => array('tl_class' => 'w50'),
'sql' => "char(1) NOT NULL default ''"
);
PaletteManipulator::create()
->addField('onlyRecurringEvents', 'cal_hideRunning', PaletteManipulator::POSITION_AFTER)
->applyToPalette('eventlist', 'tl_module');
Dann habe ich den Code für den Hook angepasst. Jetzt sollte es stimmen, oder?
PHP-Code:
<?php
namespace App\EventListener;
use Contao\CoreBundle\DependencyInjection\Attribute\AsHook;
use Contao\Module;
#[AsHook('getAllEvents')]
class getAllRepeatingEvents
{
public function __invoke(array $events, array $calendars, int $timeStart, int $timeEnd, Module $module): array
{
foreach ($events as $key => $days) {
foreach ($days as $day => $events) {
foreach ($events as $event) {
switch ($objectModule->onlyRecurringEvents) {
case 'onlyRecurringEvents':
if ($event['recurring'] == true) {
unset($events[$key][$day][$event]);
};
break;
}
}
}
}
return $events;
}
}
Lesezeichen