IFs - Condicionais muito úteis em desenvolvimento Joomla
Escrito por Emerson Rocha LuizEsta lista ainda não é definitiva. Resolvi publicar ela mesmo não tendo muito conteúdo por já estar adiando a tempos isso. Caso você tenha sugestões, ou tenha dúvida de algum IF que possa ser util para você, pode entrar em contato ou deixar um comentário no final desta página.
Prefácio - O que saber antes de começar
Em primeiro lugar, você deve ter em mente que um if de PHP pode ser organizado de diversas formas, inclusive usando as condicionais se verdadeiras ou falsas em outros casos. Tome esta página como conhecimento para algumas dúvidas comuns no dia-a-dia de um programador de extensões ou em um desenvolvedor de templates. E lembre-se que você pode fazer sugestões.
"If tipo 1" - Grandes Blocos de HTML (templates e afins)
Se você é designer, certamente vai usar muito esse tipo.
"If tipo 2.1" - Melhor quando trabalha com PHP e pouco HTML
"If tipo 2.2" - Melhor quando trabalha com PHP e pouco HTML
Dica: de como especificar apenas excessões!
Neste caso é simples. em todas as condicionais que você quiser dizer o contrário, basta adicionar exclamação (!) antes da condição:
Determinar se é frontend ou backend
Exemplo: Retornar URL base independente de ser frontend ou backend
Se você não sabe, o modo de como retornar a URL base do Joomla é diferente no frontend do backend. O código mais curto para evitar ter que pensar muito ou mesmo usar um mesmo arquivo nas duas áreas é o seguinte.
Obrigado ao Chris Davenport pela idéia simples e prática.Determinar se é a página inicial (frontpage do site)
Baseado na documentação oficial How to determine if the user is viewing the front page.
Determinar se é a página especifica
Baseado no post do nailson_imgn.
Determinar se é um componente específico (option)
Determinar se é uma view especifica (view)
Determinar se é um formato específico (format)
Determinar se é uma página especifica (Itemid)
Obrigado ao Fernando Nunes e até ao João Amado Alves da Rosa. Demorei 5 (!) meses, mas atualizei aqui. A antes estava menu do artigo, e não do menu, como é o correto
Determinar se é visitante ou usuário logado
Exemplo: Exibir posição de módulo apenas para visitantes
Determinar se é um tipo de usuário
Dois parametros podem ser usados do JUser neste caso: grid e usertype. Grid é o equivalente numérico do usertype ao qual você já deve estar acostumado, e o usertipe é o nome com o qual o grupo do usuário é salvo no banco de dados
Visite Accessing the current user object
Determinar se é um usuário específico
Neste exemplo, ao usar somente o '$user = JFactory::getUser()' estamos carregando o usuário atualmente logado no sistema. Se por exemplo quer pegar os dados de qualquer usuário específico, independente de quem esteja logado no sistema, deve especificar o id do respectivo usuáio ou o username, no caso $user = JFactory::getUser(62) / $user = JFactory::getUser('admin') para o administrador padrão do Joomla.
Neste exemplo, vamos pegar somente o usuário atualmente logado e procurar saber se o id dele é igua o id de usuário que queremos. Mas lembre-se que você pode usar qualquer outro dos parâmetros, como username ou nome de usuário
Visite Accessing the current user object
Determinar se o modo de debug está ligado
Quando estiver desenvolvendo uma extensão, é comum usar certos códigos para ver como as coisas estão indo. Não obstante, ao entregar para o cliente final ficar apagando, ou com sorte só comentando, pode encomodar um pouco, em especial se o projeto em questão não foi 'finalizado para todo o sempre' ou mesmo ainda está em constante desenvolvimento. Neste caso você tem pelo menos duas boas alternativas são voce usar para debugar sua extensão: extender o modo debug padrão do joomla, ou setar sua própria variavel no arquivo principal de sua extensão, fazendo com que o resto do código execute se tal código estiver definido. Neste exemplo, você tem como base como executar um ploco de ações somente quando o Modo debug padrão do Joomla estiver ligado
Outra dica para quem quer debugar em Joomla é usar o JoomlaFox!