Seite 1 von 1
2 gleiche Module innerhalb eines Templates laufen lassen
Verfasst: Sa 25. Nov 2006, 16:18
von KreativeStube.de
Seid gegrüsst,
hiermit möchte ich anfragen ob es möglich ist, ein und das selbe Modul, wenn man Änderungen vornimmt, innerhalb eines Templates laufen zu lassen.
Ich habe auf meiner Seite oben eine Navigation welche ich aus einem Baum auswählen möchte und rechts. Die Bäume oben und rechts unterscheiden sich allerdings.
Ich nutze das folgende Modul da die CSS Anpassung sauber und leicht ist:
http://www.x28.de/front_content.php?cli ... =390&m=&s=
Leider erhalte ich nach einbinden folgende Fehlermeldung bei der rechten Navigation:
Fatal error: Cannot redeclare catischildof() (previously declared in /home/www/web101/html/cms/front_content.php(792) : eval()'d code:37) in /home/www/web101/html/cms/front_content.php(792) : eval()'d code on line 438
Die Module haben bei mir 2 unterschiedliche Namen. Ich dachte eigentlich, abgesehen von der CSS Formatierung, das dies reichen würde. Falsch gedacht.
Bin über jeden Tipp dankbar
Lieben Gruss,
Marco
Verfasst: Sa 25. Nov 2006, 17:11
von emergence
ich möchte dir zwar nicht nahe treten, aber das wurde zu genüge im forum erörtert...
bemühe bitte die suchfunktion mit den begriffen
redeclare catischildof (Nach allen Wörtern suchen)
Verfasst: Sa 25. Nov 2006, 17:25
von KreativeStube.de
emergence hat geschrieben:ich möchte dir zwar nicht nahe treten, aber das wurde zu genüge im forum erörtert...
bemühe bitte die suchfunktion mit den begriffen
redeclare catischildof (Nach allen Wörtern suchen)
vielen dank, dann werde ich dort - was ich aber schon gemacht habe - weitersuchen. dort geht es zu 90% um eine gesplittete hauptnavigation. dies ist aber bei meiner problematic nicht der fall, denn die hauptnavi wäre die 3. navi die allerdings einwandfrei läuft.
thema kann geschlossen werden.
gruss,
marco
Verfasst: So 26. Nov 2006, 11:00
von KreativeStube.de
Guten morgen zusammen,
habe im Forum jetzt die Suche benutzt, alles gemacht wie in vielen Threads beschrieben (obwohl es meistens eine andere Problematik war) habe jetzt zwar keine Fehlermeldung mehr, allerdings sind die Menüpunkte in den beiden Navigationen jetzt identisch. Allerdings sollen oben und rechts 2 unterschiedliche Bäume angezeigt werden. Im Backend sind auch 2 unteschiedliche Bäume ausgewählt.
Habe den Code (Output) wie folgt geändert!
Code: Alles auswählen
<?php
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
* ergänzung: ohne Templates, nur css
* Frank Hoffmann - www.x28.de
*/
function catIsChildOf2($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 ( catIsChildOf2($idcat, CMS_VALUE[0]) ) {
$sel_idcat = $idcat;
} else {
$sel_idcat = CMS_VALUE[0];
}
/**
* Array storing alle the
* navigation data
*/
$navitems = array();
/**
* Recursive function for creating
* the navigation array
* @param Int $idcat Category id
*/
function nav2($idcat) {
global $navitems, $client, $lang, $cfg;
$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 != CMS_VALUE[0] ){
$navitems = array();
$sql = "SELECT
A.idcat,
C.name
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 = 'CMS_VALUE[0]'
ORDER
BY A.idtree";
$db->query($sql);
while ($db->next_record()) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext
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
b.is_start = '1' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$db2->next_record();
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target);
}
}
return true;
}
$sql = "SELECT
A.idcat,
C.name
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
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
b.is_start = '1' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$db2->next_record();
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$tmp_nav[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target);
}
$tmp_nav[$idcat]["sub"] = $navitems;
$navitems = $tmp_nav;
/* Function call */
nav($parentid);
} // end function
$sql = "SELECT
A.idcat,
C.name
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
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
b.is_start = '1' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$db2->next_record();
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target);
}
/* Create Navigation Array */
nav($sel_idcat);
/* Start Output buffer */
ob_start();
echo '<div id="navbar">';
echo '<ul>';
foreach ($navitems as $key => $data) {
/* 1. Navigations Ebene */
if ($data['idcat'] == $idcat) {
echo '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" id="navactive1" target="'.$data['target'].'">'.$data['name'].'</a></li>';
}
else {
echo '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" id="nav1" target="'.$data['target'].'">'.$data['name'].'</a></li>';
}
if (is_array($data['sub'])) {
echo '<ul id="subnavlist">';
foreach ($data['sub'] as $key => $data) {
/* 2. Navigations Ebene */
if ($data['idcat'] == $idcat) {
echo '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" id="navactive2" target="'.$data['target'].'">'.$data['name'].'</a></li>';
}
else {
echo '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" id="nav2" target="'.$data['target'].'">'.$data['name'].'</a></li>';
}
if (is_array($data['sub'])) {
echo '<ul id="subsubnavlist">';
foreach ($data['sub'] as $key => $data) {
/* 3. Navigations Ebene */
if ($data['idcat'] == $idcat) {
echo '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" id="navactive3" target="'.$data['target'].'">'.$data['name'].'</a></li>';
}
else {
echo '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" id="nav3" target="'.$data['target'].'">'.$data['name'].'</a></li>';
}
} // end foreach
echo '</ul>';
} // end if
} // end foreach
echo '</ul>';
} // end if
} // end foreach
echo '</ul>';
echo '</div>';
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo $html;
?>
Edit: gelöst, kann geschlossen werden