NAVIGATION
This is an old revision of the document!
Alternative Möglickeit ein Brotkrümel-Menü zu erzeugen.
Es wird zusätzlich der Artikeltitel ausgegeben. (Zwei Ausführungen, {BREADCRUMB_ARTICLE} und {BREADCRUMB_ARTICLE:[X]} (mit Start-Level)).
{BREADCRUMB_ARTICLE} Die Ausgabe beginnt immer im Level 0
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
Version: V1.0
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 * V1.0 * 2009/07/11 Oliver Georgi * * Forum: http://forum.phpwcms.org/viewtopic.php?p=118076#p118076 * Condition V1.4.2 r334 * * Tag: {BREADCRUMB_ARTICLE} - ---------------------------------------------------------------------------- */ if(strpos($content['all'], '{BREADCRUMB_ARTICLE}')) { $_breadcrumb_spacer = ' > '; $_breadcrumb_link_prefix = '<b>'; $_breadcrumb_link_suffix = '</b>'; $_breadcrumb_link_attribute = 'class="breadcrumb-link"'; $_breadcrumb = array(); foreach($LEVEL_ID as $item) { 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. 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).
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"]); } } ?>