Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#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

uniqu3 schrieb:

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