Modul geteilte Hauptnavigation 4.9

Alles rund um Module und Plugins in CONTENIDO 4.9.
josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Modul geteilte Hauptnavigation 4.9

Beitrag von josh » Di 27. Aug 2013, 14:58

Hallo,

hier das fertige Modul. Danke an homtata und marcus.gnass_4fb.
Ihr findet es weiter unten im Thread:
http://forum.contenido.org/viewtopic.ph ... 82#p160082

vielleicht gibt es noch verbesserungen?
Ich würde diese dann hier am Anfang des Thread zusammenfassen.

von homtata:
Kategorie mit geöffnetem Baum anzeigen

Zeile ersetzen

Code: Alles auswählen

{if $idcat|in_array:$path} 
durch

Code: Alles auswählen

 {if !empty($wrapper.subcats)}




Hier das erte Posting (ich wollte das nicht löschen).
Hallo,

kann mir jemand helfen eine geteilte Hauptnavigation mit den neuen Modulen zu bauen?

Wie kann ich im template get.tpl feststellen in welchem Level der Navigation ich mich befinde?
Idcat, first und last habe ich gefunden. In den alten Modulen stand z.B. <li class="navmainStandardLevel_3 first last active idcat24" >

Kann man auch target abfragen?

Code: Alles auswählen

<!-- navigation_top/template/get.tpl -->

<ul>
    {foreach name=position key=schluessel from=$tree item=wrapper}
        {assign var="idcat" value=$wrapper.idcat}
        {assign var="url" value=$wrapper.item->getLink()}
        {assign var="name" value=$wrapper.item->get('name')}
        {if $idcat|in_array:$path}
            {assign var="aClass" value='active'}
        {else}
            {assign var="aClass" value=''}
        {/if}	

        {if $schluessel == 0}
		    {assign var="idcatClass" value=$wrapper.idcat}
            {assign var="liClass" value='first'}
        {elseif $smarty.foreach.position.total == $schluessel+1}  
            {assign var="idcatClass" value=$wrapper.idcat}		
            {assign var="liClass" value='last'}
        {else}
            {assign var="idcatClass" value=$wrapper.idcat}
            {assign var="liClass" value=''}			
        {/if}			

		
		
        <li class="idcat{$idcatClass} {$liClass}">
            <a class="{$aClass}" href="{$url}" title="{$name}">{$name}</a>
        {if $idcat|in_array:$path}
            {include file="navigation_top/template/get.tpl"
                tree=$wrapper.subcats path=$path}
        {/if}
        </li>
     {/foreach}
</ul>
Das template oben liefert eine verschachtelte Liste,
das untere eine nicht verschachtelte Liste.

Code: Alles auswählen

{if 0 lt $ulId|strlen}<!-- navigation_main/template/get.tpl -->{/if}

<ul class="{$ulId}">

    {foreach from=$tree item=wrapper}
        {assign var="idcat" value=$wrapper.idcat}
        {assign var="url" value=$wrapper.item->getLink()}
        {assign var="name" value=$wrapper.item->get('name')}
        {if $idcat|in_array:$path}
            {assign var="aClass" value='active'}
        {else}
            {assign var="aClass" value=''}
        {/if}
        <li>
            <a class="{$aClass}" href="{$url}" title="{$name}">{$name}</a>
        </li>			
			
        {if $idcat|in_array:$path}
            {include file="navigation_main/template/get.tpl"
                tree=$wrapper.subcats path=$path ulId=""}
        {/if}

     {/foreach}
</ul>

{if 0 lt $ulId|strlen}<!-- /navigation_main/template/get.tpl -->{/if}
Viele Grüße

Josh
Zuletzt geändert von josh am Fr 30. Aug 2013, 08:18, insgesamt 2-mal geändert.

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Navigation

Beitrag von homtata » Mi 28. Aug 2013, 09:27

muss dringend weg, hab aber schonmal was gebastelt vorgestern. ich meld mich heute nachmittag hier.

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Navigation

Beitrag von homtata » Mi 28. Aug 2013, 11:46

also, ich hab das bei einem Kunden wie folgt umgesetzt in einem Modul "Navigation_Sub":

Output-Code:

Code: Alles auswählen

<?php

/**
 * description: split navigation
 *
 * @package Module
 * @subpackage NavigationMain
 * @version SVN Revision $Rev:$
 *
 * @author marcus.gnass@4fb.de
 * @adapted to split navigation behaviour by Viktor Lehmann, TONE2TONE, Heidelberg
 * @copyright four for business AG <www.4fb.de>
 * @license http://www.contenido.org/license/LIZENZ.txt
 * @link http://www.4fb.de
 * @link http://www.contenido.org
 */

// assert framework initialization
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');

//determine root node for the given idcat
$startwithlevel = 1;
$categoryHelper = cCategoryHelper::getInstance();
$categoryHelper->setAuth(cRegistry::getAuth());
$idcatlevel = $categoryHelper->getCategoryLevel($idcat);
$idcatparents = $categoryHelper->getParentCategoryIds($idcat,20); // 20 steht für die max. Anzahl Level, die ermittelt werden
$idcatparents = array_reverse($idcatparents); // so ist es einfacher, das gewüschte Level im Array anzuspringen
//Absoluten Root finden, da ich in diesem Fall Splitnavigationüberhaupt NUR für bestimme Navigationsbäume ausgeben möchte
$rootIdcat = $categoryHelper->getTopMostCategoryId($idcat);

//print_r($idcatparents);
//print $idcatlevel;

if ( $rootIdcat == 1 || $rootIdcat == 35 ) {

	
	$rootIdcat = $idcatparents[1];
	if ( $idcatlevel == 1 ) $rootIdcat = $idcat;
	
	// get client settings
	$depth = getEffectiveSetting('navigation_main', 'depth', 3);
	
	// get category tree
	$categoryHelper = cCategoryHelper::getInstance();
	$categoryHelper->setAuth(cRegistry::getAuth());
	$tree = $categoryHelper->getSubCategories($rootIdcat, 3);
	
	// get path (breadcrumb) of current category
	function navigation_sub_filter(cApiCategoryLanguage $categoryLanguage) {
		return $categoryLanguage->get('idcat');
	}
	$path = array_map('navigation_sub_filter', $categoryHelper->getCategoryPath(cRegistry::getCategoryId(), 1));
	
	// use template to display navigation
	$tpl = cSmartyFrontend::getInstance();
	$tpl->assign('ulId', 'nav');
	$tpl->assign('tree', $tree);
	$tpl->assign('path', $path);
	$tpl->display('get.tpl');

}

?>
und die zugehörige get.tpl:

Code: Alles auswählen

{if 0 lt $ulId|strlen}<!-- navigation_split/template/get.tpl -->{/if}

<ul id="{$ulId}" class="navigation_sub sf-menu">

    {foreach from=$tree item=wrapper}
        {assign var="idcat" value=$wrapper.idcat}
        {assign var="url" value=$wrapper.item->getLink()}
        {assign var="name" value=$wrapper.item->get('name')}
        {assign var="idcat" value=$wrapper.item->get('idcat')}
        {assign var="css_level" value=$wrapper.level}
        {if $idcat|in_array:$path}
            {assign var="aClass" value='active'}
        {else}
            {assign var="aClass" value=''}
        {/if}
        <li class="{$aClass}"  id="cat{$idcat}">
            <a href="{$url}" title="{$name}">{$name}</a>

            {include file="navigation_sub/template/get.tpl"
			tree=$wrapper.subcats path=$path ulId=""}

        </li>
     {/foreach}
</ul>

{if 0 lt $ulId|strlen}<!-- /navigation_split/template/get.tpl -->{/if}
Zur Erläuterung:
- Die Hauptnavigation bleibt unangetastet, hier wird höchstens das Ausgabelevel beschränkt.
- startwithlevel: legt fest, auf welchem Level die Splitnavigation starten soll. "0" ist root, "1" die erste Ebene drunter usw.
- Danach wird ermittelt, welches die Rootkategorie ist (um später sagen zu können, dass man für einige Bäume diese Ausgabe überhaupt haben will oder auch nicht), und dann wird ein Array erstellt, welche Kategorien OBERHALB der aktuell gewählten sind. Dieses Array wird auf den Kopf gestellt, so dass $idcatparents["0"] wieder die Angabe für die Rootkategorie enthält, $idcatparents["1"] für die erste Unterebene usw.
- Dann wird (if) kurz überprüft, ob wir uns in einem Baum befinden, wo überhaupt die Ausgabe stattfinden soll, und falls ja, wird dann ab dem gewünschten Level dieses Baums die Navi ausgespuckt. Befindet man sich auf Level 1, ist im Array der Eltern $idcatparents["1"] nicht enthalten, daher wird der Ausgangswert für die auszugebende Navi (idcat) noch auf die aktuelle idcat gesetzt.
- ab da dann eigentlich wie gehabt, in einer ordentlich formatierten ul-Liste, der man in der tpl-Datei die nötigen Klassen und IDs mitgeben kann usw.

Gibt wahrscheinlich elegantere Wege, aber so läufts immerhin mal ;-)

LG

marcus.gnass_4fb
Beiträge: 87
Registriert: Do 26. Apr 2012, 23:02
Kontaktdaten:

Re: Navigation

Beitrag von marcus.gnass_4fb » Mi 28. Aug 2013, 18:02

Den aktuellen Level erhältst du viel einfacher. Ich habe eine entsprechende Lösung als Anhang hinzugefügt.

Der Output-Code ist eigentlich nur um folgende Zeilen ergänzt:

Code: Alles auswählen

$level = $categoryHelper->getCategoryLevel($rootIdcat);

Code: Alles auswählen

$tpl->assign('level', $level);
Das Template habe ich dann wie folgt angepaßt (hier wurde nur der Paremeter level ergänzt):

Code: Alles auswählen

{include file="navigation_main/template/get.tpl"
    tree=$wrapper.subcats path=$path ulId="" level=1+$level}
Um das Ergebnis zu überprüfen habe ich den Level dem Namen vorangestellt:

Code: Alles auswählen

<a class="{$aClass}" href="{$url}" title="{$name}">{$level}: {$name}</a>
Jetzt brauchst du im Template den Level nur dort einzufügen wo du ihn benötigst. Wenn ich dran denke werde ich das in der nächsten Version dieses Moduls im Beispielmandanten mit einbauen.
Dateianhänge
navigation_main.zip
(5.38 KiB) 302-mal heruntergeladen

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: Navigation

Beitrag von josh » Do 29. Aug 2013, 06:32

Hallo, homtata und marcus.gnass_4fb,

danke für die Antworten.
Da stcken noch einige Infos drin die ich bei der Weiterentwicklung brauche.

Bei mir ist parfalell dies entstanden:
Die Navigation läst sich ab einem beliebigen Level anzeigen.
<?php

/**
* description: main navigation
*
* @package Module
* @subpackage NavigationMain
* @version SVN Revision $Rev:$
*
* @author marcus.gnass@4fb.de
* @copyright four for business AG <www.4fb.de>
* @license http://www.contenido.org/license/LIZENZ.txt
* @link http://www.4fb.de
* @link http://www.contenido.org
*/

// assert framework initialization
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');

// get settings
$startlevel = 2;
$rootIdcat = $idcat;
$depth = 8;

// get category tree
$categoryHelper = cCategoryHelper::getInstance();
$categoryHelper->setAuth(cRegistry::getAuth());

$level = $categoryHelper->getCategoryLevel($rootIdcat);
$ParentCategoryId = $categoryHelper->getParentCategoryIds($rootIdcat, $depth);

echo $idcat.' Level: '.$level.'<br />';
print_r ($ParentCategoryId);

if ($level == 1) $ParentID = $ParentCategoryId[0];
if ($level < $startlevel-1) $rootIdcat = null;

if ($level >= $startlevel) $ParentID = $ParentCategoryId[$level-$startlevel];
if ($level >= $startlevel) $rootIdcat = $ParentCategoryId[$level-$startlevel];
echo '<p>ParentID: '.$ParentID.'</p>';

$tree = $categoryHelper->getSubCategories($rootIdcat, $depth);

// get path (breadcrumb) of current category
function navigation_main_teil_filter(cApiCategoryLanguage $categoryLanguage) {
return $categoryLanguage->get('idcat');
}
$path = array_map('navigation_main_teil_filter', $categoryHelper->getCategoryPath(cRegistry::getCategoryId(), 1));

// use template to display navigation
$tpl = cSmartyFrontend::getInstance();
$tpl->assign('ulId', 'navigation');
$tpl->assign('tree', $tree);
$tpl->assign('path', $path);
$tpl->display('get.tpl');

?>
Könnt ihr den Titel von "Navigation" auf "Modul geteile Hauptnavogation 4.9" umbenennen?

Viele Grüße

josh

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: Modul geteile Hauptnavogation 4.9

Beitrag von josh » Do 29. Aug 2013, 10:37

Hallo,

hier das komplette Modul:
Die Style Sheets sind an das Modul der Versin 4.8x angepasst.

Bescheibung

Code: Alles auswählen

Kompatibel: 4.8.x
Hauptmenü auf der linken Seite, auch als geteile Navigation (Teil 2) einsetzbar. 
Beliebige Level sind einstellbar: z.B. $startlevel = 2 oder höher;
CSS ist an die Version 4.4.x angepasst.
Ausgabe

Code: Alles auswählen

<?php

/**
 * description: main navigation
 *
 * @package Module
 * @subpackage NavigationMain
 * @version SVN Revision $Rev:$
 * @author marcus.gnass@4fb.de
 * 
 * @geaendert als geteilte Hauptnavigation Webdesign Leifeld - Ahlen
 * Forum: http://forum.contenido.org/viewtopic.php?f=92&t=34020
 *
 * @copyright four for business AG <www.4fb.de>
 * @license http://www.contenido.org/license/LIZENZ.txt
 * @link http://www.4fb.de
 * @link http://www.contenido.org
 */

// assert framework initialization
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');

// get settings
$startlevel = 2;    //default: $startlevel = 1;          
$rootIdcat = $idcat;
$depth = 3;

// get category tree
$categoryHelper = cCategoryHelper::getInstance();
$categoryHelper->setAuth(cRegistry::getAuth());

$level = $categoryHelper->getCategoryLevel($rootIdcat);
$ParentCategoryId = $categoryHelper->getParentCategoryIds($rootIdcat, $depth);

//Kontrollausgabe
/*
echo $idcat.' Level: '.$level.'<br />';
print_r ($ParentCategoryId);

if ($level == 1) $ParentID = $ParentCategoryId[0];
if ($level >= $startlevel) $ParentID = $ParentCategoryId[$level-$startlevel];
echo '<p>ParentID: '.$ParentID.'</p>';
*/

//$rootIdcat je nach Level und $ParentCategoryId Array anpassen
if ($level < $startlevel-1) $rootIdcat = null;
if ($level >= $startlevel) $rootIdcat = $ParentCategoryId[$level-$startlevel];

$tree = $categoryHelper->getSubCategories($rootIdcat, $depth);

// get path (breadcrumb) of current category
function navigation_main_filter(cApiCategoryLanguage $categoryLanguage) {
    return $categoryLanguage->get('idcat');
}
$path = array_map('navigation_main_filter', $categoryHelper->getCategoryPath(cRegistry::getCategoryId(), 1));

// use template to display navigation
$tpl = cSmartyFrontend::getInstance();
$tpl->assign('ulId', 'navigation');
$tpl->assign('level', $startlevel);
$tpl->assign('tree', $tree);
$tpl->assign('path', $path);
$tpl->display('get.tpl');
?>
HTML

Code: Alles auswählen

{*if 0 lt $ulId|strlen}<!-- navigation_main/template/get.tpl -->{/if*}

{if 0 lt $ulId|strlen}<ul class="{$ulId}">{/if}
    {foreach from=$tree item=wrapper name=position key=schluessel }
        {assign var="idcat" value=$wrapper.idcat}
        {assign var="url" value=$wrapper.item->getLink()}
        {assign var="name" value=$wrapper.item->get('name')}
        {if $idcat|in_array:$path}
            {assign var="aClass" value='active'}
        {else}
            {assign var="aClass" value=''}
        {/if}
        {if $schluessel == 0}
	    {assign var="idcatClass" value=$wrapper.idcat}
            {assign var="posClass" value='first'}
        {elseif $smarty.foreach.position.total == $schluessel+1}  
            {assign var="idcatClass" value=$wrapper.idcat}		
            {assign var="posClass" value='last'}
        {else}
            {assign var="idcatClass" value=$wrapper.idcat}
            {assign var="posClass" value=''}			
        {/if}

        <li class="navmainStandardLevel_{$level} {$posClass} {$aClass} idcat{$idcatClass}">
            <a class="navmainStandardLevel_{$level} {$posClass} {$aClass} idcat{$idcatClass}" href="{$url}" title="{$name}">{$name}</a>
        </li>
        {if $idcat|in_array:$path} 
            {include file="navigation_main/template/get.tpl" tree=$wrapper.subcats path=$path ulId="" level=1+$level}  
        {/if}
     {/foreach}
{if 0 lt $ulId|strlen}</ul>{/if}

{*if 0 lt $ulId|strlen}<!-- /navigation_main/template/get.tpl -->{/if*}
Viele Grüße

josh

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: Modul geteile Hauptnavogation 4.9

Beitrag von josh » Do 29. Aug 2013, 10:51

Bitte nach Module 4.9 verschieben

Danke

josh

matthiasschnueriger
Beiträge: 60
Registriert: Mo 28. Nov 2005, 16:01
Kontaktdaten:

Re: Modul geteile Hauptnavogation 4.9

Beitrag von matthiasschnueriger » Do 29. Aug 2013, 14:37

Um aus dem Modul navigation_main ein Flyout-Menü zu erstellen, möchte ich gerne das Markup der kompletten Navigation ausgeben:

Code: Alles auswählen

<ul class="hauptnavigation">
<li>Level 1</li>
<li>Level 1</li>
<li>Level 1
<ul class="flyout">
<li>Level 2</li>
<li>Level 2</li>
</ul>
</li>
<li>Level 1</li>
</ul>
Sprich: Egal auf welcher Seite ich gerade bin, es soll immer die komplette Baumstruktur abgebildet werden.
Beim Standard-Modul öffnet sich die Subnavigation erst beim Öffnen der entsprechenden Kategorie...

Danke für die Unterstützung.

Gruss
Matthias

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Modul geteile Hauptnavogation 4.9

Beitrag von homtata » Do 29. Aug 2013, 14:59

Hab ich auch grad benötigt, und geht ungefähr so:

Die get.tpl austauschen und im Code unten bei "include file" den Modulnamen anpassen, ggf. die ulId und ulclass für die Submenüs ebenso.

Code: Alles auswählen

{if 0 lt $ulId|strlen}<!-- navigation_correct/template/get.tpl -->{/if}

<ul id="{$ulId}" class="{$ulclass}">

    {foreach from=$tree item=wrapper}
        {assign var="idcat" value=$wrapper.idcat}
        {assign var="url" value=$wrapper.item->getLink()}
        {assign var="name" value=$wrapper.item->get('name')}
        {assign var="idcat" value=$wrapper.item->get('idcat')}
        {assign var="css_level" value=$wrapper.level}
        {if $idcat|in_array:$path}
            {assign var="aClass" value='active'}
        {else}
            {assign var="aClass" value=''}
        {/if}
        <li class="{$aClass}"  id="cat{$idcat}">
            <a href="{$url}" title="{$name}">{$name}</a>
        {if !empty($wrapper.subcats) }
            {include file="navigation_correct/template/get.tpl"
			tree=$wrapper.subcats path=$path ulId="" ulclass=""}
		{/if}
        </li>
     {/foreach}
</ul>

{if 0 lt $ulId|strlen}<!-- /navigation_split/template/get.tpl -->{/if}
LG

matthiasschnueriger
Beiträge: 60
Registriert: Mo 28. Nov 2005, 16:01
Kontaktdaten:

Re: Modul geteile Hauptnavogation 4.9

Beitrag von matthiasschnueriger » Do 29. Aug 2013, 16:39

Vielen Dank, homtata!
Ich Blick bei dieser Syntax noch nicht ganz durch. Da ich davon ausgehe, dass diese über alle 4.9-er Module hinweg so ist: Gibt es irgendwo ein Handbuch mit Erklärungen zur neuen Version?

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Modul geteile Hauptnavogation 4.9

Beitrag von homtata » Do 29. Aug 2013, 16:53

Handbuch weiß ich nicht, aber es gibt eine komplette Doku zur API:
http://api.contenido.org/con490/index.html

Hier kann man alle Klassen einsehen.
Von der Syntax her ist es im Prinzip so, dass mithilfe der Klassen neue Objekte instanziert werden, die dann natürlich verschiedenen Eigenschaften und Befehle dieser Klasse erben.
Auf diese Art werden dann in den Modulen erstmal bestimmte Dinge berechnet.
Diese gibt man an Smarty (den HTML-Erzeuger) weiter, der im Gegensatz zum alten Templatesystem auch logische Syntax "versteht", PHP nicht unähnlich. Man kann dort dann z.B. Schleifen basteln, if-Abfragen machen und die Eigenschaften der Objekte und deren Inhalte hierfür nutzen.
Der Smarty ist ein Plugin, für den es eine eigene Webseite mit Doku gibt: http://www.smarty.net

Es braucht einfach eine Weile, bis einem klar ist, wieviel vorgefertigter Krempel einem inzwischen netterweise zur Verfügung steht - ich mache auch noch viel zu viel umständlich ;-)

matthiasschnueriger
Beiträge: 60
Registriert: Mo 28. Nov 2005, 16:01
Kontaktdaten:

Re: Modul geteile Hauptnavogation 4.9

Beitrag von matthiasschnueriger » Do 29. Aug 2013, 17:00

Ok, muss mich da mal einlesen. Hab bis heute nie davon gehört!
Aber ich gehe davon aus, dass – vorausgesetzt man versteht das Ganze – viele Vorteile hat. :-)

Danke schon mal!

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: Modul geteile Hauptnavogation 4.9

Beitrag von josh » Do 5. Sep 2013, 21:16

Hallo,

könnt ihr den Fehler im Titel beheben?
Modul geteile Hauptnavogation 4.9
Das ist ein o statt i - so kann den Beitrag keiner finden.
Und bitte zu Module verschieben.

Viele Grüße

josh

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: Modul geteilte Hauptnavigation 4.9

Beitrag von josh » Mi 2. Okt 2013, 13:42

Hallo,

kann mir jemand einen Tipp geben wie man an den Wert redirect kommt um target im Template zu setzen?

Danke

josh

josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: Modul geteilte Hauptnavigation 4.9

Beitrag von josh » Do 3. Okt 2013, 21:45

Hallo,

ich habe das inzwischen gelöst. Evtl. kann das ja jemand mal gebrauchen:

Diese Function in Ausgabe einbauen

Code: Alles auswählen

/**
 * Abfrage  der Tabelle con_art_lang ob der Wert redirect gesetzt ist
 * Bei Weiterleitung im neuen Fenster öffnen: Artikel/Eigenschaften
 * Mandanteneinstellungen: articles   show-new-window-checkbox   true
 * @param $lang
 * @return array 
 * Template: {* target *} $redirect[idart] gibt den Wert 0 oder 1 zurueck. 1 = eigenes Fenster
 */
function getArticlesRedirect_top($lang) {

    $cfg = cRegistry::getConfig();
    $db = cRegistry::getDb();

    // get articles redirect from DB
    $sql = '
        SELECT
            idart,
            idlang,
            online,
            redirect
        FROM
            ' . $cfg['tab']['art_lang'] . ' 
        WHERE
            idlang = '.$lang.'
            AND online = 1
        ;';

    $ret = $db->query($sql);

    $array = array();
    if (false !== $ret) {
        while ($db->next_record()) {
            $array[$db->f('idart')] = $db->f('redirect');  
        }
    }
    return $array;
}
An das Template übergeben
$tpl->assign('redirect', getArticlesRedirect_top($lang));
get.tpl ergänzen

Code: Alles auswählen

        {* target *}
        {if $redirect[$wrapper.item->get('startidartlang')] == 1}
            {assign var="target" value='target="_blank"'}
        {else}
            {assign var="target" value=''}
        {/if}

            <a class="navmainStandardLevel_{$level} {$posClass} {$aClass} idcat{$idcatClass}" href="{$url}" {$target} title="{$name}">{$name}</a>
Achtung, beim Einsatz in mehreren Navigationen darf die Function nur einmal vorkommen, also ggf. umbenennen.

Ach ja, vielleicht kann man das einfacher lösen. Dann postet bitte den Code.

Viele Grüße

josh

Antworten