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

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


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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

если есть решение - то многие, кто имеет понимание о 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 ;
Ссылка на комментарий
Поделиться на других сайтах


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

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

" 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
Ссылка на комментарий
Поделиться на других сайтах

Добрый день.

Если я не ошибаюсь то в последнем шаге 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 строчек в коде ниже находится, и не дает нормально работать функции что я описал выше.
Ссылка на комментарий
Поделиться на других сайтах


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

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

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