Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

вывести из базы


meluin

Recommended Posts

Ребят, сделал в админке значение. С админки оно сохраняется в базе. Но никак не получается вывести значение этого поля в каждой странице (

 

Хожу около и рядом и никак. Мне каким-то образом нужно в тело всех страниц в определеное место выводить значение дополнительного поля для каждой позиции, информации и виртуальной страницы.

 

То есть понятно, что для каждой категории, инфостраницы, продукта создано дополнительное поле. С админки данные удается передать в это поле, но не получается его значение передать в страницу с темплейтом. ((

 

Помогите, пожалуйста, с решением. Или пните в нужном направлении, измучался уже.

 

Спасибо.

Надіслати
Поділитися на інших сайтах


покажите как, где, куда вы что-то в базе сохраняете и где хотите вывести

раз уж тема создана.... как вывести поле РАСПОЛОЖЕНИЕ в карточку товара и в категории

Надіслати
Поділитися на інших сайтах

раз уж тема создана.... как вывести поле РАСПОЛОЖЕНИЕ в карточку товара и в категории

в данном модуле https://opencartforum.com/files/file/1364-замена-кнопки-купить-на-реф-ссылку-openreflink/   первая часть инструкций именно это делает.

Надіслати
Поділитися на інших сайтах

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

<?php echo $product['location']; ?>

все равно кнопка купить перекидывает.... мне нужно вот тут вывести location

post-22469-0-01343300-1378711849_thumb.png

Надіслати
Поділитися на інших сайтах

catalog/controller/product/product.php после



$product_info['points'];

вставить



			$this->data['location'] = $product_info['location'];

catalog/view/theme/*/template/product/product.tpl в нужное место вставить



<?php echo $location; ?>

catalog/controller/product/category.php после



$result['name'],

вставить



					'location'    	 => $result['location'],

catalog/view/theme/*/template/product/category.tpl в нужно место вставить 



<?php echo $product['location']; ?>

+ в category.tpl возможно надо будет подружить со скриптами "grid/list"

  • +1 1
Надіслати
Поділитися на інших сайтах

вывалоло после всех зтих действий ...

Notice: Undefined variable: product in /home/*********/data/www/*************/vqmod/vqcache/vq2-catalog_view_theme_default_template_product_product.tpl on line 39 

PS разобрался....

 вместо <?php echo $product['location']; ?>  нужно <?php echo $location; ?>  

Надіслати
Поділитися на інших сайтах

вывалоло после всех зтих действий ...

Notice: Undefined variable: product in /home/*********/data/www/*************/vqmod/vqcache/vq2-catalog_view_theme_default_template_product_product.tpl on line 39 

PS разобрался....

 вместо <?php echo $product['location']; ?>  нужно <?php echo $location; ?>  

да, это была строка для сопутствующих, для самого товара просто $location, исправил.

Надіслати
Поділитися на інших сайтах

Да, я на все страницы хотел добавить значение. То есть я добавил новое поле varchar в таблицы category_description, product_desription и information_description. В админе поменял код и она научилась писать в базу в соответвующие поля. А вот вывести никак не получается содержимое этих полей на страницы. То есть где в шаблоне менять - я понимаю,а вот как сделать переменную - не очень понимаю.

 

вроде надо менять вот в этих файлах:

catalog\model\catalog\product.php

catalog\controller\product\prduct.php (information.php, catagery.php)

 

Но пока безуспешно.

Надіслати
Поділитися на інших сайтах


Посмотрите модель catalog/model/catalog/product.php метод getProduct(). Этот метод (а также аналогичные методы в этой и других моделях) должен возвращать ваши поля. Тогда, везде в контроллерах вы сможете их использовать и передавать в шаблоны. Возьмите за образец, например, поля description или meta_description (смотря в какую таблицу добавляли поля).

Т.е. надо исправить запрос, который выбирает нужные поля из базы, добавив туда ваши поля (если выборка делается не через * ). Затем передать значение из полученного query в результирующий массив (чаще всего), типа:

'product_desription' => $query->row['product_desription']
  • +1 1
Надіслати
Поділитися на інших сайтах


Ой, а вы знаете, я так и делал, только это вызывало поломку магазина, потому что переменная не определена. То есть где-то ранее я её не упомянул или упомянул, но не правильно.

 

Ошибка получалась такая: Notice: "Undefined index: var1 in" и дальше куча мусора. Для вывода в информационных страницах и категориях, надо править состветвующие файлы? Например, catalog/model/catalog/information.php.

 

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

Надіслати
Поділитися на інших сайтах


Переменная не определена - это вы далеко заехали. Лучше всё делать по шагам - сначала добавить в модель и посмотреть, что в результате метода getProduct() есть  нужное значение. Потом уже разбираться с контроллером и шаблоном.
 

Если нужна какая-то ещё информация - я дам все что нужно.

Напишите в какую таблицу вставляли поле product_desription.

Надіслати
Поділитися на інших сайтах


Давайте, чтобы не путаться, обсуждать инфо-страницы. Делаю в базе:

CREATE TABLE IF NOT EXISTS `oc_information_description` (
  `information_id` int(11) NOT NULL,
  `language_id` int(11) NOT NULL,
  `title` varchar(64) NOT NULL,
  `description` text NOT NULL,
  `cptitle` varchar(255) NOT NULL,
  `myvar` varchar(1024) NOT NULL,
  `meta_description` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `meta_keyword` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`information_id`,`language_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Создалось поле myvar. Про админку писать не буду, тк в ней всё получилось относительно просто, и она умеет писать в базу в это поле Теперь содержимое myvar хочется выгружать на инфостраницу. Я так понимаю для этого необходимо в файле catalog/model/catalog/information.php определить переменную, которую потом вставить в файл темплейта. Ход мыслей правильный?

Надіслати
Поділитися на інших сайтах


Ход мыслей правильный?

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

Надіслати
Поділитися на інших сайтах


То есть в модели (в данном случае catalog/model/catalog/information.php) должно быть "query бла-бла-бла", потом передача в контроллер, где я смогу задать имя переменной. Попробую получить с работы доступ к кода магаза, тогда смогу более точный ответ сформировать.

Надіслати
Поділитися на інших сайтах


Да. Вполне достаточно будет модифицировать существующий уже запрос, добавив выборку из своего поля. А в контроллере уже объявлять переменную, забирая значение нужного элемента массива с данными, полученные из модели.

  • +1 1
Надіслати
Поділитися на інших сайтах


Спасибо вам ребята, вы пробудили во мне внимательность. Причина поломки магазина была в том, что в одной из таблиц я опетался в названии поля. Естесственно, это скрипту не понравилось - двигаюсь дальше.

Надіслати
Поділитися на інших сайтах


Так добавил в модель (catalog/model/catalog/product.php):

'myvar' => $query->row['myvar'],

Теперь контроллер (catalog/controller/product/information.php):

if (!empty($information_info['myvar'])){$this->document->setMYVAR($information_info['myvar']);} else { $this->document->setMYVAR($information_info['title']);}....$this->data['heading_myvar'] = $information_info['myvar'];

Вот что-то неправильно я в контроллере делаю, потому что вызвать heading_myvar из шаблона не получается.

Надіслати
Поділитися на інших сайтах


Вы пишите:

catalog/model/catalog/information.php

Потом:

catalog/model/catalog/product.php

Теперь контроллер (catalog/controller/product/information.php)

Все-таки, какая модель и какой контроллер?

  • +1 1
Надіслати
Поділитися на інших сайтах


Не могу осилить: в моделях категории и информации нет упоминания о тайтлах и метах, но тем не менее они как-то туда попадают. В модели продукта вижу что-то похожее. Поеитесь примером каким на эту тему?

Надіслати
Поділитися на інших сайтах


Я вставляю переменную по аналогии с custom page title. То есть сперва в catalog/model/catalog/product.php:

'myvar' => $query->row['myvar'],

Далее планировалось в catalog/controller/product/information.php:

if (!empty($information_info['myvar'])){$this->document->setMYVAR($information_info['myvar']);} else { $this->document->setMYVAR($information_info['title']);}

....

$this->data['heading_myvar'] = $information_info['myvar'];

Ну и потом вывод в темплейт.

 

Для большей точности сейчас говорю именно о инфостраницах. Тут мне подсказывали, что тогда надо модель другую редактировать, но я пока не осилил это - сильно ещё не вникал, времени не было. Но тему добить стоило бы, я думаю такой вопрос в ФАКе очень бы пригодился многим. Я уверен в этом.

Надіслати
Поділитися на інших сайтах


Я опять запутался.
Если вы хотите добавить поле к страницам информации, то откуда у вас catalog/controller/product/information.php? - у меня вообще такого файла нет. Проверял на 1.5.4 и 1.5.5.
Если все-таки добавлять к статьям, то нужно править catalog/controller/information/information.php. Там в методе index() найдите строку

$this->data['description'] = html_entity_decode($information_info['description'], ENT_QUOTES, 'UTF-8');

и после нее вставьте

$this->data['heading_myvar'] = $information_info['myvar'];

Тогда в шаблоне catalog/view/theme/[ваш шаблон]/template/information/information.tpl можно написать, например

<?php echo $heading_myvar; ?>

Остальное - аналогично.

  • +1 1
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.