Всім привіт! Якщо ви зайшли на цю сторінку скоріше за все у вас інтернет магазин на opencart, і на ньому встановлений модуль блога а саме Pav Blog, і на ньому не працює Seo ЧПУ статті, категорій, ну або ж ви тільки плануєте його ставити ....
Даний модуль блога для opencart, дуже поширений і хороший в застосуванні, але в ньому є маленький недолік відсутність підтримки SEO для збірок ocstore або інших збірок в яких підключений SeoPro, вірніше це навіть не недолік просто автор модуля робив підтримку seo саме для стандартного opencart.
Якщо ж ваш інтернет магазин працює саме з включеним SeoPro то для того щоб запрацювали чпу посилання блогу, вам буде потрібно трохи підправити сам файл SeoPro.
Складного тут нічого немає, але як завжди будьте уважні і робіть бекапи на всякий випадок.
Ну що ж давайте вже приступимо до виконання нашого завдання і зробимо правильні чпу посилання для блогу.
Перше що нам потрібно зробити так це додати в базу даних в таблицю oc_url_alias два нових рядка а саме виконати запит:
1 2 |
INSERT INTO url_alias (query, keyword) VALUES ('pavblog/blogs', 'blog'); INSERT INTO url_alias (query, keyword) VALUES ('pavblog/category=1', 'blog'); |
ну або ж якщо у вас встановлений будь-який Seo менеджер то ви можете додати ці рядки через них, загалом в таблиці у вас повинні з'явиться такі рядки:
Тобто для категорії з ID=1 і для самого блогу ми додаємо ключ blog (PS: замість blog ви можете вказати будь-яке інше своє значення)
Ок, з таблицею ми закінчили, тепер давайте відредагуємо сам файл SeoPro, для цього відкриваємо його за адресою catalog/controller/common/seo_pro.php вашим улюбленим блокнотом, (рекомендую notepad +) і робимо в ньому невеликі зміни.
Перед рядком:
1 |
if (isset($queries[$parts[0]])) { |
Нам потрібно додати:
1 2 3 4 5 6 7 8 9 |
/* SEO web-ukraine.com PAV BLOG START */ if( isset($url) && count($url) == 2 && ( preg_match( "#pavblog#", $url[0] )) ){ unset($this->request->get['pavblog/category']); unset($this->request->get['pavblog/blog']); unset($queries); $this->request->get['route'] = $url[0]; $this->request->get['id'] = $url[1]; } /* SEO web-ukraine.com PAV BLOG STOP */ |
Далі знаходимо рядок коду:
1 |
case 'product/product/review': |
І перед ним додаємо:
1 2 3 4 5 6 7 |
// SEO web-ukraine.com PAV BLOG START case 'pavblog/category': break; case 'pavblog/blog': $isblog = 1; break; // SEO web-ukraine.com PAV BLOG STOP |
У циклі SWITCH нижче рядка:
1 |
switch ($key) { |
Шукаємо default: і перед ним додаємо:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// SEO web-ukraine.com PAV BLOG START case 'id': if(isset($isblog)){ if ($this->config->get('config_seo_url_include_path')) { $blogpath = $this->getPathByBlog($value); if($blogpath){ $categories = explode('_', $blogpath); foreach ($categories as $category) { $queries[] = 'pavblog/category=' . $category; } } } $queries[] = 'pavblog/blog=' . $value; $postfix = 1; }else{ $category = $value; $blogpath = $this->getPathByBlogCat($category); if($blogpath){ $categories = explode('_', $blogpath); foreach ($categories as $category) { $queries[] = 'pavblog/category=' . $category; } } } unset($data[$key]); break; // SEO web-ukraine.com PAV BLOG STOP |
Далі знаходимо рядок з кодом:
1 |
private function getPathByProduct($product_id) { |
І перед ним додаємо:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
// SEO web-ukraine.com PAV BLOG START private function getPathByBlog($blog_id) { $blog_id = (int)$blog_id; if ($blog_id < 1) return false; static $path = null; if (!is_array($path)) { $path = $this->cache->get('blog.seopath'); if (!is_array($path)) $path = array(); } if (!isset($path[$blog_id])) { $query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "pavblog_blog WHERE blog_id = '" . $blog_id . "' ORDER BY category_id DESC LIMIT 1"); $path[$blog_id] = $this->getPathByBlogCat($query->num_rows ? (int)$query->row['category_id'] : 0); $this->cache->set('blog.seopath', $path); } return $path[$blog_id]; } private function getPathByBlogCat($category_id) { $category_id = (int)$category_id; if ($category_id < 1) return false; static $path = null; if (!is_array($path)) { $path = $this->cache->get('blogcat.seopath'); if (!is_array($path)) $path = array(); } if (!isset($path[$category_id])) { $max_level = 2; $sql = "SELECT CONCAT_WS('_'"; for ($i = $max_level-1; $i >= 0; --$i) { $sql .= ",t$i.category_id"; } $sql .= ") AS path FROM " . DB_PREFIX . "pavblog_category t0"; for ($i = 1; $i < $max_level; ++$i) { $sql .= " LEFT JOIN " . DB_PREFIX . "pavblog_category t$i ON (t$i.category_id = t" . ($i-1) . ".parent_id)"; } $sql .= " WHERE t0.category_id = '" . $category_id . "'"; $query = $this->db->query($sql); $path[$category_id] = $query->num_rows ? $query->row['path'] : false; $this->cache->set('blogcat.seopath', $path); } return $path[$category_id]; } // SEO web-ukraine.com PAV BLOG STOP |
Ну ось в принципі і все, тепер в папці кеша ви зможете побачити seo сторінки які ви прописували в адмінці.
Так, і ще не забувайте очищати кеш щоб побачити внесені вами зміни.
Сам модуль блога для opencart ви можете
Чи скачати із нашого серверу тут
Будуть питання або щось не виходить пишіть в коментарях, удачі!
Немає коментарів
Ви можете залишити коментар першим.