Додаємо мета теги в Opencart 2

Блог Фрилансера 26 січ. 2019 р.
 Додаємо мета теги в Opencart 2

Для початку давайте розберемося, що таке розмітка Open Graph. Це протокол, який дозволяє керувати та контролювати дані, що формуються у прев'ю (структурує інформацію про сторінку) у пості, коли користувач ділиться посиланням у соціальних мережах. Насправді це кілька рядків мета-тегів, які потрібно впровадити в код вашого сайту. Саме вони й дозволять сформувати бажаний вид для посту у соціальних мережах.

Розглянемо кожен тег Open Graph окремо і розберемося в їх значеннях:

  • "og:locale" — вказує на локалізацію (мова сайту), можна використовувати значення "ru_RU" за замовчуванням.
  • "og:type" — вказує тип сторінки (стаття, новина, відео, категорія тощо), можна використовувати за замовчуванням "article".
  • "og:title" — вказує заголовок статті.
  • "og:description" — вказує короткий опис, який виводиться при формуванні попереднього посилання.
  • "og:url" — посилання на сторінку сайту.
  • "og:image" — посилання на картинку, яка відображатиметься в пості.
  • "og:site_name" — назва сайту.

Так ось. Правити файли безпосередньо . Що небажано та Потрібно це робити через модифікатор ocmod. 

Але для наочності робитимемо так.

Знайдемо файл document.php на шляху system/library

Додаємо в клас document нову приватну змінну та робимо її масивом.

знаходимо там private $keywords; та нижче додаємо 

до 

class Document {
private $title;
private $description;
private $keywords;
private $links = array();
private $styles = array();
private $scripts = array();

після 

class Document {
private $title;
private $description;
private $keywords;
private $metatag = array();//додаємо
private $links = array();
private $styles = array();
private $scripts = array();

Потім додаємо публічну функцію для додавання вмісту до наших тегів 

 public function addMeta($meta) {
$this->metatag[] = $ meta;
}

Для звернення до цієї функції додаємо ще одну 

public function getMeta() {
return $this->metatag;
}

  Робота з файлом document.php закінчена.

Далі  нам потрібно вирішити де будемо  виводити ці теги. Якщо у картці товару шукаємо файл catalog/controller/product/product.php

Далі просто викликаємо  функцію addMeta() і передаємо їм значення.

наприклад, зробимо  поле  og:image

Шукаємо $data['products'][] ;


 $this->document->addLink($image);// тут у масив тегів запишемо значення картинки
$data['products'][] = array(
                    'product_id' => $result['product_id'],
                    'thumb' => $image,
                    'name' => $result['name'],
                    'quantity' => $result['quantity'],
                    'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
                    'price' => $price,
                    'special' => $ Special,
                    'tax' => $tax,
                    'minimum' => $result['minimum'] > 0? $result['minimum'] : 1,
                    'rating' => $rating,
                    'href' => $this->url->link('product/product', 'product_id=' . $result['product_id'])
                );

Так можна кілька разів викликати цю функцію та додавати ці значення до набору.

Щоб додати цю інформацію в шапку header, шукаємо файл catalog/controller/common/header.php

Додаємо рядок для виведення вмісту  тегів, що ми записали вище.

$data['meta_tag'] = $this->document->getMeta();

Тепер у шаблоні header.tpl у змінній $meta_tag — масив значень наших тегів. 

Можете виводити їх з масиву. 

Думаю далі немає сенсу показувати як вивести вміст масиву.