Pagina 1 di 2

Eliminare categoria dalla vetrina

Inviato: 16/08/2007, 8:39
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 //-->

Re: Eliminare categoria dalla vetrina

Inviato: 23/08/2007, 18:41
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

Inviato: 27/08/2007, 10:11
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?

Inviato: 27/08/2007, 11:15
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

Inviato: 27/08/2007, 13:41
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

Inviato: 27/08/2007, 17:45
da Simona67
Ce sempre da imparare in questo campo.
Grazie Bass per avermi illuminato ed istruito anche sta volta.
Ciao Simona

Inviato: 28/08/2007, 9:10
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ò?

Inviato: 28/08/2007, 16:13
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

Inviato: 29/08/2007, 10:53
da Piccivendolo
è possibile avere una tua foto da idolatrare ogni sera prima di andare a dormire?? :D

Inviato: 29/08/2007, 14:19
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

Inviato: 30/08/2007, 9:08
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]


:(

Inviato: 30/08/2007, 13:23
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

Inviato: 30/08/2007, 13:35
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]

Inviato: 30/08/2007, 20:59
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

Inviato: 31/08/2007, 11:46
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: