Certain lines of a navigation replaced by another content.
better translate
With this RT you are able to replace identified rows in a navigation (NAV_LIST_UL) with specified content from the script. The cement lines or categories are determined by an entry in the field CLASS-defined in category.
This is for example useful when a blank line is required in a vertical navigation.
Source:
<ul> <li class="sub_parent"> <a href="index.php?index" title="Home">Home</a></li> <li class="sub_no sub_first separator">Tzzz Tzzz</li> <li class="sub_no"> <a href="index.php?category01" title="Category01">Category01 Lang</a></li> <li class="sub_no"> <a href="index.php?category02" title="Category02">Category02</a></li> <li class="sub_no separator"> Tzzz Tzzz</li> <li class="sub_no"> <a href="index.php?category03" title="Category03">Category03</a></li> <li class="sub_no"> <a href="index.php?category04" title="Category04">Category04</a></li> </ul>
rt_nav_link_replace.php V1.0 30.09.11
Docu: –
Forum: Re: Navigations Menü
Author: K.Heermann (flip-flop) http://planmatrix.de
CMS Version: >= 1.47
Version: V1.0
TAG: –
filename: rt_nav_link_replace.php
Folder: template/inc_script/frontend_render/
Condition: → /config/phpwcms/conf.inc.php
Highlight the NAVI to search in the template with the identifiers <!--NAVI01_START/END-->
<!--NAVI01_START-->{NAV_LIST_UL:P,0....}<!--NAVI01_END-->
(for short runtime)
View ADMIN -> Site structure
Insert in Site structure -> category in the field CSS class: the name of the class, in this example: “separator”.
(The text in the “category title” is arbitrary and is merely for a better overview on the point ADMIN. The entry in “alias tihs category” also has no relevance, but may not be duplicated throughout the system.)
In Sript under --- CUSTOM --- enter the same class, in this case
$class = 'separator';
In Script under --- CUSTOM --- enter the replacing syntax, in this case e.g.:
$replacer = '<div style="width:80px;display:block;border:1px solid gray;color:gray">Tzzz Tzzz</div>';
<note> Everything between <li class=".....$class"> and the next </ li> will be replaced by the string from the var $replacer. </note>
From the original:
<!--NAVI01_START--> <ul> <li class="sub_parent"> <a href="index.php?index" title="Home">Home</a></li> <li class="sub_no sub_first separator"><a href="index.php?trenner-1" title="--- separator">--- separator</a></li> <li class="sub_no"> <a href="index.php?category01" title="Category01 Lang">Category01 Lang</a></li> <li class="sub_no"> <a href="index.php?category02" title="Category02">Category02</a></li> <li class="sub_no separator"> <a href="index.php?trenner-2" title="--- separator">--- separator</a></li> <li class="sub_no"> <a href="index.php?category03" title="Category03">Category03</a></li> <li class="sub_no"> <a href="index.php?category04" title="Category04">Category04</a></li> </ul> <!--NAVI01_END-->
wird mit dem unten angegebenen Script:
<ul> <li class="sub_parent"> <a href="index.php?index" title="Home">Home</a></li> <li class="sub_no sub_first separator"><div style="border: 1px solid gray; width: 80px; display: block; color: gray;">Tzzz Tzzz</div></li> <li class="sub_no"> <a href="index.php?category01" title="Category01 Lang">Category01 Lang</a></li> <li class="sub_no"> <a href="index.php?category02" title="Category02">Category02</a></li> <li class="sub_no separator"> <div style="border: 1px solid gray; width: 80px; display: block; color: gray;">Tzzz Tzzz</div></li> <li class="sub_no"> <a href="index.php?category03" title="Category03">Category03</a></li> <li class="sub_no"> <a href="index.php?category04" title="Category04">Category04</a></li> </ul>
<?php /******************************************************************************* Replacing the link of a navigation point in NAV_LIST_UL generated navigations V1.0 30.09.11 K.Heermann (flip-flop) - The navi area to be searched is marked with: <!--NAVI01_START-->{NAV_LIST_UL:P,0....}<!--NAVI01_END--> - Put in the same class name in "site structure -> CSS class:" and further down in the customer area ($class). - Put in the part that is to be inserted ($replacer). Everything between <li class=".....$class"> and the next </ li> is replaced by the Replacer ********************************************************************************/ // ----------------------------------------------------------------------------- // obligate check for phpwcms constants if (!defined('PHPWCMS_ROOT')) { die("You Cannot Access This Script Directly, Have a Nice Day.");} // ----------------------------------------------------------------------------- if (strpos($content['all'], '<!--NAVI01_START-->')) { // ------ CUSTOM --------- $class = 'separator'; $replacer = '<div style="width:80px;display:block;border:1px solid gray;color:gray">Tzzz Tzzz</div>'; // Catch the NAVI01 area preg_match_all('/\<!--NAVI01_START--\>(.*?)\<!--NAVI01_END--\>/ism',$content['all'], $navi); if ($navi[1][0]) { // is there any content? // Find the lines and replace the content $navi[1][0] = preg_replace('/\<li class="(.*?)'.$class.'"\>(.*?)\<\/li\>/ism','<li class="$1'.$class.'">'.$replacer.'</li>',$navi[1][0]); // Insert back into html source $content['all'] = preg_replace('/\<!--NAVI01_START--\>(.*?)\<!--NAVI01_END--\>/ism',$navi[1][0],$content['all']); } } // -----------[ CLOSE ]---------------- ?>