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

Доступ к данным


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

Приветствую первопроходцев VAM Cart!

Задача: на главной странице отобразить несколько выборок вида "категория - несколько образцов товара из неё".

Проблема: не могу разобраться в структуре данных и методах доступа к ним. Выборку категорий сделать получилось на основе микро шаблона category-listing, но как его модифицировать для доступа к дочерним товарам на той же самой странице - непонятно.

Вопрос: подскажите, пожалуйста, способы реализации задачи. Я начал "ковырять" в направлении smarty\vam_plugins\function.content_listing.php Верное ли направление мысли или есть другое решение? Как получить данные произвольного товара с произвольной страницы?

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

Да, мысль верная, за исключением того, что всё можно сделать в админке, без правки файлов.

Это вобщем-то главная особенность, т.е. практически всё можно делать через админку, без необходимости ftp клиентов, загрузки файлов и т.д. В этом конечно свои плюсы и минусы, пока вот так.

Отредактируйте в Админке - Каталог страницу главная страница и в сам текст страницы, в содержимое вставьте например:


{content_listing parent=X type=product}
[/code] где X - id номер категории, из которой нужно вывести товар, число. id номер виден например при редактировании категории в админке, в строке браузера. Например категория Рога имеет id 36, тогда что б на главной вывести товары из этой категории на главную страницу, в содержимое главной страницы вставляем:
[code]
{content_listing parent=36 type=product}
Подсказку по тэгу content_listing можно прочитать в Админке - Расширения - Тэги - content_listing. Можно сделать свой шаблон для товаров, которые Вы таким образом выводите. Для этого создаёте Микро шаблон в Админке - Оформление - Микро шаблоны, создаёте шаблон по примеру микро шаблона product_listing, только рисуете свой html-код, в поле алиас указываете например test, в поле название тэга conent_listing, т.е. мы создам свой шаблон отображения данных тэгов content_listing. А что б использовать этот шаблон при выводе, делаем так:

{content_listing parent=36 type=product template=test}
[/code]

P.S. Но пока что код ещё в разработке, например нет ограничения на вывод количества позиций, чуть позже ещё будет параметр limit у тэга content_listing и другие возможности.

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

Спасибо за подробный ответ! Теперь принцип взаимодействия данных стал практически ясный и начала получаться реализация.

Возник еще один вопрос: в подсказке по content_listing указано, что он для параметра parent помимо числового значения принимает еще alias, но на практике по алиасу обработчик не возвращает данных, пишет "Элементы отсутствуют", с числовым значением всё в порядке. В самом модуле вроде обработчик текстового параметра на этот случай есть, но что-то не срабатывает. Известна ли эта проблема?

Моя идея: сделать автоматическую выборку нескольких товаров из каждой категории средствами smarty простым циклом с нужным количеством итераций. Но для этого надо в обработчике категории вызывать снова content_listing с указанием текущего элемента в качестве parent. Однако в массиве content_list отсутствует id элемента, только имя и псевдоним, так что автоматически получить его таким способом нельзя.

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

Ограничение на количество отображаемых на главной странице товаров сделал на стадии вывода шаблона при помощи оператора smarty для обхода массива {selection} с параметром max. Так что с этим пунктом всё ок.

Но теперь снова озадачен следующим нюансом: подскажите можно ли получить доступ к данным произвольного товара, таким как цена, описание, артикул и т.д., находясь не на странице товара? Ведь тэги {product_price}, {description} работают только в шаблоне "страница карточки товара".

Если в текущей реализации возможность отсутствует, буду рад подсказке каким методом можно самому дописать. Smarty как я понял позволяет вставлять в шаблон чистый php код, может таким образом можно получить доступ к поизвольным данным из шаблона? Но для этого надо четко знать структуру этих данных.

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

Ну наверное через тот же content_listing

По-другому вроде нет готового кода.

Либо сделать какой-то свой смарти тэг по аналогии с тем же content_listing, который будет выводит нужные данные. 

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

Всё круто, цели добился правкой content_listing: добавил к $vars['content_list'] дополнительные переменные добываемые из БД в массив $content_list_data, которые мне требуются для отображения в шаблоне: цена, описание и т.д.

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

Может выложите файлик?!

Если изменения действительно полезные, добавлю в код по умолчанию.

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

Там несколько комментов с подписью --DenCho в местах изменения. Плюс есть мысль, что правильнее было бы сделать проверку условия, если текущий content имеет тип product, то только в этом случае добавлять ему переменную price. В прочем, для других типов контента без проверки условия, как сейчас, она будет просто пустой из-за отсутствия значения.

Еще пришлось мне ковырять компонент currency_base, чтоб убрать подстановку названия валюты, так как для моего шаблона название "руб" должно иметь собственное оформление и быть заключенным в отдельный div.

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