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

H1 для категорий и товаров [OpenCart 2.0.x]


Recommended Posts

Не знаю было или нет, но на всякий случаю выложу инструкцию для добавления H1 в категории и карточки товаров для OpenCart 2.0.x 
 
И так начнем.
 
Пункт 1
 
Идем в phpMyAdmin, выбираем нашу базу и нажимаем кнопочку SQL. Делаем два sql запроса.
 

ALTER TABLE `oc_category_description` ADD `meta_h1` VARCHAR( 255 ) NOT NULL;
ALTER TABLE `oc_product_description` ADD `meta_h1` VARCHAR( 255 ) NOT NULL;

Пункт 2
 
Открываем admin/controller/catalog/category.php
 
Ищем строку


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

после нее вставляем

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

 
Открываем admin/controller/catalog/product.php
 
Ищем строку

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

после нее вставляем

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

 
Пункт 3
 
Открываем admin/language/english/catalog/category.php
 
Ищем строку

$_['entry_meta_title'] 	     = 'Meta Tag Title';

после нее вставляем

$_['entry_meta_h1'] 	         = 'HTML Tag H1';

 
Открываем admin/language/english/catalog/product.php
 
Ищем строку

$_['entry_meta_title'] 	     = 'Meta Tag Title';

после нее вставляем

$_['entry_meta_h1'] 	         = 'HTML Tag H1';

 
Открываем admin/language/russian/catalog/category.php
 
Ищем строку (тут зависит от вашего перевода, я например перевел как HTML-тег Title)

$_['entry_meta_title'] 	     = 'HTML-тег Title';

после нее вставляем

$_['entry_meta_h1']           = 'HTML-тег H1';

 
Открываем admin/language/russian/catalog/product.php
 
Ищем строку (тут зависит от вашего перевода, я например перевел как HTML-тег Title)

$_['entry_meta_title'] 	     = 'HTML-тег Title';

после нее вставляем

$_['entry_meta_h1'] 	         = 'HTML-тег H1';

 
Идем далее.
 
Пункт 4
 
Открываем admin/model/catalog/category.php
 
Ищем блок (приблизительно строка 14)

foreach ($data['category_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
		} 

 
Заменяем на

foreach ($data['category_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_h1 = '" . $this->db->escape($value['meta_h1']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
		}

 
Ищем еще один такой же блок (приблизительно строка 72)

foreach ($data['category_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
		}

Заменяем на

foreach ($data['category_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_h1 = '" . $this->db->escape($value['meta_h1']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
		}

Ищем строку

'meta_title'       => $result['meta_title'],

После нее вставляем

'meta_h1'           => $result['meta_h1'],

 
Открываем admin/model/catalog/product.php
 
Ищем блок (приблизительно строка 14)

foreach ($data['product_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
		}

Заменяем на

foreach ($data['product_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_h1 = '" . $this->db->escape($value['meta_h1']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
		}

Ищем еще один такой же блок (приблизительно строка 139)

foreach ($data['product_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
		}

Заменяем на 

foreach ($data['product_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_h1 = '" . $this->db->escape($value['meta_h1']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
		}

Ищем строку 

'meta_title'       => $result['meta_title'],

После нее вставляем

'meta_h1'           => $result['meta_h1'],

Идем дальше
 
Пункт 5
 
Открываем admin/view/template/catalog/category_form.tpl
 
Ищем блок

<div class="form-group required">
                    <label class="col-sm-2 control-label" for="input-meta-title<?php echo $language['language_id']; ?>"><?php echo $entry_meta_title; ?></label>
                    <div class="col-sm-10">
                      <input type="text" name="category_description[<?php echo $language['language_id']; ?>][meta_title]" value="<?php echo isset($category_description[$language['language_id']]) ? $category_description[$language['language_id']]['meta_title'] : ''; ?>" placeholder="<?php echo $entry_meta_title; ?>" id="input-meta-title<?php echo $language['language_id']; ?>" class="form-control" />
                      <?php if (isset($error_meta_title[$language['language_id']])) { ?>
                      <div class="text-danger"><?php echo $error_meta_title[$language['language_id']]; ?></div>
                      <?php } ?>
                    </div>
                  </div>

После него вставляем

<div class="form-group">
                    <label class="col-sm-2 control-label" for="input-meta-h1<?php echo $language['language_id']; ?>"><?php echo $entry_meta_h1; ?></label>
                    <div class="col-sm-10">
                      <input type="text" name="category_description[<?php echo $language['language_id']; ?>][meta_h1]" value="<?php echo isset($category_description[$language['language_id']]) ? $category_description[$language['language_id']]['meta_h1'] : ''; ?>" placeholder="<?php echo $entry_meta_h1; ?>" id="input-meta-h1<?php echo $language['language_id']; ?>" class="form-control" />
                    </div>
                  </div>

 
Открываем admin/view/template/catalog/product_form.tpl
 
Ищем блок

<div class="form-group required">
                    <label class="col-sm-2 control-label" for="input-meta-title<?php echo $language['language_id']; ?>"><?php echo $entry_meta_title; ?></label>
                    <div class="col-sm-10">
                      <input type="text" name="product_description[<?php echo $language['language_id']; ?>][meta_title]" value="<?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['meta_title'] : ''; ?>" placeholder="<?php echo $entry_meta_title; ?>" id="input-meta-title<?php echo $language['language_id']; ?>" class="form-control" />
                      <?php if (isset($error_meta_title[$language['language_id']])) { ?>
                      <div class="text-danger"><?php echo $error_meta_title[$language['language_id']]; ?></div>
                      <?php } ?>
                    </div>
                  </div>

После него вставляем

 <div class="form-group">
                    <label class="col-sm-2 control-label" for="input-meta-h1<?php echo $language['language_id']; ?>"><?php echo $entry_meta_h1; ?></label>
                    <div class="col-sm-10">
                      <input type="text" name="product_description[<?php echo $language['language_id']; ?>][meta_h1]" value="<?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['meta_h1'] : ''; ?>" placeholder="<?php echo $entry_meta_h1; ?>" id="input-meta-h1<?php echo $language['language_id']; ?>" class="form-control" />
                    </div>
                  </div>

 
Осталось еще немного :)
 
Пункт 6
 
Открываем catalog/controller/product/category.php
 
Ищем строку

$data['heading_title'] = $category_info['name'];

Заменяем на

if ($category_info['meta_h1']) {
				$data['heading_title'] = $category_info['meta_h1'];
			} else {
				$data['heading_title'] = $category_info['name'];
			}

Открываем catalog/model/catalog/product.php
 

Ищем строку 

'meta_title'       => $query->row['meta_title'],

После него вставляем

'meta_h1'           => $query->row['meta_h1'],

Открываем catalog/controller/product/product.php
 
Ищем строку

$data['heading_title'] = $product_info['name'];

Заменяем на

if ($product_info['meta_h1']) {
				$data['heading_title'] = $product_info['meta_h1'];
			} else {
			    $data['heading_title'] = $product_info['name'];
			}

 
И последний необязательный Пункт 7 (так как возможно в вашем шаблоне уже прописан h1 в категориях)

 

Идем в папку со своим шаблоном (я например зайду в дефолтный) 

 

Открываем catalog/view/theme/default/template/product/category.tpl

 

Ищем строку

<h2><?php echo $heading_title; ?></h2>

Заменяем на

<h1><?php echo $heading_title; ?></h1>

На этом все :) Спасибо за внимание.

 

ps. Если у кого-то, что-то не работает, просьба писать сюда (в тему). Будем разбираться вместе :)

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Вечер добрый! Такая проблема. Вот, что пишет в товарах (в категориях всё нормально). Буду признателен за помощь. Разобрал все шаги уже. SEO Pro  и VQMod установлены.

post-692755-0-79254400-1427744452_thumb.png

Надіслати
Поділитися на інших сайтах


Это вот это, судя по всему

 <div class="form-group">                    <label class="col-sm-2 control-label" for="input-meta-h1<?php echo $language['language_id']; ?>"><?php echo $entry_meta_h1; ?></label>
                    <div class="col-sm-10">
                      <input type="text" name="product_description[<?php echo $language['language_id']; ?>][meta_h1]" value="<?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['meta_h1'] : ''; ?>" placeholder="<?php echo $entry_meta_h1; ?>" id="input-meta-h1<?php echo $language['language_id']; ?>" class="form-control" />
                    </div>
                  </div>
Надіслати
Поділитися на інших сайтах


 

Это вот это, судя по всему

 <div class="form-group">                    <label class="col-sm-2 control-label" for="input-meta-h1<?php echo $language['language_id']; ?>"><?php echo $entry_meta_h1; ?></label>
                    <div class="col-sm-10">
                      <input type="text" name="product_description[<?php echo $language['language_id']; ?>][meta_h1]" value="<?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['meta_h1'] : ''; ?>" placeholder="<?php echo $entry_meta_h1; ?>" id="input-meta-h1<?php echo $language['language_id']; ?>" class="form-control" />
                    </div>
                  </div>

В этом блоке все правильно, у вас не объявлена переменная entry_meta_h1, сейчас поставлю залью голую oc2011 и проделаю еще раз все шаги, будем смотреть где ошибка :)

Надіслати
Поділитися на інших сайтах


В этом блоке все правильно, у вас не объявлена переменная entry_meta_h1, сейчас поставлю залью голую oc2011 и проделаю еще раз все шаги, будем смотреть где ошибка :)

Отлично, спасибо)

Только что ещё раз проверил код и пути- всё ,вроде, правильно. Парадокс, что не находит переменную только в товарах. С категориями всё норм.

Надіслати
Поділитися на інших сайтах


В этом блоке все правильно, у вас не объявлена переменная entry_meta_h1, сейчас поставлю залью голую oc2011 и проделаю еще раз все шаги, будем смотреть где ошибка :)

 

Я полагаю, что здесь можно обойтись и без этих переменных. Я имею в виду, что можно просто написать названия этих блоков HTML-коде.

Надіслати
Поділитися на інших сайтах


Отлично, спасибо)

Только что ещё раз проверил код и пути- всё ,вроде, правильно. Парадокс, что не находит переменную только в товарах. С категориями всё норм.

Очень странно, только что проделал все процедуры на чистом oc2011 и все сразу заработало :) Напиши мне в лс, будем разбираться индивидуально :)

Надіслати
Поділитися на інших сайтах


  • 2 months later...
  • 1 month later...

 

ps. Если у кого-то, что-то не работает, просьба писать сюда (в тему). Будем разбираться вместе :)

 

Добрый день!

В появившейся графе H1 у категорий заполнено : <b>Notice</b>: Undefined index: meta_h1 in <b>/admin/view/template/catalog/category_form.tpl</b> on line <b>70</b>. Изменяю - сохраняю, возвращаюсь - опять та же строка.

В товарах вообще не видно строки H1.

 

Подскажите, пожалуйста, что я делаю не так?

 

Opencart 2.0.3.1 (rs.2) Русская сборка

Надіслати
Поділитися на інших сайтах


  • 9 months later...

Такая же фигня повторяется как и прошлых товарищей в категориях все гуд в товарах ошибка

 <b>Notice</b>: Undefined index: meta_h1 in <b>/home/v/........../system/modification/admin/view/template/catalog/product_form.tpl</b> on line <b>83</b>

Надіслати
Поділитися на інших сайтах


  • 2 months later...

Не подскажите как прописать Н1 на главной странице?

 

Хотя в шаблоне по умолчанию уже было так как у вас в 7 пункте.

Змінено користувачем Yuriy1
Надіслати
Поділитися на інших сайтах


  • 2 months later...
  • 2 months later...

при Export / Import выходит ошибка : Undefined index: meta_h1

 

OpenCart v.2.3.0.2 (rs.4)

 

Скачайте готовый мод, ссылка в профиле

 

не могу найти ссылку. тыкните носом, пожалуйста

Змінено користувачем paradox2
Надіслати
Поділитися на інших сайтах


  • 4 months later...
stanislavbelov, сделала все по Вашему образцу, при заходе в админку выдает "Parse error: syntax error, unexpected ';', expecting ')' in /home/poolsin/pools.in.ua/www/admin/language/russian/catalog/product.php on line 27"

P.s. Нужно добавить главный заголовок Н1 ( opencart  2.0.3.1)

Змінено користувачем Tatyana88
Надіслати
Поділитися на інших сайтах


  • 1 month later...
  • 1 month later...
  • 8 months later...

Все прописал выдает следующие ошибки на сайте Notice: Undefined index: meta_h1 in /hosting/edusellc/data/www/milliner.com.ua/catalog/model/catalog/product.php on line 16
в админке категории 
Notice: Undefined index: meta_h1 in /hosting/edusellc/data/www/milliner.com.ua/admin/model/catalog/category.php on line 268
в админке товары Notice: Undefined index: meta_h1 in /hosting/edusellc/data/www/milliner.com.ua/admin/model/catalog/product.php on line 427

 

Змінено користувачем dima1703
Надіслати
Поділитися на інших сайтах


  • 1 month later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

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