Input/Output CMS_VAR[x] CMS_VALUE[x]

Gesperrt
Harald van Zee
Beiträge: 19
Registriert: Di 5. Aug 2003, 09:43
Kontaktdaten:

Input/Output CMS_VAR[x] CMS_VALUE[x]

Beitrag von Harald van Zee » Mi 27. Aug 2003, 09:38

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
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

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Do 28. Aug 2003, 12:51

Enthschuldige ggf. die dumme Frage:

Hast Du daran gedacht, nach Änderung des Moduls das Template, in welchem das Modul verwendet wird, der Kategorie bzw. dem Artikel erneut zuzuweisen?

Gruß
HerrB

Harald van Zee
Beiträge: 19
Registriert: Di 5. Aug 2003, 09:43
Kontaktdaten:

Beitrag von Harald van Zee » Fr 29. Aug 2003, 08:37

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
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

Gesperrt