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

[Решено] В модуле information{статьи} нельзя в статьях прописывать title и description

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

Кто то может объяснить, почему в opencart'e в статьях нельзя прописывать отдельным рейсом (вручную) title и description ?

Ведь это важнейшие параметры для продвижения сайта. Title берётся автоматически из названия статьи - мне кажется подобная автоматизация крайне не правильна...

может я чего то не понимаю? объясните пожалуйста ?

В товарах так там всё в порядке - есть возможность прописать и title и description .

Почему этого нет в статьях ?

Буду благодарен за ответ или подсказку как это можно изменить...

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


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

Наверное потому что OpenCart нацелен продавать товары, а не статьи :)

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


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

так оно ж усё взаимосвязано... )

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


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

да просто потому, что этого нет в модуле.

сделать можно. не сложно.

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


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

да просто потому, что этого нет в модуле.

сделать можно. не сложно.

Я понимаю, что можно). А за деньги можно сделать всё)

Но не понятно, почему это не сделано по дефолту - ведь это важные параметры...

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


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

да просто потому, что этого нет в модуле.

сделать можно. не сложно.

Помогите, пожалуйста, сделать. Очень нужно.

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


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

Помогите, пожалуйста, сделать. Очень нужно.

ну вотъ - человек тоже понимает о чём я)

если есть решение - то многие, кто имеет понимание о seo оптимизации скажут вам спасибо )

Я даже нажму на кнопочку Изображение за такое дело ))

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


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

Поддерживаю, очень нужно.

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


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

DB

ALTER TABLE  `information_description` ADD  `meta_keywords` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
ALTER TABLE  `information_description` ADD  `meta_description` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
ALTER TABLE  `information_description` ADD  `page_title` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
ALTER TABLE  `information_description` ADD  `h1` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;

ADMIN (добавлено описание вставки двух четырех строк в admin/controller/catalog/information.php)

admin/controller/catalog/information.php
в функции

private function getForm() {
после

$this->data['entry_sort_order'] = $this->language->get('entry_sort_order');
		$this->data['entry_status'] = $this->language->get('entry_status');
добавить

/* w - seo-mod - meta - part_#1 - start */
		$this->data['entry_meta_keywords'] = $this->language->get('entry_meta_keywords');
		$this->data['entry_meta_description'] = $this->language->get('entry_meta_description');
		$this->data['entry_page_title'] = $this->language->get('entry_page_title');
		$this->data['entry_h1'] = $this->language->get('entry_h1');
/* w - seo-mod - meta - part_#1 - end */

admin/language/russian/catalog/information.php
/* w - seo-mod - meta - part_#1 - start */
$_['entry_meta_keywords'] = 'Meta Keywords:';
$_['entry_meta_description'] = 'Meta Description:';
$_['entry_page_title'] = 'Заголовок страницы:';
$_['entry_h1'] = 'H1:';
/* w - seo-mod - meta - part_#1 - end */

admin/model/catalog/information.php

public function addInformation($data) {
foreach ($data['information_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "information_description SET information_id = '" . (int)$information_id . "', language_id = '" . (int)$language_id . "', title = '" . $this->db->escape($value['title']) . "', description = '" . $this->db->escape($value['description']) . "', meta_keywords = '" . $this->db->escape($value['meta_keywords']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', page_title = '" . $this->db->escape($value['page_title']) . "', h1 = '" . $this->db->escape($value['h1']) . "'");
		}

public function editInformation($information_id, $data) {
foreach ($data['information_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "information_description SET information_id = '" . (int)$information_id . "', language_id = '" . (int)$language_id . "', title = '" . $this->db->escape($value['title']) . "', description = '" . $this->db->escape($value['description']) . "', meta_keywords = '" . $this->db->escape($value['meta_keywords']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', page_title = '" . $this->db->escape($value['page_title']) . "', h1 = '" . $this->db->escape($value['h1']) . "'");
		}

public function getInformationDescriptions($information_id) {
foreach ($query->rows as $result) {
			$information_description_data[$result['language_id']] = array(
				'title'       => $result['title'],
				'description' => $result['description'],
				'meta_keywords'       => $result['meta_keywords'],
				'meta_description' => $result['meta_description'],
				'page_title'       => $result['page_title'],
				'h1'       => $result['h1']
			);
		}

admin/view/template/catalog/information_form.tpl
ПОСЛЕ

<tr>
            <td><span class="required">*</span> <?php echo $entry_description; ?></td>
            <td><textarea name="information_description[<?php echo $language['language_id']; ?>][description]" id="description<?php echo $language['language_id']; ?>"><?php echo isset($information_description[$language['language_id']]) ? $information_description[$language['language_id']]['description'] : ''; ?></textarea>
              <?php if (isset($error_description[$language['language_id']])) { ?>
              <span class="error"><?php echo $error_description[$language['language_id']]; ?></span>
              <?php } ?></td>
          </tr>
Добавляем

<tr>
          <td><?php echo $entry_meta_keywords; ?></td>
          <td><input type="text" name="information_description[<?php echo $language['language_id']; ?>][meta_keywords]" value="<?php echo isset($information_description[$language['language_id']]) ? $information_description[$language['language_id']]['meta_keywords'] : ''; ?>" size="100" /></td>
        </tr>
        <tr>
          <td><?php echo $entry_meta_description; ?></td>
          <td><textarea name="information_description[<?php echo $language['language_id']; ?>][meta_description]" cols="50" rows="8"><?php echo isset($information_description[$language['language_id']]) ? $information_description[$language['language_id']]['meta_description'] : ''; ?></textarea></td>
        </tr>
        <tr>
          <td><?php echo $entry_page_title; ?></td>
          <td><input type="text" name="information_description[<?php echo $language['language_id']; ?>][page_title]" value="<?php echo isset($information_description[$language['language_id']]) ? $information_description[$language['language_id']]['page_title'] : ''; ?>" size="100" /></td>
        </tr>
        <tr>
          <td><?php echo $entry_h1; ?></td>
          <td><input type="text" name="information_description[<?php echo $language['language_id']; ?>][h1]" value="<?php echo isset($information_description[$language['language_id']]) ? $information_description[$language['language_id']]['h1'] : ''; ?>" size="100" /></td>
        </tr>

CATALOG

catalog/controller/information/information.php
Меняем

$this->document->title = $information_info['title'];
На

if ($information_info['meta_keywords']) {
				$this->document->keywords = $information_info['meta_keywords'];
			}
			
			if ($information_info['meta_description']) {
				$this->document->description = $information_info['meta_description'];
			}
			
			if ($information_info['page_title']) {
				$this->document->title = $information_info['page_title'];
			} else {
				$this->document->title = $information_info['title'];
			}
Изменено пользователем afwollis
добавлено описание вставки четырех строк в admin/controller/catalog/information.php
  • +1 4

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


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

afwollis Спасибо что откликнулись! Попробовал ваше решение. Сначала была ошибка, но я догадался что в коде

public function getInformationDescriptions($information_id) {

                foreach ($query->rows as $result) {
                        $information_description_data[$result['language_id']
] = array(
                                'title'       => $result['title'],
                                'description' => $result['description'],
                                'meta_keywords'       => $result['meta_keywords'],
                                'meta_description' => $result['meta_description'],
                                'page_title'       => $result['page_title'],
                                'h1'       => $result['h1']
                        );
                }

нехватает закрывающей скобки, добавил - заработало, но при попытке добавить статью с полями вылазит следующая ошибка:

Error: Duplicate entry '0-1' for key 1
Error No: 1062
INSERT INTO information_description SET information_id = '0', language_id = '1', title = '1111', description = '<p>\r\n 2</p>\r\n', meta_keywords = '3', meta_description = '4', page_title = '5', h1 = '6'
  • +1 1

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


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

в коде нет ни ошибок, ни пропущенных символов.

единственный вариант - форум порвал строку.

admin/model/catalog/information.php
foreach ($query->rows as $result) {
			/* это одна строка - начало */$information_description_data[$result['language_id']] = array(/* это одна строка - конец */
				'title'       => $result['title'],
				'description' => $result['description'],
				'meta_keywords'       => $result['meta_keywords'],
				'meta_description' => $result['meta_description'],
				'page_title'       => $result['page_title'],
				'h1'       => $result['h1']
			);
		}
UPD

и вобще - насчет ошибки последней:

в модели

admin/model/catalog/information.php
надо привести подобные участки кода к приведенному виду.

а вы, судя по тексту ошибки, что-то там намудрили лишнего.

перепроверьте

Изменено пользователем afwollis
  • +1 1

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


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

Спасибо большое за труды

Будем тестировать это дело .. Надеюсь всё пойдёть.. )

Как только вот с этим бороться? Где это и каким образом прописать - если не трудно в 2-х словах

DB

ALTER TABLE  `information_description` ADD  `meta_keywords` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
ALTER TABLE  `information_description` ADD  `meta_description` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
ALTER TABLE  `information_description` ADD  `page_title` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
ALTER TABLE  `information_description` ADD  `h1` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;

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


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

А разобрался - надо залезть в базу данных и там добавить 4 строки...

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


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

Всё заработало...

Только в админке в колонке с названием переменных пишет отакэ :

" Notice: Undefined variable: entry_meta_keywords in /home/b/blagomedco/simbios/public_html/admin/view/template/catalog/information_form.tpl on line 45"

И таких вот 4 ошибки . Я так понимаю, что в

admin/view/template/catalog/information_form.tpl

беда...

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


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

да, вот этот момент я тогда упустил - не описал изменения в контроллере для вывода языковых переменных. :(

но уже исправился ^_^

смотрите первую часть (цитату) в части изменений админки в том моем сообщении

Изменено пользователем afwollis
  • +1 1

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


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

Ох Жирно Жирно - очень спасибо

Работает )

:rolleyes: :rolleyes: :rolleyes:

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


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

Добрый день.

Если я не ошибаюсь то в последнем шаге CATALOG описаным afwollis пропустили вывод H1, так как при изменении этой строки в админке ничего не меняется, а выводится $information_info['title']:

$this->data['heading_title'] = $information_info['title'];

Что б исправит в последнем шаге CATALOG нужно добавить:

if ($information_info['h1']) {
                                $this->data['heading_title'] = $information_info['h1'];
                        } else {
                                $this->data['heading_title'] = $information_info['title'];
                        }	
и удалить лишнюю строку, которая повторяется после добавления этой функции и находится чуть ниже на 10-15 строчек:

$this->data['heading_title'] = $information_info['title'];
С уважением.

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


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

Добрый день.

Если я не ошибаюсь то в последнем шаге CATALOG описаным afwollis пропустили вывод H1, так как при изменении этой строки в админке ничего не меняется, а выводится $news_info['title']:

$this->data['heading_title'] = $news_info['title'];

Что б исправит в последнем шаге CATALOG нужно добавить:

if ($news_info['h1']) {
                                $this->data['heading_title'] = ($news_info['h1']) ? $news_info['h1'] : $news_info['name'];
                        } else {
                                $this->data['heading_title'] = $news_info['title'];
                        }	
и удалить лишнюю строку, которая находится чуть ниже:

$this->data['heading_title'] = $news_info['title'];
С уважением.

Я ничего не понял ... )

Что у вас некорректно работает ?

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


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

Я ничего не понял ... )

Что у вас некорректно работает ?

Уже все корректно работает)

Я имел ввиду что тег H1 не выводится, и выше описал каким способом я это исправил.

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


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

Уже все корректно работает)

Я имел ввиду что тег H1 не выводится, и выше описал каким способом я это исправил.

ясно - а зачем удалять это? -

$this->data['heading_title'] = $news_info['title'];

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


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

ясно - а зачем удалять это? -

$this->data['heading_title'] = $news_info['title'];

О, пардон там переменная не $news_info а $information_info, я в 17 посте исправил, ошибся так как делал эту доработку для новостей.

Дело в том что строчка ($this->data['heading_title'] = $information_info['title']; ) в файле catalog/controller/information/information.php после добавления этого:

                        if ($information_info['h1']) {
                                $this->data['heading_title'] = $information_info['h1'];
                        } else {
                                $this->data['heading_title'] = $information_info['title'];
                        }   
повторяется, она где то на 10-15 строчек в коде ниже находится, и не дает нормально работать функции что я описал выше.

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


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

ясно.

Похоже на правду..

интересно мнение эксперта .. :blink:

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


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

блин переворотил пол магазина и только когда сделал все увидел,что это для модуля "Статьи" а не для модуля "Статьи и обзоры" (которые многие используют для новостей)

Следовательно вопрос возможно ли этот метод каким-то образом применить к модулю "статить и обзоры" (он же модуль новостей) ?

update

Кстати в админке,то все появилось , но при нажатии сохранить какой-то ужас получается,примерно вот такой:

Error: Duplicate entry '6-1' for key 'PRIMARY'
Error No: 1062
INSERT INTO oc_information_description SET information_id = '6', language_id = '1', title = 'Доставка', description = '<p>\r\n  </p>\r\n<p>\r\n <span style="font-size:12px;"><span style="font-family:times new roman,times,serif;"><span style="color:#696969;">            Р’СЃРµ заказы РІ интернет-магазине<a href="http://ledwatch.com.ua"> ledwatch.com.ua</a> обрабатываются РЅРµ более чем 24 часа Рё отправляются РЅРµ позднее чем 1-3 рабочих РґРЅСЏ СЃ момента оформления заказа РЅР° нашем сайте (РїСЂРё условии, что РІСЃРµ товары есть РІ наличии). РўРѕРІР°СЂС‹ которые имеют статус<strong> <span style="color:#(color);">"РїРѕРґ заказ" </span></strong>РјС‹ сможем Вам отправить РЅРµ раньше чем через 14-21 рабочих дней после оформления заказа.</span></span></span></p>\r\n<p>\r\n <span style="font-size:12px;"><span style="font-family:times new roman,times,serif;"><span style="color:#696969;">           Р”оставка заказов осуществляется РІ любую точку Украины. Если Вам необходима доставка РІ РґСЂСѓРіСѓСЋ страну пожалуйста сначала свяжитесь СЃ администрацией магазина. </span></span></span></p>\r\n<p>\r\n <span style="font-size:12px;"><span style="font-family:times new roman,times,serif;"><span style="color:#696969;">РЈ нас РЅР° сайте доступны следующие РІРёРґС‹ доставки товаров нашим покупателям:</span></span></span></p>\r\n<p>\r\n <span style="font-size:12px;"><span style="font-family:times new roman,times,serif;"><span style="color:#696969;">    <strong>      Самовывоз </strong>- данный РІРёРґ доставки доступен только для Рі.Харьков. После оформления заказа РЅР° нашем сайте, СЃ Вами свяжется наш менеджер для того чтобы уточнить РіРґРµ Рё РєРѕРіРґР° Р’С‹ сможете забрать СЃРІРѕР№ заказ. Данный РІРёРґ доставки является <u>бесплатным</u>.</span></span></span></p>\r\n<p>\r\n <span style="font-size:12px;"><span style="font-family:times new roman,times,serif;"><span style="color:#696969;">      <strong>    Укрпочта</strong> - Ваш заказ будет отправлен компанией Укрпочта. Отправка осуществляется наложенным платежом, С‚.Рµ. заказ Р’С‹ оплачиваете РїСЂРё получении РІ почтовом отделении. Стоймость отправки РѕРґРЅРѕР№ единицы товара данным РІРёРґРѕРј доставки составляет 15 РіСЂРЅ. Также РїСЂРё отправке укрпочтой РјС‹ предоставим Вам номер посылки, РїРѕ которому Р’С‹ сможете  РѕС‚следить ее передвижение РїРѕ Украине. Длительность доставки примерно 5 дней.</span></span></span></p>\r\n<p>\r\n <span style="font-size:12px;"><span style="font-family:times new roman,times,serif;"><span style="color:#696969;">      <strong>    Автолюкс</strong> - Ваш заказ будет отправлен компанией перевозчиком "Автолюкс". Отправка возможна как РїРѕ предоплате так Рё наложенным платежом. Стоимость доставки малогабаритных посылок РїРѕ Украине составляет примерно 15-25 РіСЂРЅ (стоимость зависит РѕС‚ удаленности РіРѕСЂРѕРґР° РѕС‚ места отправки посылки) , если Вам нужна отправка наложенным платежом, то Рє стоимости доставки прибавляется стоимость обратной пересылки - примерно 10 РіСЂРЅ. РџРѕ длительности данный вариант доставки намного быстрее чем доставка Укрпочтой, длительность доставки РІ Ваш РіРѕСЂРѕРґ составляет  1-2 РґРЅСЏ СЃ  РјРѕРјРµРЅС‚Р° отправки заказа. </span></span></span></p>\r\n<p>\r\n <span style="font-size:12px;"><span style="font-family:times new roman,times,serif;"><span style="color:#696969;">       <strong> Ваш РІРёРґ доставки</strong> - если Вам необходима отправка заказа РґСЂСѓРіРёРј РІРёРґРѕРј доставки, пожалуйста сначала свяжитесь СЃ администрацией магазина.</span></span></span></p>\r\n<p>\r\n <a href="http://ledwatch.com.ua"><br />\r\n </a></p>\r\n', meta_keywords = 'rer', meta_description = '', page_title = '', h1 = ''

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


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

исправил ошибку,дело было в том что про файл admin/model/catalog/information.php как-то невнятно написано было,и я просто добавил то что написано,а нужно было заменить , то что было на то что написано в этой теме.

И про H1 jam214 правильно написал,без его изменений H1 просто не выводится

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


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

кто-нибудь может обьяснить,что нужно дописать для того чтобы сделать вывод H1 и title для модуля "статьи и обзоры" ?

Делал все по аналогии с тем что описал afwollis , но выдало ошибку хотя вроде бы аналогичные файлы и строки этого в этом модуле есть.

Вот такую ошибку пишет:

Notice: Undefined index: meta_keywords in Z:\home\localhost\www\ledw\admin\model\catalog\news.php on line 29Notice: Undefined index: meta_description in Z:\home\localhost\www\ledw\admin\model\catalog\news.php on line 29Notice: Undefined index: page_title in Z:\home\localhost\www\ledw\admin\model\catalog\news.php on line 29Notice: Undefined index: h1 in Z:\home\localhost\www\ledw\admin\model\catalog\news.php on line 29Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\ledw\admin\index.php:73) in Z:\home\localhost\www\ledw\system\engine\controller.php on line 27

Я думаю ошибка потому что это сторооний модуль а не встроенный.

Может кто-нибудь подскажет как исправить эту ошибку?

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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