NAVIGATION
Alternative Möglickeit ein Brotkrümel-Menü zu erzeugen.
Es wird zusätzlich der Artikeltitel ausgegeben.
Diese Ausführung arbeitet levelbasiert gegenüber dem eingebauten ID-basierten BREADCRUMB.
(Zwei Ausführungen, {BREADCRUMB_ARTICLE} (mit Start-Level im RT) and {BREADCRUMB_ARTICLE:[X]} (mit Start-Level im TAG)).
Sie können ein Start-Level definieren, ab dem die Ausgabe beginnt. (Mit Level ist hier nicht die ID einer Kategorie gemeint, sondern die Nummer der Abstufung der Ebenen zueinander, siehe Grundlage Level und ID).
Empfehlung: Wenn nur ein Start-Level auf allen Seiten verwendet wird, sollte die erste Variante von BREADCRUMB_ARTICLE verwendet werden.
{BREADCRUMB_ARTICLE} Die Ausgabe beginnt im eingestellten Level im RT $_breadcrumb_start_level = [Level];
Home > category_01 > category_01_03 > category_01_03_02 > Article-alias-Cat_01_03_03
rt_breadcrumb_article V1.0 2009/07/11
Docu: –
Forum: http://forum.phpwcms.org/viewtopic.php?p=118076#p118076
Autor: Oliver Georgi http://phpwcms.de
CMS Version: >= 1.4.2 r334
Update: 2009/07/12 OG to V1.1 (Start-Level im RT hinzugefügt)
Version: V1.1
Tag: {BREADCRUMB_ARTICLE}
Dateiname: rt_breadcrumb_article.php
Verzeichnis: template/inc_script/frontend_render/
Bedingung: → /config/phpwcms/conf.inc.php
<?php /** ---------------------------------------------------------------------------- * Alternative way of building a breadcrumb * It will show article title too and act different when in article list mode * This works different from default breadcrumb because it is level based * * (c) 07/12/2009 Oliver Georgi * * V1.1 * * Forum: http://forum.phpwcms.org/viewtopic.php?p=118076#p118076 * Condition V1.4.2 r334 * * Tag: {BREADCRUMB_ARTICLE} * ---------------------------------------------------------------------------- */ // ----------------------------------------------------------------------------- // OBLIGATE CHECK FOR PHPWCMS CONSTANTS if (!defined('PHPWCMS_ROOT')) {die("You Cannot Access This Script Directly, Have a Nice Day.");} // ----------------------------------------------------------------------------- if(strpos($content['all'], '{BREADCRUMB_ARTICLE}')) { // Set level where to start with breadcrumb - default 0 = Root level $_breadcrumb_start_level = 0; // Separate Breadcrumb items with $_breadcrumb_spacer = ' > '; // Wrap inner link text by prefix/suffix <a> %PREFIX% Linktext %SUFFIX% </a> $_breadcrumb_link_prefix = '<b>'; $_breadcrumb_link_suffix = '</b>'; // additional link attributes like class, rel, style // remember there is no active link - active (last) item has no link $_breadcrumb_link_attribute = 'class="breadcrumb-link"'; ////// Do not edit below //////// $_breadcrumb = array(); if(count($LEVEL_ID) > $_breadcrumb_start_level) { foreach($LEVEL_ID as $level => $item) { if($level < $_breadcrumb_start_level) { continue; } if($content['struct'][$item]["acat_hidden"] == false) { $_breadcrumb[] = getStructureLevelLink( ($content['cat_id'] == $item && $content['list_mode']) ? $content['struct'][$item]['acat_name'] : $content['struct'][$item], $_breadcrumb_link_attribute, $_breadcrumb_link_prefix, $_breadcrumb_link_suffix ); } } } // Article if($aktion[1]) { $_breadcrumb[] = html_specialchars( $content['article_title'] ); } $_breadcrumb = implode($_breadcrumb_spacer, array_diff( $_breadcrumb , array('', NULL) ) ); $content['all'] = str_replace('{BREADCRUMB_ARTICLE}', $_breadcrumb, $content['all']); } ?>
{BREADCRUMB_ARTICLE:[Start-Level]}
Erweiterte Version des vorherigen RTs. Das Start-Level wird im aufrufenden TAG übergeben. Z.B. mit der gegebenen Struktur:
{BREADCRUMB_ARTICLE:0} Die Ausgabe beginnt in Level 0
Home > category_01 > category_01_03 > category_01_03_02 > Article-alias-Cat_01_03_03
{BREADCRUMB_ARTICLE:2} Die Ausgabe beginnt in Level 2
category_01 > category_01_03 > category_01_03_02 > Article-alias-Cat_01_03_03
{BREADCRUMB_ARTICLE:3} Die Ausgabe beginnt in Level 3
category_01_03_02 > Article-alias-Cat_01_03_03
rt_breadcrumb_article_start V1.1 2009/07/11
Docu: –
Forum: http://forum.phpwcms.org/viewtopic.php?p=118076#p118076
Autor: Oliver Georgi http://phpwcms.de
Enhanced by: K.Heermann (flip-flop) http://planmatrix.de
CMS Version: >= 1.4.2 r334
Version: V1.1
Tag: {BREADCRUMB_ARTICLE:[start-level]}
Dateiname: rt_breadcrumb_article_start.php
Verzeichnis: template/inc_script/frontend_render/
Bedingung: → /config/phpwcms/conf.inc.php
<?php /** ---------------------------------------------------------------------------- * Alternative way of building a breadcrumb * It will show article title too and act different when in article list mode * V1.1 Enhanced version * 2009/07/11 Oliver Georgi * 2009/07/11 Enhanced by K.Heermann: Start-level * * Forum: http://forum.phpwcms.org/viewtopic.php?p=118076#p118076 * Condition V1.4.2 r334 * * Tag: {BREADCRUMB_ARTICLE:[start-level]} - ---------------------------------------------------------------------------- */ // ----------------------------------------------------------------------------- // OBLIGATE CHECK FOR PHPWCMS CONSTANTS if (!defined('PHPWCMS_ROOT')) {die("You Cannot Access This Script Directly, Have a Nice Day.");} // ----------------------------------------------------------------------------- if(strpos($content['all'], '{BREADCRUMB_ARTICLE')) { $content["all"] = str_replace('{BREADCRUMB_ARTICLE}', '{BREADCRUMB_ARTICLE:0}', $content["all"]); preg_match_all ('/\{BREADCRUMB_ARTICLE:(\d+)\}/e', $content["all"], $matches); $_breadcrumb_spacer = ' > '; // $_breadcrumb_spacer = $template_default["breadcrumb_spacer"]; $_breadcrumb_link_prefix = '<b>'; $_breadcrumb_link_suffix = '</b>'; $_breadcrumb_link_attribute = 'class="breadcrumb-link"'; // $matches[1][X] = startlevel of {BREADCRUMB:[X]} // $matches[1][0,1,2,3...] = Count of {BREADCRUMB:[X]} tags foreach ($matches[1] as $key_start => $item_start) { // More than one breadcrumb tags? $_breadcrumb = array(); foreach($LEVEL_ID as $key => $item) { if( ($content['struct'][$item]["acat_hidden"] == false) AND ($matches[1][$key_start] <= $key) ) { // start level <= level $_breadcrumb[] = getStructureLevelLink( // Two output versions. Enable/disable the two following lines and vice versa // ---- all categories have a link tag besides at article listing // ($content['cat_id'] == $item && $content['list_mode']) ? $content['struct'][$item]['acat_name'] : $content['struct'][$item], // ---- // ==== All categories have a link tag at all $content['struct'][$item], // ==== $_breadcrumb_link_attribute, $_breadcrumb_link_prefix, $_breadcrumb_link_suffix ); } } // Article: if there is a category set if($aktion[1] AND !empty($_breadcrumb)) { $_breadcrumb[] = html_specialchars( $content['article_title'] ); } $_breadcrumb = implode($_breadcrumb_spacer, array_diff( $_breadcrumb , array('', NULL) ) ); $content["all"] = preg_replace('/\{BREADCRUMB_ARTICLE\:'.$matches[1][$key_start].'\}/', $_breadcrumb, $content["all"]); } } ?>