Für den Administrationsuser auch deaktivierte Artikel in der Suche im Frontend anzeigen

Aus Wiki | modified eCommerce Shopsoftware
Zur Navigation springenZur Suche springen

Bei der Stringsuche im Shop-Front werden nur Artikel angezeigt die aktiv sind und / oder Lagerbestand nicht Null. Für den Shop-Besucher passt das ja, für den Admin aber nicht. Mir ist bekannt, dass die Suche im Backend deaktivierte Artikel anzeigt, es gibt aber auch Gründe warum bei der Shop-Pflege im 2. Fenster besser das Frontend benutzt wird, sonst würde ich hier gar nicht erst danach fragen.

Antwort von hendrik (18.08.2010):

Ersetze in der "advanced_search_result.php" die Zeile:

$where_str = " WHERE p.products_status = '1' "." AND pd.language_id = '".(int) $_SESSION['languages_id']."'".$subcat_where.$fsk_lock.$manu_check.$group_check.$tax_where.$pfrom_check.$pto_check;

gegen folgendes Konstrukt.

if ($_SESSION['customers_status']['customers_status_id'] == 0) {
	$where_str = " WHERE pd.language_id = '".(int) $_SESSION['languages_id']."'".$subcat_where.$fsk_lock.$manu_check.$group_check.$tax_where.$pfrom_check.$pto_check;
} else {
	$where_str = " WHERE p.products_status = '1' "." AND pd.language_id = '".(int) $_SESSION['languages_id']."'".$subcat_where.$fsk_lock.$manu_check.$group_check.$tax_where.$pfrom_check.$pto_check;
}

Nicht getestet. Probier mal aus.

Gruß Hen

Erweiterung von enrico (20.08.2010):

so, hier nun der Rest damits auch wirklich rund läuft, Step 2 und 3 ...

in includes/modules/product_info.php ca. Z. 45 den Teil...

    if (!is_object($product) || !$product->isProduct() ) { // product not found in database

ersetzen durch ...

    // shs ORI Admin-Frontview, damit ADMIN auch deaktivierte Produkte oder Nullbestand findet...            if (!is_object($product) || !$product->isProduct() ) { // product not found in database
       if (!is_object($product) || !$product->isProduct() AND ($_SESSION['customers_status']['customers_status_id'] <> 0)  ) { // product not found in database
    // shs END Admin-FrontView

in der includes/classes/product.php ca. Z.47 dir original SQL-Abfrage...

    $product_query = "select * FROM ".TABLE_PRODUCTS." p,
										                                      ".TABLE_PRODUCTS_DESCRIPTION." pd
										                                      where p.products_status = '1'
										                                      and p.products_id = '".$this->pID."'
										                                      and pd.products_id = p.products_id
										                                      ".$group_check.$fsk_lock."
										                                      and pd.language_id = '".(int) $_SESSION['languages_id']."'";

ersetzen durch...

    // shs START   Admin-Frontview, damit ADMIN auch deaktivierte Produkte oder Nullbestand findet...
   	    if ($_SESSION['customers_status']['customers_status_id'] == 0) {
        $product_query = "select * FROM ".TABLE_PRODUCTS." p,
										                                      ".TABLE_PRODUCTS_DESCRIPTION." pd
										                                      where p.products_id = '".$this->pID."'
										                                      and pd.products_id = p.products_id
										                                      ".$group_check.$fsk_lock."
										                                      and pd.language_id = '".(int) $_SESSION['languages_id']."'";
        }
        else {
        $product_query = "select * FROM ".TABLE_PRODUCTS." p,
										                                      ".TABLE_PRODUCTS_DESCRIPTION." pd
										                                      where p.products_status = '1'
										                                      and p.products_id = '".$this->pID."'
										                                      and pd.products_id = p.products_id
										                                      ".$group_check.$fsk_lock."
										                                      and pd.language_id = '".(int) $_SESSION['languages_id']."'";
        }
    // shs END   Admin-FrontView

Hoffe es hilft dem Einen oder Anderen. Gruß

           
anything