Перейти к содержанию
Glinda

Мета-теги раздела information.

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

День  добрый, подскажите как можно реализовать поддержку мета-тегов keywords/descriptions в разделе статьи для OpenCart 1.4.8? Самое простое что на ум приходит в informations.tpl внести несколько тегов keywords/descriptions и по условию подставлять (это для нескольких статей).

Поделиться сообщением


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

как можно реализовать поддержку мета-тегов keywords/descriptions в разделе статьи для OpenCart 1.4.8

как обычно - добавив столбцы в БД и протянув их сквозь админку/фронт.

Поделиться сообщением


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

как обычно - добавив столбцы в БД и протянув их сквозь админку/фронт.

Делаю так:

1. Добавляю поля в БД (выполняю SQL зарос)

ALTER TABLE `oc_information_description` ADD `meta_description` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
ADD `meta_keyword` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL


2.  Редактирую admin/view/template/catalog/information_form.tpl (блок <table class=»form»>)

<tr>
<td><?php echo $entry_meta_description; ?></td>
<td><textarea name="information_description[<?php echo $language['language_id']; ?>][meta_description]" cols="40" rows="5"><?php echo isset($information_description[$language['language_id']]) ? $information_description[$language['language_id']]['meta_description'] : ''; ?></textarea></td>
</tr>
<tr>
<td><?php echo $entry_meta_keyword; ?></td>
<td><textarea name="information_description[<?php echo $language['language_id']; ?>][meta_keyword]" cols="40" rows="5"><?php echo isset($information_description[$language['language_id']]) ? $information_description[$language['language_id']]['meta_keyword'] : ''; ?></textarea></td>
</tr>


3.  Редактирую admin/model/catalog/information.php (метод public function getInformationDescriptions($information_id)  в теле foreach ($query->rows as $result))

$this->data['entry_meta_keyword'] = $this->language->get('entry_meta_keyword');
$this->data['entry_meta_description'] = $this->language->get('entry_meta_description');

4. В том же файле метод public function changeStatusInformations($informations, $status)  и метод public function editInformation($information_id, $data) (после "SET")

meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "',

5. Ну и соответственно языковой файл прописываю

 

В результате при попытке записать в БД вводимые в админке теги вижу следущее:

Notice: Undefined variable: value in /var/www/glinda/data/www/seotime.su/onbuton/admin/model/catalog/information.php on line 26Notice: Undefined variable: value in /var/www/glinda/data/www/seotime.su/onbuton/admin/model/catalog/information.php on line 26Error: Unknown column 'meta_keyword' in 'field list'
Error No: 1054
UPDATE oc_information SET meta_keyword = '', meta_description = '', sort_order = '4', status = '1' WHERE information_id = '7'

Не могу разобраться почему неопределена переменная meta_keyword?

Поделиться сообщением


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

Делаю так:

1. Добавляю поля в БД (выполняю SQL зарос)

ALTER TABLE `oc_information_description` ADD `meta_description` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
ADD `meta_keyword` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL


2.  Редактирую admin/view/template/catalog/information_form.tpl (блок <table class=»form»>)

<tr>
<td><?php echo $entry_meta_description; ?></td>
<td><textarea name="information_description[<?php echo $language['language_id']; ?>][meta_description]" cols="40" rows="5"><?php echo isset($information_description[$language['language_id']]) ? $information_description[$language['language_id']]['meta_description'] : ''; ?></textarea></td>
</tr>
<tr>
<td><?php echo $entry_meta_keyword; ?></td>
<td><textarea name="information_description[<?php echo $language['language_id']; ?>][meta_keyword]" cols="40" rows="5"><?php echo isset($information_description[$language['language_id']]) ? $information_description[$language['language_id']]['meta_keyword'] : ''; ?></textarea></td>
</tr>


3.  Редактирую admin/model/catalog/information.php (метод public function getInformationDescriptions($information_id)  в теле foreach ($query->rows as $result))

$this->data['entry_meta_keyword'] = $this->language->get('entry_meta_keyword');
$this->data['entry_meta_description'] = $this->language->get('entry_meta_description');

4. В том же файле метод public function changeStatusInformations($informations, $status)  и метод public function editInformation($information_id, $data) (после "SET")

meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "',

5. Ну и соответственно языковой файл прописываю

 

В результате при попытке записать в БД вводимые в админке теги вижу следущее:

Notice: Undefined variable: value in /var/www/glinda/data/www/seotime.su/onbuton/admin/model/catalog/information.php on line 26Notice: Undefined variable: value in /var/www/glinda/data/www/seotime.su/onbuton/admin/model/catalog/information.php on line 26Error: Unknown column 'meta_keyword' in 'field list'
Error No: 1054
UPDATE oc_information SET meta_keyword = '', meta_description = '', sort_order = '4', status = '1' WHERE information_id = '7'

Не могу разобраться почему неопределена переменная meta_keyword?

 

 

Забыл и в контроллере  вношу изменения

$this->data['entry_meta_keyword'] = $this->language->get('entry_meta_keyword');
$this->data['entry_meta_description'] = $this->language->get('entry_meta_description');

Поделиться сообщением


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

 

Делаю так:

1. Добавляю поля в БД (выполняю SQL зарос)

ALTER TABLE `oc_information_description` ADD `meta_description` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
ADD `meta_keyword` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL


2.  Редактирую admin/view/template/catalog/information_form.tpl (блок <table class=»form»>)

<tr>
<td><?php echo $entry_meta_description; ?></td>
<td><textarea name="information_description[<?php echo $language['language_id']; ?>][meta_description]" cols="40" rows="5"><?php echo isset($information_description[$language['language_id']]) ? $information_description[$language['language_id']]['meta_description'] : ''; ?></textarea></td>
</tr>
<tr>
<td><?php echo $entry_meta_keyword; ?></td>
<td><textarea name="information_description[<?php echo $language['language_id']; ?>][meta_keyword]" cols="40" rows="5"><?php echo isset($information_description[$language['language_id']]) ? $information_description[$language['language_id']]['meta_keyword'] : ''; ?></textarea></td>
</tr>


3.  Редактирую admin/model/catalog/information.php (метод public function getInformationDescriptions($information_id)  в теле foreach ($query->rows as $result))

$this->data['entry_meta_keyword'] = $this->language->get('entry_meta_keyword');
$this->data['entry_meta_description'] = $this->language->get('entry_meta_description');

4. В том же файле метод public function changeStatusInformations($informations, $status)  и метод public function editInformation($information_id, $data) (после "SET")

meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "',

5. Ну и соответственно языковой файл прописываю

 

В результате при попытке записать в БД вводимые в админке теги вижу следущее:

Notice: Undefined variable: value in /var/www/glinda/data/www/seotime.su/onbuton/admin/model/catalog/information.php on line 26Notice: Undefined variable: value in /var/www/glinda/data/www/seotime.su/onbuton/admin/model/catalog/information.php on line 26Error: Unknown column 'meta_keyword' in 'field list'
Error No: 1054
UPDATE oc_information SET meta_keyword = '', meta_description = '', sort_order = '4', status = '1' WHERE information_id = '7'

Не могу разобраться почему неопределена переменная meta_keyword?

 

 

Забыл и в контроллере  вношу изменения

$this->data['entry_meta_keyword'] = $this->language->get('entry_meta_keyword');
$this->data['entry_meta_description'] = $this->language->get('entry_meta_description'); 
А в admin/model/catalog/information.php конечно же

'meta_keyword' => $result['meta_keyword'],
'meta_description' => $result['meta_description'],

Поделиться сообщением


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

Зачем вы столько раз сами себя процитировали?

 

По делу: Убедитесь, что на первом этапе у вас добавились поля в таблицу. Зайдите через phpMyAdmin и посмотрите.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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