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

parsec schrieb:

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  tongue ... 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 ops ?

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 hmm ...

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