RomanP Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 Здравствуйте , подскажите как поменять вид ссылок с таких: /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и так далее. На такой вид: /home /wishlist /cart и так далее. Заранее огромное спасибо! Надіслати Поділитися на інших сайтах More sharing options...
costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 Здравствуйте , подскажите как поменять вид ссылок с таких: /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и так далее. На такой вид: /home /wishlist /cart и так далее. Заранее огромное спасибо! Зависит от версии Вашего магазина,в catalog/controller/common/seo_url.php нужно вставить что то вроде этого (версия opencart 1.5.x): в функцию index if ( $this->request->get['_route_'] == 'home') { return $this->forward('common/home'); } в функцию rewrite elseif ($data['route'] == 'common/home') { $url .= '/home'; } ну и всё в таком духе 1 Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Зависит от версии Вашего магазина, в catalog/controller/common/seo_url.php нужно вставить что то вроде этого (версия opencart 1.5.x): в функцию index if ( $this->request->get['_route_'] == 'home') { return $this->forward('common/home'); } в функцию rewrite elseif ($data['route'] == 'common/home') { $url .= '/home'; } ну и всё в таком духе <?php class ControllerCommonSeoUrl extends Controller { public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/product' || $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) { $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) { $url .= '/' . $query->row['keyword']; } } unset($data[$key]); } } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } } ?> Подскажи пожалуйста где менять)) Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { ..... } } } ?> Подскажи пожалуйста где менять)) <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/product' || $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) { $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) { $url .= '/' . $query->row['keyword']; } } unset($data[$key]); } /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?>Это Ваш файл, у меня работает, но немного отличается, проверяйте...Для добавление и изменения правьте массив private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' );Кстати если изменить на 'account/register' => 'register'работать тоже должнотестируйте.... о результатах отпишитесь 2 Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 Что то мне подсказывает что напрашивается модуль для редактирования таких ссылок через админку... Если успею и не буду сильно праздновать праздник то сегодня наваяю... :rolleyes: 1 Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Что то мне подсказывает что напрашивается модуль для редактирования таких ссылок через админку... Если успею и не буду сильно праздновать праздник то сегодня наваяю... :rolleyes: А можешь свою аську дать пожалуйста, а то у меня тут есть некоторые вопросики, т.к. переношу магазин на опенкарт и хочу чтобы ссылки были одинаковы чтобы продвижение не слетело. Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/product' || $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) { $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) { $url .= '/' . $query->row['keyword']; } } unset($data[$key]); } /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?>Это Ваш файл, у меня работает, но немного отличается, проверяйте...Для добавление и изменения правьте массив private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' );Кстати если изменить на 'account/register' => 'register'работать тоже должнотестируйте.... о результатах отпишитесь Работает огромное спасибо!!! Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 ещё возник вопрос можно ли сделать чтобы категории товара отображались не так: /index.php?route=product/category&path=59 а так: /category/59 Пробовал реализовать в том же массиве что и выше показано, но не работает Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 ещё возник вопрос можно ли сделать чтобы категории товара отображались не так: /index.php?route=product/category&path=59 а так: /category/59 Пробовал реализовать в том же массиве что и выше показано, но не работает перед foreach ($parts as $part) {добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } else после else закрывающейся скобки не должно быть, это уберёт лишний цикл с запросом к БД если выбрали категориюВот это foreach ($categories as $category) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'"); if ($query->num_rows) { $url .= '/' . $query->row['keyword']; } }заменить на $url .= '/category'; foreach ($categories as $category) { $url .= '/'.$category; } У меня работает... тестируйте... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 Прошу прощенья после else закрывающейся скобки не должно быть, это уберёт лишний цикл с запросом к БД если выбрали категориюутверждение не верно, забыли про товары...добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } оператор else вообще лишний.теперь и категории работают и товары.... Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Прошу прощенья утверждение не верно, забыли про товары... добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } оператор else вообще лишний.теперь и категории работают и товары.... товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Пишет ошибку: Parse error: syntax error, unexpected T_ELSE in /var/www/*/data/www/*/catalog/controller/common/seo_url.php on line 156 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'register', 'account/wishlist' => 'wishlist', 'checkout/checkout' => 'checkout', 'account/login' => 'login', 'product/special' => 'special', 'affiliate/account' => 'affiliate', 'checkout/voucher' => 'voucher', 'product/manufacturer' => 'brand', 'account/newsletter' => 'newsletter', 'account/order' => 'order', 'account/account' => 'account', 'information/contact' => 'contact', 'account/return/insert' => 'return/insert', 'information/sitemap' => 'sitemap', ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ 1 Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ?ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же..Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь.Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь. Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Давай, тикет нарисуй, и сырцы выложи. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Зависит от версии Вашего магазина, в catalog/controller/common/seo_url.php нужно вставить что то вроде этого (версия opencart 1.5.x): в функцию index if ( $this->request->get['_route_'] == 'home') { return $this->forward('common/home'); } в функцию rewrite elseif ($data['route'] == 'common/home') { $url .= '/home'; } ну и всё в таком духе <?php class ControllerCommonSeoUrl extends Controller { public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/product' || $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) { $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) { $url .= '/' . $query->row['keyword']; } } unset($data[$key]); } } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } } ?> Подскажи пожалуйста где менять)) Надіслати Поділитися на інших сайтах More sharing options...
costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { ..... } } } ?> Подскажи пожалуйста где менять)) <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/product' || $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) { $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) { $url .= '/' . $query->row['keyword']; } } unset($data[$key]); } /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?>Это Ваш файл, у меня работает, но немного отличается, проверяйте...Для добавление и изменения правьте массив private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' );Кстати если изменить на 'account/register' => 'register'работать тоже должнотестируйте.... о результатах отпишитесь 2 Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 Что то мне подсказывает что напрашивается модуль для редактирования таких ссылок через админку... Если успею и не буду сильно праздновать праздник то сегодня наваяю... :rolleyes: 1 Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Что то мне подсказывает что напрашивается модуль для редактирования таких ссылок через админку... Если успею и не буду сильно праздновать праздник то сегодня наваяю... :rolleyes: А можешь свою аську дать пожалуйста, а то у меня тут есть некоторые вопросики, т.к. переношу магазин на опенкарт и хочу чтобы ссылки были одинаковы чтобы продвижение не слетело. Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/product' || $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) { $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) { $url .= '/' . $query->row['keyword']; } } unset($data[$key]); } /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?>Это Ваш файл, у меня работает, но немного отличается, проверяйте...Для добавление и изменения правьте массив private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' );Кстати если изменить на 'account/register' => 'register'работать тоже должнотестируйте.... о результатах отпишитесь Работает огромное спасибо!!! Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 ещё возник вопрос можно ли сделать чтобы категории товара отображались не так: /index.php?route=product/category&path=59 а так: /category/59 Пробовал реализовать в том же массиве что и выше показано, но не работает Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 ещё возник вопрос можно ли сделать чтобы категории товара отображались не так: /index.php?route=product/category&path=59 а так: /category/59 Пробовал реализовать в том же массиве что и выше показано, но не работает перед foreach ($parts as $part) {добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } else после else закрывающейся скобки не должно быть, это уберёт лишний цикл с запросом к БД если выбрали категориюВот это foreach ($categories as $category) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'"); if ($query->num_rows) { $url .= '/' . $query->row['keyword']; } }заменить на $url .= '/category'; foreach ($categories as $category) { $url .= '/'.$category; } У меня работает... тестируйте... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 Прошу прощенья после else закрывающейся скобки не должно быть, это уберёт лишний цикл с запросом к БД если выбрали категориюутверждение не верно, забыли про товары...добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } оператор else вообще лишний.теперь и категории работают и товары.... Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Прошу прощенья утверждение не верно, забыли про товары... добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } оператор else вообще лишний.теперь и категории работают и товары.... товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Пишет ошибку: Parse error: syntax error, unexpected T_ELSE in /var/www/*/data/www/*/catalog/controller/common/seo_url.php on line 156 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'register', 'account/wishlist' => 'wishlist', 'checkout/checkout' => 'checkout', 'account/login' => 'login', 'product/special' => 'special', 'affiliate/account' => 'affiliate', 'checkout/voucher' => 'voucher', 'product/manufacturer' => 'brand', 'account/newsletter' => 'newsletter', 'account/order' => 'order', 'account/account' => 'account', 'information/contact' => 'contact', 'account/return/insert' => 'return/insert', 'information/sitemap' => 'sitemap', ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ 1 Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ?ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же..Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь.Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь. Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Давай, тикет нарисуй, и сырцы выложи. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 Что то мне подсказывает что напрашивается модуль для редактирования таких ссылок через админку... Если успею и не буду сильно праздновать праздник то сегодня наваяю... :rolleyes: 1 Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Что то мне подсказывает что напрашивается модуль для редактирования таких ссылок через админку... Если успею и не буду сильно праздновать праздник то сегодня наваяю... :rolleyes: А можешь свою аську дать пожалуйста, а то у меня тут есть некоторые вопросики, т.к. переношу магазин на опенкарт и хочу чтобы ссылки были одинаковы чтобы продвижение не слетело. Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/product' || $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) { $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) { $url .= '/' . $query->row['keyword']; } } unset($data[$key]); } /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?>Это Ваш файл, у меня работает, но немного отличается, проверяйте...Для добавление и изменения правьте массив private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' );Кстати если изменить на 'account/register' => 'register'работать тоже должнотестируйте.... о результатах отпишитесь Работает огромное спасибо!!! Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 ещё возник вопрос можно ли сделать чтобы категории товара отображались не так: /index.php?route=product/category&path=59 а так: /category/59 Пробовал реализовать в том же массиве что и выше показано, но не работает Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 ещё возник вопрос можно ли сделать чтобы категории товара отображались не так: /index.php?route=product/category&path=59 а так: /category/59 Пробовал реализовать в том же массиве что и выше показано, но не работает перед foreach ($parts as $part) {добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } else после else закрывающейся скобки не должно быть, это уберёт лишний цикл с запросом к БД если выбрали категориюВот это foreach ($categories as $category) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'"); if ($query->num_rows) { $url .= '/' . $query->row['keyword']; } }заменить на $url .= '/category'; foreach ($categories as $category) { $url .= '/'.$category; } У меня работает... тестируйте... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 Прошу прощенья после else закрывающейся скобки не должно быть, это уберёт лишний цикл с запросом к БД если выбрали категориюутверждение не верно, забыли про товары...добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } оператор else вообще лишний.теперь и категории работают и товары.... Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Прошу прощенья утверждение не верно, забыли про товары... добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } оператор else вообще лишний.теперь и категории работают и товары.... товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Пишет ошибку: Parse error: syntax error, unexpected T_ELSE in /var/www/*/data/www/*/catalog/controller/common/seo_url.php on line 156 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'register', 'account/wishlist' => 'wishlist', 'checkout/checkout' => 'checkout', 'account/login' => 'login', 'product/special' => 'special', 'affiliate/account' => 'affiliate', 'checkout/voucher' => 'voucher', 'product/manufacturer' => 'brand', 'account/newsletter' => 'newsletter', 'account/order' => 'order', 'account/account' => 'account', 'information/contact' => 'contact', 'account/return/insert' => 'return/insert', 'information/sitemap' => 'sitemap', ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ 1 Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ?ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же..Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь.Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь. Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Давай, тикет нарисуй, и сырцы выложи. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Что то мне подсказывает что напрашивается модуль для редактирования таких ссылок через админку... Если успею и не буду сильно праздновать праздник то сегодня наваяю... :rolleyes: А можешь свою аську дать пожалуйста, а то у меня тут есть некоторые вопросики, т.к. переношу магазин на опенкарт и хочу чтобы ссылки были одинаковы чтобы продвижение не слетело. Надіслати Поділитися на інших сайтах More sharing options...
RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/product' || $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) { $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) { $url .= '/' . $query->row['keyword']; } } unset($data[$key]); } /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?>Это Ваш файл, у меня работает, но немного отличается, проверяйте...Для добавление и изменения правьте массив private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' );Кстати если изменить на 'account/register' => 'register'работать тоже должнотестируйте.... о результатах отпишитесь Работает огромное спасибо!!! Надіслати Поділитися на інших сайтах More sharing options...
RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 ещё возник вопрос можно ли сделать чтобы категории товара отображались не так: /index.php?route=product/category&path=59 а так: /category/59 Пробовал реализовать в том же массиве что и выше показано, но не работает Надіслати Поділитися на інших сайтах More sharing options...
costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 ещё возник вопрос можно ли сделать чтобы категории товара отображались не так: /index.php?route=product/category&path=59 а так: /category/59 Пробовал реализовать в том же массиве что и выше показано, но не работает перед foreach ($parts as $part) {добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } else после else закрывающейся скобки не должно быть, это уберёт лишний цикл с запросом к БД если выбрали категориюВот это foreach ($categories as $category) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'"); if ($query->num_rows) { $url .= '/' . $query->row['keyword']; } }заменить на $url .= '/category'; foreach ($categories as $category) { $url .= '/'.$category; } У меня работает... тестируйте... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 Прошу прощенья после else закрывающейся скобки не должно быть, это уберёт лишний цикл с запросом к БД если выбрали категориюутверждение не верно, забыли про товары...добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } оператор else вообще лишний.теперь и категории работают и товары.... Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Прошу прощенья утверждение не верно, забыли про товары... добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } оператор else вообще лишний.теперь и категории работают и товары.... товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Пишет ошибку: Parse error: syntax error, unexpected T_ELSE in /var/www/*/data/www/*/catalog/controller/common/seo_url.php on line 156 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'register', 'account/wishlist' => 'wishlist', 'checkout/checkout' => 'checkout', 'account/login' => 'login', 'product/special' => 'special', 'affiliate/account' => 'affiliate', 'checkout/voucher' => 'voucher', 'product/manufacturer' => 'brand', 'account/newsletter' => 'newsletter', 'account/order' => 'order', 'account/account' => 'account', 'information/contact' => 'contact', 'account/return/insert' => 'return/insert', 'information/sitemap' => 'sitemap', ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ 1 Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ?ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же..Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь.Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь. Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Давай, тикет нарисуй, и сырцы выложи. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
costas Опубліковано: 29 липня 2011 Share Опубліковано: 29 липня 2011 Прошу прощенья после else закрывающейся скобки не должно быть, это уберёт лишний цикл с запросом к БД если выбрали категориюутверждение не верно, забыли про товары...добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } оператор else вообще лишний.теперь и категории работают и товары.... Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Прошу прощенья утверждение не верно, забыли про товары... добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } оператор else вообще лишний.теперь и категории работают и товары.... товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Пишет ошибку: Parse error: syntax error, unexpected T_ELSE in /var/www/*/data/www/*/catalog/controller/common/seo_url.php on line 156 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'register', 'account/wishlist' => 'wishlist', 'checkout/checkout' => 'checkout', 'account/login' => 'login', 'product/special' => 'special', 'affiliate/account' => 'affiliate', 'checkout/voucher' => 'voucher', 'product/manufacturer' => 'brand', 'account/newsletter' => 'newsletter', 'account/order' => 'order', 'account/account' => 'account', 'information/contact' => 'contact', 'account/return/insert' => 'return/insert', 'information/sitemap' => 'sitemap', ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ 1 Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ?ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же..Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь.Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь. Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Давай, тикет нарисуй, и сырцы выложи. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RomanP Опубліковано: 29 липня 2011 Автор Share Опубліковано: 29 липня 2011 Прошу прощенья утверждение не верно, забыли про товары... добавить if ($parts[0] == 'category'){ $this->request->get['path'] = $parts[1]; for ( $i = 2 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } } оператор else вообще лишний.теперь и категории работают и товары.... товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options...
costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 Знаю может уже достал , Заранее спасибо! <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Пишет ошибку: Parse error: syntax error, unexpected T_ELSE in /var/www/*/data/www/*/catalog/controller/common/seo_url.php on line 156 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'register', 'account/wishlist' => 'wishlist', 'checkout/checkout' => 'checkout', 'account/login' => 'login', 'product/special' => 'special', 'affiliate/account' => 'affiliate', 'checkout/voucher' => 'voucher', 'product/manufacturer' => 'brand', 'account/newsletter' => 'newsletter', 'account/order' => 'order', 'account/account' => 'account', 'information/contact' => 'contact', 'account/return/insert' => 'return/insert', 'information/sitemap' => 'sitemap', ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ 1 Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ?ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же..Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь.Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь. Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Давай, тикет нарисуй, и сырцы выложи. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'account/register' ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Пишет ошибку: Parse error: syntax error, unexpected T_ELSE in /var/www/*/data/www/*/catalog/controller/common/seo_url.php on line 156 <?php class ControllerCommonSeoUrl extends Controller { /* SEO Custom URL */ private $url_list = array ( 'common/home' => 'home', 'checkout/cart' => 'cart', 'account/register' => 'register', 'account/wishlist' => 'wishlist', 'checkout/checkout' => 'checkout', 'account/login' => 'login', 'product/special' => 'special', 'affiliate/account' => 'affiliate', 'checkout/voucher' => 'voucher', 'product/manufacturer' => 'brand', 'account/newsletter' => 'newsletter', 'account/order' => 'order', 'account/account' => 'account', 'information/contact' => 'contact', 'account/return/insert' => 'return/insert', 'information/sitemap' => 'sitemap', ); /* SEO Custom URL */ public function index() { // Add rewrite to url class if ($this->config->get('config_seo_url')) { $this->url->addRewrite($this); } // Decode URL if (isset($this->request->get['_route_'])) { $parts = explode('/', $this->request->get['_route_']); if ( count($parts) > 1 ) { if ($parts[1] == 'category'){ $this->request->get['path'] = $parts[2]; for ( $i = 3 ; $i < count($parts); $i++) { $this->request->get['path'] .= '_' . $parts[$i]; } }elseif( $parts[1] == 'item' ) { $this->request->get['product_id'] = $parts[2]; } } foreach ($parts as $part) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'"); if ($query->num_rows) { $url = explode('=', $query->row['query']); if ($url[0] == 'product_id') { $this->request->get['product_id'] = $url[1]; } if ($url[0] == 'category_id') { if (!isset($this->request->get['path'])) { $this->request->get['path'] = $url[1]; } else { $this->request->get['path'] .= '_' . $url[1]; } } if ($url[0] == 'manufacturer_id') { $this->request->get['manufacturer_id'] = $url[1]; } if ($url[0] == 'information_id') { $this->request->get['information_id'] = $url[1]; } } else { $this->request->get['route'] = 'error/not_found'; } } /* SEO Custom URL */ if ( $_s = $this->setURL($this->request->get['_route_']) ) { $this->request->get['route'] = $_s; }/* SEO Custom URL */ if (isset($this->request->get['product_id'])) { $this->request->get['route'] = 'product/product'; } elseif (isset($this->request->get['path'])) { $this->request->get['route'] = 'product/category'; } elseif (isset($this->request->get['manufacturer_id'])) { $this->request->get['route'] = 'product/manufacturer/product'; } elseif (isset($this->request->get['information_id'])) { $this->request->get['route'] = 'information/information'; } if (isset($this->request->get['route'])) { return $this->forward($this->request->get['route']); } } } public function rewrite($link) { if ($this->config->get('config_seo_url')) { $url_data = parse_url(str_replace('&', '&', $link)); $url = ''; $data = array(); parse_str($url_data['query'], $data); foreach ($data as $key => $value) { if (isset($data['route'])) { if ( (($data['route'] == 'product/manufacturer/product' || $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) { $url .= '/' . $query->row['keyword']; unset($data[$key]); } } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ } } if ($url) { unset($data['route']); $query = ''; if ($data) { foreach ($data as $key => $value) { $query .= '&' . $key . '=' . $value; } if ($query) { $query = '?' . trim($query, '&'); } } return $url_data['scheme'] . '://' . $url_data['host'] . (isset($url_data['port']) ? ':' . $url_data['port'] : '') . str_replace('/index.php', '', $url_data['path']) . $url . $query; } else { return $link; } } else { return $link; } } /* SEO Custom URL */ public function getURL($route) { if( count($this->url_list) > 0) { foreach ($this->url_list as $key => $value) { if($route == $key) { return '/'.$value; } } } return false; } public function setURL($_route) { if( count($this->url_list) > 0 ){ foreach ($this->url_list as $key => $value) { if($_route == $value) { return $key; } } } return false; }/* SEO Custom URL */ } ?> Надіслати Поділитися на інших сайтах More sharing options...
costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ 1 Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ?ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же..Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь.Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь. Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Давай, тикет нарисуй, и сырцы выложи. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 товары сейчас отображаются так: /category/59?product_id=65 а надо бы так: /shop/item/65 И категории сейчас понадобилось не так как в предыдущем посте написал: /category/59 а так: /shop/category/59 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ?ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же..Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь.Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь. Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Давай, тикет нарисуй, и сырцы выложи. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 А можно поинтересоваться зачем такие странные ссылки, почему бы не использовать ЧПУ?ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же..Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь.Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь. Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Давай, тикет нарисуй, и сырцы выложи. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 ИХМО миграция магазина с другого движка, хотят сохранить все труды по продвижению в поисковых и тд, чтоб визуально выглядело так же..Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь.Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь. Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Давай, тикет нарисуй, и сырцы выложи. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
costas Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Я думал об этом, но по вопросам не похоже... больше походит на то что человек потихоньку забрёл не в ту степь. Кстати у тебя ещё не пропало желание заморочиться с модулем для управления ссылками вида /index.php?route=common/home /index.php?route=account/wishlist /index.php?route=checkout/cart и т.д. У меня есть такой модуль для 0.2.x, но совсем нет времени перелопатить под 1.х.... Возмёшся за это дело? Давай, тикет нарисуй, и сырцы выложи. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Yesvik Опубліковано: 30 липня 2011 Share Опубліковано: 30 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу. seo_url_manager.zip Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options... RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 }elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); }// Эта скобка пропущена /* SEO Custom URL */ if( $_u = $this->getURL($data['route']) ){ $url .= $_u; unset($data[$key]); }/* SEO Custom URL */ Спасибо помогло) Надіслати Поділитися на інших сайтах More sharing options...
RomanP Опубліковано: 30 липня 2011 Автор Share Опубліковано: 30 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Надіслати Поділитися на інших сайтах More sharing options...
costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Попробовал по аналогии ещё для information_id написать чпу , но не получилось ссылки вот так выглядят /information?information_id=3, вот так пробовал: } elseif( $key == 'product_id' ) { $url = '/shop/item/'.$value; unset($data[$key]); } elseif( $key == 'information_id' ) { $url = '/information/'.$value; unset($data[$key]); } elseif ($key == 'path') { $categories = explode('_', $value); $url = '/shop/category'; foreach ($categories as $category) { $url .= '/'.$category; } unset($data[$key]); } Для information всё есть в админке, там просто прописываете "Псевдоним" и всё работает из коробки... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Реклама і просування SEO-питання (оптимізація та просування магазину) Изменение видов ссылок ЧПУ
costas Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Это кажется последняя версия. Если возникнут вопросы - всё расскажу.Файл забрал, как будет результат свяжусь.. Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Yesvik Опубліковано: 31 липня 2011 Share Опубліковано: 31 липня 2011 Файл забрал, как будет результат свяжусь..Погоди... зачем со мной связываться?Кажется ты меня не правильно понял... мне этот модуль нафиг не нужен. Я его писал для паблика и выкладывал в паблик... Сделаеш - выкладывай как дополнение или просто в теме... Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
XuTpblu Опубліковано: 16 серпня 2011 Share Опубліковано: 16 серпня 2011 costas, вопрос по теме, только касается меню. У меня на сайте в горизонтальном меню (там где "главная", "вход") добавлены свои пункты. ссылки вида /information?information_id=3 поменял на чпу и появилась проблема. При переходе в эти пункты, выделение остается на пункте "Главная", а не на нужном.как это можно исправить, не подскажите? надеюсь понятно объяснил Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts