NAVIGATION
This is an old revision of the document!
Certain lines of a navigation replaced by another content.
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
In Site structure -> category in the field CSS Klasse: den Namen der Klasse eintragen, in diesem Beispiel: “separator”.
(Der Text in “Seitenebenen Überschrift” ist frei wählbar und dient lediglich der besseren Übersicht unter ADMIN. Der “Alias der Seitenebene” hat ebenfalls keine Relevanz, darf aber systemweit nicht doppelt vergeben werden.)
Im Script unter --- CUSTOM --- die selbe Klasse eintragen, hier
$class = 'separator';
Im Script unter --- CUSTOM --- die ersetzende Syntax eintragen, hier z.B.:
$replacer = '<div style="width:80px;display:block;border:1px solid gray;color:gray">Tzzz Tzzz</div>';
<note> Alles zwischen <li class=".....$class"> und dem nächsten </ li> wird ersetzt durch die Zeichenfolge aus $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 ]---------------- ?>