Home / Blog / Nascondere le Categorie con Nessun Prodotto Attivo su Zen Cart

CONDIVIDI

Nascondere le Categorie con Nessun Prodotto Attivo su Zen Cart

, 17 novembre 2011 | TAG: web development

Zencart Ecommerce LogoCome ben saprete, in Zen Cart, una delle più famose piattaforme per realizzare e-commerce, si possono nascondere automaticamente le categorie che hanno zero prodotti.

Il metodo è molto semplice basta valorizzare la variabile "Categorie - Stato categorie con 0 Prodotti" a zero andando su Configurazione → Settaggi Layout.

Il caso si complica se la categoria ha diversi prodotti ma tutti disattivati, infatti la categoria si vedrà lo stesso.

La versione base di Zen Cart non permette di gestire questa esigenza in maniera automatica così, per far si che le categorie con zero prodotti attivi non siano visibili ho creato un piccolo escamotage:
1. creiamo un file .php chiamato functions_count_products.php dentro a "includes/functions/extra_functions" e incolliamo il seguente codice:

function zen_count_products_in_category($category_id) {
global $db;
$products_count = 0;
$products_query = "select count(*) as total
from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c
where p.products_id = p2c.products_id
and p.products_status = '1'
and p.products_quantity > 0
and p2c.categories_id = '" . (int)$category_id . "'";

$products = $db->Execute($products_query);
$products_count += $products->fields['total'];

$child_categories_query = "select categories_id
from " . TABLE_CATEGORIES . "
where parent_id = '" . (int)$category_id . "'";

$child_categories = $db->Execute($child_categories_query);

if ($child_categories->RecordCount() > 0) {
while (!$child_categories->EOF) {
$products_count += zen_count_products_in_category($child_categories->fields['categories_id'], $include_inactive);
$child_categories->MoveNext();
}
}

return $products_count;
}

2. apriamo il file include/modules/category_row.php3. cerchiamo la riga

while (!$categories->EOF) {

4. incolliamo subito dopo questa riga il seguente codice

$cat_count = zen_count_products_in_category($categories->fields['categories_id']);
if ($cat_count > 0) {

5. chiudiamo l'if con una parentesi graffa subito prima di:

$categories->MoveNext();

Il codice ottenuto all'interno del file category_row.phpsarà:

while (!$categories->EOF) {
$cat_count = zen_count_products_in_category($categories->fields['categories_id']);
if ($cat_count > 0) {
---> ...altro codice ZenCart... MoveNext();
}

Adesso le categorie con 0 prodotti attivi saranno automaticamente nascoste. Se avete risolto il problema con altre soluzioni, confrontiamoci nei commenti. :)

CONDIVIDI

Ti potrebbero interessare anche...

​Meglio un sito Responsive o un sito Mobile?
5 cose da sapere per fare la scelta giusta e assicurare un'esperienza positiva agli utenti che visitano il tuo sito da smartphone e tablet

18 dicembre 2015
IA SUMMIT 2015: Progetti web che creano legami
"Progettare un sito web significa creare un legame con gli utenti.” Ecco cosa abbiamo imparato all'IA Summit 2015 sulla Progettazione Funzionale.

29 ottobre 2015
Test di Google: più risultati dai siti posizionati al primo posto.
Esperimenti di google per massimizzare il rendimento dei posizionamenti. Google sta testando una nuova interfaccia per i risultati delle ricerche che farà visualizzare, per alcuni posizionamenti, una lista di tre o quattro pagine rilevanti dallo stesso sito in corrispondenza del primo risultato delle ricerche (top result).

02 maggio 2006