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

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


Recommended Posts

Кто то может объяснить, почему в 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 користувачів

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

×
×
  • Створити...

Important Information

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