Jump to content

Как вывести в произвольном месте сайта продукты заданой категории?


Recommended Posts

Добрый день!

Подскажите пожалуйста, как вывести в произвольном месте сайта продукты заданой категории? К примеру, есть категория Тапочки с id=1. Как вывести товары этой категории?

В догонку... Как можно изменить {$category->id} ? Не могу понять как менять значения параметров объектов...

Спасибо!

Link to comment
Share on other sites

ID не поменяете. И пробелы в порядковых номерах, которые возникают при удалении товаров и категорий, так и остануться.. А под выводом вы имели в виду порядок следования товаров в списке? Для их перемещения по списку в таблице есть стрелки.

Link to comment
Share on other sites

Нет. Каким образом можно вывести все товары определенной категории? В product-list выводятся продукты относящиеся к категории выбраной пользователем после перехода по соотвествующей ссылке.

Как можно указать категорию, товары которой я хочу вывести в цикле?
{foreach from=$products item=product name=type}
....
{/foreach}

Link to comment
Share on other sites

Раньше у меня было сомнение, правильно ли я понимаю, что Вы имели в виду под словом вывести, теперь я вовсе не понимаю, что у Вас значит указать. Нельзя ли подробнее? Просто, расскажите, какую бы возможность хотели добавить в магазин.

Link to comment
Share on other sites

Содержимое моего category.tpl
{include file="$tpl_dir./errors.tpl"}
{debug}
{if isset($category)}
{if $category->id AND $category->active}

{if $products}
{include file="$tpl_dir./product-list.tpl" products=$products}
{elseif !isset($subcategories)}

{l s='There are no products in this category.'}


{/if}
{elseif $category->id}

{l s='This category is currently unavailable.'}


{/if}
{/if}

Содержимое product-list.tpl
{if isset($products)}

  • {foreach from=$products item=product name=type}

  • {$product.name}



    {/foreach}


Как можно, указав зная имя категории или ее id, вывести\отобразить\показать в цикле {foreach from=$products item=product name=type}...

{$product.name}

...{/foreach} имена продуктов относящихся к указаной по id\имени категории.

Основная цель, вывод содержимого определенной категории в любом месте любого темплейта по ее имени\id.
Link to comment
Share on other sites

Почему все? Товары из одной конкретно указаной категории.
С смарти столкнулся впервые. В данной ситуации помогло бы что-то вроде этого {category->name = "tapki"} перед циклом {foreach from=$products item=product name=type}…{$product.name}…{/foreach}, но такой вариант не прокатывает:)
Вот и пытаюсь понять, каким образом можно указать перед циколом из какой категории выводить товары.

Link to comment
Share on other sites

{if isset($category)}
{if $category->id AND $category->active}

{if $products}
{include file="$tpl_dir./product-list.tpl" products=$products}
{elseif !isset($subcategories)}

{l s='There are no products in this category.'}


{/if}
{elseif $category->id}

{l s='This category is currently unavailable.'}


{/if}
{/if}

Как присвоить $category->id какое-то значение, 2, например?
Link to comment
Share on other sites

Как присвоить $category->id какое-то значение, 2, например?

Вы думаете, это можно делать непосредственно в скрипте? Но, ведь, присвоенный категории номер уходит во многие файлы. Поменяйте -- и потом ничего у себя не найдёте. В этом файле категория имеет один номер, в других файлах -- другой.
Link to comment
Share on other sites

tpl это шаблон согласно которому показывается информация.
Код который вы приводите это из файлов tpl переменные которые в них используются заполняются php скриптами
посмотрите откуда берется переменная products в файле categories.php в нее как раз и попадают продукты определенной категории, но только тогда когда вызывается categories.php.

Link to comment
Share on other sites

А разве у Вас не открывается любая категория или подкатегория из меню? Ну, или за неимением оного из блока категорий, который обычным языком называется боковым меню?..

Link to comment
Share on other sites

Открывается. Но мне нужно чтобы в зависимости от выбраной категории, под блоком товаров выбраной категории, отображалась еще одна категория, которую я задаю вручную.
Т.е щаблон product-list состоит из двух частей:
1. {foreach from=$products item=product name=type}
….
{/foreach}

{if $category->name == "snowboards"}
{category->name ="boots"} - в этом месте и заминка. Не понятно как задать имя\id категории перед циклом, товары которой нужно отобразить...
{foreach from=$products item=product name=type}
….boots
{/foreach}

{/if}

И еще один вопросик.
Есть функция. {mycat id_product_my=$product.id_product} Ей почему-то не передается $product.id_product.
Если задать в таком виде {mycat id_product_my=15} , то все ОК. Что не так?

Спасибо!

Link to comment
Share on other sites

начать нужно не с product-list.tpl а с category.php там проверить что за категорию будем выводить и если нужно то заполнить еще одну переменную продуктами с другой категории, а потом в tpl вывести эту переменную. Только задача как то странно звучит продуктов в категории может быть много и скрипт их (продукты) разбивает на страницы, куда вы тогда будете выводить вторую категорию?

Link to comment
Share on other sites

у вас в карусели есть php который готовит данные для построения карусели вот в нем и проверти что за категория и если та что вы ожидаете подготовте второй массив с товарами из друглй категории

Link to comment
Share on other sites

Я не использую модули для этого, поэтому php файлов там нет.
getProducts($idcat, $id_lang, $p, $n, $orderBy = NULL, $orderWay = NULL)
Это оно? Я просто не силен в смарти. Никак не могу толком понять что откуда и куда...

Link to comment
Share on other sites

  • 1 year later...

стандартный модуль вывода товаров на главную — homefeature

есть ещё модуль-доработка (zapalm версия), где можно выбрать ID категории для вывода товара на главную prestashop — homefeaturez

 

Можно сделать копии модуля для 3-го и 4 и 5-го блока товаров на главную, везде в коде каждого скопированного модуля нужно заменить

homefeaturez — на homefeatureX или homefeature2, homefeature3.

 

Затем в файле модуля php меняем HOME_FEATURED_CATALOG — на HOME_FEATURED_CATALOG2, 3, по аналогии — заходим в админку prestashop, включаем установленные модули, в каждом выбираем ID необходимой категории и все работает! На главной будут блоки с товарами из выбранных вами ID категорий prestashop.

 

Мой скайп: rooomdsgn

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...