Hallo!
Ich versuche ein Modul zu programmieren.
Wenn ich CMS_VAR und CMS_VALUE verwende um bestimmte Anweisungen zu übergeben, funktioniert das im Input/Vorkonfiguration ohne Probleme.
Jedoch im Output/anschauen der Seite werden bei mir nur teilweise odergar nicht bzw. falsche Werte für CMS_VALUE[x] übergeben.
Wenn ich...
echo "CMS_VALUE[0]";
... bei den mitgelieferten Modulen (Hauptnavigation) einfüge wird mir auch kein Wert zurückgegeben, aber trotzdem funktioniert das Modul bei der Ausgabe der Seite...
Bei mir ist es jetzt so.. gebe ich bei mir...
echo "CMS_VALUE[0]";
... ein so wird mir zwar diese zurückgebeben, aber sobald ich den ersten Link anklicke der idcat=x enthält, wird "CMS_VALUE[0] um eines erhöht, beim zweiten und höher "nicht".
Dabei erhöhe ich in meinem Code nirgendwo die Variable...
Lg,
Harry
Input/Output CMS_VAR[x] CMS_VALUE[x]
-
- Beiträge: 19
- Registriert: Di 5. Aug 2003, 09:43
- Kontaktdaten:
Input/Output CMS_VAR[x] CMS_VALUE[x]
Zuletzt geändert von Harald van Zee am Fr 29. Aug 2003, 08:22, insgesamt 2-mal geändert.
Mfg,
Harald van Zee
Benutze Win 2000; Contenido - WCMS 4321 beta
+ Apache 2.0.47
+ MySQL 4.0.14
+ PHP 4.3.3 rc2 + PEAR
Benutze Linux? (Server); Contenido WCMS 4321 beta
+ Apache 1.3.27
+ MySQL 3.23.54
+ PHP 4.1.2
Harald van Zee
Benutze Win 2000; Contenido - WCMS 4321 beta
+ Apache 2.0.47
+ MySQL 4.0.14
+ PHP 4.3.3 rc2 + PEAR
Benutze Linux? (Server); Contenido WCMS 4321 beta
+ Apache 1.3.27
+ MySQL 3.23.54
+ PHP 4.1.2
-
- Beiträge: 19
- Registriert: Di 5. Aug 2003, 09:43
- Kontaktdaten:
Hallo!
Danke, aber ja, die habe ich neu definiert!
Ich verstehe halt nur nicht, das wenn ich den ersten Link (das vom Modul ausgegeben wird) dann die CMS_VALUE[0] um eines erhöht.
So bekomme ich vom Modul folgende Links/Kategorien vom Baum "Navigation" zurück
Menü 1 (214)
Menü 2 (216)
Menü 3 (277)
Im Menü 1, 2 und 3 gibts wieder Unterpunkte wie Punkt 1.1, 2.1, 3.2 usw.
Der Baum enthält der id 213 (der auch im Modul konfiguriert wurde)
Klicke ich jetzt nur auf Menü 1 wird zwar 214 übergeben, aber eben der id vom Baum wird auch auf 214 erhöht. (ebenfalls mit den Unterpunkten von Menü 1).
Klicke ich aber Menü 2, Menü 3 oder deren unterpunkte bleibt der Baum auch 213.
Hier der Code:
====================================================
/* ALGEMEIN FÜR INPUT UND OUTPUT */
// fetch all categories
$query = "SELECT
A.idcat,
A.level,
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
C.idlang = '$lang' AND
B.idclient = '$client' AND
C.visible=1
ORDER BY
A.idtree
"; // END QUERY
$db->query($query);
while ($db->next_record()) { // CREATE ARRAY OF ALL TREES
$Tidcat = $db->f("idcat");
$Tname = $db->f("name");
$Textern = $db->f("ext");
$Ttarget = $db->f("target");
switch ($db->f("level")) {
case 0: $Tid0 = $Tidcat;
$algo_nav[$Tid0][name] = $Tname;
$algo_nav[$Tid0][extern] = $Text;
$algo_nav[$Tid0][target] = $Ttarget;
break;
case 1: $Tid1 = $Tidcat;
$algo_nav[$Tid0][sub][$Tid1][name] = $Tname;
$algo_nav[$Tid0][sub][$Tid1][extern] = $Textern;
$algo_nav[$Tid0][sub][$Tid1][target] = $Ttarget;
break;
case 2: $Tid2 = $Tidcat;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][name] = $Tname;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][extern] = $Textern;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][target] = $Ttarget;
break;
case 3: $Tid3 = $Tidcat;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][sub][$Tid3][name] = $Tname;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][sub][$Tid3][extern] = $Textern;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][sub][$Tid3][target] = $Ttarget;
break;
default: break;
} // END SWITCH
} // END WHILE
function sub_on($id,$arr) { // CREATE ARRAY FOR WAY OF "ON"
global $nav_on, $idcat; // GIVEN >IDCAT< FROM FRONTEND
foreach ($arr as $k => $e) { // CHECK IF >IDCAT< IS CHILD OF
if ($k == $idcat) // PUT IN ARRAY ALL >IDCAT< FOR "ON"
{ $nav_on = explode(",", $id); $nav_on[] = $k; }
else { sub_on($id.','.$k, $e['sub']); }
}
}
function asubnav($level, $arr) { // CREATE SUBNAVIGATION "FRONTEND"
global $tpl, $sess, $nav_on;
$level++;
foreach ($arr as $k => $e) {
$tpl->reset();
$tpl->set('d', 'NAME', $e['name']);
$tpl->set('d', 'TARGET', $e['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$k));
$tpl->next();
if (in_array($k, $nav_on))
{ $tpl->generate('templates/nav_sub'.$level.'_on.html'); }
else { $tpl->generate('templates/nav_sub'.$level.'_off.html'); }
if (is_array($e['sub'])) { subnav($level, $e['sub']); }
}
}
/* ENDE ALGEMEIN FÜR INPUT UND OUTPUT */
/* OUTPUT */
if (!isset($tpl) || !is_object($tpl))
{
include_once($cfg["path"]["contenido"].'classes/class.template.php');
$tpl = new Template;
}
foreach ($algo_nav as $k => $e) { sub_on($k, $e['sub']); }
echo "<li>"."CMS_VALUE[0]"."</li><li>CMS_VALUE[1]</li>";
echo '<table>';
foreach ($algo_nav as $k0 => $e0) { // ##>>> $algo_nav[CMS_VALUE[0]]['sub']
foreach ($e0['sub'] as $k1 => $e1)
{
$tpl->reset();
$tpl->set('d', 'NAME', $e1['name']);
$tpl->set('d', 'TARGET', $e1['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$k1));
$tpl->next();
if (in_array($k1, $nav_on))
{ $tpl->generate('templates/nav_root_on.html'); }
else { $tpl->generate('templates/nav_root_off.html'); }
if (is_array($e1['sub']))
{ subnav(0, $e1['sub']); }
}}
echo '</table>';
/* ENDE OUTPUT */
mfg,
Harry
Danke, aber ja, die habe ich neu definiert!
Ich verstehe halt nur nicht, das wenn ich den ersten Link (das vom Modul ausgegeben wird) dann die CMS_VALUE[0] um eines erhöht.
So bekomme ich vom Modul folgende Links/Kategorien vom Baum "Navigation" zurück
Menü 1 (214)
Menü 2 (216)
Menü 3 (277)
Im Menü 1, 2 und 3 gibts wieder Unterpunkte wie Punkt 1.1, 2.1, 3.2 usw.
Der Baum enthält der id 213 (der auch im Modul konfiguriert wurde)
Klicke ich jetzt nur auf Menü 1 wird zwar 214 übergeben, aber eben der id vom Baum wird auch auf 214 erhöht. (ebenfalls mit den Unterpunkten von Menü 1).
Klicke ich aber Menü 2, Menü 3 oder deren unterpunkte bleibt der Baum auch 213.
Hier der Code:
====================================================
/* ALGEMEIN FÜR INPUT UND OUTPUT */
// fetch all categories
$query = "SELECT
A.idcat,
A.level,
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
C.idlang = '$lang' AND
B.idclient = '$client' AND
C.visible=1
ORDER BY
A.idtree
"; // END QUERY
$db->query($query);
while ($db->next_record()) { // CREATE ARRAY OF ALL TREES
$Tidcat = $db->f("idcat");
$Tname = $db->f("name");
$Textern = $db->f("ext");
$Ttarget = $db->f("target");
switch ($db->f("level")) {
case 0: $Tid0 = $Tidcat;
$algo_nav[$Tid0][name] = $Tname;
$algo_nav[$Tid0][extern] = $Text;
$algo_nav[$Tid0][target] = $Ttarget;
break;
case 1: $Tid1 = $Tidcat;
$algo_nav[$Tid0][sub][$Tid1][name] = $Tname;
$algo_nav[$Tid0][sub][$Tid1][extern] = $Textern;
$algo_nav[$Tid0][sub][$Tid1][target] = $Ttarget;
break;
case 2: $Tid2 = $Tidcat;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][name] = $Tname;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][extern] = $Textern;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][target] = $Ttarget;
break;
case 3: $Tid3 = $Tidcat;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][sub][$Tid3][name] = $Tname;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][sub][$Tid3][extern] = $Textern;
$algo_nav[$Tid0][sub][$Tid1][sub][$Tid2][sub][$Tid3][target] = $Ttarget;
break;
default: break;
} // END SWITCH
} // END WHILE
function sub_on($id,$arr) { // CREATE ARRAY FOR WAY OF "ON"
global $nav_on, $idcat; // GIVEN >IDCAT< FROM FRONTEND
foreach ($arr as $k => $e) { // CHECK IF >IDCAT< IS CHILD OF
if ($k == $idcat) // PUT IN ARRAY ALL >IDCAT< FOR "ON"
{ $nav_on = explode(",", $id); $nav_on[] = $k; }
else { sub_on($id.','.$k, $e['sub']); }
}
}
function asubnav($level, $arr) { // CREATE SUBNAVIGATION "FRONTEND"
global $tpl, $sess, $nav_on;
$level++;
foreach ($arr as $k => $e) {
$tpl->reset();
$tpl->set('d', 'NAME', $e['name']);
$tpl->set('d', 'TARGET', $e['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$k));
$tpl->next();
if (in_array($k, $nav_on))
{ $tpl->generate('templates/nav_sub'.$level.'_on.html'); }
else { $tpl->generate('templates/nav_sub'.$level.'_off.html'); }
if (is_array($e['sub'])) { subnav($level, $e['sub']); }
}
}
/* ENDE ALGEMEIN FÜR INPUT UND OUTPUT */
/* OUTPUT */
if (!isset($tpl) || !is_object($tpl))
{
include_once($cfg["path"]["contenido"].'classes/class.template.php');
$tpl = new Template;
}
foreach ($algo_nav as $k => $e) { sub_on($k, $e['sub']); }
echo "<li>"."CMS_VALUE[0]"."</li><li>CMS_VALUE[1]</li>";
echo '<table>';
foreach ($algo_nav as $k0 => $e0) { // ##>>> $algo_nav[CMS_VALUE[0]]['sub']
foreach ($e0['sub'] as $k1 => $e1)
{
$tpl->reset();
$tpl->set('d', 'NAME', $e1['name']);
$tpl->set('d', 'TARGET', $e1['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$k1));
$tpl->next();
if (in_array($k1, $nav_on))
{ $tpl->generate('templates/nav_root_on.html'); }
else { $tpl->generate('templates/nav_root_off.html'); }
if (is_array($e1['sub']))
{ subnav(0, $e1['sub']); }
}}
echo '</table>';
/* ENDE OUTPUT */
mfg,
Harry
Mfg,
Harald van Zee
Benutze Win 2000; Contenido - WCMS 4321 beta
+ Apache 2.0.47
+ MySQL 4.0.14
+ PHP 4.3.3 rc2 + PEAR
Benutze Linux? (Server); Contenido WCMS 4321 beta
+ Apache 1.3.27
+ MySQL 3.23.54
+ PHP 4.1.2
Harald van Zee
Benutze Win 2000; Contenido - WCMS 4321 beta
+ Apache 2.0.47
+ MySQL 4.0.14
+ PHP 4.3.3 rc2 + PEAR
Benutze Linux? (Server); Contenido WCMS 4321 beta
+ Apache 1.3.27
+ MySQL 3.23.54
+ PHP 4.1.2