Ремонт компьютера
Сборка, чистка, апгрейт ремонт любой техники.
Замена частей, установка ПО, установка Windows, антивируса.
Удаленная помощь без вызова на дом.
Создание сайта
Создание сайта с нуля, модулей, скриптов для сайта.
Движки Joomla, Wordpress, Opencart, Prestashop и тд.
SEO продвижение, ремонт, оптимизация сайта.

Если не показывает ссылки в deadcow opencart 2.x

После генерации в deadcow opencart 2.x (тестил в 2.3.0.2), не генерирует чпу на базовые ссылки, но по ссылкам этим можно обращаться.

Добавим исключения и для наших новых ссылок:
\catalog\controller\startup\seo_url.php
в функции rewrite($link)
Добавим еще одно условие (для тех что задали вручную — карта сайта, производители и тд):

public function rewrite($link) {
                $url_info = parse_url(str_replace('&', '&', $link));

                $url = '';

                $data = array();

                parse_str($url_info['query'], $data);

                foreach ($data as $key => $value) {
                        //exit(var_dump($data['route']));
                        if (isset($data['route'])) {
                                if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/info' || $data['route'] == 'product/product') && $key == 'manufacturer_id') || ($data['route'] == 'information/information' && $key == 'information_id')) {
                                        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'");

                                        if ($query->num_rows && $query->row['keyword']) {
                                                $url .= '/' . $query->row['keyword'];

                                                unset($data[$key]);
                                        }
                                } elseif ($key == 'path') {
                                        $categories = explode('_', $value);
                                        
                                        foreach ($categories as $category) {
                                                $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");

                                                if ($query->num_rows && $query->row['keyword']) {
                                                        $url .= '/' . $query->row['keyword'];
                                                } else {
                                                        $url = '';

                                                        break;
                                                }
                                        }
                                        unset($data[$key]);
                                }elseif ($key == "route"){
                                $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($value) . "'");
                                        if ($query->num_rows && $query->row['keyword']) {
                                                $url .= '/' . $query->row['keyword'];
                                                unset($data[$key]);
                                        }
                                
                                }
                        }
                }

                if ($url) {
                        unset($data['route']);

                        $query = '';

                        if ($data) {
                                foreach ($data as $key => $value) {
                                        $query .= '&' . rawurlencode((string)$key) . '=' . rawurlencode((is_array($value) ? http_build_query($value) : (string)$value));
                                }

                                if ($query) {
                                        $query = '?' . str_replace('&', '&', trim($query, '&'));
                                }
                        }

                        return $url_info['scheme'] . '://' . $url_info['host'] . (isset($url_info['port']) ? ':' . $url_info['port'] : '') . str_replace('/index.php', '', $url_info['path']) . $url . $query;
                } else {
                        return $link;
                }
        } // функции
} // класса (если до конца замена), если ошибка то удалите ее

Название статьи при не правильной раскладке клавиатуры: Tckb yt gjrfpsdftn ccskrb d deadcow opencart 2.x
Если вдруг появилось желание поблагодарить автора,просто нажмите на рекламу чуть ниже, этого будет достаточно :)

Добавить комментарий

Ваш e-mail не будет опубликован.