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

#26 12. April 2016 21:41

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

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 cyberman (15. April 2016 13:55)


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#27 14. April 2016 14:32

parsec
arbeitet mit CMSMS
Registriert: 04. Oktober 2012
Beiträge: 144

Re:

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

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

Ä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 cyberman (15. April 2016 13:56)


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#29 15. April 2016 14:17

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.058

Re:

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

Offline

Fußzeile des Forums

Powered by FluxBB