Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


 Погделиться

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

Не знаю было или нет, но на вскакий случаю выложу инструкцию для добавления 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 месяц спустя...

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

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


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

 <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 месяца спустя...

<b>Notice</b>: Undefined index: meta_h1 in <b>/admin/view/template/catalog/category_form.tpl</b> on line <b>70</b>

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


  • 1 месяц спустя...

 

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 месяэтов спустя...

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

 <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>

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


В базе данных смените seo_h1  на meta_h1....

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

  • 2 месяца спустя...

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

 

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

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


  • 2 месяца спустя...

Может конечно я задам глупый вопрос, но почему название товара в карточке не опотому чтозналить тегом h1? И ик же название категории?

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


  • 2 месяца спустя...

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

 

OpenCart v.2.3.0.2 (rs.4)

 

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

 

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

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



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

Поищи в теме Экспорт-импорт export import .xlsx для OCSTORE 2.x, им обсуждалось.

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


  • 4 месяца спустя...
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 месяц спустя...
  • 1 месяц спустя...

@stanislavbelov для 2.3 не могу сгделать для категорий, в админке выдает белый экран. Не подскажите в чем может быть проблема?

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


  • 8 месяэтов спустя...

Все прописал выдает следующие ошибки на сайте 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 месяц спустя...

все выполнил пишет икое 

 Error: Unknown column 'main_category' in 'where clause'
Error No: 1054
SELECT category_id FROM oc_product_to_category WHERE product_id = '50' AND main_category = '1' LIMIT 1

 

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

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

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