Newsmade
PHP, no auge
Voltar

Função para saber qual link está ativo atravez do get

bom explicando melhor, essa função pega o get interpreta ele e me retorna se está ativo ou não, bacana não é...

ah sim ela também gera o href para você ^^

tá aqui a menina

function mLlinkAtivo($get, $var = 0){

(empty($var) || $var == 1?$varm='':$varm = '='.$var);

if(is_array($get)){
foreach($get as $chave => $valor){

if(is_int($chave)){
$chave = $valor;
unset($valor);
}

$valor = (!empty($valor)? "=".$valor : '');

if(isset($getT)){
$getT .= '&'.$chave.$valor;
} else {
$getT = $chave.$valor;
}
}

$getUl = explode("&", $getT);
$getUl = array_reverse($getUl);
$getUl = explode("=", $getUl[0]);

$getUlt = $getUl[0];
$var = (empty($getUl[1])? $var : $getUl[1]);
$get = $getT;

} else {
$getUlt = $get;
}


$link = "href='?$get$varm'";

if(!empty($var)){
if($var == $_GET[$getUlt]){
return $link." class='ativo'";
} elseif(empty($_GET[$getUlt]) and $var == 1) {
return $link." class='ativo'";
} else {
return $link;
}
} else {
if(!empty($_GET)){
$getAtl = array_keys($_GET);
$getAtl = $getAtl['0'];
} else {
$getAtl = '';
}

if($getAtl == $getUlt){
return $link." class='ativo'";
} else {
return $link;
}
}
};



como usar:

// para um get assim: ?modulo=teste
<a <?=mLlinkAtivo('modulo', 'teste')?> > Seu link </a>

// para um get assim: ?modulo=teste&noticias&pagina=2
$link = (
'modulo' => 'teste',
'noticias',
'pagina' => '2'
);
<a <?=mLlinkAtivo('modulo')?> > Seu link </a>

// Vamos pensar o caso de um link inicial... como por exemplo:
modulo=teste&noticias ao contrario de modulo=teste&noticias=2
fassa assim
$link = (
'modulo' => 'teste',
'noticias',
);
<a <?=mLlinkAtivo('modulo', '1')?> > Seu link </a>

//esse 1 é um coringa que verifica a ultima get, no caso noticias se ele for vazio o link fica como ativo
Ligações mLFuncions
Postado 06/08/2009 13:11 por Jeison Frasson

© 2002-2012 Newsmade - Quase todos os direitos reservados.