Probleme mit CMS_VALUE

Gesperrt
BA-media
Beiträge: 15
Registriert: Mo 1. Aug 2005, 08:24
Kontaktdaten:

Probleme mit CMS_VALUE

Beitrag von BA-media »

Hallo zusammen,
hab ein kleines Problem mit der Ausgabe von CMS_VALUE über eine Schleife.
Ich erstell einen SQL Befehlt welcher x WHERE Klauseln enthält

Das ganze Modul macht es möglich aus X Kategorien x Artikel anzuzuzeigen. Kurz um eine Artikelliste über mehrere Kategorien.

Code: Alles auswählen

....
....
while($i_cat_end > $i_cat){
		$i_cat++;
		$query .= '(CATART.idcat = "CMS_VALUE['. $i_cat .']")<br>';
		if(($cat_num >= '1') && ($i_cat_end != $i_cat)){
			$query .= ' OR ';
		}
	}
...
...
Wie krieg ich es hin das mit Contenido den Wert des jeweiligen CMS_VALUE[x] in den SQL Befehl einbaut. Bekomme nähmlich nur folgende Ausgabe:
...
$C11CMS_VALUE[7]
$C11CMS_VALUE[8]
$C11CMS_VALUE[9]
...

Danke schon mal
für eure Hilfe

Mfg

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

Beitrag von HerrB »

Grundsätzlich ist das so in Ordnung. Allerdings sollten die CMS-Werte dann auch wieder durch die im Input festgelegten Werte ersetzt werden.

Ohne auf das Problem weiter einzugehen, würde ich Dir aber empfehlen, die gewünschten Daten bereits "serialized" in einer CMS_VALUE-Variable zu speichern. Z.B. über ein wenig Javascript im Input-Bereich (ich kann Dir da gerne ein Beispiel nennen).

In der Abfrage kannst Du dann "CATART.idcat IN (<Werte-Liste>)" verwenden. Ich glaube, so ein Konstrukt habe ich sogar bei dem Modul "Articles per Category" verwendet. Hier: http://www.contenido.org/forum/viewtopi ... t=category

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
BA-media
Beiträge: 15
Registriert: Mo 1. Aug 2005, 08:24
Kontaktdaten:

Anbei mal mein Modul

Beitrag von BA-media »

Die Werte werden nur leider nicht ersetzt, nur warum ?

Anbei mal mein Input und Output

INPUT

Code: Alles auswählen

$cat_num = "CMS_VALUE[1]"; // Anzahl der Kategorien die dursucht werden sollen
echo '      <table cellspacing="0" cellpadding="10" border="0">',chr(10);
echo '        <tr valign="top">',chr(10);
echo '          <td class="text_medium">Anzahl der Kategorien die durchsucht werden sollen:</td>',chr(10);
echo '          <td class="text_medium"><input type="text" name="CMS_VAR[1]" value="CMS_VALUE[1]" onChange="tplcfgform.submit();">',chr(10);

if ($cat_num != "0" && $cat_num != "") {
	$cat_num = $cat_num+6;
	$i_selects=7;

	// fetch all categorys
	$query =  "SELECT A.idcat, A.level, C.name FROM ".$cfg["tab"]["cat_tree"]." AS A, ";
	$query .= $cfg["tab"]["cat"]." AS B,  ".$cfg["tab"]["cat_lang"]." AS C WHERE A.idcat=B.idcat ";
	$query .= "AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ";
	$query .= "AND C.visible=1 ORDER BY A.idtree";

	while($i_selects<=$cat_num){
		// execute query
		$db->query($query);

		$selected = $CMS_VALUE[$i_selects]; // ausgewählte Kategorie
		echo '        <tr valign="top">',chr(10);
		echo '          <td class="text_medium">Kategorie w&auml;hlen:</td>',chr(10);
		echo '          <td class="text_medium"><select name="CMS_VAR['.$i_selects.']">',chr(10);
		if ($selected != "0" && $selected != "") {
   			echo '       <option value="0">--- kein ---</option>',chr(10);
		} else {
   			echo '       <option selected="selected" value="0">--- kein ---</option>',chr(10);
		}

		// loop result and build the options
		while ($db->next_record()) {
		   $spaces = "|";               // indent spacer
		   $levels = $db->f("level");   // how many levels

		   for ($i = 0; $i < $levels; $i++) {
			  $spaces = $spaces . "--"; // add 2 spaces for every level
		   }

		   $spaces .= ">";

		   if ($selected == $db->f("idcat")) {
			  // selected category
			  echo '<option selected="selected" value="'. $db->f("idcat") .'">'. $spaces . $db->f("name") .'</option>',chr(10);
		   } else {
			  // category
			  echo '<option value="'. $db->f("idcat") .'">'. $spaces . $db->f("name") .'</option>',chr(10);
		   }
		}
		reset($db);

		echo '           </select>',chr(10);
		echo '          </td>',chr(10);
		echo '        </tr>',chr(10);
		$i_selects++;
	}

	$selected = "CMS_VALUE[2]";
	echo '        <tr valign="top">',chr(10);
	echo '          <td class="text_medium">Wie sollen die Artikel angeordnet sein:</td>',chr(10);
	echo '          </td>',chr(10);
	echo '          <td class="text_medium"><select name="CMS_VAR[2]">',chr(10);

	$array['order'] ["ASC"] ="aufsteigend";
	$array['order'] ["DESC"] ="absteigend";
	$array['order'] ["RAND"] ="zuf&auml;llig";
	foreach ($array['order'] as $key => $element){
		echo '<option value="'.$key.'"';
		if($selected == $key){
			echo ' selected';
		}
		echo '>'.$element.'</option>',chr(10);
    }



	echo '           </select>',chr(10);
	echo '          </td>',chr(10);
	echo '        </tr>',chr(10);

	echo '        <tr valign="top">',chr(10);
	echo '          <td class="text_medium">Wieviel Artikel sollen Ausgeben werden:</td>',chr(10);
	echo '          <td class="text_medium"><input type="text" name="CMS_VAR[3]" value="CMS_VALUE[3]">',chr(10);
	echo '          </td>',chr(10);
	echo '        </tr>',chr(10);
	echo '        <tr valign="top">',chr(10);
	echo '          <td class="text_medium">Länger der Überschrift in Zeichen:</td>',chr(10);
	echo '          <td class="text_medium"><input type="text" name="CMS_VAR[4]" value="CMS_VALUE[4]">',chr(10);
	echo '          </td>',chr(10);
	echo '        </tr>',chr(10);
	echo '        <tr valign="top">',chr(10);
	echo '          <td class="text_medium">Länger des Content in Zeichen:</td>',chr(10);
	echo '          <td class="text_medium"><input type="text" name="CMS_VAR[5]" value="CMS_VALUE[5]">',chr(10);
	echo '          </td>',chr(10);
	echo '        </tr>',chr(10);
	echo '        <tr valign="top">',chr(10);
	echo '          <td class="text_medium">Thumbnail anzeigen:</td>',chr(10);
	echo '          <td class="text_medium"><select name="CMS_VAR[6]">',chr(10);

	$selected = "CMS_VALUE[6]";
	$array['thumb'] ["Nein"] ="Nein";
	$array['thumb'] ["Ja"] ="Ja";
	foreach ($array['thumb'] as $key => $element){
		echo '<option value="'.$key.'"';
		if($selected == $key){
			echo ' selected';
		}
		echo '>'.$element.'</option>',chr(10);
    }

	echo '           </select>',chr(10);
	echo '          </td>',chr(10);
	echo '        </tr>',chr(10);
}
echo '      </table>',chr(10);
OUTPUT

Code: Alles auswählen

<?php
$cat_num     = 'CMS_VALUE[1]';
// anzahl der Kategorien die durchsucht werden sollen
if (is_numeric($cat_num) && $cat_num != '0' && $cat_num != '') {
	$art_sort= 'CMS_VALUE[2]'; // Anordnung der Artikel
	$art_num = 'CMS_VALUE[3]'; // Wieviel Artikel sollen ausgegeben werden
	$head_length = 'CMS_VALUE[4]'; // Zeichzenlänge der Überschrift
	$content_length = 'CMS_VALUE[5]'; // Zeichzenlänge des Contents
	$thumbs = 'CMS_VALUE[6]'; // Sollen Thumbmails angezeigt werden

//Wir überprüfen die Eingaben
	if (!is_numeric($art_num) || $art_num < 1) {
		$art_num = '3';
	}
	if (!is_numeric($head_length) || $head_length < 1) {
   		$head_length = '30';
	}
	if (!is_numeric($content_length) || $content_length < 1) {
   		$content_length = '50';
	}

	$query =  'SELECT CONTENT.value AS headline, ARTLANG.idart AS id, ARTLANG.lastmodified AS lastmodified, ARTLANG.modifiedby AS modifiedby FROM ';
	$query .= $cfg['tab']['cat_art'].' AS CATART, ';
	$query .= $cfg['tab']['art_lang'].' AS ARTLANG, ';
	$query .= $cfg['tab']['content'].' AS CONTENT ';
	$query .= 'WHERE ';
	$query .= '(';

// Kategorien in Query einbauen
	$i_cat = 6;
	$i_cat_end = $cat_num+6;
        /*
	while($i_cat_end > $i_cat){
		$i_cat++;
		$query .= '(CATART.idcat = "CMS_VALUE['. $i_cat .']")<br>';
		if(($cat_num >= '1') && ($i_cat_end != $i_cat)){
			$query .= ' OR ';
		}
	}*/
         $query .= '(CATART.idcat = "15") OR ((CATART.idcat = "16") OR ((CATART.idcat = "22")';
         $query .= ')';
	$query .= " AND ARTLANG.idart != '$idart' ";
	//$query .= "AND CONTENT.idartlang = ARTLANG.idartlang ";

// Sort by
	$query .= ' ORDER BY '. $art_sort .' ';

// Limit
	if (is_numeric($art_num) && $art_num > 0) {
	$query .= 'LIMIT 0,'. $art_num;
	}
        echo 'CMS_VALUE['.$i_cat.']';
echo $query;

// Anweisung ausführen
	$db->query($query);
         echo mysql_error();
/*
	if ($db->num_rows() > 0) {

		while ($db->next_record()) {

			$headline = strip_tags ($headline);
			$headline = urldecode($db->f("headline"));
			$pos1 = strpos ($headline, "src");
			$pos2 = strpos ($headline, "\"",$pos1+6);
			$img = substr($headline,$pos1,$pos2-$pos1+1);
			$erstellt = date("d.m.y",strtotime($db->f("lastmodified")));
			$von = $db->f("modifiedby");
			$headline = strip_tags ($headline);
			if (strlen($headline) > $head_length) {
				$headline = substr($headline, 0, $head_length);
				$headline .= '...';
			}
			$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selCat&idart=".$db->f("id")."&m=$m&s=$s");

			echo '<table height="132px" style="border-left: 1px dashed #FFFFFF; border-right: 1px dashed #FFFFFF; font-size: 10px; color: #FFFFFF";><tr><td><a class="location" href="' .$link. '"><img style="float:left; 10px 10px 5px 0px;"' .$img. '  width="80px" border="0" alt="Details"></a>'.$headline.'<br>'.capiStrTrimAfterWord ($headline, $head_length). '...<br />';
			echo '<a class="location" href="'.$link.'"> <strong>| mehr</strong></a></td></tr></table>';

			}
			unset($headline);
			echo '';
		} // end while

	} // end if

*/
}
?>
Im Output Bereich bin ich gerade am testen mit fixen Werten bei den Kategorien.
Irgendwie stimmt da was auch noch nicht mit dem SQL Befehl.
Mir ist der Fehler, aber bis dato noch nicht ersichtlich. Vielleicht kann ja einer mal einen Blick drauf werfen.

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

Beitrag von HerrB »

Ich arbeite mich ja grundsätzlich auch mal in anderen Code ein, aber kann es sein, dass das von mir genannte Modul bereits Deine Anforderung erfüllt bzw. es Du nur anzupassen brauchst?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt