Einfache Bannerverwaltung

Gesperrt
econsul
Beiträge: 29
Registriert: Do 22. Jan 2004, 17:04
Kontaktdaten:

Einfache Bannerverwaltung

Beitrag von econsul »

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:

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>";
Output:

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>'; 
   } 
?>
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

bei der ersten abfrage musst du den parameter $lang (enthält die aktuelle sprache) berücksichtigen...

vielleicht reicht ja die ergänzung

Code: Alles auswählen

       AND        e.idlang = '$lang'
ist nicht getestet...
*** make your own tools (wishlist :: thx)
econsul
Beiträge: 29
Registriert: Do 22. Jan 2004, 17:04
Kontaktdaten:

Beitrag von econsul »

Tausend Dank.
Scheint zu funktionieren.
Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Beitrag von Freddy »

Hallo econsul, das Modul hört sich interessant an. Kannst Du vielleicht ein paar Takte zu schreiben wie man es benutzt?
Gesperrt