Vamos usar a class URI do Codeigniter.
Essa classe não é necessário ser chamada pelo controller ou pelo autoload, ela é carregada automaticamente.
A principal função a ser usada será $this->uri->segment(n). Onde "n" corresponde ao número do segmento.
Vou aproveitar e ir mais profundo na questão dos links e vou fazer a função funcionar com sublinks. Vamos Lá:
Uma hierarquia da seguinte forma:
- Criação de sites
- Dinâmico
- Estático
- Web Marketing
- SEO
- SEM
Primeiramente teríamos que criar 2 controllers, um para criação de sites com o nome "criacao" e para web marketing "webmarketing"
Se não houver parâmetros nas funções ficaria assim:
Controller criacao:
class Criacao extends Controller{
function Criacao()
{
parent::Controller();
}
function Index(){
$this->load->view("nome_da_view");
}
function site_dinamico(){
$this->load->view("nome_da_view");
}
function site_estatico(){
$this->load->view("nome_da_view");
}---------------------------------------------------------------------------
Controller webmarketing:
class Webmarketing extends Controller{
function webmarkting()
{
parent::Controller();
}
function Index(){
$this->load->view("nome_da_view");
}
function seo(){
$this->load->view("nome_da_view");
}
function sem(){
$this->load->view("nome_da_view");
}OK. Depois dos controllers, vamos agora para o menu em HTML, que de preferência seria um include, que é chamado através da página da seguinte forma:
Esse arquivo seria "menu.php", vamos para ele com o print em Web Marketing:
Vamos as explicações... Antes de mais nada, foi definida uma variável $sel = ""; no topo do include.
Ela servirá para fazer a verificação das páginas e definir uma class do css nomeada de "select" caso estejamos nela.
Normalmente o $this->uri->segment(1) pega o nome do controller o $this->uri->segment(2) pega o nome da função e respectivamente os demais números pegarão os argumentos das funções. No nosso caso, sem argumento.
Existe um Link "Web Marketing" e os sublinks Práticas SEO e SEM. No link a verificação é um pouco mais complexa, pois temos que saber a quantidades de segmentos que existe na URL e consequentemente evitar que o link e sunlinks fiquem selecionados.
O if da linha 82, verifica se o controller é webmarketing e se existe apenas 1 segmento na URL, ou seja o Index do controller. Caso seja o controller e apenas 1 segmento, é aplicado o valor com o nome da class CSS na variável, se não, a variável fica em branco.
Nos sublinks a verificação é mais simples, a condição é apenas no o segmento 2, ou seja, a função, correspondente a página.
Lembrando que nessa estrutura a index.php da URL já foi removida. Caso queria saber como remover veja http://imarlus.blogspot.com/2009/12/como-remover-o-indexphp-da-url-no.html
Qualquer dúvida ou melhora do código... estamos aqui!
Obrigado pelo post, me ajudou muito.
ResponderExcluir