Esempio n. 1
0
 public function index()
 {
     // Add rewrite to url class
     if ($this->config->get('config_seo_url')) {
         $this->url->addRewrite($this);
     }
     $seo = new SEO($this->registry);
     // Decode URL
     if (isset($this->request->get['_route_'])) {
         // decode URL base rule
         if (!$this->config->get('config_seo_url')) {
             $decode = $seo->decode_base_rule($this->request->get['_route_']);
             if ($decode) {
                 return $this->forward($decode);
             }
         }
         // end
         $parts = explode('/', $this->request->get['_route_']);
         foreach ($parts as $part) {
             $this->log->write('keyword = ' . $part . '  | ');
             $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE lower(keyword) = '" . strtolower($this->db->escape($part)) . "'");
             if ($query->num_rows) {
                 $url = explode('=', $query->row['query']);
                 $seo->decode($url[0]);
                 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']);
         }
     }
 }