// ********************************************************************************
// ** GetArtikelDetail
// ********************************************************************************
function GetArtikelDetail($ArtikelID, $KundenEmail = "", $FilterAktiv = 0, $LanguageID = 0) {
// Kundengruppe ermitteln
if (!$KundenEmail) {
$KundengruppenID = GetDefaultKundengruppe();
$KundengruppenObject = GetKundengruppenDetail($KundengruppenID);
} else {
$KundengruppenObject = GetKundengruppenDetail("", $KundenEmail);
}
// Währung einlesen
$WaehrungObject = GetWaehrungDetail();
// Sprache ermitteln
if (!$LanguageID) {
$LanguageID = GetDefaultLanguageID();
}
$StandardLanguageID = GetDefaultLanguageID();
// SQL-String für den Artikel zusammensetzen
$SQLString = "SELECT DISTINCT ";
$SQLString .= TABLE_ARTIKEL . ".id, ";
$SQLString .= TABLE_ARTIKEL_LANGU . ".artikel_name AS admin_artikel_name, ";
$SQLString .= "table_artikel_langu_standard.artikel_name AS standard_artikel_name, ";
$SQLString .= "IFNULL(" . TABLE_ARTIKEL_LANGU . ".artikel_name, table_artikel_langu_standard.artikel_name) AS artikel_name, ";
$SQLString .= TABLE_ARTIKEL . ".artikel_nr, ";
$SQLString .= TABLE_ARTIKEL_LANGU . ".beschreibung AS admin_beschreibung, ";
$SQLString .= TABLE_ARTIKEL_LANGU . ".kurz_beschreibung AS admin_kurz_beschreibung, ";
$SQLString .= "IFNULL(" . TABLE_ARTIKEL_LANGU . ".beschreibung, table_artikel_langu_standard.beschreibung) AS beschreibung, ";
$SQLString .= "IFNULL(" . TABLE_ARTIKEL_LANGU . ".kurz_beschreibung, table_artikel_langu_standard.kurz_beschreibung) AS kurz_beschreibung, ";
$SQLString .= "table_artikel_langu_standard.beschreibung AS standard_beschreibung, ";
$SQLString .= "table_artikel_langu_standard.kurz_beschreibung AS standard_kurz_beschreibung, ";
$SQLString .= TABLE_ARTIKEL . ".mwst, ";
$SQLString .= TABLE_MWST . ".mwst AS mwstsatz, ";
$SQLString .= TABLE_ARTIKEL . ".preis_alt_netto, ";
$SQLString .= TABLE_ARTIKEL . ".preis_alt_brutto, ";
$SQLString .= TABLE_ARTIKEL . ".preis_netto, ";
$SQLString .= TABLE_ARTIKEL . ".preis_brutto, ";
$SQLString .= TABLE_ARTIKEL . ".preis_brutto, ";
$SQLString .= "IF(" . TABLE_ARTIKEL . ".image_language_independent, table_artikel_langu_standard.bigImage, " . TABLE_ARTIKEL_LANGU . ".bigImage) AS bigImage, ";
$SQLString .= "IF(" . TABLE_ARTIKEL . ".image_language_independent, table_artikel_langu_standard.smallImage, " . TABLE_ARTIKEL_LANGU . ".smallImage) AS smallImage, ";
$SQLString .= TABLE_ARTIKEL . ".variante1, ";
$SQLString .= "table_variante_langu1.name AS variante1name, ";
$SQLString .= TABLE_ARTIKEL . ".variante2, ";
$SQLString .= "table_variante_langu2.name AS variante2name, ";
$SQLString .= TABLE_ARTIKEL . ".variante3, ";
$SQLString .= "table_variante_langu3.name AS variante3name, ";
$SQLString .= TABLE_ARTIKEL . ".variante4, ";
$SQLString .= "table_variante_langu4.name AS variante4name, ";
$SQLString .= TABLE_ARTIKEL . ".aktiv, ";
$SQLString .= TABLE_ARTIKEL . ".lieferstatus, ";
$SQLString .= TABLE_ARTIKEL . ".hersteller_id, ";
$SQLString .= TABLE_ARTIKEL . ".angebote, ";
$SQLString .= TABLE_ARTIKEL . ".lager, ";
$SQLString .= TABLE_ARTIKEL . ".gewicht, ";
$SQLString .= TABLE_ARTIKEL . ".ean, ";
$SQLString .= TABLE_ARTIKEL . ".voe_datum, ";
$SQLString .= TABLE_ARTIKEL . ".startseitenangebot, ";
$SQLString .= TABLE_ARTIKEL . ".aktuellartikel, ";
$SQLString .= TABLE_ARTIKEL . ".merkmalauswahl, ";
$SQLString .= TABLE_ARTIKEL . ".kundengruppenpreis, ";
$SQLString .= TABLE_ARTIKEL . ".merkmalkombination, ";
$SQLString .= TABLE_ARTIKEL . ".merkmalkombinationsort, ";
$SQLString .= TABLE_ARTIKEL . ".merkmalkombinationstandard, ";
$SQLString .= TABLE_ARTIKEL . ".merkmalkombinationparentid, ";
$SQLString .= TABLE_ARTIKEL . ".artikel_download, ";
$SQLString .= TABLE_ARTIKEL . ".image_language_independent, ";
$SQLString .= TABLE_ARTIKEL . ".download_language_independent, ";
$SQLString .= TABLE_LIEFERSTATUS . ".verkaufstop, ";
$SQLString .= TABLE_LIEFERSTATUS . ".id AS lieferstatus_id, ";
$SQLString .= "IFNULL(" . TABLE_LIEFERSTATUS_LANGU . ".name, table_lieferstatus_langu_standard.name) AS lieferstatus_name, ";
$SQLString .= TABLE_LIEFERSTATUS . ".imagesmall AS lieferstatus_imagesmall, ";
$SQLString .= "IF(" . TABLE_LIEFERSTATUS . ".language_independent, table_lieferstatus_langu_standard.image, " . TABLE_LIEFERSTATUS_LANGU . ".image) AS lieferstatus_image, ";
$SQLString .= "NullLieferstatus.id AS nulllieferstatusid, ";
$SQLString .= "IFNULL(NullLieferstatusLangu.name, NullLieferstatusLanguStandard.name) AS nulllieferstatus_name, ";
$SQLString .= "NullLieferstatus.imagesmall AS nulllieferstatus_imagesmall, ";
$SQLString .= "IF(NullLieferstatus.language_independent, NullLieferstatusLanguStandard.image, NullLieferstatusLangu.image) AS nulllieferstatus_image, ";
$SQLString .= TABLE_KUNDENGRUPPENPREISE . ".preis_netto AS kundengruppenpreis_netto, ";
$SQLString .= TABLE_KUNDENGRUPPENPREISE . ".preis_brutto AS kundengruppenpreis_brutto ";
$SQLString .= "FROM " . TABLE_ARTIKEL . " ";
$SQLString .= "LEFT JOIN " . TABLE_ARTIKEL_LANGU . " ON ((IF(" . TABLE_ARTIKEL . ".merkmalkombinationparentid, " . TABLE_ARTIKEL . ".merkmalkombinationparentid, " . TABLE_ARTIKEL . ".id) = " . TABLE_ARTIKEL_LANGU . ".artikel_id) AND (" . TABLE_ARTIKEL_LANGU . ".language_id = " . $LanguageID . ")) ";
$SQLString .= "LEFT JOIN " . TABLE_ARTIKEL_LANGU . " table_artikel_langu_standard ON ((IF(" . TABLE_ARTIKEL . ".merkmalkombinationparentid, " . TABLE_ARTIKEL . ".merkmalkombinationparentid, " . TABLE_ARTIKEL . ".id) = table_artikel_langu_standard.artikel_id) AND (table_artikel_langu_standard.language_id = " . $StandardLanguageID . ")) ";
$SQLString .= "LEFT JOIN " . TABLE_LIEFERSTATUS . " ON " . TABLE_ARTIKEL . ".lieferstatus = " . TABLE_LIEFERSTATUS . ".id ";
$SQLString .= "LEFT JOIN " . TABLE_LIEFERSTATUS_LANGU . " ON ((" . TABLE_LIEFERSTATUS . ".id = " . TABLE_LIEFERSTATUS_LANGU . ".lieferstatus_id) AND (" . TABLE_LIEFERSTATUS_LANGU . ".language_id = " . $LanguageID . ")) ";
$SQLString .= "LEFT JOIN " . TABLE_LIEFERSTATUS_LANGU . " table_lieferstatus_langu_standard ON (( " . TABLE_LIEFERSTATUS . ".id = table_lieferstatus_langu_standard.lieferstatus_id) AND (table_lieferstatus_langu_standard.language_id = " . $StandardLanguageID . ")) ";
$SQLString .= "LEFT JOIN " . TABLE_LIEFERSTATUS . " AS NullLieferstatus ON " . TABLE_LIEFERSTATUS . ".nichtauflager = NullLieferstatus.id ";
$SQLString .= "LEFT JOIN " . TABLE_LIEFERSTATUS_LANGU . " AS NullLieferstatusLangu ON ((NullLieferstatus.id = NullLieferstatusLangu.lieferstatus_id) AND (NullLieferstatusLangu.language_id = " . $LanguageID . ")) ";
$SQLString .= "LEFT JOIN " . TABLE_LIEFERSTATUS_LANGU . " AS NullLieferstatusLanguStandard ON ((NullLieferstatus.id = NullLieferstatusLanguStandard.lieferstatus_id) AND (NullLieferstatusLanguStandard.language_id = " . $StandardLanguageID . ")) ";
$SQLString .= "LEFT JOIN " . TABLE_VARI ANTE . " table_variante1 ON " . TABLE_ARTIKEL . ".variante1 = table_variante1.id ";
$SQLString .= "LEFT JOIN " . TABLE_VARIANTE_LANGU . " table_variante_langu1 ON ((table_variante1.id = table_variante_langu1.variante_id) AND (table_variante_langu1.language_id = " . $LanguageID . ")) ";
$SQLString .= "LEFT JOIN " . TABLE_VARIANTE . " table_variante2 ON " . TABLE_ARTIKEL . ".variante2 = table_variante2.id ";
$SQLString .= "LEFT JOIN " . TABLE_VARIANTE_LANGU . " table_variante_langu2 ON ((table_variante2.id = table_variante_langu2.variante_id) AND (table_variante_langu2.language_id = " . $LanguageID . ")) ";
$SQLString .= "LEFT JOIN " . TABLE_VARIANTE . " table_variante3 ON " . TABLE_ARTIKEL . ".variante3 = table_variante3.id ";
$SQLString .= "LEFT JOIN " . TABLE_VARIANTE_LANGU . " table_variante_langu3 ON ((table_variante3.id = table_variante_langu3.variante_id) AND (table_variante_langu3.language_id = " . $LanguageID . ")) ";
$SQLString .= "LEFT JOIN " . TABLE_VARIANTE . " table_variante4 ON " . TABLE_ARTIKEL . ".variante4 = table_variante4.id ";
$SQLString .= "LEFT JOIN " . TABLE_VARIANTE_LANGU . " table_variante_langu4 ON ((table_variante4.id = table_variante_langu4.variante_id) AND (table_variante_langu4.language_id = " . $LanguageID . ")) ";
$SQLString .= "LEFT JOIN " . TABLE_MWST . " ON " . TABLE_ARTIKEL . ".mwst = " . TABLE_MWST . ".id ";
$SQLString .= "LEFT JOIN " . TABLE_KUNDENGRUPPENPREISE . " ON ((" . TABLE_ARTIKEL . ".id = " . TABLE_KUNDENGRUPPENPREISE . ".artikelid) AND (" . TABLE_KUNDENGRUPPENPREISE . ".kundengruppenid = " . $KundengruppenObject->id . ")) ";
$SQLString .= "WHERE " . TABLE_ARTIKEL . ".id = '" . $ArtikelID . "'";
// echo '$SQLString: ' . $SQLString . '
';
// Artikel abfragen
$ArtikelObject = mysql_fetch_object(mysql_query($SQLString));
// Kategorien einlesen
$ArtikelObject->kategorie_array = GetKatgorieDataArray($ArtikelObject->id);
foreach ($ArtikelObject->kategorie_array as $KategorieData) {
$ArtikelObject->kategoriename_array[] = $KategorieData["name"];
}
// formatiertes Ver�ffentlichungsdatum
if ($ArtikelObject->voe_datum != 0) {
if (strtotime($ArtikelObject->voe_datum) > time()) {
$ArtikelObject->voe_datum_format = date("d.m.Y", strtotime($ArtikelObject->voe_datum));
}
}
// formatierter Preis f�r den Shop
if ($ArtikelObject->kundengruppenpreis_netto) {
$ArtikelObject->preis_brutto = $ArtikelObject->kundengruppenpreis_brutto;
$ArtikelObject->preis_netto = $ArtikelObject->kundengruppenpreis_netto;
// Bruttopreis
if ($KundengruppenObject->type == 1) {
$ArtikelObject->preis = $ArtikelObject->kundengruppenpreis_brutto;
$ArtikelObject->preis_format = number_format($ArtikelObject->kundengruppenpreis_brutto, 2, ",", ".") . " " . $WaehrungObject->symbol;
// Nettopreis
} else {
$ArtikelObject->preis = $ArtikelObject->kundengruppenpreis_netto;
$ArtikelObject->preis_format = number_format($ArtikelObject->kundengruppenpreis_netto, 2, ",", ".") . " " . $WaehrungObject->symbol;
}
} else {
// Bruttopreis
if ($KundengruppenObject->type == 1) {
$ArtikelObject->preis = $ArtikelObject->preis_brutto;
$ArtikelObject->preis_format = number_format($ArtikelObject->preis_brutto, 2, ",", ".") . " " . $WaehrungObject->symbol;
// Nettopreis
} else {
$ArtikelObject->preis = $ArtikelObject->preis_netto;
$ArtikelObject->preis_format = number_format($ArtikelObject->preis_netto, 2, ",", ".") . " " . $WaehrungObject->symbol;
}
}
// formatierter alter Preis fuer den Shop
if ($ArtikelObject->preis_alt_brutto > 0) {
if ($KundengruppenObject->type == 1) {
$ArtikelObject->preis_alt_format = number_format($ArtikelObject->preis_alt_brutto, 2, ",", ".") . " " . $WaehrungObject->symbol;
} else {
$ArtikelObject->preis_alt_format = number_format($ArtikelObject->preis_alt_netto, 2, ",", ".") . " " . $WaehrungObject->symbol;
}
}
// kleines Bild formatieren
if ($ArtikelObject->smallImage && file_exists(DATEIPFAD . "/images/dbimages/" . $ArtikelObject->smallImage)) {
$ImageSizeArray = getimagesize(DATEIPFAD . "/images/dbimages/" . $ArtikelObject->smallImage);
$ArtikelObject->imagesmall_imagestring = "smallImage . "\" width=\"" . $ImageSizeArray[0] . "\" height=\"" . $ImageSizeArray[1] . "\" alt=\"" . $ArtikelObject->artikel_name . "\" />";
$ArtikelObject->imagesmall_width = $ImageSizeArray[0];
$ArtikelObject->imagesmall_height = $ImageSizeArray[1];
}
// großes Bild formatieren
if ($ArtikelObject->bigImage && file_exists(DATEIPFAD . "/images/dbimages/" . $ArtikelObject->bigImage)) {
$ImageSizeArray = getimagesize(DATEIPFAD . "/images/dbimages/" . $ArtikelObject->bigImage);
$ArtikelObject->imagebig_imagestring = "
bigImage . "\" width=\"" . $ImageSizeArray[0] . "\" height=\"" . $ImageSizeArray[1] . "\" alt=\"" . $ArtikelObject->artikel_name . "\" />";
// Adminausgabe
$faktor = min(1, 150 / $ImageSizeArray[0], 150 / $ImageSizeArray[1]);
$zielbreite = round($ImageSizeArray[0] * $faktor);
$zielhoehe = round($ImageSizeArray[1] * $faktor);
$ArtikelObject->imagebig_imagestring_admin = "
bigImage . "\" width=\"" . $zielbreite . "\" height=\"" . $zielhoehe . "\" alt=\"" . $ArtikelObject->artikel_name . "\" />";
$ArtikelObject->imagebig_width = $ImageSizeArray[0];
$ArtikelObject->imagebig_height = $ImageSizeArray[1];
}
// großes Lieferstatusbild
if ($ArtikelObject->lager > 0 || !$ArtikelObject->nulllieferstatusid) {
if ($ArtikelObject->lieferstatus_image && file_exists(DATEIPFAD . "/images/dbimages/" . $ArtikelObject->lieferstatus_image)) {
$ImageSizeArray = getimagesize(DATEIPFAD . "/images/dbimages/" . $ArtikelObject->lieferstatus_image);
$ArtikelObject->lieferstatus_imagestring = "
lieferstatus_image . "\" width=\"" . $ImageSizeArray[0] . "\" height=\"" . $ImageSizeArray[1] . "\" alt=\"" . $ArtikelObject->lieferstatus_name . "\" />";
} else {
$ArtikelObject->lieferstatus_imagestring = $ArtikelObject->lieferstatus_name;
}
} else {
if ($ArtikelObject->nulllieferstatus_image && file_exists(DATEIPFAD . "/images/dbimages/" . $ArtikelObject->nulllieferstatus_image)) {
$ImageSizeArray = getimagesize(DATEIPFAD . "/images/dbimages/" . $ArtikelObject->nulllieferstatus_image);
$ArtikelObject->lieferstatus_imagestring = "
nulllieferstatus_image . "\" width=\"" . $ImageSizeArray[0] . "\" height=\"" . $ImageSizeArray[1] . "\" alt=\"" . $ArtikelObject->lieferstatus_name . "\" />";
} else {
$ArtikelObject->lieferstatus_imagestring = $ArtikelObject->nulllieferstatus_name;
}
}
// Varianten
// Artikel mit Merkmalkombinationen
if ($ArtikelObject->merkmalkombination || $ArtikelObject->merkmalkombinationparentid) {
$MerkmalkombinationenSearchField[] = "merkmalkombinationparentid";
if ($ArtikelObject->merkmalkombinationparentid) {
$MerkmalkombinationenSearchString[] = $ArtikelObject->merkmalkombinationparentid;
} else {
$MerkmalkombinationenSearchString[] = $ArtikelObject->id;
}
$MerkmalkombinationenSortField = "merkmalkombinationsort";
$MerkmalkombinationenSortOrder = "ASC";
$MerkmalkombinationenDataArray = GetArtikelDataArray($MerkmalkombinationenSearchField, $MerkmalkombinationenSearchString, $MerkmalkombinationenSortField, $MerkmalkombinationenSortOrder, "", "", "", "", "", "", "", "", 0, $FilterAktiv, "", "", 2);
$MerkmalkombinationenCounter = 0;
foreach ($MerkmalkombinationenDataArray as $MerkmalkombinationenData) {
$MerkmalString = "";
foreach ($MerkmalkombinationenData["varianten_array"] as $Merkmalkombinationen) {
$MerkmalString .= $Merkmalkombinationen["merkmalname"] . " / ";
}
$MerkmalString = substr($MerkmalString, 0, strlen($MerkmalString) - 3);
$ArtikelObject->varianten_array[1][$MerkmalkombinationenCounter]["merkmalid"] = $MerkmalkombinationenData["id"];
$ArtikelObject->varianten_array[1][$MerkmalkombinationenCounter]["merkmalname"] = $MerkmalString;
$MerkmalkombinationenCounter++;
}
// Artikel mit normalen Varianten
} else {
$MerkmalauswahlDataArray = GetMerkmalauswahlDataArray($ArtikelObject->id, $LanguageID);
if ($MerkmalauswahlDataArray) {
foreach ($MerkmalauswahlDataArray as $MerkmalauswahlKey => $MerkmalArray) {
$MerkmalCounter = 0;
foreach ($MerkmalArray as $Merkmal) {
if ($Merkmal["selected"]) {
$ArtikelObject->varianten_array[$MerkmalauswahlKey][$MerkmalCounter]["merkmalid"] = $Merkmal["id"];
$ArtikelObject->varianten_array[$MerkmalauswahlKey][$MerkmalCounter]["merkmalname"] = $Merkmal["name"];
$MerkmalCounter++;
}
}
}
}
}
// echo '
'; // var_dump($ArtikelObject); // echo ''; return $ArtikelObject; }