Всім привіт! Якщо ви зайшли на цю сторінку скоріше за все у вас інтернет магазин на 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-STYDIA.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-STYDIA.COM PAV BLOG STOP */
|
Далі знаходимо рядок коду:
1
|
case 'product/product/review':
|
І перед ним додаємо:
1
2
3
4
5
6
7
|
// SEO WEB-STYDIA.COM PAV BLOG START
case 'pavblog/category':
break;
case 'pavblog/blog':
$isblog = 1;
break;
// SEO WEB-STYDIA.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-STYDIA.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-STYDIA.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-STYDIA.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-STYDIA.COM PAV BLOG STOP
|
Ну ось в принципі і все, тепер в папці кеша ви зможете побачити seo сторінки які ви прописували в адмінці.
Так, і ще не забувайте очищати кеш щоб побачити внесені вами зміни.
Сам модуль блога для opencart ви можете скачати тут він безкоштовний.
Чи скачати із нашого серверу тут
Будуть питання або щось не виходить пишіть в коментарях, удачі!
Немає коментарів
Ви можете залишити коментар першим.