Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#55241
cmcshm escreveu:instalei modulos ultimate seo e title optmizer pra tentar deixar tudo com o url amigavel, mas nao consegui tirar ?_route_=

http://megavapor.br22.com/?_route_=5-re ... atomizador

fiz tudo certinho ai mas sem chance de tirar :|
Faça o seguinte. Entre no gerenciador de arquivos de sua hospedagem e siga o seguinte caminho, catalog > controller > common e clique em seo_url.php e faça o download do arquivo original e salve em um lugar seguro, depois de salvo o arquivo original, substitua por esse e salve, e veja se seu site ficou com as URLs amigáveis.
Código: Selecionar todos
<?php
class ControllerCommonSeoUrl extends Controller {

private $urlFriendly = array(
            'common/home'       => '',
            'checkout/cart'     => 'carrinho',
            'account/register'  => 'cadastre-se',
            'account/wishlist'  => 'lista-de-desejos',
            'checkout/checkout' => 'checkout',
            'account/logout'    => 'sair',
            'account/login'     => 'login',
            'product/special'   => 'ofertas-especiais',
            'affiliate/account' => 'afiliado',
            'checkout/voucher'  => 'vale-presente',
            'product/manufacturer' => 'lista-de-fabricantes',
            'account/newsletter'   => 'meu-informativo',
            'account/order'        => 'historico-de-pedidos',
            'account/account'      => 'minha-conta',
            'information/contact'  => 'contate-nos',
            'information/sitemap'   => 'mapa-do-site',
            'account/forgotten'     => 'lembrar-senha',
            'account/download'     => 'meus-downloads',
            'account/return'     => 'minhas-devolucoes',
            'account/transaction'     => 'minhas-indicacoes',
            'account/password'     => 'alterar-senha',
            'account/edit'     => 'alterar-informacoes',
            'account/address'     => 'alterar-enderecos',
            'account/reward'     => 'pontos-de-fidelidade',
            'account/return/insert'     => 'devolucoes',
            'affiliate/login'     => 'programa-de-afiliados',
            'account/voucher'     => 'comprar-vale-presente',
            
        );
		
	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';	
				}
			}
			
			//Modificado
			if ($_key = $this->getKeyFriendly($this->request->get['_route_']) ) {
				$this->request->get['route'] = $_key;
			}elseif (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]);
					}
					//Modificado
					if( $_link = $this->getValueFriendly($data['route']) ){
							 $url .= $_link;
							 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;
		}		
	}
	//adicionado
	public function getKeyFriendly($_route) {
       if( count($this->urlFriendly) > 0 ){
			$key = array_search($_route, $this->urlFriendly);
			if($key && in_array($_route, $this->urlFriendly)){
				return $key;
			}
       }
       return false;
	}
	//adicionado
	public function getValueFriendly($route) {
      if( count($this->urlFriendly) > 0) {
		  if(in_array($route, array_keys($this->urlFriendly))){
				 return '/'.$this->urlFriendly[$route];
		  }
       }
      return false;
	}
	
}
?>

Espero ter ajudado.
#55242
fiz certinho o que falou acima mas nao deu, to tomando um baile, da uma olhada:
http://megavapor.br22.com/?_route_=resistencias

pior nao é isso, nao sei que diacho que modulo que instalei e se foi isso mesmo a causa, mas nao funciona mais o botao adicionar no carrinho, um cliente me mandou o erro que teve, acho que perdeu ligacao com o mysql, ja verifiquei tudo config.php, php.ini, tudo certinho login senha user, ja verifiquei o BD, ja restaurei , ja troquei senha e nada complicado, sabe de alguma coisa sobre isso?
segue erro, VALEU MESMO!!!!
Código: Selecionar todos
Warning: mysqli::mysqli(): (HY000/2002): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/t40efosa/public_html/system/database/mysqli.php on line 6

Fatal error: Uncaught exception 'ErrorException' with message 'Error: Could not make a database link (2002) Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)' in /home/xxxxxx/public_html/system/database/mysqli.php:9 Stack trace: #0 /home/xxxxxxx/public_html/vqmod/vqcache/vq2-system_library_db.php(13): DBMySQLi->__construct('localhost', 't40efosa_ocar40...', 'xxxxxxxxx', 't40efosa_ocar40...') #1 /home/xxxxxxx/public_html/index.php(44): DB->__construct('mysqli', 'localhost', 't40efosa_ocar40...', 'xxxxxxxx', 't40efosa_ocar40...') #2 {main} thrown in /home/t40efosa/public_html/system/database/mysqli.php on line 9

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]