Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Вывод категорий с подкатегориями...

Помогите тупому понять как реализовать

Переделываю плагин top_filter

Цель такая
В запросе указывать какие категории надо выводить.
Категории эти все первого уровня
И нужно, чтобы ПОДкатегории выводились автоматически

Но что-то не могу понять где и что поправить.
<?php
/*
#####################################
#  ShopOS: Shopping Cart Software.
#  Copyright (c) 2008-2010
#  http://www.shopos.ru
#  http://www.shoposs.com
#  Ver. 1.0.0
#####################################
*/

function category_level_count($foo_to, $_name)
{
$count = 0;
foreach ($foo_to as $__name => $__value)
{
if ($__value['parent'] == $_name)
{
$count ++;
}
}
return $count;
}

$categories_string = '';

// содержит в себе категории которые нужно выводить
$cat = get_option('cat');

$categories_query = osDBquery(
"select
c.categories_id,
cd.categories_name,
c.parent_id
from
".TABLE_CATEGORIES." c,
".TABLE_CATEGORIES_DESCRIPTION . " cd
where
c.categories_status = '1'
".(!empty($cat) ? 'AND c.categories_id IN ('.$cat.')' : '')."
and c.categories_id = cd.categories_id
and cd.language_id='" . (int)$_SESSION['languages_id'] ."'
order by
sort_order, cd.categories_name
");

if (os_db_num_rows($categories_query,true))
{
while ($categories = os_db_fetch_array($categories_query,true)) 
{
$foo] = array
(
'name' => $categories['categories_name'],
'cid' => $categories['categories_id'],
'parent' => $categories['parent_id']
);
}
}

if ($foo)
{
    $count = 0;
$foo_to = $foo;
$top_filter_cat = get_option('top_filter_cat');

    foreach ($foo as $_name => $_value)
    {

      if ($_value['parent'] == 0)
  {
      $_cat_check = false;

  if ($top_filter_cat == 'top_filter_cat_true')
  {
    //не проверяем категорию на кол. подкатегорий

$_cat_check = true;
  }

  if ($top_filter_cat == 'top_filter_cat_false' && category_level_count($foo_to, $_name) != 0)
  {
            //если в категории нет подкатегорий 2ого уровня - нен выводить категорию вообще.
      $_cat_check = true;
  }

          if ($_cat_check)
          {  
        $_count = os_count_products_in_category($_name);

//если кол. = 0 - ничего не выводить
$__count = '';
if ($_count != 0) $__count = '('.$_count.')';

echo  '<div class="popupmenu-item popupmenu-col"><img src="'._HTTP_THEMES_C.'img_tmp/'.$_value['cid'].'.gif" width="60" height="60" alt="'.$_value['name'].'" /><div class="cat-item-block"><h2 class="bold"><a href="'.os_href_link(FILENAME_DEFAULT, os_category_link($_name, $_value['name']) ).'" title="'.$_value['name'].'">'.$_value['name'].'</a></h2><ul>';

            $_cat_2 = 0;
$_one = 0;

        foreach ($foo_to as $__name => $__value)
        {
              if ($__value['parent'] == $_name)
                  {

              $_cat_2++;

  if ($_one != 0) {}
 
          echo '<li><a href="'.os_href_link(FILENAME_DEFAULT, os_category_link($__name, $__value['name']) ).'" title="'.$__value['name'].'">'.$__value['name'].'</a></li>';

          if ($_cat_2 == 5) break;
 
  $_one++;
          }
 
        }
  echo '</ul></div><div class="clear"></div></div>';
   
  $count++;
 
  if ( $count >= 4)
  {
      echo '<div class="clear"></div>';
  $count = 0;
  }
  }
 
  }
     
  }

  echo '<div class="clear"></div>';

}
?>


$cat = get_option('cat'); - тут список категорий первого уровня

".(!empty($cat) ? 'AND c.categories_id IN ('.$cat.')' : '')." - это в запросе на выборку из get_option('cat')

То есть нужно, чтобы подкатегории всегда выводились у категорий которые указаны в get_option('cat')
.


Народ, ну помогите кто-то плиз?


Интересует как в данном плагине убрать (кол-во товаро в данных категориях) кто знает что править? подскажите


Интересует как в данном плагине убрать (кол-во товаро в данных категориях) кто знает что править? подскажите

заменить строку
echo  '<td width="33%" class="rcat_table">'.'<a class="rcat_root_category" href="' . os_href_link(FILENAME_DEFAULT, os_category_link($_name, $_value['name']) ) . '">'.$_value['name'].'</a> '.$__count.' <br /><div class="rcat_child_categories">';
на
echo  '<td width="33%" class="rcat_table">'.'<a class="rcat_root_category" href="' . os_href_link(FILENAME_DEFAULT, os_category_link($_name, $_value['name']) ) . '">'.$_value['name'].'</a><br /><div class="rcat_child_categories">';


Источник



Copyright ShopOS