Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rodrigues5788

link ativo PHP

Recommended Posts

Olá Pessoal,

Desenvolvi um site onde uso url amigável, porém tenho um problema quando tento deixar o link do menu ativo na página, ele não fica.

 

A minha estrutura está assim: na

 

index.php tenho esta função

 

<?php $url = (isset($_GET['url'])) ? $_GET['url'] : "home";

 

$file = "view/$url.php";

 

if(file_exists($file)){

include($file);

}else{

include 'view/404.php';

}

?>

 

E guardo as outras páginas na minha view.php.

Não consigo achar uma solução para deixar meu link ativo. Alguém poderia me ajudar? :D

Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Lucas,

 

olha tentei fazer desta forma por um tutorial que vi na net

<?php $paginaLink = $_SERVER['SCRIPT_NAME'];?> <ul id="menu"> <li><a href="parceiros" <?php if($paginaLink == 'parceiros') {echo 'class="ativo"';} ?>>link 1</a></li> </ul></ul>

Desculpe, estou meio perdida sou básico em php.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Na realidade esta maneira de url da include em arquivo é uma falha de segurança.


Você não vai conseguir dar a:active no link, com PHP.

Isto deve ser implementado com Javascript no evento do click no link e tecla 'enter'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não Lucas, não verifiquei, me desculpe, como posso fazer isso?



 

Na realidade esta maneira de url da include em arquivo é uma falha de segurança.
Você não vai conseguir dar a:active no link, com PHP.
Isto deve ser implementado com Javascript no evento do click no link e tecla 'enter'

Raphael Barros, tudo bom? :)

Voce me aconselha entao a fazer com javascript?

Compartilhar este post


Link para o post
Compartilhar em outros sites
O que eu compreendi que vc está fazendo:


Você possui uma página central que pela chamada da url, define qual arquivo será incluido ao script (include).

Através do nome do arquvo da página incluida, vc define qual será o link que receberá a classe css 'ativo'.


1 - Post o código todo da página central;

2 - Post o código de uma das páginas de view.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

O que eu compreendi que vc está fazendo:
Você possui uma página central que pela chamada da url, define qual arquivo será incluido ao script (include).
Através do nome do arquvo da página incluida, vc define qual será o link que receberá a classe css 'ativo'.
1 - Post o código todo da página central;
2 - Post o código de uma das páginas de view.

Sim,

na minha index.php está assim


<?php  $url = (isset($_GET['url'])) ? $_GET['url'] : "home";
 
$file = "view/$url.php";
 
if(file_exists($file)){
    include($file);
}else{
   include 'view/404.php';
}
?>

na minha pasta inc onde tenho header.php está assim

<?php include 'inc/seo.php';?>

<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 	<head>
		<title>Futuro Olímpico | <?php echo $title; ?></title>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
		<meta name="description" content="<?php echo $description ?>"/>
		<link rel="stylesheet" type="text/css" href="css/style.css"/>
		<link rel="stylesheet" type="text/css" href="css/jquery.fancybox.css"/>
		<link rel="stylesheet" type="text/css" href="css/jquery.fancybox-thumbs.css"/>
	</head>
	<body>
	<div id="bg">
  			<img src="img/bg.jpg" alt="fundo site"/>
		</div>
		<div class="content">
			<!--///////////////////////////////////Header///////////////////////////////////-->
			<div class="header sprite">
				<div class="pdd-header">
					<div class="box-up">
						<div class="fleft">
							<div class="box-logo">
								<a href="home" class="logo sprite" title="Futuro Olímpico - Arnoldo de Oliveira">Futuro Olímpico - Arnoldo de Oliveira</a>
								<div class="slogan">
									<span class="txt-slogan">Resgatando <span class="red">vidas</span> através do esporte.</span>
								</div>
							</div>
						</div>

						<div class="fright">

							<div class="box-partners">
								<span class="txt-partners">Nossos parceiros</span>
								<div class="partners-logo"><a href="http://www.cscbrasil.com.br/" class="link-logo-partners" target="_blank"><img src="img/logo-csc.png"/></a></div>
								<div class="partners-logo"><a href="http://bubbling.com.br/" class="link-logo-partners" target="_blank"><img src="img/logo-bubbling.png"/></a></div>
								<div class="partners-logo partners-logo-caixa"><a href="http://www.caixa.gov.br/" class="link-logo-partners" target="_blank"><img src="img/logo-caixa.png"/></a></div>
							</div><!--end box-partners-->
						</div>
						
					</div><!--end f right-->
					<div class="box-down">
						
					<div class="menu">
						<?php $paginaLink = $_SERVER['SCRIPT_NAME'];?>
						 <ul class="group" id="example-one">
						    <li class="current_page_item sprite"><a href="home" class="link-menu" >Home</a></li>
						    <li class="list-sub">
						    	<a href="#" class="link-menu-sub link-menu">o projeto</a>
						    	<ul class="submenu sprite">
						    		<li class="list-submenu"><a href="como-atuamos" class="link-submenu">como atuamos</a></li>
						    		<li class="list-submenu"><a href="historia" class="link-submenu">História</a></li>
						    		<li class="list-submenu"><a href="equipe" class="link-submenu">Equipe</a></li>
						    		<li class="list-submenu"><a href="estrutura" class="link-submenu">estrutura</a></li>
						    		<li class="list-submenu"><a href="visite-o-projeto" class="link-submenu">visite o projeto</a></li>
						    		<li class="list-submenu"><a href="localizacao" class="link-submenu">localização</a></li>
						    	</ul>
						    </li>
						    <li class="list-sub">
						    	<a href="#" class="link-menu-sub link-menu">atletas</a>
						    	<ul class="submenu submenu-atletas sprite">
						    		<li class="list-submenu"><a href="melhores-atletas" class="link-submenu">Melhores Atletas</a></li>
						    		<li class="list-submenu"><a href="ex-atletas" class="link-submenu">Ex-Atletas</a></li>
						    		<li class="list-submenu"><a href="resultados" class="link-submenu">Resultados</a></li>
						    		<li class="list-submenu"><a href="modalidades" class="link-submenu">Modalidades</a></li>
						    	</ul>
						    </li>
						    <li class="list-sub">
						    	<a href="" class="link-menu-sub link-menu">na mídia</a>
						    	<ul class="submenu submenu-news sprite">
						    		<li class="list-submenu"><a href="noticias" class="link-submenu">Notícias</a></li>
						    		<li class="list-submenu"><a href="" class="link-submenu">Vídeos</a></li>
						    		<li class="list-submenu"><a href="galeria" class="link-submenu">Galeria</a></li>
						    		
						    	</ul>
						    </li>
						    <li class="sprite" ><a href="parceiros" class="link-menu" <?php if($paginaLink == 'parceiros') {echo 'class="ativo"';} ?>>parceiros</a></li>
						    <li class="sprite"><a href="contato" class="link-menu">contato</a></li>
						 </ul>
						</div>
					</div>
				</div><!--end pdd header-->
			</div><!--end header-->

Coloquei esse $paginalink apenas no link parceiros para testar.

 

Uai, dá um print na variável.

Dei e nao me retorna nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seus hrefs dos links do menu não estão errados não?


Tipo:



<li class="sprite" ><a href="index.php?url=parceiros" class="link-menu" <?php if($paginaLink == 'parceiros') {echo 'class="ativo"';} ?>>parceiros</a></li>
<li class="sprite"><a href="index.php?url=parceiros" class="link-menu">contato</a></li>


Não deveria ser:



<li class="sprite" ><a href="index.php?url=parceiros" class="link-menu" <?php if($paginaLink == 'parceiros') {echo 'class="ativo"';} ?>>parceiros</a></li>
<li class="sprite"><a href="index.php?url=contato" class="link-menu">contato</a></li>


Caso seja, faça as alterações, e altera a index.php para:



<?php

$url = (isset($_GET['url'])) ? $_GET['url'] : "home";

$file = "view/{$url}.php";

if(file_exists($file)){
$paginaLink = $url;
include($file);
}
else
include 'view/404.php';

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Seus hrefs dos links do menu não estão errados não?
Tipo:
<li class="sprite" ><a href="index.php?url=parceiros" class="link-menu" <?php if($paginaLink == 'parceiros') {echo 'class="ativo"';} ?>>parceiros</a></li>
<li class="sprite"><a href="index.php?url=parceiros" class="link-menu">contato</a></li>
Não deveria ser:
<li class="sprite" ><a href="index.php?url=parceiros" class="link-menu" <?php if($paginaLink == 'parceiros') {echo 'class="ativo"';} ?>>parceiros</a></li>
<li class="sprite"><a href="index.php?url=contato" class="link-menu">contato</a></li>
Caso seja, faça as alterações, e altera a index.php para:
<?php  
 
$url = (isset($_GET['url'])) ? $_GET['url'] : "home";
 
$file = "view/{$url}.php";
 
if(file_exists($file)){
    $paginaLink  = $url;
include($file);
}
else
   include 'view/404.php';
 
?>

Infelizmente nao funcionou aqui :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.