satzone Posted July 22, 2008 Report Share Posted July 22, 2008 Hallo zusammen, Folgendes Zenario: Artikel ist verlinkt in z.Bsp. 30 andere Kategorien. An einem Tag stellst du den Artikel unter Top als SAonderangebot, soweit so gut. Nun deaktivierst du den Artikel unter top, Aktion abgelaufen und er bleibt dort inaktiv liegen. Jetzt kommt das Problem, willst du diesen löschen wird dieser Artikel leider 30x angezeigt und die Haken sind alle gesetzt, jetzt darfst Du diese 30 Haken alle mühsam wegklicken und nur den bei top stehen lassen...!! Jetzt stellt euch vor ihr habt Artikel die in 200 Kategorien verlinkt sind, z.Bsp. in einem Tuning Zubehör Shop wo es Universal Artikel gibt die an jedes Fahrzeug passen!! Also, wenn jemand eine Lösung hat wie man sich dieses Mühsame wegklicken der Haken ersparen kann, wär ich echt dankbar! Evtl. reicht es schon wenn man das automatische auswählen aller deaktiviert und dann den Haken unter Top selbst setzt. Danke u. Gruss [url="http://www.xt-commerce.com/forum/editpost.php?do=editpost&p=302211"] Link to comment Share on other sites More sharing options...
Hetfield Posted July 22, 2008 Report Share Posted July 22, 2008 In der Datei admin/categories.php in ca. Zeile 117 nach folgendem Code suchen: if ($_GET['flag'] == '1') $catfunc->link_product($_GET['pID'], 0); und danach folgendes einfügen: // # BUGFIX 0000351 Anfang $catfunc->set_product_remove_startpage_sql($_GET['pID'], $_GET['flag']); if ($_GET['flag'] == '0') xtc_redirect(xtc_href_link(FILENAME_CATEGORIES)); // # BUGFIX 0000351 Ende[/php]Anschließend in der Datei admin/includes/classes/categories.php bei ca. Zeile 459 nach folgendem Codesegment suchen: [php] $products_status = xtc_db_prepare_input($products_data['products_status']);und davor folgende Zeile einfügen: // # BUGFIX 0000351 Anfang $this->set_product_remove_startpage_sql($products_data['products_id'], 0); // # BUGFIX 0000351 Ende[/php]danach in der gleiche Datei nach dieser Funktion suchen: [php]// Sets a product active on startpage function set_product_startpage($products_id, $status) { if ($status == '1') { return xtc_db_query("update ".TABLE_PRODUCTS." set products_startpage = '1', products_last_modified = now() where products_id = '".$products_id."'"); } elseif ($status == '0') { return xtc_db_query("update ".TABLE_PRODUCTS." set products_startpage = '0', products_last_modified = now() where products_id = '".$products_id."'"); } else { return -1; } } // ----------------------------------------------------------------------------------------------------- //und darunter folgende Funktion einfügen: // Set a product remove on startpage sql (BUGFIX 0000351) function set_product_remove_startpage_sql($products_id, $status) { if ($status == '0') { global $messageStack; $check_query = xtc_db_query("SELECT COUNT(*) AS total FROM ".TABLE_PRODUCTS_TO_CATEGORIES." WHERE products_id = '".$products_id."' AND categories_id = '0'"); $check = xtc_db_fetch_array($check_query); if ($check['total'] >= '1') { return xtc_db_query("DELETE FROM ".TABLE_PRODUCTS_TO_CATEGORIES." WHERE products_id = '".$products_id."' and categories_id = '0'");; } } } // ----------------------------------------------------------------------------------------------------- // [/php]Fertig! Jetzt wird der Artikel beim Klick auf das rote Status-Icon in der Kategorie Top aus der selbigen gelöscht. Habe das selbst mal hier für die SP2.2 entdeckt: http://www.xt-commerce.com/bugs/view.php?id=351 MfG Hetfield Link to comment Share on other sites More sharing options...
satzone Posted July 22, 2008 Author Report Share Posted July 22, 2008 Hallo Hetfield, Suuper, Besten Dank für diese Anleitung, klappt wunderbar. Sobald man direkt beim Artikel Editieren von "Auf Startseite true, auf false umstellt wird der Artikel unter Top gelöscht, wunderbar!! Hab zwar noch 3.04 SP1 konnte ich aber problemlos so einbauen, bis auf eine kleine Ungereimtheit: $products_status = xstc_db_prepare_input($products_data['products_status']); müsste wohl richtig heissen: $products_status = xtc_db_prepare_input($products_data['products_status']); Jedenfalls wars bei mir so, (anstatt xstc_db_prepare_input, wars xtc_db_prepare_input, klappt ja wunderbar! Herzlichen Dank Link to comment Share on other sites More sharing options...
Hetfield Posted July 22, 2008 Report Share Posted July 22, 2008 Gern geschehen! Die Ungereimtheit war nur ein Tippfehler! Aber hast es ja selbst raus gefunden und ich habe es mal hier korrigiert. MfG Hetfield Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.