Einfache Bannerverwaltung
Verfasst: Mo 31. Jul 2006, 15:22
Hallo zusammen
Ich arbeite mit Contenido 4.6.8 und setze eine einfache Bannerverwaltung ein. Die läuft soweit gut und ist sehr praktisch, weil im Contenido Backoffice verwaltbar... Unschön ist nur, dass es bei mehreren Sprachen in der aktuellen Sprache auch die Bilder der Fremdsprachen angezeigt werden, wenn die Banner-Artikel in den Fremdsprachen online und mit Bild versehen sind...
Was muss ich am Code anpassen, dass nur die Bilder der aktuellen Sprache angezeigt werden?
Für einen Tipp wäre ich dankbar.
Hier ist der Code:
Input:
Output:
Ich arbeite mit Contenido 4.6.8 und setze eine einfache Bannerverwaltung ein. Die läuft soweit gut und ist sehr praktisch, weil im Contenido Backoffice verwaltbar... Unschön ist nur, dass es bei mehreren Sprachen in der aktuellen Sprache auch die Bilder der Fremdsprachen angezeigt werden, wenn die Banner-Artikel in den Fremdsprachen online und mit Bild versehen sind...
Was muss ich am Code anpassen, dass nur die Bilder der aktuellen Sprache angezeigt werden?
Für einen Tipp wäre ich dankbar.
Hier ist der Code:
Input:
Code: Alles auswählen
$selected = "CMS_VALUE[0]";
echo '<table cellspacing="0" cellpadding="10" border="0">';
echo ' <tr valign="top">';
echo ' <td class="text_medium">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
<?
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : tlcc.bannermodul
* Author : Andre Domaschke
* Copyright : Andre Domaschke
* Created : 13.07.2004
* Modified : 14.07.2004 | 25.07.2004
* Sortierung, aktive Artikel
************************************************/
// Initialisieren
$db1 = new DB_Contenido;
$db2 = new DB_Contenido;
// Umsetzen der Konfiguration auf eine Variable
$categorie = "CMS_VALUE[0]";
// Anfrage formulieren
// Datenfeldmenge pro Artikel ermitteln
$sql1="SELECT d.idartlang, count(*) AS menge
FROM con_cat AS a,
con_cat_lang AS b,
con_cat_art AS c,
con_content AS d,
con_art_lang AS e
LEFT JOIN con_type AS f ON d.idtype = f.idtype
LEFT JOIN con_upl AS g ON d.value = g.idupl
WHERE a.idcat = b.idcat
AND a.idcat = c.idcat
AND c.idart = e.idart
AND d.idartlang = e.idartlang
AND b.visible = 1
AND e.online = 1
AND a.idcat = '$categorie'
GROUP BY d.idartlang
ORDER BY e.artsort ASC
";
// Absetzen der Anfrage auf die Datenbank
$db1->query($sql1);
// Array durchlaufen
while ($db1->next_record())
{
$idartlang = $db1->f('idartlang');
$menge = $db1->f('menge');
// Anfrage formulieren
$sql2="SELECT *
FROM con_content AS a,
con_art_lang AS b
LEFT JOIN con_type AS c ON a.idtype = c.idtype
LEFT JOIN con_upl AS d ON a.value = d.idupl
WHERE a.idartlang = b.idartlang
AND b.online = 1
AND a.idartlang = '$idartlang'
";
// Absetzen der Anfrage auf die Datenbank
$db2->query($sql2);
// Array durchlaufen
while ($db2->next_record())
{
// ******************************************************************************************
// aus der Bildnummer wird die Bild URL gebildet
// ******************************************************************************************
$idtype = $db2->f('idtype');
if ($idtype == 4)
{
// $link erstellen
$bildurl = $db2->f('dirname').$db2->f('filename');
$arraywert = $bildurl;
}
// ******************************************************************************************
// die weiterführenden Links werden gebildet
// ******************************************************************************************
if ($idtype == 6)
{
// $link erstellen
$link = $db2->f('value');
if ($link > 1)
{
//$link muss eine Zahl größer 1 sein, folglich interne referenz
$linkurl = $sess->url("front_content.php?client=$client&lang=$lang&idcatart=".$db2->f('value'));
}
else
{
//$link ist keine Zahl
$linkurl = $db2->f('value');
}
$arraywert = $linkurl;
}
// ******************************************************************************************
// targetinformation werden gebildet
// ******************************************************************************************
if ($idtype == 7)
{
// $target erstellen
$target = $db2->f('value');
$arraywert = $target;
}
// ******************************************************************************************
// Neues Array generieren, damit die Elemente gezielt angesprochen werden können
// ******************************************************************************************
$bannerarray[$db2->f('idtype')][$db2->f('typeid')] = $arraywert;
}
// ausgabe an den browser
echo '<a href="'.urldecode($bannerarray[6][1]).'" target="'.urldecode($bannerarray[7][1]).'"><img src="upload/'. $bannerarray[4][1].'" border="0" hspace="10"></a>';
}
?>