Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

вывести в шаблон доп.поля, нужен совет


 Поделиться

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

Нужна помощь, как вывести в шаблоне catalog-view-theme-тема-product-product.tpl доп.поля.

Я сделала схему, по которой можно в админке к продукту добавить не только простые текстовые поля, но выпадающие меню с вариантами + к ним подразделы в меню админки, в которых можно вводить значения.

Выглядит это аналогично списку стран или списку статусов товара. Вот пример:

post-17751-0-76320200-1346944427_thumb.jpg post-17751-0-60534200-1346944446_thumb.jpg post-17751-0-44851400-1346944459_thumb.jpg post-17751-0-36751400-1346944478_thumb.jpg

1) как выглядит в меню

2) список вариантов

3) форма вненсения варианта

4) как выглядит в форме внесения товара

Схема в приаттаченном файле АДМИНКА, дополнительные выпадающие поля продукта - С НУЛЯ.txt.

В чем, собственно, затык, для примера, в MySQL таблице product создано поле zhanr_id, хранящее id, + две отдельные таблицы zhanr и zhanr_to_store. Собственно, в таблице zhanr и прописано соответствие zhanr_id конкретному полю (name).

Не могу понять, что мне нужно прописать в:

1) catalog-controller-product-product.php

2) catalog-model-catalog-product.php

чтобы в catalog-view-template-тема-template-product-product.tpl, к примеру, код:

<?php echo $text_zhanr; ?> <?php echo $zhanr; ?>

выводил такое: ЖАНР: сказка (ясное дело, тот жанр, который был указан в поле товара/книги), то есть через zhanr_id обращался к таблице zhanr и вытаскивал оттуда нужную строку.

Сейчас у меня так прописано:

в catalog-controller-product-product.php

   	 $this->data['text_zhanr'] = $this->language->get('text_zhanr');
		$this->data['zhanr'] =  $product_info['zhanr'];

в catalog-model-catalog-product.php в строке

  $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status,

после stock_status добавлено:

(SELECT ss.name FROM " . DB_PREFIX . "zhanr ss WHERE ss.zhanr_id = p.zhanr_id) AS zhanr,

в catalog-language-russian-product-product.php добавлено:

$_['text_zhanr']   = 'ЖАНР:';

но нифига не выводит кроме слова "ЖАНР:", какой именно жанр - не показывает.

Ткните носом, где ошибка! Уже по аналогии всё перерыла не вижу :( в программировании пока еще профан

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


в catalog-model-catalog-product.php Вам необходимо добавить в запрос:

LEFT JOIN " . DB_PREFIX . "zhanr zh ON (p.zhanr_id = zh.ВашеПолеЙД)
в catalog-controller-product-product.php Вам ничего не придётся делать

в catalog-view-template-тема-template-product-product.tpl используйте так:

<?php echo $product_info['ИмяВашегоПоляВТаблицеZhanr'];?>
Могут быть ошибки, писал на скоряк... Пишите подправим.
  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.