Página 1 de 2

Menu Diferente Apenas Na Home [RESOLVIDO]

Enviado: 08 Fev 2012, 17:05
por lDouglas
Fala galera Beleza (:

Entao minha duvida é a seguinte , to fazendo uma loja e gostaria que o menu ficasse diferente apenas na home , tipo eu colocaria uma função em PHP onde o o menu na home recebesse um id do meu CSS ,e no restante das paginas ele recebesse outro

no WORDPRESS seria algo como <?php is_home(); ?>

Gostaria de Algo assim
Código: Selecionar todos
<?php
if ( is_home() ) {
    <div id="menuhome">
       /*conteudo*/
    </div>
} else {
    <div id="menu">
     /*conteudo*/
    </div>
}
?>
Alguma dica de como posso fazer isso ?
Grato desde já (:

Link da Loja Bagatela Presentes

Re: Menu Diferente Apenas Na Home

Enviado: 08 Fev 2012, 19:39
por Manoel Vidal
Olá,

Não estou perto do meu computador agora, mas acredito que seja possível sim, pois o OpenCart tem uma variável chamada $route que armazena a rota da página ou seja identifica em que página ele está, logo se ele consegue identificar em que página está sua idéia é totalmente possível.

Coloque no seu arquivo header.tpl algo do tipo:
Código: Selecionar todos
<?php
if ($route == "common/home") {
?>
    <div id="menuhome">
       /*conteudo*/
    </div>
<?php
} else {
?>
    <div id="menu">
     /*conteudo*/
    </div>
<?php
}
?>
Não sei se vai funcionar, pois não tenho como testar agora, mas esse é o caminho das pedras.

Espero ter ajudado :D

Re: Menu Diferente Apenas Na Home

Enviado: 08 Fev 2012, 22:19
por lDouglas
Opa cara valeu ajudou bastante sim (:

Então eu coloquei do jeito que voce falou e deu variavel indefinida , ai eu dei uma pesquisada melhor na net o seguinte codigo
Código: Selecionar todos
if ($this->request->get['route'] == 'common/home')  
e coloquei no lugar desse
Código: Selecionar todos
 if ($route == "common/home")  '-'
E funcionou :D , só nao entendi mto bem o codigo .-.

Re: Menu Diferente Apenas Na Home [RESOLVIDO]

Enviado: 09 Fev 2012, 01:15
por Renato Frota
O OpenCart trabalha com uma única chamada à index.php, e diversas classes, que carregam o conteúdo necessário em cada página.

Com as "rotas" você especifica o que quer carregar. Com a rota "common/home" você chama a home da loja. Com a rota checkout/cart, você chama o carrinho, e assim por diante.

O que o código do Vidal faz é testar se você chamou a Home ou outra página. Se for a Home, chama o div id=menuhome, do contrário (qualquer outra página), chama a div id=menu.

Re: Menu Diferente Apenas Na Home [RESOLVIDO]

Enviado: 09 Fev 2012, 10:21
por Manoel Vidal
Que bom que resolveu e valeu pela explicação Renato. :D

Re: Menu Diferente Apenas Na Home [RESOLVIDO]

Enviado: 09 Fev 2012, 10:31
por lDouglas
Opa galera valeu por responderem (:

Então deu certo '-' , porem só funciona quando a URL é essa
Código: Selecionar todos
http://bagatelapresentes.com.br/index.php?route=common/home
Mas quando o usuario entra no site a url é essa
Código: Selecionar todos
http://bagatelapresentes.com.br
ai da erro um erro de variavel indefinida , não consegui fazer com que ele compare com as duas URls :3

Alguma dica ?

Grato desde já (:

Re: Menu Diferente Apenas Na Home

Enviado: 09 Fev 2012, 10:57
por Manoel Vidal
No caso, quando a variável estiver vazia significa que ele está na index também, tente assim:

Substitua o código:
Código: Selecionar todos
if ($this->request->get['route'] == 'common/home')
Por:
Código: Selecionar todos
if ($this->request->get['route'] == "common/home" or $this->request->get['route'] == "")
Espero ter ajudado :D

Re: Menu Diferente Apenas Na Home

Enviado: 09 Fev 2012, 14:12
por lDouglas
*-------------------------------------------*
funcionou perfeitamente porem apareceu

Notice: Undefined index: route in.

Isso não passa de um warning certo ? com remover ? :#

Ja tentei alterar o php.ini
colocar a variavel $route = ""
mas nada funciona D:

Muitisssimo Obrigado :D

Re: Menu Diferente Apenas Na Home

Enviado: 10 Fev 2012, 00:27
por Renato Frota
Código: Selecionar todos
if ($this->request->get['route'] == "common/home" or $this->request->get['route'] == "" or !isset($this->request->get['route']))
agora sim :mrgreen:

Re: Menu Diferente Apenas Na Home

Enviado: 10 Fev 2012, 16:41
por lDouglas
Funciona Perfeitamente porem
aparece esse erro infame :| , não consigo remover de
jeito algum '-'
Notice: Undefined index: route in /home/httpd/vhosts/bagatelapresentes.com.br/httpdocs/catalog/view/theme/default/template/common/header.tpl on line 115Notice: Undefined index: route in /home/httpd/vhosts/bagatelapresentes.com.br/httpdocs/catalog/view/theme/default/template/common/header.tpl on line 115

Ja tentei colocar o @ antes da das variaveis mas não consigo de jeito maneira :3