Pagina 1 di 1

visualizzare tutte le sottocategorie nel menù categorie

Inviato: 27/07/2008, 13:41
da wiko85
ok... modificando il file categories.php dovrei fare in modo da visualizzare nel menù tutte le sotto categorie.
al momento invece vengono visualizzate soltanto se si è entrati nella categoria madre

questo è il file da modificare...

Codice: Seleziona tutto

<?php
/*
  $Id: categories.php,v 1.25 2003/07/09 01:13:58 hpdl Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/

  function tep_show_category($counter) {
    global $tree, $categories_string, $cPath_array;

    for ($i=0; $i<$tree[$counter]['level']; $i++) {
      $categories_string .= "  ";
    }

    $categories_string .= '<a href="';

    if ($tree[$counter]['parent'] == 0) {
      $cPath_new = 'cPath=' . $counter;
    } else {
      $cPath_new = 'cPath=' . $tree[$counter]['path'];
    }

    $categories_string .= tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">';

    if (isset($cPath_array) && in_array($counter, $cPath_array)) {
      $categories_string .= '<b>';
    }

// display category name
    $categories_string .= $tree[$counter]['name'];

    if (isset($cPath_array) && in_array($counter, $cPath_array)) {
      $categories_string .= '</b>';
    }

// nel menù mostra affianco alla categoria principale un simbolo
//    if (tep_has_category_subcategories($counter)) {
//      $categories_string .= '';
//    }

    $categories_string .= '</a>';

    if (SHOW_COUNTS == 'true') {
      $products_in_category = tep_count_products_in_category($counter);
      if ($products_in_category > 0) {
        $categories_string .= ' (' . $products_in_category . ')';
      }
    }

    $categories_string .= '<br>';

    if ($tree[$counter]['next_id'] != false) {
      tep_show_category($tree[$counter]['next_id']);
    }
  }
?>
<!-- categories //-->
          <tr>
            <td>
<?php
  $info_box_contents = array();
  $info_box_contents[] = array('text' => BOX_HEADING_CATEGORIES);

  new infoBoxHeading($info_box_contents, true, false);

  $categories_string = '';
  $tree = array();

  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '0' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name");
  while ($categories = tep_db_fetch_array($categories_query))  {
    $tree[$categories['categories_id']] = array('name' => $categories['categories_name'],
                                                'parent' => $categories['parent_id'],
                                                'level' => 0,
                                                'path' => $categories['categories_id'],
                                                'next_id' => false);

    if (isset($parent_id)) {
      $tree[$parent_id]['next_id'] = $categories['categories_id'];
    }

    $parent_id = $categories['categories_id'];

    if (!isset($first_element)) {
      $first_element = $categories['categories_id'];
    }
  }

  //------------------------
  if (tep_not_null($cPath)) {
    $new_path = '';
    reset($cPath_array);
    while (list($key, $value) = each($cPath_array)) {
      unset($parent_id);
      unset($first_id);
      $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$value . "' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name");
      if (tep_db_num_rows($categories_query)) {
        $new_path .= $value;
        while ($row = tep_db_fetch_array($categories_query)) {
          $tree[$row['categories_id']] = array('name' => $row['categories_name'],
                                               'parent' => $row['parent_id'],
                                               'level' => $key+1,
                                               'path' => $new_path . '_' . $row['categories_id'],
                                               'next_id' => false);

          if (isset($parent_id)) {
            $tree[$parent_id]['next_id'] = $row['categories_id'];
          }

          $parent_id = $row['categories_id'];

          if (!isset($first_id)) {
            $first_id = $row['categories_id'];
          }

          $last_id = $row['categories_id'];
        }
        $tree[$last_id]['next_id'] = $tree[$value]['next_id'];
        $tree[$value]['next_id'] = $first_id;
        $new_path .= '_';
      } else {
        break;
      }
    }
  }
  tep_show_category($first_element); 

  $info_box_contents = array();
  $info_box_contents[] = array('text' => $categories_string);

  new infoBox($info_box_contents);
?>
            </td>
          </tr>
<!-- categories_eof //-->

Inviato: 27/07/2008, 15:03
da hsg26
dunque... viewtopic.php?t=10113 questa è una guida...

tu cosa cerchi? Vuoi mostrare le sotto categorie?

in inglese come si dice? --> show subcategories

sono sicuro che trovi la soluzione.

In fondo, se dobbiamo cercarlo noi, puoi farlo anche tu no? :)

Inviato: 01/08/2008, 15:58
da wiko85
aspetta non fraintendermi... e soprattutto cerchiamo di non dare sempre le stesse risposte...
cercare è una buona cosa ma io volevo cercare insieme a voi di capire dove andare a modificare, tutto sommato non è difficile...
comunque mi arrangerò da me...

Inviato: 02/08/2008, 10:22
da hsg26
wiko85 ha scritto:aspetta non fraintendermi... e soprattutto cerchiamo di non dare sempre le stesse risposte...
cercare è una buona cosa ma io volevo cercare insieme a voi di capire dove andare a modificare, tutto sommato non è difficile...
comunque mi arrangerò da me...
perchè reinventare l'acqua calda se c'è una contribution che lo fa già? :)

Inviato: 02/08/2008, 10:50
da wiko85
perché magari non si rimane ignoranti ma si capisce dove andare a modificare e come funziona...
comunque non stiamo qui a discuterne, ho già risolto da me...
grazie ugualmente!

Inviato: 03/08/2008, 10:42
da hsg26
wiko85 ha scritto:perché magari non si rimane ignoranti ma si capisce dove andare a modificare e come funziona...
comunque non stiamo qui a discuterne, ho già risolto da me...
grazie ugualmente!
nono ma capisco il tuo punto di vista, imparare va benissimo perchè potrebbe venirti utile in futuro. Io però tendo ad imparare quando ne ho la necessità, altrimenti uso il lavoro degli altri se esiste. Per questo in fondo sono nate le comunità di software libero.

Dipende anche tutto dai motivi per i quali crei lo shop. Il nostro tempo non è gratis, nonostante possa sembrarlo.
Meglio concentrarsi su altri aspetti, come le descrizioni dei prodotti, che nessuno può fare al nostro posto....

Credo che se faccio uno shop per vendere, e la funzionalità è già esistente e mi serve, la aggiungo. A me interessa vendere, non imparare il codice, altrimenti non creerei nemmeno lo shop.

Invece se crei lo shop per scopo ludico, ecco che il discorso cambia.

Tutto qui...