Closed lennier83 closed 1 year ago
Uh. Das gleiche wie hier also https://github.com/pdir/mae_event_categories/issues/20 :-D
Wir haben soeben die 0.1.13 released die das Problem bei den News lösen sollte. Bei den Events gibt es keine Tags weil wir dafür generell (noch) keinen Support haben 😉
Geil. Klappt auch bei Events via dca. Mercie
Geil. Klappt auch bei Events via dca. Mercie
@lennier83 Kannst du das bitte kurz erklären, wie man das via DCA sichtbar bekommt? Danke.
Uno momento. Muss da mal selber im Projekt schauen. Aber schnell zu den Templates. Im Event-Template kannst du z.B. (vorgegebene) Tags zur Verfügung stellen mit den IDs die du unter "Tags" findest unterhalb "System":
<?php foreach( $this->tags = \Contao\StringUtil::deserialize($this->tags) as $tag ): ?> <span class="events__tags"> <?php if ($tag == 1): ?>Konzert<?php endif; ?> <?php if ($tag == 2): ?>Ausstellung<?php endif; ?> ... </span> <?php endforeach; ?>
Das ist zwar Händisch eintragen und funktioniert nur bedingt wenn du Redakteuren eine unendliche Anzahl geben willst, aber für z.B. Event-Farbcodierungen oder 1-20 Tags ... völlig ausreichend (und unendlich manuell erweiterbar) :-)
So. Hier ist mein Einbau
`<?php
use Contao\CoreBundle\DataContainer\PaletteManipulator;
PaletteManipulator::create() ->addField('tags', 'title_legend', 'append') ->applyToPalette('default', 'tl_calendar_events') ->applyToPalette('internal', 'tl_calendar_events') ->applyToPalette('article', 'tl_calendar_events') ->applyToPalette('external', 'tl_calendar_events');
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['tags'] = [ 'exclude' => false , 'filter' => false , 'label' => ['Tags', 'Falls verfügbar'] , 'inputType' => 'select' , 'foreignKey' => 'tl_tags.tag' , 'options_callback' => ['numero2_tags.listener.data_container.tags', 'getTagOptions'] , 'save_callback' => [['numero2_tags.listener.data_container.tags', 'saveTags']] , 'eval' => ['multiple'=>true, 'size'=>8, 'tl_class'=>'clr long tags', 'chosen'=>true] , 'sql' => "blob NULL" , 'relation' => ['type'=>'hasMany', 'load'=>'eager'] ]; `
<?php foreach( $this->tags = \Contao\StringUtil::deserialize($this->tags) as $tag ): ?> <span class="events__tags"> <?php if ($tag == 1): ?>Konzert<?php endif; ?> <?php if ($tag == 2): ?>Ausstellung<?php endif; ?> ... </span> <?php endforeach; ?>
Das ist zwar Händisch eintragen und funktioniert nur bedingt wenn du Redakteuren eine unendliche Anzahl geben willst, aber für z.B. Event-Farbcodierungen oder 1-20 Tags ... völlig ausreichend (und unendlich manuell erweiterbar) :-)
Macht es euch bitte nicht so umständlich 😋
Einfach die Tags per passendem Model holen...
<?php
$tagIDs = \Contao\StringUtil::deserialize($this->tags);
if( !empty($tagIDs) ) {
$tags = \numero2\TagsBundle\TagsModel::findMultipleByIds($tagIDs);
if( $tags ) {
$this->tags = $tags->fetchAll();
}
}
?>
... und dann einfach ausgeben
<?php foreach( $this->tags as $tag ): ?>
<span><?= $tag['tag'] ?></span>
<?php endforeach; ?>
Disclaimer: Alles ungetestet 😁
Juhuu. Ich habe gerade festgestellt, dass die Tags weggehen als Feld wenn man was anderes als "Standard" benutzt für die Weiterleitung (also nach dem Refresh ist das Tagfeld dann weg). Sowohl bei News als auch bei Events. Ist das so gewollt oder ein Bug? :-)