Für den Administrationsuser auch deaktivierte Artikel in der Suche im Frontend anzeigen
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ß