snip 0 Опубликовано 17 августа, 2011 Жалоба Share Опубликовано 17 августа, 2011 Здравствуйте. существует категория: лампы в которой находятся подкатегории лампы накаливания и светодиодные лампы. а в них уже находятся товары. Необходимо чтобы при входе в категорию лампы отображались все товары подкатегорий, в следующем виде: Лампы накаливания (рядом картинка подкатегории) лампа 1 лампа 2 светодиодные лампы (рядом картинка подкатегории) лампа 3 лампа 4 ____________ как вывести просто списком,я нашел.. есть настройка в админке. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 августа, 2011 Жалоба Share Опубликовано 17 августа, 2011 В Админке - Настройки - Вывод товара включить опцию Показывать товар из подкатегорий, вроде бы так называется опция, там видно будет. Ссылка на сообщение Поделиться на другие сайты
snip 0 Опубликовано 17 августа, 2011 Автор Жалоба Share Опубликовано 17 августа, 2011 да, но там выводится просто товар списком без названия подкатегорий и без картинки подкатегории, а мне надо как написал в предидущем посте Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 августа, 2011 Жалоба Share Опубликовано 17 августа, 2011 Ничего другого по умолчанию нет. Тогда правьте скрипты и делайте вывод такой какой Вам нужен. Ссылка на сообщение Поделиться на другие сайты
snip 0 Опубликовано 17 августа, 2011 Автор Жалоба Share Опубликовано 17 августа, 2011 а какой файл править? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 августа, 2011 Жалоба Share Опубликовано 17 августа, 2011 Много файлов править. /includes/modules/default.php /includes/modules/product_listing.php шаблоны списка товаров и т.д. Ссылка на сообщение Поделиться на другие сайты
mariolast 4 Опубликовано 17 мая, 2014 Жалоба Share Опубликовано 17 мая, 2014 Может кто подскажет. Нашел интересную заметку, как выводить подкатегории. Суть. Одновременный вывод подкатегорий и товаров в Vamshop В файле includes/modules/product_listing.php после строк $listing_query = vamDBquery($listing_split->sql_query); while ($listing = vam_db_fetch_array($listing_query, true)) { $rows ++; $module_content[] = $product->buildDataArray($listing); } добавляем: if ($_GET['cat']) { $categories_query = "SELECT c.categories_id, cd.categories_name FROM categories AS c, categories_description AS cd WHERE c.categories_id=cd.categories_id AND c.parent_id=$current_category_id"; $categories_query = vamDBquery($categories_query); $categories_list = array(); while ($subcategory = vam_db_fetch_array($categories_query, true)) { $categories_list[] = array ('CATEGORIES_NAME' => $subcategory['categories_name'], 'CATEGORIES_ID' => $subcategory['categories_id']); } $module->assign('categories_list', $categories_list); } Тут банально выбираем из базы подкатегории нашей текущей категории и при помощи $module->assign('categories_list', $categories_list); делаем их доступными для системы шаблонов (Vamshop использует Smarty). Далее в templates/<current_template>/modules/product_listing/product_listing_columns.html добавляем в нужном нам месте строки вида: {if $categories_list} <div class="page"> <div class="pageItem"> <ul class="categories-list"> {foreach name=aussen item=category_data from=$categories_list} <li><a href="index.php?cat={$category_data.CATEGORIES_ID}">{$category_data.CATEGORIES_NAME}</a></li> {/foreach} </ul> </div> </div> {/if} Соответственно тут мы перебираем и выводим наши подкатегории. Мне тут интересен сам вывод подкатегорий. Пытаюсь прикрутить его к ниспадающему меню в новом шаблоне. Но вот только сейчас на новом 1.72 магазине это все не работает, проблема в самом запросе к БД $categories_query, сайт вообще не грузится, пустая страница после добавления сего кода. Где то есть ошибка. Может кто подскажет в чем ошибка, возможно на пред. версиях вамшопа оно работало. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 мая, 2014 Жалоба Share Опубликовано 17 мая, 2014 Так код принципиально не менялся, если заметка правильная, всё должно работать. Ссылка на сообщение Поделиться на другие сайты
mariolast 4 Опубликовано 19 мая, 2014 Жалоба Share Опубликовано 19 мая, 2014 Может подскажете тогда. Код рабочий. Пытаюсь теперь прикрутить эту идею к ниспадающему меню в новом шаблоне. Создал новый бокс box_categories2.html, сделал чтобы он показывал все меню категорий. Теперь хочу сделать так, чтобы он показывал только 1-ю подкатегорию из категории с id=187. Для этого правим код в файле includes/modules/product_listing.php как как это описано в вышеприведенном коде. Далее открываем box_categories2.html. Его содержимое {config_load file="$language/lang_$language.conf" section="boxes"} <div id="boxCategories2"> <div id="categories2BoxMenu"> {$BOX_CONTENT} </div> меняю на {config_load file="$language/lang_$language.conf" section="boxes"} {$categories_list} <div class="page"> <div class="pageItem"> <ul class="categories-list"> {foreach name=aussen item=category_data from=$categories_list} <li><a href="index.php?cat=187">{$category_data.CATEGORIES_NAME}</a></li> {/foreach} </ul> </div> </div> Сохранил. По идее должно работать, но видимо где то допустил ошибку. Меню пустое. Где то видимо допустил ошибку Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 20 мая, 2014 Жалоба Share Опубликовано 20 мая, 2014 Все категории берутся из php файла бокса, из sql запроса. По идее, Вам нужно sql запрос переписывать. Ссылка на сообщение Поделиться на другие сайты
alexts 18 Опубликовано 21 мая, 2014 Жалоба Share Опубликовано 21 мая, 2014 В Админке - Настройки - Вывод товара включить опцию Показывать товар из подкатегорий, вроде бы так называется опция, там видно будет. А каким образом эта опция завязана на глубину вложенности? Было Категория - подкатегория - товар Жмем на Категория - выводятся товары списком, согласно установленной опции Появился новый раздел Категория - подкатегория- подподкатегория - товар Жмем на Категория - НЕ выводятся товары списком, "Не найдено товаров, соответствующих Вашему запросу. Воспользуйтесь поиском!" Как починить? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 22 мая, 2014 Жалоба Share Опубликовано 22 мая, 2014 Вроде как выводится только на один уровень глубины подкатегорий, не ниже. Ссылка на сообщение Поделиться на другие сайты
alexts 18 Опубликовано 22 мая, 2014 Жалоба Share Опубликовано 22 мая, 2014 Ну таки да, а как больше сделать? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 22 мая, 2014 Жалоба Share Опубликовано 22 мая, 2014 Да вроде никак, разве что код переписывать в /includes/modules/default.php Ссылка на сообщение Поделиться на другие сайты
mariolast 4 Опубликовано 23 мая, 2014 Жалоба Share Опубликовано 23 мая, 2014 Вот он этот sql запрос $categories_query = "SELECT c.categories_id, cd.categories_name FROM categories AS c, categories_description AS cd WHERE c.categories_id=cd.categories_id AND c.parent_id=$current_category_id"; $categories_query = vamDBquery($categories_query); $categories_list = array(); while ($subcategory = vam_db_fetch_array($categories_query, true)) { $categories_list[] = array ('CATEGORIES_NAME' => $subcategory['categories_name'], 'CATEGORIES_ID' => $subcategory['categories_id']); } $module->assign('categories_list', $categories_list); А вот какой в модуле function vam_category3_get_category_products( $cat_id ) { global $categories_string3; $products_query = "select p.products_id, pd.products_name from ".TABLE_PRODUCTS." as p " . "left join ".TABLE_PRODUCTS_DESCRIPTION." as pd on (p.products_id = pd.products_id) " . "left join ".TABLE_PRODUCTS_TO_CATEGORIES." as ptc on (p.products_id = ptc.products_id) " . "where ptc.categories_id = '".$cat_id."' and p.products_status = '1' and pd.language_id='" . (int)$_SESSION[ 'languages_id' ] . "' " . "order by p.products_sort"; $products_query = vamDBquery( $products_query ); while ( $products = vam_db_fetch_array( $products_query, true ) ) { $p_url = vam_product_link( $products[ 'products_id' ], $products[ 'products_name' ] ); $p_url = vam_href_link( FILENAME_PRODUCT_INFO, $p_url ); $categories_string3 .= '<li class="categorie_product"><a href="' . $p_url . '">' . $products[ 'products_name' ] . '</a></li>'; }; // while ( $products = vam_db_fetch_array( $products_query, true ) ) } Здесь я менял "select p.products_id, pd.products_name from ".TABLE_PRODUCTS." as p " . "left join ".TABLE_PRODUCTS_DESCRIPTION." as pd on (p.products_id = pd.products_id) " . "left join ".TABLE_PRODUCTS_TO_CATEGORIES." as ptc on (p.products_id = ptc.products_id) " . "where ptc.categories_id = '".$cat_id."' and p.products_status = '1' and pd.language_id='" . (int)$_SESSION[ 'languages_id' ] . "' " . "order by p.products_sort"; на "SELECT c.categories_id, cd.categories_name FROM categories AS c, categories_description AS cd WHERE c.categories_id=cd.categories_id AND c.parent_id=$current_category_id"; Не сработало, вообще сайт повис. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 мая, 2014 Жалоба Share Опубликовано 24 мая, 2014 Уж пардон, но код за Вас писать не буду. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения