Eliminare categoria dalla vetrina

Postate qui discussioni di carattere generale riguardo a problemi di installazione e configurazione di osCommerce

Moderatore: mod Generali

Piccivendolo
membro Regular
membro Regular
Messaggi: 140
Iscritto il: 21/03/2005, 1:00
Località: Italia
Contatta:

Eliminare categoria dalla vetrina

Messaggio da Piccivendolo »

salve,

come posso fare per non far apparire i prodotti di una determinata categoria nella vetrina?

il mio file new_products.php è:

Codice: Seleziona tutto

<!-- new_products //-->
<?php
  $info_box_contents = array();
  $info_box_contents[] = array('text' => 'Vetrina prodotti');

  new contentBoxHeading($info_box_contents);
  
  //TotalB2B start
  if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) {
    $new_products_query = tep_db_query("select p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where products_status = '1' order by rand() DESC limit " . MAX_DISPLAY_NEW_PRODUCTS);
  } else {
    $new_products_query = tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '" . $new_products_category_id . "' and p.products_status = '1' order by rand() DESC limit " . MAX_DISPLAY_NEW_PRODUCTS);
  }
  //TotalB2B end

  $row = 0;
  $col = 0;
  $info_box_contents = array();
  while ($new_products = tep_db_fetch_array($new_products_query)) {
	
    $new_products['products_name'] = tep_get_products_name($new_products['products_id']);

	//TotalB2B start & TotalB2B start
	if ($new_price = tep_get_products_special_price($new_products['products_id'])) {
      $new_products['products_price'] = $new_price;
	  $info_box_contents[$row][$col] = array('align' => 'center',
                                       'params' => 'class="smallText" width="33%" valign="top"',
                                       'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . $new_products['products_name'] . '</a><br>' . $currencies->display_price_nodiscount($new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])));
    } else {
      $new_products['products_price'] = tep_xppp_getproductprice($new_products['products_id']);
	  $info_box_contents[$row][$col] = array('align' => 'center',
                                       'params' => 'class="smallText" width="33%" valign="top"',
                                       'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . $new_products['products_name'] . '</a><br>' . $currencies->display_price($new_products['products_id'], $new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])));
    }
	//TotalB2B end & TotalB2B end

	$col ++;
    if ($col > 2) {
      $col = 0;
      $row ++;
    }
  }

  new contentBox($info_box_contents);
?>
<!-- new_products_eof //-->
Avatar utente
Simona67
membro Veteran
membro Veteran
Messaggi: 786
Iscritto il: 10/11/2003, 1:00
Località: Milano
Contatta:

Re: Eliminare categoria dalla vetrina

Messaggio da Simona67 »

Piccivendolo ha scritto:salve,

come posso fare per non far apparire i prodotti di una determinata categoria nella vetrina?

il mio file new_products.php è:

Codice: Seleziona tutto

<!-- new_products //-->
<?php
  $info_box_contents = array();
  $info_box_contents[] = array('text' => 'Vetrina prodotti');

  new contentBoxHeading($info_box_contents);
  
  //TotalB2B start
  if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) {
    $new_products_query = tep_db_query("select p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where products_status = '1' order by rand() DESC limit " . MAX_DISPLAY_NEW_PRODUCTS);
  } else {
    $new_products_query = tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '" . $new_products_category_id . "' and p.products_status = '1' order by rand() DESC limit " . MAX_DISPLAY_NEW_PRODUCTS);
  }
  //TotalB2B end

  $row = 0;
  $col = 0;
  $info_box_contents = array();
  while ($new_products = tep_db_fetch_array($new_products_query)) {
	
    $new_products['products_name'] = tep_get_products_name($new_products['products_id']);

	//TotalB2B start & TotalB2B start
	if ($new_price = tep_get_products_special_price($new_products['products_id'])) {
      $new_products['products_price'] = $new_price;
	  $info_box_contents[$row][$col] = array('align' => 'center',
                                       'params' => 'class="smallText" width="33%" valign="top"',
                                       'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . $new_products['products_name'] . '</a><br>' . $currencies->display_price_nodiscount($new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])));
    } else {
      $new_products['products_price'] = tep_xppp_getproductprice($new_products['products_id']);
	  $info_box_contents[$row][$col] = array('align' => 'center',
                                       'params' => 'class="smallText" width="33%" valign="top"',
                                       'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . $new_products['products_name'] . '</a><br>' . $currencies->display_price($new_products['products_id'], $new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])));
    }
	//TotalB2B end & TotalB2B end

	$col ++;
    if ($col > 2) {
      $col = 0;
      $row ++;
    }
  }

  new contentBox($info_box_contents);
?>
<!-- new_products_eof //-->
Ciao,
Devi installare questa contrib
http://www.oscommerce.com/community/con ... ch,vetrina

Ciao Simona
Piccivendolo
membro Regular
membro Regular
Messaggi: 140
Iscritto il: 21/03/2005, 1:00
Località: Italia
Contatta:

Messaggio da Piccivendolo »

ciao, grazie per la risposta, ma non c'è un modo più semplice dato che io voglio escludere solo 1 categoria dalla vetrina, e non ho necessità di cambiarla o selezionarla in alcun modo.
che ne so magari aggiungendo un controllo che fa in modo di escludere i prodotti di quella categoria?
Avatar utente
Simona67
membro Veteran
membro Veteran
Messaggi: 786
Iscritto il: 10/11/2003, 1:00
Località: Milano
Contatta:

Messaggio da Simona67 »

Piccivendolo ha scritto:ciao, grazie per la risposta, ma non c'è un modo più semplice dato che io voglio escludere solo 1 categoria dalla vetrina, e non ho necessità di cambiarla o selezionarla in alcun modo.
che ne so magari aggiungendo un controllo che fa in modo di escludere i prodotti di quella categoria?
Ciao,
Io so di quella contrib che ti ho dato il link di altri modi non saprei mi spiace.
Ciao Simona
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Piccivendolo ha scritto:ciao, grazie per la risposta, ma non c'è un modo più semplice dato che io voglio escludere solo 1 categoria dalla vetrina, e non ho necessità di cambiarla o selezionarla in alcun modo.
che ne so magari aggiungendo un controllo che fa in modo di escludere i prodotti di quella categoria?
Puoi escluderla utilizzando l'id della categoria. Guarda nel tuo shop o dal lato cliente o in amministrazione il valore del cpath nell'url del sito, quello e' l'id della categoria.
Apri adesso il file includes/modules/new_products. php, nelle due query all'inizio vai appena prima di questo codice

Codice: Seleziona tutto

order by p.products_date_added
e aggiungi

Codice: Seleziona tutto

and c.categories_id != '1'
sostituendo il numero 1 con l'id della tua categoria

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Avatar utente
Simona67
membro Veteran
membro Veteran
Messaggi: 786
Iscritto il: 10/11/2003, 1:00
Località: Milano
Contatta:

Messaggio da Simona67 »

Ce sempre da imparare in questo campo.
Grazie Bass per avermi illuminato ed istruito anche sta volta.
Ciao Simona
Piccivendolo
membro Regular
membro Regular
Messaggi: 140
Iscritto il: 21/03/2005, 1:00
Località: Italia
Contatta:

Messaggio da Piccivendolo »

si infatti è quello che vorrei fare io però nel mio file se guardi bene non c'è il codice

Codice: Seleziona tutto

order by p.products_date_added
come fò?
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Piccivendolo ha scritto:si infatti è quello che vorrei fare io però nel mio file se guardi bene non c'è il codice

Codice: Seleziona tutto

order by p.products_date_added
come fò?
Non avevo guardato il file, semplicemente mettilo prima di

Codice: Seleziona tutto

order by rand()
'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Piccivendolo
membro Regular
membro Regular
Messaggi: 140
Iscritto il: 21/03/2005, 1:00
Località: Italia
Contatta:

Messaggio da Piccivendolo »

è possibile avere una tua foto da idolatrare ogni sera prima di andare a dormire?? :D
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Piccivendolo ha scritto:è possibile avere una tua foto da idolatrare ogni sera prima di andare a dormire?? :D
E' piu' facile che poi non dormi per gli incubi :lol: :lol: :lol:

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Piccivendolo
membro Regular
membro Regular
Messaggi: 140
Iscritto il: 21/03/2005, 1:00
Località: Italia
Contatta:

Messaggio da Piccivendolo »

ciao!

purtroppo mi da questo errore:

1109 - Unknown table 'c' in where clause

select p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from products p left join specials s on p.products_id = s.products_id where products_status = '1' and c.categories_id != '25_54' order by rand() DESC limit 12

[TEP STOP]


:(
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Piccivendolo ha scritto:ciao!
purtroppo mi da questo errore:
Prova a sostituire il c.categories_id che ti ho fatto metter con categories_id (togli c. )

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Piccivendolo
membro Regular
membro Regular
Messaggi: 140
Iscritto il: 21/03/2005, 1:00
Località: Italia
Contatta:

Messaggio da Piccivendolo »

sempre errore

1054 - Unknown column 'categories_id' in 'where clause'

select p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from products p left join specials s on p.products_id = s.products_id where products_status = '1' and categories_id != '25_45' order by rand() DESC limit 12

[TEP STOP]
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Piccivendolo ha scritto:sempre errore

1054 - Unknown column 'categories_id' in 'where clause'

select p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from products p left join specials s on p.products_id = s.products_id where products_status = '1' and categories_id != '25_45' order by rand() DESC limit 12

[TEP STOP]
Ah ah, aspetta, ho visto solo ora che la tua non e' una categoria ma una sottocategoria, rimetti c.categories_id ma come numero usa soltanto il secondo, 45...
Cosi' dovrebbe andare a meno che non faccio confusione con la categoria madre

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
Piccivendolo
membro Regular
membro Regular
Messaggi: 140
Iscritto il: 21/03/2005, 1:00
Località: Italia
Contatta:

Messaggio da Piccivendolo »

1109 - Unknown table 'c' in where clause

select p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from products p left join specials s on p.products_id = s.products_id where products_status = '1' and c.categories_id != '45' order by rand() DESC limit 12

[TEP STOP]


:roll:
Rispondi