Revision 1 | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed
<?php//$Id: auspraegung.php 4178 2012-02-06 14:33:19Z tiefland $/*** @author Lars Tiefland <tiefland@weban.de>* @copyright 2009 Webagentur Niewerth* @package Content-management* @version $Rev: 4178 $* @license propietary* @filesource**//*** Verwaltet die Ausprägungen der Verzeichnisse und Artikel* @author Lars Tiefland <tiefland@weban.de>* @copyright 2009 Webagentur Niewerth* @package Content-management*/require_once "connect2.php";require_once "Weban_Smarty.class.php";$GLOBALS["ui"] = new Weban_Smarty();// ME: Abhängige Ausprägungen?if ( isset( $web_rechte['online_shop']['directory']['auspr_abhaengigkeiten'] ) ){$GLOBALS["ui"]->assign( "auspr_abhaengigkeiten", 1 );$auspr_abhaengigkeiten = 1;}// ME: sollen die Ausprägungen an Unterordner weitervererbt werden können?if ( isset( $web_rechte['online_shop']['directory']['auspr_vererbung'] ) ){$auspr_vererbung = 1;$GLOBALS["ui"]->assign( "auspr_vererbung", 1 );}$mode = filter_input( INPUT_POST, "mode", FILTER_SANITIZE_STRING );if ( isset( $mode ) ){$richtung = filter_input( INPUT_POST, "richtung", FILTER_SANITIZE_STRING );$id = filter_input( INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT );$a_id = filter_input( INPUT_POST, "a_id", FILTER_SANITIZE_NUMBER_INT );$type = filter_input( INPUT_POST, "type", FILTER_SANITIZE_NUMBER_INT );$val = filter_input( INPUT_POST, "value", FILTER_SANITIZE_STRING );$einheit = filter_input( INPUT_POST, "einheit", FILTER_SANITIZE_STRING );$erklaerung = filter_input( INPUT_POST, "erklaerung",FILTER_SANITIZE_STRING );$suchkriterim = filter_input( INPUT_POST, "suchkriterium",FILTER_SANITIZE_NUMBER_INT );$abh_auspr = filter_input( INPUT_POST, "abh_auspr",FILTER_SANITIZE_STRING );$vererbung = filter_input( INPUT_POST, "vererbung",FILTER_SANITIZE_NUMBER_INT );switch ( $type ){case 1:$werte = $_POST["wert"];break;case 3:$werte = $_POST["preis"];break;case 5:case 6:case 10:$werte = $_POST["auswahl"];break;case 11:$werte = $_POST["unterauswahl"];break;}$werte = serialize( $werte );$flds = null;if ( $auspr_abhaengigkeiten ){$flds[0] = "abh_auspr";}if ( $auspr_vererbung == 1 ){$flds[1] = "vererbung";}switch ( $mode ){case "save":if ( $type != 7 ){$sql = "SELECTMAX(rang)+10 AS max_rangFROMdirectory_to_auspraegungWHEREdirectory=$id";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );$rang = $row["max_rang"];if ( is_null( $rang ) ){$rang = 0;}$sql = "INSERT INTOauspraegung(name,suchkriterium,type,einheit,";if ( $type == 1 ){$sql .= "richtung,";}if ( is_array( $flds ) ){$sql .= implode( ", ", $flds ) . ", ";}$sql .= "erklaerung,erstellt_am,erstellt_von)VALUES('$val',$suchkriterium,$type,'$einheit',";if ( $type == 1 ){$sql .= "'" . $richtung . "',";}if ( $abh_auspr ){$sql .= "'" . $abh_auspr . "',";}if ( $auspr_vererbung == 1 and isset( $vererbung ) ){$sql .= $vererbung . ", ";}$sql .= "'$erklaerung',NOW(),'" . $_SERVER["PHP_AUTH_USER"] . "')";$res = mysql_query( $sql );if ( $res ){$sql = "INSERT INTOdirectory_to_auspraegungVALUES($id," . mysql_insert_id() . ",'$werte',$rang)";$res = mysql_query( $sql );echo mysql_error();}else{weban_debug( mysql_error() . "<br>$sql" );}}else{// EULabels einrichten$e_label = filter_input( INPUT_POST, "eu_label",FILTER_VALIDATE_INT );switch ( $e_label ){case 1:// Kühl- und Gefrierschränke$auspraegungen[] = array( "EU-Label für Haushalts-Kühl- und Gefriergeräte",7 );$auspraegungen[] = array( "Hersteller:", 0 );$auspraegungen[] = array( "Modell:", 0 );$auspraegungen[] = array("Energieeffizienzklasse:",10,1,serialize( array("A+++","A++","A+","A","B","C","D",) ) );$auspraegungen[] = array("Stromverbrauch:",1,"kWh/Jahr" );$auspraegungen[] = array("Nutzinahlt Kühlteil:",1,"L" );$auspraegungen[] = array("Nutzinhalt Gefrierteil:",1,"L" );$auspraegungen[] = array("Geräusch:",1,"dB(A)" );break;case 2:// Weinlagerschränke$auspraegungen[] = array( "EU-Label für Weinlagerschrank",7 );$auspraegungen[] = array( "Hersteller:", 0 );$auspraegungen[] = array( "Modell:", 0 );$auspraegungen[] = array("Energieeffizienzklasse:",10,"",serialize( array("A+++","A++","A+","A","B","C","D","E","F","G",) ) );$auspraegungen[] = array("Stromverbrauch:",8,"kWh/Jahr" );$auspraegungen[] = array("Anzahl Flaschen:",1,"Stück" );$auspraegungen[] = array("Geräusch:",1,"dB(A)" );break;case 3:// Waschmaschinen$auspraegungen[] = array( "EU-Label für Haushalts-Waschmaschinen",7 );$auspraegungen[] = array( "Hersteller:", 0 );$auspraegungen[] = array( "Modell:", 0 );$auspraegungen[] = array("Energieeffizienzklasse:",10,"",serialize( array("A+++","A++","A+","A","B","C","D",) ) );$auspraegungen[] = array("Stromverbrauch:",1,"kWh/Jahr" );$auspraegungen[] = array("Wasserverbrauch:",1,"L/Jahr" );$auspraegungen[] = array("Fassungsvermögen:",1,"kg" );$auspraegungen[] = array("Schleuderwirkung",10,"",serialize( array("A","B","C","D","E","F","G",) ) );$auspraegungen[] = array("Geräusch (Waschen):",1,"dB(A)" );$auspraegungen[] = array("Geräusch (Schleudern):",1,"dB(A)" );break;case 4:// Geschirrspüler$auspraegungen[] = array( "EU-Label Haushalts-Geschirrspüler",7 );$auspraegungen[] = array( "Hersteller:", 0 );$auspraegungen[] = array( "Modell:", 0 );$auspraegungen[] = array("Energieeffizienzklasse:",10,"",serialize( array("A+++","A++","A+","A","B","C","D",) ) );$auspraegungen[] = array("Stromverbrauch:",1,"kWh/Jahr" );$auspraegungen[] = array("Wasserverbrauch:",1,"L/Jahr" );$auspraegungen[] = array("Trocknungswirkung",10,"",serialize( array("A","B","C","D","E","F","G",) ) );$auspraegungen[] = array("Anzahl Maßgedecke:",1,"Stück" );$auspraegungen[] = array("Geräusch:",1,"dB(A)" );break;case 5:// Fernseher$auspraegungen[] = array( "EU-Label Fernsehgeräte",7 );$auspraegungen[] = array( "Hersteller:", 0 );$auspraegungen[] = array( "Modell:", 0 );$auspraegungen[] = array("Energieeffizienzklasse:",10,"",serialize( array("A+","A","B","C","D","E","F",) ) );$auspraegungen[] = array( "Ein-/Ausschalter:", 2 );$auspraegungen[] = array("Leistungsaufnahme:",1,"W" );$auspraegungen[] = array("Stromverbrauch:",1,"kWh/Jahr" );$auspraegungen[] = array("Bildschirmdiagonale:",1,"cm" );$auspraegungen[] = array("Bildschirmdiagonale:",1,"Zoll" );break;case 6:// Trockner$auspraegungen[] = array( "EU-Label für Haushalts-Wäschetrockner",7 );$auspraegungen[] = array( "Hersteller:", 0 );$auspraegungen[] = array( "Modell:", 0 );$auspraegungen[] = array("Energieeffizienzklasse:",10,"",serialize( array("A++","A+","A","B","C","D","E","F","G",) ) );$auspraegungen[] = array("Stromverbrauch:",1,"kWh/Jahr" );$auspraegungen[] = array("Trocknerart:",5,"",serialize( array("Ablufttrockner","Kondenstrocker","Wärmepumpetrockner" ) ) );$auspraegungen[] = array("Fassungsvermögen:",1,"kg" );$auspraegungen[] = array("Geräusch:",1,"dB(A)" );break;case 7:// Klimageräte$auspraegungen[] = array( "EU-Label für Klimageräte",7 );$auspraegungen[] = array( "Hersteller:", 0 );$auspraegungen[] = array( "Modell:", 0 );$auspraegungen[] = array("Geräteart:",5,"",serialize( array( "Außengerät", "Innengerät" ) ) );$auspraegungen[] = array("Energieeffizienzklasse:",10,"",serialize( array("A++","A+","A","B","C","D","E","F","G",) ) );$auspraegungen[] = array("Stromverbrauch:",1,"kWh/Jahr" );$auspraegungen[] = array("Kühlleistung:",1,"kW" );$auspraegungen[] = array("Energieeffizienzklasse bei Vollast:",10,"",serialize( array("A","B","C","D","E","F","G",) ) );$auspraegungen[] = array("Typ:",5,"",serialize( array( "Nur Kühlfunktion","Kühl-/Heizfunktion" ) ) );$auspraegungen[] = array("Typ+:",5,"",serialize( array( "Luftkühlung", "Wasserkühlung" ) ) );$auspraegungen[] = array("Geräusch:",1,"dB(A)" );break;}foreach ( $auspraegungen as $auspraegung ){$sql = "SELECTMAX(rang)+10 AS max_rangFROMdirectory_to_auspraegungWHEREdirectory=$id";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );$rang = $row["max_rang"];if ( is_null( $rang ) ){$rang = 0;}$sql = "INSERT INTOauspraegung(name,type,einheit,eu_label_id)VALUES('" . $auspraegung[0] . "'," . $auspraegung[1] . ",'" . $auspraegung[2] . "',$eu_label)";$res = mysql_query( $sql );$a_id = mysql_insert_id();$sql = "INSERT INTOdirectory_to_auspraegung(directory,auspraegung,wertebereich,rang)VALUES($id,$a_id,'" . $auspraegung[3] . "',$rang)";$res = mysql_query( $sql );}}break;case "update":if ( $type < 7 || $type == 10 || $type == 11 ){$sql = "UPDATEauspraegungSETname='$val',type=$type,einheit='$einheit',suchkriterium=$suchkriterium,";if ( $type == 1 ){$sql .= "richtung='" . $richtung . "',";}if ( is_array( $flds ) and $abh_auspr ){$sql .= $flds[0] . "='" . $abh_auspr . "',";}if ( $auspr_vererbung && isset( $vererbung ) ){$sql .= $flds[1] . "=" . $vererbung . ",";}$sql .= "erklaerung='$erklaerung',geaendert_am=NOW(),geaendert_von='" . $_SERVER["PHP_AUTH_USER"] . "'WHEREID=$a_id";$res = mysql_query( $sql );if ( $res ){$sql = "UPDATEdirectory_to_auspraegungSETwertebereich='$werte'WHEREauspraegung=$a_idANDdirectory=$id";$res = mysql_query( $sql );}}else{foreach ( $_POST["auspraegung"] as $a_id => $auspraegung ){$suchkriterim = $auspraegung["suchkriterium"];$sql = "UPDATEauspraegungSETerklaerung='$erklaerung',suchkriterium=" . $suchkriterim . "WHEREID=$a_id";mysql_query( $sql );}}break;}header( "Location: directory.php?action=edit&ID=" . $id );}else{$type = $_REQUEST['type'];$GLOBALS["ui"]->assign( "type", $type );$types = getAuspraegungTypes( $eu_label );$GLOBALS["ui"]->assign( "options", $types );$GLOBALS["ui"]->assign( "werte", array("","","","","","","","" ) );$GLOBALS["ui"]->assign( "preise", array("","","","","","","","" ) );$GLOBALS["ui"]->assign( "labels", getEULabels() );$GLOBALS["ui"]->assign( "richtungen", array("" => "neutral","minimal" => "minimal","maximal" => "maximal" ) );switch ( $_GET["mode"] ){case "edit":if ( !isset( $_GET["id"] ) || !isset( $_GET["a_id"] ) ){$meld = "zu wenige Parameter angegeben!";$error = true;$tpl_f = "meld.tpl";}else{$id = intval( $_GET["id"] );$a_id = intval( $_GET["a_id"] );$sql = "SELECT*FROMauspraegung aJOINdirectory_to_auspraegung daONa.ID=da.auspraegungANDa.ID=$a_id";$res = mysql_query( $sql );if ( $res ){$row = mysql_fetch_assoc( $res );$GLOBALS["ui"]->assign( "val", $row["name"] );$GLOBALS["ui"]->assign( "id", $id );$GLOBALS["ui"]->assign( "a_id", $a_id );$GLOBALS["ui"]->assign( "mode", "update" );$GLOBALS["ui"]->assign( "einheit", $row["einheit"] );$GLOBALS["ui"]->assign( "type", $row["type"] );$GLOBALS["ui"]->assign( "suchkriterium", $row["suchkriterium"] );$GLOBALS["ui"]->assign( "erklaerung", $row["erklaerung"] );$GLOBALS["ui"]->assign( "sub_type", $row["eu_label_id"] );$GLOBALS["ui"]->assign( "richtung", $row["richtung"] );$GLOBALS["ui"]->assign( "abh_auspr", $row["abh_auspr"] );$GLOBALS["ui"]->assign( "vererbung", $row["vererbung"] );if ( $row["type"] == 7 ){$sql_eu = "SELECTa.*FROMauspraegung aJOINdirectory_to_auspraegung daONda.auspraegung=a.idWHEREda.directory=$idANDa.eu_label_id=" . $row["eu_label_id"] . "";$res_eu = mysql_query( $sql_eu );while ( $row_eu = mysql_fetch_assoc( $res_eu ) ){if ( in_array( $row_eu["type"], array(1,5,10 ) ) ){$sub_ausp[] = $row_eu;}}$GLOBALS["ui"]->assign( "sub_ausp", $sub_ausp );}$werte = unserialize( stripslashes( $row["wertebereich"] ) );if ( $row["type"] == 1 && is_array( $werte ) ){$GLOBALS["ui"]->assign( "werte", $werte );}elseif ( ( $row["type"] == 5 || $row["type"] == 6 || $row["type"] ==10 || $row["type"] == 11 ) && is_array( $werte ) ){$GLOBALS["ui"]->assign( "auswahl", $werte );if ( $auspr_abhaengigkeiten == 1 ){$GLOBALS["ui"]->assign( "unterauswahl", $werte );}}else{$GLOBALS["ui"]->assign( "preise", $werte );}}}break;case "add":if ( !isset( $_GET["id"] ) ){$meld = "zu wenige Parameter angegeben!";$error = true;$tpl_f = "meld.tpl";}else{$id = intval( $_GET["id"] );$GLOBALS["ui"]->assign( "val", "" );$GLOBALS["ui"]->assign( "id", $id );$GLOBALS["ui"]->assign( "mode", "save" );}break;case "delete":$sql = "SELECT*FROMauspraegungWHEREid=$a_id";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );if ( $row["eu_label_id"] && $row["type"] == 7 ){$sql = "DELETE FROMauspraegungWHEREeu_label_id=" . $row["eu_label_id"] . "";}else{$sql = "DELETE FROMauspraegungWHEREID=" . $a_id . "";}$res = mysql_query( $sql );//echo mysql_error();header( "Location: directory.php?action=edit&ID=" . $id );break;case "down":$sql = "SELECTMAX(rang) AS max_rangFROMdirectory_to_auspraegungWHEREdirectory=$id";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );$max_rang = $row["max_rang"];$sql = "SELECTrangFROMdirectory_to_auspraegungWHEREdirectory=$idANDauspraegung=$a_id";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );$cur_rang = $row["rang"];$sql = "SELECTrangFROMdirectory_to_auspraegungWHEREdirectory=$idANDrang > $cur_rangORDER BYrang";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );$rang = $row["rang"];$sql = "UPDATEdirectory_to_auspraegungSETrang = $cur_rangWHEREdirectory=$idANDrang = $rang";$res = mysql_query( $sql );//echo $sql;$sql = "UPDATEdirectory_to_auspraegungSETrang = $rangWHEREdirectory=$idANDauspraegung = $a_id";$res = mysql_query( $sql );//echo $sql;header( "Location: directory.php?action=edit&ID=" . $id );break;case "up"://ersten Eintrag bestimmen$sql = "SELECTMIN(rang) AS min_rangFROMdirectory_to_auspraegungWHEREdirectory=$id";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );$min_rang = $row["min_rang"];//akutelle Position bestimmen$sql = "SELECTrangFROMdirectory_to_auspraegungWHEREauspraegung=$a_id";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );$cur_rang = $row["rang"];$sql = "SELECTrangFROMdirectory_to_auspraegungWHEREdirectory=$idANDrang < $cur_rangORDER BYrang DESC";//header( "Location: directory.php?action=edit&ID=" . $id );$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );$rang = $row["rang"];$sql = "UPDATEdirectory_to_auspraegungSETrang=$cur_rangWHERErang=$rangANDdirectory=$id";mysql_query( $sql );$sql = "UPDATEdirectory_to_auspraegungSETrang=$rangWHEREauspraegung=$a_idANDdirectory=$id";mysql_query( $sql );header( "Location: directory.php?action=edit&ID=$id" );break;default:$meld = "Skript wurde falsch aufgerufen!";$error = true;$tpl_f = "meld.tpl";break;}}$GLOBALS["ui"]->assign( "meld", $meld );$GLOBALS["ui"]->assign( "error", $error );$GLOBALS["ui"]->assign( "tpl_f", ( $tpl_f ) ? $tpl_f : "auspraegung.tpl" );$GLOBALS["ui"]->display( "page.tpl" );function getEULabels(){$sql = "SELECTid,nameFROMeu_labels";$res = mysql_query( $sql );while ( $row = mysql_fetch_assoc( $res ) ){$eulabels[$row["id"]] = $row["name"];}return $eulabels;}function getAuspraegungTypes(){$sql = "SELECTid,nameFROMauspraegung_typWHEREin_list=1";if ( $_GET["mode"] == "edit" ){$sql .= "ORid=10";}$res = mysql_query( $sql );while ( $row = mysql_fetch_assoc( $res ) ){$ret[$row["id"]] = $row["name"];}return $ret;}?>