Jump to content
php.lv forumi

Nemainīgs menu, bet mainīgs "aktivs" izvelne


vitao.web

Recommended Posts

Labdien!

 

Piedodiet, ka atkal patraucēju, bet nerodas idejas, kā īstenot šo lietu. Ir inklūdots fails menu.php, kurā ir tikai menu. Ideja ir tāda, ka vajag, kaut kā izdomāt, lai class="active" ir mainīgs visu laiku, atkarībā no faila, kurā ir inklūdots. Piemēram ja būs index.php, tad active būs Home un ja piemēram jaunumi, tad active būs Jaunumi utt.. Vai maz tas ir iespējams un kā to varētu panākt?

 

Paldies!

 

ar cieņu,

vitao.web

Link to comment
Share on other sites

Ir padomā viens variants, bet vai tas ir labs? Varbūt ir kāds labāks?

 

   <div class="menu">
       <ul>
         <li><a href="index" <?php if($_SERVER["REQUEST_URI"] == "/index") { echo 'class="active"';} ?>><span>Home Page </span></a></li>
         <li><a href="about" <?php if($_SERVER["REQUEST_URI"] == "/about") { echo 'class="active"';} ?>><span> About Us </span></a></li>          
         <li><a href="portfolio" <?php if($_SERVER["REQUEST_URI"] == "/portfolio") { echo 'class="active"';} ?>><span>Services</span></a></li>
         <li><a href="enroll" <?php if($_SERVER["REQUEST_URI"] == "/enroll") { echo 'class="active"';} ?>><span>Enroll</span></a></li>
         <li><a href="contact" <?php if($_SERVER["REQUEST_URI"] == "/contact") { echo 'class="active"';} ?>><span> Contact Us</span></a></li>
       </ul>
     </div>

Link to comment
Share on other sites

A kā būtu ar JS?

 

$("#menu ul li a").each(function(){
var href = this.getAttribute('href');
var location =  jQuery.url.segment(3);
var newhref = jQuery.url.attr("protocol")+"://"+jQuery.url.attr("host")+"/test/"+href;
if ( window.location.href == newhref) {
	$(this).parent("li").addClass("active");
}
});

 

Protams, vajag šo pluginu http://github.com/allmarkedup/jQuery-URL-Parser

 

Protams, ka dodu labāk priekšroku php, bet nu ja neko diži nevajag, var arī šādi. Vismaz nebūs visu laiku pie jaunu meņu likšanas, jāliek kods, protams, vispār jau man liekas, ka var izvedot, vai dabot jau gatavas fijas priekš menu active.

 

P.S. Neesmu pamodies.

Link to comment
Share on other sites

Tavs variants nav labs ar to, ka ja man būs "/index/blablabla", tad nenostrādās pareizi.

Un 5 if-i arī nav smuki, paprovē ar regex meklēt <a href="$_SERVER["REQUEST_URI"]" un liec tam klasi klāt.

 

 

Pats tiko uzliku un tieši, lai pārbaudītu un ir tā kā tu teici. A kā tu domāji to savu variantu. Vari parādīt kādu paraugu lūdzu vai linku ? :)

Link to comment
Share on other sites

Uz ātro (var nestrādāt)

 

JS:

link = location.href.split('/', 4);
$("#menu ul li a[href="+link[3]+"]").parent("li").addClass("active");

 

PHP:

$uri = split('/', $_SERVER['REQUEST_URI']);
$menu = str_replace("<li><a href=\"".$uri[1]."\"", "<li class=\"active\"><a href=\"".$uri[1]."\"", $menu );

Link to comment
Share on other sites

cik saprotu tie /index, /portfolio, /about ir katrs atsevišķs php fails? Tad kāpēc vienkārši neielikt katrā failā pirms includo menju kādu mainīgo, piem.,

define('PAGENAME','index');

attiecīgi. Un tad iekš menju netaisīt nekādas izvirtības, bet pārbaudīt

<?php if (PAGENAME === 'index') echo ' class="active"'; ?>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...