Condicional para determinar se o componente é o frontend
Moderator: ariadneduvessa
-
- Joomla! Intern
- Posts: 81
- Joined: Mon Sep 21, 2009 7:32 pm
Condicional para determinar se o componente é o frontend
Galera,
gostaria de saber se existe algum teste com php pra saber qual a pagina ativa....
Preciso fazer com que uma parte do layout que eu fiz apareça somente na homepage, e queria saber alguma rotina em php para testar se a pagina atual é a home.
Se alguem puder me ajudar eu agradeceria muito
titulo editado para facilitar pesquisas
gostaria de saber se existe algum teste com php pra saber qual a pagina ativa....
Preciso fazer com que uma parte do layout que eu fiz apareça somente na homepage, e queria saber alguma rotina em php para testar se a pagina atual é a home.
Se alguem puder me ajudar eu agradeceria muito
titulo editado para facilitar pesquisas
Last edited by campiteli1 on Thu Sep 24, 2009 8:46 pm, edited 1 time in total.
Pedro Campiteli
Joomla! ...sofrendo e aprendendo...
Carpe Diem!
Joomla! ...sofrendo e aprendendo...
Carpe Diem!
- fititnt
- Joomla! Hero
- Posts: 2350
- Joined: Sat Jul 15, 2006 1:41 am
- Location: Porto Alegre - RS - Brazil
- Contact:
Condicional para determinar se o componente é o frontend
Code: Select all
<?php
$menu = & JSite::getMenu();
if ($menu->getActive() == $menu->getDefault()) {
echo 'This is the front page';
}
?>
bem que voce poderia editar colocar um titulo mais amigavel como 'Condicional para determinar se o componente é o frontend'. Isso ajuda pesquisas ;>
-
- Joomla! Intern
- Posts: 81
- Joined: Mon Sep 21, 2009 7:32 pm
Re: Condicional para determinar se o componente é o frontend
Valeu a ajuda cara.
Editei o nome do tópico, realmente vc tem razão....desculpa a "pisada na bola"
Procurei bastante e encontrei também um outro teste que determina qnd vc está na página home, que estou postando pra ajudar o proximo com o mesmo problema
Valeu...
Editei o nome do tópico, realmente vc tem razão....desculpa a "pisada na bola"
Procurei bastante e encontrei também um outro teste que determina qnd vc está na página home, que estou postando pra ajudar o proximo com o mesmo problema
Code: Select all
<?php
$uri = $_SERVER['REQUEST_URI'];
if ($uri == "/") {
echo "You're on the homepage";
} else {
echo "You're on an internal page";
}
?>
Valeu...
Pedro Campiteli
Joomla! ...sofrendo e aprendendo...
Carpe Diem!
Joomla! ...sofrendo e aprendendo...
Carpe Diem!
- fititnt
- Joomla! Hero
- Posts: 2350
- Joined: Sat Jul 15, 2006 1:41 am
- Location: Porto Alegre - RS - Brazil
- Contact:
Re: Condicional para determinar se o componente é o frontend
Que nada, so dei uma dica de como fazer titulos melhores. Sempre ajudam a ter resposta mais rapida e a facilitar a vida do google.
O seu jeito de resolver também funciona para qualquer site e não só joomla. mas eu nao me lembro se ele vai acular que esta numa pagina interna se estiver em site.com.br/index.html, que ainda assim seria o frontend.
O seu jeito de resolver também funciona para qualquer site e não só joomla. mas eu nao me lembro se ele vai acular que esta numa pagina interna se estiver em site.com.br/index.html, que ainda assim seria o frontend.
- marcoscanova
- Joomla! Explorer
- Posts: 255
- Joined: Wed Jan 30, 2008 12:05 am
- Contact:
Re: Condicional para determinar se o componente é o frontend
Olá,
E para links quaisquer, como ficaria? Se a url é "tal" então o módulo não aparece.
Obrigado.
[]s
E para links quaisquer, como ficaria? Se a url é "tal" então o módulo não aparece.
Obrigado.
[]s
- nailson_imgn
- Joomla! Guru
- Posts: 729
- Joined: Wed Apr 15, 2009 5:33 pm
- Location: Fortaleza, CE - Brasil
Re: Condicional para determinar se o componente é o frontend
O Joomla! permite por padrão que você defina a quais itens de menu os seus módulos estão associados, o que com certeza já atende às necessidades da maioria. Contudo, em casos especiais, você pode fazer assim:Você pode utilizar verificações desse tipo para criar ou não determinadas posições na index.php do TEMPLATE. Aí, basta associar os módulos que você quiser a estas POSIÇÕES. Isso deve ser o suficiente pra atender às necessidades de todos.
Code: Select all
// Isso é só um exemplo
$paginaAtual = JURI::current();
if( $paginaAtual == 'link/da/pagina/de/noticias.html' ){
// Chame o jdoc include da posição dos módulos de notícias
}
elseif( $paginaAtual == 'link/da/pagina/de/outra-coisa.html' ){
// Chame o jdoc include da posição dos módulos de uma outra coisa
}
else{
// E assim vai...
}
.
Nailson Oliveira
Técnico de Tecnologia da Informação - Desenvolvedor Joomla!
-----------------------------------------------------------------------------------------
Nailson Oliveira
Técnico de Tecnologia da Informação - Desenvolvedor Joomla!
-----------------------------------------------------------------------------------------
-
- Joomla! Apprentice
- Posts: 23
- Joined: Thu Nov 13, 2008 9:23 pm
- Contact:
Re: Condicional para determinar se o componente é o frontend
Bem, se você quer apresentar algum código, módulo, etc apenas na home você pode fazer o seguinte teste:
if( JRequest::getCmd( 'view' ) == "frontpage" ){
/*
* Escreva aqui o código que irá aparecer na home
*/
}
Esse teste deve ser feito na index do template.
if( JRequest::getCmd( 'view' ) == "frontpage" ){
/*
* Escreva aqui o código que irá aparecer na home
*/
}
Esse teste deve ser feito na index do template.
- ronildo
- Joomla! Virtuoso
- Posts: 4021
- Joined: Thu Aug 18, 2005 12:39 pm
- Location: São Paulo - Brazil
- Contact:
Re: Condicional para determinar se o componente é o frontend
Vejam se isso ajuda:
http://docs.joomla.org/How_to_determine ... front_page
ps: dica do julio (joomila)
http://docs.joomla.org/How_to_determine ... front_page
ps: dica do julio (joomila)
http://www.ronildo.com.br/blog/ pt-br | twitter: twitter.com/ronildo
http://forum.joomla.org/viewtopic.php?f=23&t=144443 - FAQ Joomla [pt]
Pessoal por favor não tiro dúvidas por e-mail nem mensagem privada, por favor não insistam.
http://forum.joomla.org/viewtopic.php?f=23&t=144443 - FAQ Joomla [pt]
Pessoal por favor não tiro dúvidas por e-mail nem mensagem privada, por favor não insistam.
- fititnt
- Joomla! Hero
- Posts: 2350
- Joined: Sat Jul 15, 2006 1:41 am
- Location: Porto Alegre - RS - Brazil
- Contact:
Re: Condicional para determinar se o componente é o frontend
A sugestão do mamura é a com menos linhas de código de todas. Interessante certamente
Ela so erraria se tivesse algum componente que tivesse uma view com nome frontpage, mas seria um erro muito especifico.
A sugetão do nailson_imgn se me lembro diteiro, faz diferenciação conforme a url e se pode ter mais de uma URL ( URL com e sem SEF) e poderia ser um problema.
Ela so erraria se tivesse algum componente que tivesse uma view com nome frontpage, mas seria um erro muito especifico.
A sugetão do nailson_imgn se me lembro diteiro, faz diferenciação conforme a url e se pode ter mais de uma URL ( URL com e sem SEF) e poderia ser um problema.
- nailson_imgn
- Joomla! Guru
- Posts: 729
- Joined: Wed Apr 15, 2009 5:33 pm
- Location: Fortaleza, CE - Brasil
Re: Condicional para determinar se o componente é o frontend
O exemplo que eu dei é para caso como o da pergunta acima, em que a pessoa já sabe a quais módulos só devem aparecer em quais links. Não levei em consideração a diferença entre o SEF, mas basta fazer as comparações de $paginaAtual e JRoute::_( 'link/especifico/que/voce/ja_sabe' ) e tudo continua funcionando perfeitamente. Mas lógico, esta solução é para o caso citado acima e não para identificar se a página atual é a home, apesar de que também funciona para a home.marcoscanova wrote:Olá,
E para links quaisquer, como ficaria? Se a url é "tal" então o módulo não aparece.
Obrigado.
[]s
.
Nailson Oliveira
Técnico de Tecnologia da Informação - Desenvolvedor Joomla!
-----------------------------------------------------------------------------------------
Nailson Oliveira
Técnico de Tecnologia da Informação - Desenvolvedor Joomla!
-----------------------------------------------------------------------------------------
- marcoscanova
- Joomla! Explorer
- Posts: 255
- Joined: Wed Jan 30, 2008 12:05 am
- Contact:
Re: Condicional para determinar se o componente é o frontend
Olá,
Como o caso era não exibir certos módulos (banner, menu subcategorias, etc) em certas url´s do VirtueMart que não convinham (checkout, carrinho, manutenção de conta, etc), usei esta solução:
Abraços e obrigado pela resposta.
Como o caso era não exibir certos módulos (banner, menu subcategorias, etc) em certas url´s do VirtueMart que não convinham (checkout, carrinho, manutenção de conta, etc), usei esta solução:
Code: Select all
if ((JRequest::getVar('page') != 'shop.browse')) {
} else { ?>
<jdoc:include... />
<?php } ?>
nailson_imgn wrote:O exemplo que eu dei é para caso como o da pergunta acima, em que a pessoa já sabe a quais módulos só devem aparecer em quais links. Não levei em consideração a diferença entre o SEF, mas basta fazer as comparações de $paginaAtual e JRoute::_( 'link/especifico/que/voce/ja_sabe' ) e tudo continua funcionando perfeitamente. Mas lógico, esta solução é para o caso citado acima e não para identificar se a página atual é a home, apesar de que também funciona para a home.marcoscanova wrote:Olá,
E para links quaisquer, como ficaria? Se a url é "tal" então o módulo não aparece.
Obrigado.
[]s
- fititnt
- Joomla! Hero
- Posts: 2350
- Joined: Sat Jul 15, 2006 1:41 am
- Location: Porto Alegre - RS - Brazil
- Contact:
- marcoscanova
- Joomla! Explorer
- Posts: 255
- Joined: Wed Jan 30, 2008 12:05 am
- Contact:
Re: Condicional para determinar se o componente é o frontend
Olá,
Ótimo artigo fititnt, já está nos favoritos, parabéns! Roubou minha idéia para um artigo, mas tudo bem.
[]s
Ótimo artigo fititnt, já está nos favoritos, parabéns! Roubou minha idéia para um artigo, mas tudo bem.
[]s
- fititnt
- Joomla! Hero
- Posts: 2350
- Joined: Sat Jul 15, 2006 1:41 am
- Location: Porto Alegre - RS - Brazil
- Contact:
Re: Condicional para determinar se o componente é o frontend
humm, nem sabia que você estava querendo escrever algo desse tipo. Eu tava a tempos por juntar esses códigos e só empurrando até que um dia juntei tudo.
- nailson_imgn
- Joomla! Guru
- Posts: 729
- Joined: Wed Apr 15, 2009 5:33 pm
- Location: Fortaleza, CE - Brasil
Re: Condicional para determinar se o componente é o frontend
Valeu pelo reconhecimento @fitnitmarcoscanova wrote:Olá,
Ótimo artigo fititnt, já está nos favoritos, parabéns! Roubou minha idéia para um artigo, mas tudo bem.
[]s
Nota: seu tutorial agrega algumas coisas interessantes, mas você deveria fazer uma revisão mais detalhada dele. Tem algumas falhas que você deixou passar:
"Determinar se é um usuário específico": os comentários indicam que o condicional revela o tipo de usuário ao invés de um usuário específico
"Determinar se é uma página especifica (Itemid)" está longe de ensinar o que o título sugere. A variável Itemid se refere ao id do item de menu que está atualmente selecionado. Como componentes podem ser executados sem a necessidade de um menu, a chamada pode resultar em 0 e isso não indica nem de longe em qual página se está.
Além disso, o comentário desse trecho diz "Esta página é especifica do artigo de ID 27" o que não tem nenhuma obrigação de ser, uma vez que você pode escolher qualquer artigo para ser exibido em um dado menu( não há relação direta "id_menu <==> id_artigo" ).
Corrigindo isso, acho que fica tudo OK. Você já pensou em adicionar esse tipo de tutorial à wiki?
http://docs.joomla.org/Category:Tips_and_tricks_1.5
Boa sorte
Nota[2]: @marcoscanova se há interesse mútuo em publicar tutoriais similares talvez fosse interessante mantê-los na wiki oficial onde todos podem colaborar, não acha?
.
Nailson Oliveira
Técnico de Tecnologia da Informação - Desenvolvedor Joomla!
-----------------------------------------------------------------------------------------
Nailson Oliveira
Técnico de Tecnologia da Informação - Desenvolvedor Joomla!
-----------------------------------------------------------------------------------------
- marcoscanova
- Joomla! Explorer
- Posts: 255
- Joined: Wed Jan 30, 2008 12:05 am
- Contact:
Re: Condicional para determinar se o componente é o frontend
Olá,
Estava apenas brincando fititnt e sim nailson_imgn, é uma ótima dica.
[]s
Estava apenas brincando fititnt e sim nailson_imgn, é uma ótima dica.
[]s