Перейти к содержанию
Форум поддержки пользователей VamShop

Список категорий. Подкатегории и их количество.


Рекомендуемые сообщения

Добрый вечер. Саш, у меня такой вопрос:

Мне нужно сделать так, чтобы на странице списка кактегорий вприсутствовали не только рисунок категории и его имя, но также количество подкатегорий на 1 уровень и их названия. Их должен ведь выводить массив $categories_content в includes\modules\default.php[строка:144-163]. Вот примерное его содержимое:


Array
(
    [categories_description] =>
    [categories_id] => 19
    [categories_name] => Компьютеры
    [categories_heading_title] =>
    [categories_image] => 19.gif
    [parent_id] => 0
)
...
[/code] Как изменить запрос к БД чтобы массив стал такой:
[code]
Array
(
    [categories_description] =>
    [categories_id] => 19
    [categories_name] => Компьютеры
    [categories_heading_title] =>
    [categories_image] => 19.gif
    [parent_id] => 0
    [subcategories_data] => Array
(
            [0] => Array
(
    [categories_id] => 126
    [categories_name] => Ноутбуки
                )
            [1] => Array
(
    [categories_id] => 127
    [categories_name] => Мониторы
                )
)
    [subcategories_qty] => 2
)

Результат:

Компьютеры [2]

    Ноутбуки

    Мониторы

Можно и другие варианты, важен результат.

ЗЫ: Програмирование знаю плохо. :(

Ссылка на сообщение
Поделиться на другие сайты

Если не сложно, напишите конечно.

Наверняка ведь в будущем пригодится кому, да и тема сохранится, если что, можно будет посмотреть, как делали.

Ссылка на сообщение
Поделиться на другие сайты

Хорошо :)

В includes\modules\default.php сразу после [строка: 146]:


  $rows = 0;
  while ($categories = vam_db_fetch_array($categories_query, true)) {
  $rows ++;[/code] Нужно добавить:
[code]
  $sub_query = "select    c.categories_id,
  cd.categories_name,
  c.parent_id from ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd
  where c.categories_status = '1'
  and c.parent_id = '".$categories['categories_id']."'
  and c.categories_id = cd.categories_id
  ".$recursive_check."
  ".$group_check."
  and cd.language_id = '".(int) $_SESSION['languages_id']."'
  order by sort_order, cd.categories_name";

  $sub_query = vamDBquery($sub_query);
 
  $subs_links = '';
  while ($subs = vam_db_fetch_array($sub_query, true)) {
$subs_links[] = '<a href="'.vam_href_link(FILENAME_DEFAULT, vam_category_link($subs['categories_id'],$subs['categories_name'])).'">'.$subs['categories_name'].'</a>';
  }
  }
Найти [строка:161]

  $categories_content[] = array ('CATEGORIES_NAME' => $categories['categories_name'], 'CATEGORIES_HEADING_TITLE' => $categories['categories_heading_title'], 'CATEGORIES_IMAGE' => $image, 'CATEGORIES_LINK' => vam_href_link(FILENAME_DEFAULT, $cPath_new), 'CATEGORIES_DESCRIPTION' => $categories['categories_description']);
[/code] Заменяем на:
[code=php]
  $categories_content[] = array (
'CATEGORIES_NAME' => $categories['categories_name'],
'CATEGORIES_HEADING_TITLE' => $categories['categories_heading_title'],
'CATEGORIES_IMAGE' => $image,
'CATEGORIES_LINK' => vam_href_link(FILENAME_DEFAULT, $cPath_new),
'CATEGORIES_DESCRIPTION' => $categories['categories_description'],
'SUBCATEGORIES_LINKS' => (($subs_links > 0)?(implode(", ", $subs_links)):('')),
'SUBCATEGORIES_QTY' => (($subs_links > 0)?(count($subs_links)):(''))
);

Вообщем то все. Остается только добавить метки {$module_data.SUBCATEGORIES_QTY} и {$module_data.SUBCATEGORIES_LINKS} в цикле в templates\..\module\categorie_listing\categorie_listing.html

default.php

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...