Erweiterung Artikelseite

Maverik26

Aktives Mitglied
6. Januar 2011
57
1
Hallo,

Ich möchte auf meiner Artikelseite 2 Dinge realisieren
Erstens möchte ich ein Hintergrundbild (auf allen Artikelseiten gleich, bekome ich wohl mit etwas probieren hin)

Als zweites würde ich gerne die Auswahloptinen meiner Artikel farblich hinterlegen.

Die Optionen sind Farben die aus einem Dropdown Menü gewählt werden sollen.
Diese Farben möchte ich optisch darstellen

Habe bisher leider keine Lösung gefunden wo ich den Hintergrund für die Auswahloptionen eintragen kann.
Vorzugsweise abhängig vom Text der Option
Bsp: braun (080) soll braun hinterlegt


Danke im Vorraus für konstruktive Ideen oder gar Lösungen :)
 

Maverik26

Aktives Mitglied
6. Januar 2011
57
1
AW: Erweiterung Artikelseite

Habe mir inzwischen ein php Script geschrieben bzw. schreiben lassen, welches aus der Datenbank die Produktvariation ausliest.
Damit werden aus einem Array die passenden Farbwerte ermittelt (falls vorhanden)
Entsprechend formatiert in eine css Datei geschrieben, welche im Template global eingebunden ist.
Nach der Komprimierung dann ca. 10KB mehr CSS (für ca. 6k Attribute (200 Artikel))
 

Maverik26

Aktives Mitglied
6. Januar 2011
57
1
AW: Erweiterung Artikelseite

Hier der Code, welcher die css Datei generiert. Datei auf den Server laden, ausführen, dann css Datei in das template einbinden.
Ist zwar eine "schmutzige" Lösung, aber sie funktioniert.


PHP:
<?php
$db_link = mysql_connect ("localhost", "User", "PWD"); // Hier die Zugangsdaten f��ie Datenbank eintragen !!!!!!!!!!!!!!!!!!!!!!!!!

if ( $db_link )
{
    echo 'Verbindung erfolgreich: ';
    echo $db_link;
}
else
{
    // Fehler
    die('keine Verbindung m��ch: ' . mysql_error());
}

$db_sel = mysql_select_db("DB_Name"); // Hier bitte noch die richtige Datenbank eintragen !!!!!!!!!!!!!!!!!!!!!!!!
   //or die("Auswahl der Datenbank fehlgeschlagen");

$sql = "SELECT kEigenschaftWert, cName FROM teigenschaftwert";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
  die('Ung��ge Abfrage: ' . mysql_error());
}


 //Array für die Zuweisung Ordne der "Farbe" den "#Hintergrund" und die "#Schriftfarbe" zu 
 //Die Farbe muss als Teil des Attributnamens vorhanden sein
$tempFarbe = array("aubergine (425)"=>array("#64183D", "#FFF"),
                   "beige (082)" => array("#D8C790", "#000"),
                   "braun (080)" => array("#2D2112", "#FFF"),
                   "brilliantblau (086)"=>array("#24297D", "#FFF"),
                   "creme (023)" => array("#FAF9D9", "#000"),
                   "dunkelgr��060)" => array("#18321B","#FFF"),
                   "dunkelrot (030)" => array("#7C201B", "#FFF"),
                   "enzian (098)" => array("#2A4593", "#FFF"),
                   "flieder (042)" => array("#BF8DBA", "#000"),
                   "gelb (021)" => array("#FFDE10", "#000"),
                   "gold (091)" => array("#FDD244", "#000"),
                   "goldgelb (020)" => array("#F49E2D", "#000"),
                   "grau (071)" => array("#6D6D6D", "#000"),
                   "gr��061)" => array("#1D753D", "#000"),
                   "haselnussbraun (083)" => array("#A2441B", "#000"),
                   "hellbraun (081)" => array("#A0813E", "#000"),
                   "hellgrau (072)" => array("#CDD0D5", "#000"),
                   "hellpink (426)" => array("#FAD4D4", "#000"),
                   "hellrosa (045)" => array("#EA7EAC", "#000"),
                   "kupfer (092)" => array("#B56A3C", "#000"),
                   "k��sblau (049)" => array("#262F6E", "#FFF"),
                   "lavendel (043)" => array("#80569B", "#000"),
                   "lichtblau (056)" => array("#6EA2D2", "#FFF"),
                   "lindgr��063)" => array("#83B525", "#000"),
                   "orange (034)" => array("#E5531D", "#000"),
                   "pink (041)" => array("#C12C60", "#000"),
                   "rot (031)" => array("#AA201E", "#000"),
                   "salbei (655)" =>array("#626B46", "#000"),
                   "schwarz (070)" =>array("#0C0C0C", "#FFF"),
                   "schwefelgelb (025)" => array("#E7E028", "#000"),
                   "senf (834)" => array("#D4B255", "#000"),
                   "silber (090)" => array("#979797", "#000"),
                   "taupe (835)" => array("#8C826A", "#000"),
                   "t��s (054)" => array("#21A395", "#000"),
                   "weiߠ(010)" => array("#FFF",  "#000"));

$tmpArrayHolder = array();               
foreach ($tempFarbe as $value=>$values){
       $tmp =  $value;
       $tmpArrayHolder[] = $tmp;
}
                   
$tmpDatei = array();
foreach ($tempFarbe as $value=>$values){
    $sql = "SELECT kEigenschaftWert FROM teigenschaftwert WHERE cName = \"$value\" ";
    $db_erg = mysql_query($sql);
    while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC)){
        $tmpkEigenschaftWert =  $zeile['kEigenschaftWert'];
        $tmpDatei[$value][] = $tmpkEigenschaftWert;      
    }
}

$string = "";
for($i = 0; $i < sizeof($tmpArrayHolder); $i++){
    $tmpColor = $tmpArrayHolder[$i];
    $number = sizeof($tmpDatei[$tmpColor]);
        for ($j =0; $j <sizeof($tmpDatei[$tmpColor]);$j++){
            if($j < $number-1){
            $string .= "#kEigenschaftWert_".$tmpDatei[$tmpColor][$j].",";
            }
            else {
            $string .= "#kEigenschaftWert_".$tmpDatei[$tmpColor][$j];
            }    
        }
    $string .= "{background-color:".$tempFarbe[$tmpColor][0].";color:".$tempFarbe[$tmpColor][1].";}\r\n";
}

$datei_name = "farbwahl.css";
$fp = fopen($datei_name, "w");

fwrite($fp, $string);
fclose($fp);
mysql_free_result( $db_erg );
// Schlieࠥn der Datenbankverbindung
mysql_close($db_link );    
?>