Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
#26 12. April 2016 21:41
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Seiten-Spezifische ListIt-Liste mttels Page-Alias automatisch aufrufen
wie müsste das den aussehen wenn es selber erkennen soll ob überhaupt eine Liste existiert und wenn nicht dann keinen Error anzeigt.
Na jetzt bin ich doch bißl enttäuscht ... hast du doch quasi ein paar Posts weiter oben schon die Lösung angegeben.
Was ich damit meine? Na die Funktion get_listit_instances()!
Mit dieser Funktion holst du dir sämtliche Instanzen, die dann als String "ListIt2startseite|ListIt2folgeseite|ListIt2nocheineseite" ausgegeben werden. Ergo musst du nur noch in dem String nachschauen (lassen), ob der Name der Instanz vorhanden ist.
Also in etwa so (ungetestet)
{$ainst = ':::get_listit_instances:::'}
{$cinst = "{$smarty.ldelim}ListIt2{$page_alias}{$smarty.rdelim}"}
{$einst = strpos($ainst, substr($cinst,1,-1)}
{if $einst !== false)}
{include file="string:$cinst"}
{/if}
Beitrag geändert von Andynium (15. April 2016 13:55)
Offline
#27 14. April 2016 14:32
- parsec
- kennt CMS/ms
- Registriert: 04. Oktober 2012
- Beiträge: 208
Re: [GELÖST] Seiten-Spezifische ListIt-Liste mttels Page-Alias automatisch aufrufen
Geht nicht leider...
Syntax error in template "tpl_body:31" on line 28 "
{$ainst = get_listit_instances()}" unknown function "get_listit_instances"
"Es ist unmöglich, alles zu wissen" - Horaz
Offline
#28 15. April 2016 10:32
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Seiten-Spezifische ListIt-Liste mttels Page-Alias automatisch aufrufen
Ähmm, wo is'n dein Beitrag von 11 Uhr hin ?
Hattest es doch zum Laufen bekommen...
Hab deine Änderung mal oben mit eingebaut.
Einen Fehler konnte ich daran nicht finden, hab aber gerade auch nichts zum Testen online. Vllt kannst du den Fehler mit einem geänderten Workflow kompensieren, also erst Liste erstellen, dann Seite aktivieren ...
Beitrag geändert von Andynium (15. April 2016 13:56)
Offline
#29 15. April 2016 14:17
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST] Seiten-Spezifische ListIt-Liste mttels Page-Alias automatisch aufrufen
Wie wäre es damit :
Eine modifizierte Version von get_listit_instances() :
<?php
function smarty_function_get_listit_instances($params, &$template)
{
if(!$li = &cms_utils::get_module('ListIt2'))
return;
$delimiter = isset($params['delimiter']) ? $params['delimiter'] : '|';
$ret = array();
$modules = $li->ListModules();
foreach($modules as $mod)
$ret[$mod->module_id] = $mod->module_name;
if(isset($params['implode']) && $params['implode'])
$ret = implode($delimiter, $ret);
return isset($params['assign']) ? $template->smarty->assign($params['assign'], $ret) : $ret;
}
?>
Parameter:
delimiter
(Trennzeichen)implode
(wenn true -> gibt eine Liste von ListIt-Instanzen mit Trennzeichen aus; ansonsten -> gibt das Array zurück)assign
(Variablenname für Verwendung im Template)
Aufruf:
{get_listit_instances assign="listit_instances"}
{$current_instance="ListIt2"|cat:$page_alias}
{if $current_instance|in_array:$listit_instances}
{cms_module module="$current_instance"}
{else}
FEHLER!
{/if}
Hab's nicht getestet.
Aber das Prinzip sollte klar sein:
1. Alle ListIt-Instanzen auslesen
2. Den Namen der aktuellen Instanz aus "ListIt2" und dem Alias der aktuellen Seiten zusammensetzen
3. prüfen, ob es eine ListIt-Instanz mit dem Namen der aktuellen Instanz gibt
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