Hiho,
ich habe bei mir den Output im Hauptnavimodul der 4.6.4 auf UL-Listen umgeschrieben und aus diesem Grund nur
durch die
Code: Alles auswählen
front_content.php?idcatart=".navidcatart($data['idcat'])."
ersetzten geschrieben.
Wo dieses nun in euren, eventuell ebenfalls angepassten Modulen vorkommt kann ich nicht sagen. Im Original Hauptnavi-Modul der 4.6.4 müsste man
Code: Alles auswählen
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
durch
Code: Alles auswählen
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcatart='.navidcatart($data['idcat'])));
ersetzen.
Die komplette Zeile heist zum Beispiel in meiner Version original mit der idcat:
Code: Alles auswählen
echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_1\">".$data['name']."</span></a>";
und in der Version mit der idcatart:
Code: Alles auswählen
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_1\">".$data['name']."</span></a>";
Der komplette Outputbereich sieht bei mir nun folgendermaßen aus:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Hauptnavigation
* Author(s) : Jan Lengowski, Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005
* Modify by : ralf fleischer (ralf.fleischer@xtended-cooperation.de) 26.12.2005
************************************************/
#System properties in use:
#Type: navigation, Name: idcat_homepage
#Contains idcat of tree to be displayed in main navigation
#Includes
cInclude("frontend", "includes/functions.navigation.php");
#If no tree is selected, use client setting
$start_cat = "CMS_VALUE[0]";
if ($start_cat=='') {
$cApiClient = new cApiClient($client);
$start_cat = $cApiClient->getProperty('navigation','idcat_homepage');
}
if ( !is_object($db2) ) {
$db2 = new DB_Contenido;
}
/**
* Check if a category is child
* of another category
*
* @return boolean true/false
* @author Jan Lengowski <Jan.Lengowski@4fb.de>
* @copyright four for business AG 2003
*/
function catIsChildOf($id, $idparent) {
global $cfg, $client, $lang;
$db = new DB_Contenido;
$parent = $id;
while ( $parent != 0 ) {
$sql = "SELECT
a.parentid
FROM
".$cfg["tab"]["cat"]." AS a,
".$cfg["tab"]["cat_lang"]." AS b
WHERE
a.idclient = '".$client."' AND
b.idlang = '".$lang."' AND
a.idcat = b.idcat AND
a.idcat = '".$parent."'";
$db->query($sql);
$db->next_record();
$parent = $db->f("parentid");
if ($parent == $idparent) {
return true;
}
}
return false;
}
if ( catIsChildOf($idcat, $start_cat) ) {
$sel_idcat = $idcat;
} else {
$sel_idcat = $start_cat;
}
/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');
/**
* Array storing alle the
* navigation data
*/
$navitems = array();
/* Template Instance */
$tpl = new Template;
/**
* Recursive function for creating
* the navigation array
* @param Int $idcat Category id
*/
function nav($idcat) {
global $navitems, $client, $lang, $cfg, $start_cat;
$db = new DB_Contenido;
$db2 = new DB_Contenido;
$sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat = '$idcat'";
$db->query($sql);
$db->next_record();
$parentid = $db->f("parentid");
if ( $parentid == 0 ) {
if ( $idcat != $start_cat ){
$navitems = array();
$sql = "SELECT
A.idcat,
C.name
C.public,
C.idcatlang
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '$client' AND
C.idlang = '$lang' AND
C.visible = '1' AND
B.parentid = '".$start_cat."'
ORDER
BY A.idtree";
$db->query($sql);
while ($db->next_record()) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext,
a.idartlang AS idartlang
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$flag = false;
while ($db2->next_record()&&!$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target,
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"));
}
}
}
}
return true;
}
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '$client' AND
C.idlang = '$lang' AND
C.visible = '1' AND
B.parentid = '$parentid'
ORDER BY
A.idtree";
$db->query($sql);
while ($db->next_record()) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext,
a.idartlang AS idartlang
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$flag = false;
while ($db2->next_record() && !$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$tmp_nav[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
$tmp_nav[$idcat]["sub"] = $navitems;
$navitems = $tmp_nav;
/* Function call */
nav($parentid);
} // end function
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '$client' AND
C.idlang = '$lang' AND
C.visible = '1' AND
B.parentid = '$sel_idcat'
ORDER BY
A.idtree";
$db->query($sql);
while ( $db->next_record() ) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext,
a.idartlang AS idartlang
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
#$db2->next_record();
$flag = false;
while ($db2->next_record()&&!$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
$cApiClient = new cApiClient($client);
$sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}
nav($sel_idcat);
/* Start Output buffer */
ob_start();
// Funktion zum umwandeln der idcat in idcatart
function navidcatart($idcat) {
global $navitems, $client, $lang, $cfg, $start_cat;
$db = new DB_Contenido;
$sql="SELECT
A.idcat,
A.idlang,
A.startidartlang,
B.idartlang,
B.idart,
C.idart,
C.idcatart
FROM
".$cfg["tab"]["cat_lang"]." AS A,
".$cfg["tab"]["art_lang"]." AS B,
".$cfg["tab"]["cat_art"]." AS C
WHERE
B.idartlang=A.startidartlang AND
C.idart=B.idart AND
A.idlang=".$lang." AND
A.idcat=".$idcat;
//echo $sql;
$db->query($sql);
while ( $db->next_record() ) {
$navidcatart=$db->f("idcatart");
}
return $navidcatart;
}
echo "\n<ul class=\"navi_eins\">\n"; // Start erstes Listenelement
foreach ($navitems as $key => $data) {
/* 1. Navigation level */
if (checkCatPermission($data['idcatlang'],$data['public'])) {
echo "\t<li>";
if ($idcat == $data['idcat']) {
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_1\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_1\">".$data['name']."</span></a>";
}elseif(is_array($data['sub'])){
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_open\" title=\"".$data['name']."\"><span class=\"navi_ebene_1\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_open\" title=\"".$data['name']."\"><span class=\"navi_ebene_1\">".$data['name']."</span></a>";
} else {
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_passive\" title=\"".$data['name']."\"><span class=\"navi_ebene_1\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_passive\" title=\"".$data['name']."\"><span class=\"navi_ebene_1\">".$data['name']."</span></a>";
}
/* 2. Navigation level */
if (is_array($data['sub']) AND count($data['sub'])>0) {
echo "\n\t<ul class=\"navi_zwei\">\n"; // Start zweites Listenelement
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
echo "\t\t<li>";
if ($idcat == $data['idcat']) {
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_2\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_2\">".$data['name']."</span></a>";
}elseif(is_array($data['sub'])){
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_open\" title=\"".$data['name']."\"><span class=\"navi_ebene_2\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_open\" title=\"".$data['name']."\"><span class=\"navi_ebene_2\">".$data['name']."</span></a>";
} else {
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_passive\" title=\"".$data['name']."\"><span class=\"navi_ebene_2\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_passive\" title=\"".$data['name']."\"><span class=\"navi_ebene_2\">".$data['name']."</span></a>";
}
/* 3. Navigation level */
if (is_array($data['sub']) AND count($data['sub'])>0) {
echo "\n\t\t<ul class=\"navi_drei\">\n"; // Start drittes Listenelement
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
echo "\t\t\t<li>";
if ($idcat == $data['idcat']) {
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_3\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_3\">".$data['name']."</span></a>";
}elseif(is_array($data['sub'])){
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_open\" title=\"".$data['name']."\"><span class=\"navi_ebene_3\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_open\" title=\"".$data['name']."\"><span class=\"navi_ebene_3\">".$data['name']."</span></a>";
} else {
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_passive\" title=\"".$data['name']."\"><span class=\"navi_ebene_3\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_passive\" title=\"".$data['name']."\"><span class=\"navi_ebene_3\">".$data['name']."</span></a>";
}
/* 4. Navigation level */
if (is_array($data['sub']) AND count($data['sub'])>0) {
echo "\n\t\t\t<ul class=\"navi_vier\">\n"; // Start viertes Listenelement
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
echo "\t\t\t\t<li>";
if ($idcat == $data['idcat']) {
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_4\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_4\">".$data['name']."</span></a>";
}elseif(is_array($data['sub'])){
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_open\" title=\"".$data['name']."\"><span class=\"navi_ebene_4\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_open\" title=\"".$data['name']."\"><span class=\"navi_ebene_4\">".$data['name']."</span></a>";
} else {
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_passive\" title=\"".$data['name']."\"><span class=\"navi_ebene_4\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_passive\" title=\"".$data['name']."\"><span class=\"navi_ebene_4\">".$data['name']."</span></a>";
}
/* 5. Navigation level */
if (is_array($data['sub']) AND count($data['sub'])>0) {
echo "\n\t\t\t\t<ul class=\"navi_fuenf\">\n"; // Start fünftes Listenelement
foreach ($data['sub'] as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
echo "\t\t\t\t\t<li>";
if ($idcat == $data['idcat']) {
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_5\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_active\" title=\"".$data['name']."\"><span class=\"navi_ebene_5\">".$data['name']."</span></a>";
}elseif(is_array($data['sub'])){
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_open\" title=\"".$data['name']."\"><span class=\"navi_ebene_5\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_open\" title=\"".$data['name']."\"><span class=\"navi_ebene_5\">".$data['name']."</span></a>";
} else {
//echo "<a href=\"front_content.php?idcat=".$data['idcat']."\" target=\"".$data['target']."\" class=\"navileft_passive\" title=\"".$data['name']."\"><span class=\"navi_ebene_5\">".$data['name']."</span></a>";
echo "<a href=\"front_content.php?idcatart=".navidcatart($data['idcat'])."\" target=\"".$data['target']."\" class=\"navileft_passive\" title=\"".$data['name']."\"><span class=\"navi_ebene_5\">".$data['name']."</span></a>";
}
} // end if
echo "</li>\n";
} // end foreach
echo "\t\t\t\t</ul>\n\t\t\t\t"; // Ende fünftes Listenelement
} // end if
} // end if
echo "</li>\n";
} // end foreach
echo "\t\t\t</ul>\n\t\t\t"; // Ende viertes Listenelement
} // end if
} // end if
echo "</li>\n";
} // end foreach
echo "\t\t</ul>\n\t\t"; // Ende drittes Listenelement
} // end if
} // end if
echo "</li>\n";
} // end foreach
echo "\t</ul>\n\t"; // Ende zweites Listenelement
} // end if
} // end if
echo "</li>\n";
} // end foreach
echo "</ul>\n"; // Ende erstes Listenelement
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo $html;
?>
Ich habe es bei mir ohne probleme am laufen. Die Ausgabe im Quelltext ist dann als Beispiel mit aktivierten modrewrite wie folgt unter:
http://www.xtended-cooperation.de/cms/u ... v4.6.4.htm
gruß yodatortenboxer