osCmax v2.5 User Manual
Results 1 to 3 of 3

Categories box layout nightmare Need Help!

This is a discussion on Categories box layout nightmare Need Help! within the osCommerce 2.2 Modification Help forums, part of the osCommerce 2.2 Forums category; I've been at this for the past week. I thought it would be very simple But I as it turns ...

      
  1. #1
    Lurker
    Join Date
    Dec 2002
    Posts
    2
    Rep Power
    0


    Default Categories box layout nightmare Need Help!

    I've been at this for the past week. I thought it would be very simple But I as it turns out, I'm very simple.

    In the categories box I want to show Top categories and the sub categories beneath it. I want to have conrtrol with css over both the category and the subcategories so they look different.

    Something Like this:

    Books
    • subcat book 1
      subcat book 2
      subcat book 3

    Audio Tapes
    • subcatTape 1
      subcatTape 2
      subcatTape3

    I found a contribution called all categories by Christian Lescuyer which allowed me to list cats and subcats underneath. However I can't figure out how to separate them to achieve the above look.

    The all categories code looks like this:

    Code:
    // Preorder tree traversal
      function preorder($cid, $level, $foo, $cpath)
      {
        global $categories_string, $HTTP_GET_VARS;
    
    // Display link
        if ($cid != 0) {
          for ($i=0; $i<$level; $i++)
            $categories_string .=  '&&';
          $categories_string .= '<a href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $cpath . $cid) . '">';
    // 1.6 Are we on the "path" to selected category?
          $bold = strstr($HTTP_GET_VARS['cPath'], $cpath . $cid . '_') || $HTTP_GET_VARS['cPath'] == $cpath . $cid;
    // 1.6 If yes, use <b>
          if ($bold)
            $categories_string .=  '<b>';
          $categories_string .=  $foo[$cid]['name'];
          if ($bold)
            $categories_string .=  '</b>';
          $categories_string .=  '</a>';
    // 1.4 SHOW_COUNTS is 'true' or 'false', not true or false
          if (SHOW_COUNTS == 'true') {
            $products_in_category = tep_count_products_in_category($cid);
            if ($products_in_category > 0) {
              $categories_string .= '&(' . $products_in_category . ')';
            }
          }
          $categories_string .= '<br>';
        }
    
    // Traverse category tree
        foreach ($foo as $key => $value) {
          if ($foo[$key]['parent'] == $cid) {
    //        print "$key, $level, $cid, $cpath<br>";
            preorder($key, $level+1, $foo, ($level != 0 ? $cpath . $cid . '_' : ''));
          }
        }
      }
    
    ?>
    <!-- all_categories //-->
              <tr>
                <td>
    <?php
    //////////
    // Display box heading
    //////////
      $info_box_contents = array();
      $info_box_contents[] = array('align' => 'left', 'text'  => BOX_HEADING_CATEGORIES);
      new infoBoxHeading($info_box_contents, true, false);
    
    
    //////////
    // Get categories list
    //////////
    // 1.2 Test for presence of status field for compatibility with older versions
      $status = tep_db_num_rows(tep_db_query('describe categories status'));
    
      $query = "select c.categories_id, cd.categories_name, c.parent_id
                from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd
                where c.categories_id = cd.categories_id";
    // 1.3 Can't have 'where' in an if statement!
      if ($status >0)
        $query.= " and c.status = '1'";
      $query.= " and cd.language_id='" . $languages_id ."'
                order by sort_order, cd.categories_name";
    
      $categories_query = tep_db_query($query);
    
    // Stuff in an array
      while ($categories = tep_db_fetch_array($categories_query))  {
        $foo[$categories['categories_id']] = array('name' => $categories['categories_name'], 'parent' => $categories['parent_id']);
      }
    
    // Initiate tree traverse
      $categories_string = '';
      preorder(0, 0, $foo, '');
    
    //////////
    // Display box contents
    //////////
      $info_box_contents = array();
      $info_box_contents[] = array('align' => 'left', 'text'  => $categories_string);
      new infoBox($info_box_contents);
    ?>
                </td>
              </tr>
    <!-- all_categories_eof //-->
    Christian offered this help via email but have not been able to make it work.


    Code:
    You have to do it at build time, in the preorder() function.
    Locate:
    if ($bold)
    
      $categories_string .= '<b>';
    
    Add something like:
    if ($level == 0) 
    
      $categories_string .= '<span class="whatever">';
    
    Then after the name and before the second "bold" thing, close the tag:
    
    if ($level == 0) 
    
      $categories_string .= '</span>';
    I've slept very little and I'm eating a lot. I'm having a store layout depression.

    Any help would be more than apreciated and most certainly compensated .

    Gary

  2. #2
    Lurker
    Join Date
    Jan 2004
    Posts
    3
    Rep Power
    0


    Default

    yeah i agree, it would be awesome to have a solution to this...gary did you ever figure it out??

  3. #3
    Lurker
    Join Date
    Dec 2002
    Posts
    2
    Rep Power
    0


    Default

    No I never did figure it out. I just started using the abbox store the templating system and hope I can do i there.

Similar Threads

  1. Diagram of layout?
    By doggerwatson in forum osCommerce 2.2 Modification Help
    Replies: 1
    Last Post: 09-22-2004, 06:30 AM
  2. layout questions
    By choyt3 in forum osCommerce 2.2 Modification Help
    Replies: 2
    Last Post: 05-20-2004, 12:27 PM
  3. layout in productlisting?
    By amilo in forum osCmax v1.7 Discussion
    Replies: 3
    Last Post: 05-17-2004, 01:05 PM
  4. Layout with transparent gifs vs. layout with CSS
    By Lynoure in forum osCommerce 2.2 Modification Help
    Replies: 1
    Last Post: 01-16-2004, 01:22 AM
  5. Layout questions-help....
    By whazzy in forum osCommerce 2.2 Modification Help
    Replies: 1
    Last Post: 10-30-2003, 11:38 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •