O întrebare pentru un cod php
  [ Ignoră ]
RankRank
Jr. Member
Din: 
Macuser din: 21.12.06

Nu prea sînt sigur dacă întrebarea mea este în forumul potrivit dar încerc să o pun aici.

Am integrat un template pentru RapidWeaver într-un site.
Paginile care sînt curente primesc tagul class=“current” <a href=“pagina.html” rel=“self” class=“current”> și în navigație apare pentru pagina respectivă un punct roșu.
Subpaginile care sînt curente primesc și ele același tag class=“current” numai că punctul roșu este mai mic pentru că pagina superioară primește tagul class=“currentAncestor” și această pagină “mamă” are punctul roșu mai mare.
O mică demonstrație am pus-o la http://www.boangiu.de/test/index.html

Pe server se găsește o aplicație php care are mai multe pagini. Această aplicație este toată într-un dosar și în acest dosar nu este doar pagina “mamă” ci si paginile “copii“. Și pagina “mamă și paginile “copii” sînt documente php. (Această aplicație poate fi văzută la http://www.costel-marian.de/genealogy/index.php )
Codul de navigație al aplicației se face după sistemul:

<?php
    
echo "<li><a href=\"browsealbums.php\">$text[albums]</a></li>
"
;
    echo 
"<li><a href=\"browsemedia.php\">$text[allmedia]</a></li>
"
;
    echo 
"<li><a href=\"browsemedia.php?mediatypeID=histories\">$text[mnuhistories]</a></li>
"
;
    echo 
"<li><a href=\"browsemedia.php?mediatypeID=documents\">$text[documents]</a></li>
"
;
    echo 
"<li><a href=\"browsenotes.php\">$text[notes]</a></li>
"
;
?> 

Întrebarea mea ar fi: ce code trebuie să bag eu în aceste linii pentru ca atunci cînd să zicem pagina browsealbums.php va deveni curentă să primească tagul class=“current”?

După cum observați mare programator nu sînt eu, și din cauza aceasta mai am o a doua întrebare, dar asta doar pentru mine, pentru a-mi verifica gîndurile:
În codul de mai sus aceste subpagini sînt înșiruite toate și se văd de fiecare dată de pe orice pagină din aplicație. Atunci cînd se trece de la o subpagină la o altă subpagină, pentru a o “clasifica” ca curentă, nu ar trebui cumva să intre într-o “buclă” (loop) după modelul?

dacă tupagina x ești curentă
    atunci primeste 
class="current"
altfel
    rămîi așa cum ești 

Vă mulțumesc pentru ajutor.

 Semnătură 

Numai bine,
Marian

Profil
 
  [ Ignoră ]   [ # 1 ]
Avatar
RankRankRank
Member
Din: U.S./momentan Republica Populara Romana
Macuser din: 13.10.05

smile Internet si Netwoking… ar fi mai indicat sa postezi…

 Semnătură 

Back 2 Zero

Profil
 
  [ Ignoră ]   [ # 2 ]
Avatar
RankRank
Jr. Member
Din: Bucuresti
Macuser din: 07.01.07

Pai, ai putea sa incerci sa vezi query string-ul si sa gasesti pe acolo niste chestii. Asta in gasesti in $_SERVER[‘QUERY_STRING’]. Poti dupa aia sa incerci sa vezi daca numele paginii care te intrebi daca este curenta sau nu se afla prin query string. Cred ca ar merge ceva de genu

function esteCurenta($pageName)
{
  if (preg_match(”/$pageName/i”,$_SERVER[‘QUERY_STRING’])) // aici faci ce vrei tu sa faci pentru pagina activa
  else //else-ul asta este optional,

}

Cred ca ar trebui sa fie ok asa, sau macar ceva de genu….

Profil
 
  [ Ignoră ]   [ # 3 ]
RankRank
Jr. Member
Din: 
Macuser din: 21.12.06

Seby, mersi pentru ajutor.
Cum ziceam inainte, programator nu sînt și în general cu asemenea coduri nu mă pricep.
Am introdus codul tău in fișier și am primit la deschiderea lui în browser un mesaj cum ca pe linia nu știu care este o greșală de sintaxă.
Acum eu nu știu dacă cumva unde l-am introdus era greșit ori sînt ceva semne pe acolo care nu sînt înțelese…
Navigația se face începind cu un <?php după care vine o buclă pentru administrator după care apar paginile după sistemul pe care l-am scris ieri.
Eu am introdus codul și in fața lui <?php dar și înauntru lui. Din păcate nu a mers.

Incă o dată mersi pentru ajutor.

 Semnătură 

Numai bine,
Marian

Profil
 
  [ Ignoră ]   [ # 4 ]
Avatar
RankRank
Jr. Member
Din: Bucuresti
Macuser din: 07.01.07

Este destul de greu de explicat, sa zic asa. Cel mai bine te poate ajuta un programator, dar sa fie langa tine, sa vada cod, una alta. Eu ti-am dat acolo un exemplu usurel, sa zic asa.

Profil
 
  [ Ignoră ]   [ # 5 ]
RankRank
Jr. Member
Din: 
Macuser din: 21.12.06
SebyP - 24 Martie 2007 04:14 PM

Este destul de greu de explicat, sa zic asa. Cel mai bine te poate ajuta un programator, dar sa fie langa tine, sa vada cod, una alta. Eu ti-am dat acolo un exemplu usurel, sa zic asa.

înteleg, sint deja în vorbă cu cineva, tot printr-un forum, cu care am deja un mic succes. în orice caz mulțumesc mult.

 Semnătură 

Numai bine,
Marian

Profil
 
  [ Ignoră ]   [ # 6 ]
Avatar
RankRankRank
Member
Din: Bucuresti
Macuser din: 11.10.05

1/ php nu e cel mai grozav limbaj.
Daca tot te apuci sa inveti mai bine te uiti la ruby sau python.


2/ o posibila solutie la problema ta:

<?php
error_reporting
(E_ALL);

function 
getClassTypeForPageName($pageName

        
if(preg_match("/$pageName/i",$_SERVER['QUERY_STRING']))
                return 
"current";
        return 
"normal";
}

$text 
= array( "Albume""Toate");
$urls = array( "browsealbums.php",  "browsemedia.php");
$count count($urls);
for(
$i=0$i $count$i++)
{
        
echo "<li><a href=";
        echo 
$urls[$i] " class=";
        echo 
getClassTypeForPageName($urls[$i]) . ">";
        echo  
$text[$i] "</a></li>
"
;
}

?> 
export QUERY_STRING=http://www.google.com/browsemedia.php?ana
php test.php 
<li><a href=browsealbums.php class=normal>Albume</a></li>
<
li><a href=browsemedia.php class=current>Toate</a></li

bafta

Profil
 
   
 
 
‹‹ Verificare viteza net      Schimbare Comment ››