Для статей добавил новую опцию (такую же как и "Статус") также добавил свое поле в БД (в таблицу oc_information) в админ части все работает, опция переключается и запись в бд происходит нормально, вообщем в admin панели все работает, поле нужно для работы с ним в header-е в frontend-е. Как теперь работать с этой переменной в frontend-е? Не понятен запрос в модели: Код: public function getInformation($information_id) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "information i LEFT JOIN " . DB_PREFIX . "information_description id ON (i.information_id = id.information_id) LEFT JOIN " . DB_PREFIX . "information_to_store i2s ON (i.information_id = i2s.information_id) WHERE i.information_id = '" . (int)$information_id . "' AND id.language_id = '" . (int)$this->config->get('config_language_id') . "' AND i2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND i.status = '1'"); return $query->row; } Он возвращает строки или выбранные значения? То есть достает ли он содержимое из моего новоиспеченного поля? Если достает то как с ним дальше работать?
звездочка означает что выбираются все стобики из перечмсленных таблиц конечно со всеми условиями... return $query->row - означает что ф-ция возвращает все столбики, короче кури контроллер
Судя по условия достает только со статусом 1 правильно (тоесть включенные)? --- Добавлено, 21 янв 2014 --- Как работать с этим значением в контроллере? такое прокатит $this->data['newpole'] = $information_info['newpole']; ?
ну вопше ето правильно, достает только включенные, если вам надо все, то поменяйте так PHP: public function getInformation($information_id) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "information i LEFT JOIN " . DB_PREFIX . "information_description id ON (i.information_id = id.information_id) LEFT JOIN " . DB_PREFIX . "information_to_store i2s ON (i.information_id = i2s.information_id) WHERE i.information_id = '" . (int)$information_id . "' AND id.language_id = '" . (int)$this->config->get('config_language_id') . "' AND i2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); return $query->row; } или задайте конкретно вопрос что нужно и выложыте части кода! сомневаюсь что в админке работает если вы не знаете как в фронте сделать
В админке работает! Там контроллер и шаблон изменялись да и запросы поправил в модели и изменения в базу нормально записываются. Нужно получить значение нового поля для работы с ним в header.tpl для статей, вот собственно и вся задача
не тут 2 варианта либо мой русский вопше не понятен либо вы непонемающий* человек... сказал выше что запрос тащит все поля из указанных таблиц курите контроллер того елемента который вам нужен! нет исходников - нет гадания на пустой кружке.
Модель которая получает записи из бд, в ней все норм. Контроллер в котором я не знаю как обработать нужно мне поле 'newpole': Я незнаю как получить значение записанное в БД для расботы с ним в header.tpl вот он: также вот контроллер header:
во первых я не вижу чтоб в хедере была хотя бы подключена модель информации, во вторых напишите как называется колонка которую вы добавили в БД и в 3 - лучше напишите полное задания что нужно сделать
Задача стояла такая: Для статей нужно было сделать переключатель в админке такой же как 'status' только немного для других целей. Оперировать данными из нового поля newpole созданного в таблице oc_information нужно в хедере (header.tpl - frontend) и только для статей (В зависимости от состояния "включено/отключено" выполнялось определенное условие). В админке все получилось и нормально работает. А вот в frontend не сразу и не уверен что правильно. Зделал следующим образом: В файле catalog\controller\information\information.php после строки $this->data['heading_title'] = $information_info['title']; добавил $this->document->setNewpole($information_info['newpole']); в файле catalog\controller\common\header.php после стоки $this->data['title'] = $this->document->getTitle(); добавил строку $this->data['newpole'] = $this->document->getNewpole(); в файл system\library\document.php после строки private $title; добавил private $newpole; также после функции PHP: public function getTitle() { return $this->title; } добавил PHP: public function setNewpole($newpole) { $this->newpole = $newpole; } public function getNewpole() { return $this->newpole; } в файле catalog\view\theme\my_theme\template\common\header.tpl после <title><?php echo $title; ?></title> обработал полученные значения <?php if (isset($newpole)) { if ($newpole == 1) { echo '1111'; } else { echo '2222'; } } ?> Таким способом все работает только немного не нравится то что полез в system\library\document.php Вопросы: Есть альтернативные варианты чтобы не вмешивать в system\library\document.php? Чем в будущем грозит то что я изменил system\library\document.php (при обновлениях)?