Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 08. Februar 2012 15:39
- kris29
- kennt CMS/ms
- Registriert: 15. Dezember 2010
- Beiträge: 106
AdvancedContent ListIt2-Einträge ausgeben
Hallo. Ich habe mit AC einen Block (select_multiple) im Template erstellt, mit dem ich Moduleinträge von ListIt2 auswählen kann. Bis zur Auswahl klappts noch, aber die Ausgabe bekomm ich nicht hin.
Mein Block im Seiten-Template:
{content block='meine_modul_items' assign='meine_modul_items' block_type='select_multiple' label='Eintrag auswählen' items="nichts,:::cms_module module='ListIt2' summarytemplate='backend_liste':::" values="nichts,:::cms_module module='ListIt2' summarytemplate='backend_liste':::" default='nichts' delimiter=',' smarty='true' allow_none='true'}
Das ListIt2-Template "backend_liste"
{foreach from=$items item=item}
{$item->title},
{/foreach}
Wie muß nun das ListIt-Template aussehen, damit die ausgewählten Einträge mit all ihren Details im Frontend angezeigt werden?
Offline
#2 11. Februar 2012 15:20
- uniqu3
- Server-Pate
- Ort: Feldkirchen in Kärnten
- Registriert: 20. November 2010
- Beiträge: 305
- Webseite
Re: AdvancedContent ListIt2-Einträge ausgeben
Hat eigentlich mit ListIt2 Template nix zu tun sondern mit der Logik wie Du es ausgeben möchtest.
Etwa in dieser Richtung (ungestestet):
[== smarty ==]
{assign var='items_ausgabe' value=','|explode:$meine_modul_items}
{foreach from=$items_ausgabe item='modul_item'}
{$modul_item}
{/foreach}
Was dir die ausgewählten namen ausgeben sollte. Ich vermute das Du ja dann ListIt mit diesen item ausgeben möchtest also müsstest Du in etwas so in der foreach schleife vorgehen.
[== smarty ==]
{foreach from=$items_ausgabe item='modul_item'}
{ListIt2 action='detail' item=$modul_item detailtemplate='wie_es_eben_aussehen_soll'}
{/foreach}
Natürlich wird es nur funktioneren wenn item= mit item alias angegeben wird, sprich dein Backend ListIt template müsste statt $item->title doch $item->alias verwenden.
Beitrag geändert von uniqu3 (11. Februar 2012 15:20)
Offline
#3 13. Februar 2012 16:15
- kris29
- kennt CMS/ms
- Registriert: 15. Dezember 2010
- Beiträge: 106
Re: AdvancedContent ListIt2-Einträge ausgeben
Natürlich wird es nur funktioneren wenn item= mit item alias angegeben wird, sprich dein Backend ListIt template müsste statt $item->title doch $item->alias verwenden.
Dank dir. Das hat mir weitergeholfen.
Ich habe jetzt ein weiteres ListIt2-Template angelegt (backend_liste_values), damit nicht die Aliase, sondern nur die Titel in der Auswahl erscheinen.
Block im Seiten-Template:
{content block='meine_modul_items' assign='meine_modul_items' block_type='select_multiple' label='Eintrag auswählen' items="nichts,:::cms_module module='ListIt2' summarytemplate='backend_liste':::" values="nichts,:::cms_module module='ListIt2' summarytemplate='backend_liste_values':::" default='nichts' delimiter=',' smarty='true' allow_none='true'}
ListIt2-Template "backend_liste_values":
{foreach from=$items item=item}
{$item->alias},
{/foreach}
Klappt soweit.
Eine Frage dazu noch. Wenn nun ein Item in ListIt2 gelöscht wird, welches aber von einer Seite noch ausgewählt ist, dann erscheint eine Fehlermeldung im Frontend (FATAL SQL ERROR: QUERY: SELECT ....).
Wie kann man vor der Ausgabe "checken", ob die Items auch noch wirklich existieren?
Offline
#4 13. Februar 2012 16:20
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: AdvancedContent ListIt2-Einträge ausgeben
Das müsste man so ähnlich machen wie mit den Globalen Inhaltsblöcken (siehe hier). Also ein UDT, der über die Ereignisverwaltung bei allen Seiten, die einen Block mit einem bestimmten Namen/Präfix haben und deren Inhalt auf den gelöschten ListIt Eintrag verweist, diesen Block in der DB anpasst.
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