Ich habe mir hier einen separaten Kategoriebaum angelegt, dort habe ich mir dann verschiedene Bannerthemen erstellt. Das Modul liest derzeit alle "Artikel" der Kategorie aus, interessant ist hier jedoch nur das 1. Bild, dessen Link und die Framinformation.
Handhabung
- Kategorie auswählen in der Konfiguration
- Artikel anlegen mit einem Bildlink und eventuell Frameinformation
Inputcode
Code: Alles auswählen
$selected = "CMS_VALUE[0]";
echo '<table cellspacing="0" cellpadding="10" border="0">';
echo ' <tr valign="top">';
echo ' <td>Kategorie wählen:</td>';
echo ' <td><select name="CMS_VAR[0]">';
if($selected!="0" && $selected!=""){
echo"<option value=\"0\">--- kein ---</option>";
} else {
echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
}
$sql = "
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
";
$db->query($sql);
while ($db->next_record()) {
$spaces = "|";
$levels = $db->f("level");
for ($i = 0; $i < $levels; $i ++) {
$spaces = $spaces . "--";
}
$spaces .= ">";
if ($selected == $db->f("idcat")) {
echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} else {
echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
}
}
echo "</select></td></tr>";
echo "</table>";
Code: Alles auswählen
<?
// Initialisieren
$db = new DB_Contenido;
$db2 = new DB_Contenido;
// Umsetzen der Konfiguration auf eine Variable
$categorie = "CMS_VALUE[0]";
// Anfrage formulieren
// Hier werden alle Artikelnummern der ausgewählten Kategorie ausgelesen
$sql="
SELECT *
FROM
{$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat_lang']} AS b,
{$cfg['tab']['cat_art']} AS c
WHERE a.idcat = b.idcat
AND a.idcat = c.idcat
AND b.visible = 1
AND a.idcat = '$categorie'
";
// Absetzen der Anfrage auf die Datenbank
$db->query($sql);
// Array durchlaufen
while ($db->next_record())
{
// Artikelnummer einer Variable zuordnen
$artikel = $db->f("idart");
// Anfrage formulieren
// idtype = 4 -> Bilder
// idtype = 6 -> Bildlink
// idtype = 7 -> Frameinformation (target)
$sql = "SELECT *
FROM contenido_content AS a, contenido_art_lang AS d
LEFT JOIN contenido_type AS b ON a.idtype = b.idtype
LEFT JOIN contenido_upl AS c ON a.value = c.idupl
WHERE a.idartlang = '$artikel'
AND a.idartlang = d.idartlang
AND
(
b.idtype = 4
OR b.idtype = 6
OR b.idtype = 7
)
AND d.online = 1
";
// Absetzen der Anfrage auf die Datenbank
$db2->query($sql);
// Array durchlaufen
while ($db2->next_record())
{
$bilddatei = $db2->f('dirname').$db2->f("filename");
echo '<a href="??????"><img src="upload/'.$bilddatei.'" border="0" alt="" target="???????"></a><br><br>';
// Hier liegt ein Array vor, Problem -> das Feld $db->f("value") liegt 3 mal vor, Dateinamen des Bildes, Frameinformation
// und Weiterleitungslink, ich habe aber keine Ahnung wie ich die Felder ansprechen soll, da es ja immer gleich heißt
// Meine Versuche schlugen alle fehl, mit var_dump kam aber alles raus, hier ist also ein klitzekleine Verbessrung nötig
// foreach ($db2 as $var)
// echo $var;
// echo var_dump($db2);
}
}
?>
Gruss
Tom