/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Forstår jeg dette rigtigt
Fra : Mark Thomas Gazel


Dato : 28-02-06 19:55

Hej

Jeg roder med mit Wordpress site.

http://www.kulturvesterbro.dk/

Og jeg vil have min Forside fane til at vedblive med at være aktiv, mens
brugerne er på Forside + forsideundersider.

Wordpress har nogle conditional tags indbygget:

http://codex.wordpress.org/Conditional_Tags

Hvor man kan lave et tag der tester om visse kriterier er opfyldt og danner
siden på baggrund af dette. Sådan som jeg forstår det.

TIlbage til min Forside fane. Jeg har fundet denne stump kode:

<li <?php if (((is_home()) && !(is_paged())) or (is_archive()) or
(is_single()) or (is_paged()) or (is_search())) { echo
"class=\"current_page_item\""; } ?> ><a href="<?php echo
get_settings('home'); ?>" ><?php _e('Home'); ?></a></li>

Det home knappen på et andet site.

Jeg forstår det sådan at den tester om det er "Home" med is_home. Men hvad
betyder det at der står && !(is_paged())). Det er særligt && og ! der undrer
mig.

Derefter står "or" det ene ""or" det andet. Det giver fint mening. Hvis det
ene eller det andet eller det tredje, så gør dette. Og så tager den på den
måde højde for alle mulige typer sider, der kan dukke op under "home".

Derefter dukker der gudhjælpemig en style definition op. Det er fint nok og
jeg forstår hvorfor, men der bruges backclash midt i det hele osv. Det
virker lidt atypisk. Kan man altid henvise til en style på den måde midt i
et tag?

Jeg prøver bare at forstår kodenstumpen. Det kunne jo være man fik brug for
det en anden gang.

På forhånd tak

Mark




 
 
Rander (28-02-2006)
Kommentar
Fra : Rander


Dato : 28-02-06 23:39

Tue, 28 Feb 2006 19:55:14 +0100 brugte Mark Thomas Gazel 47 linier på at
fortælle dette til dk.edb.internet.webdesign.serverside.php:

><li <?php if (((is_home()) && !(is_paged())) or (is_archive()) or
>(is_single()) or (is_paged()) or (is_search())) { echo
>"class=\"current_page_item\""; } ?> ><a href="<?php echo
>get_settings('home'); ?>" ><?php _e('Home'); ?></a></li>

Vi prøver lige at knække den ned, så betingelserne er tal - så slipper vi
for de fleste af paranteserne, og så er den nemmere at overskue:

<li <?php if ((1 && !2) or 3 or 4 or 5 or 6) {

Altså, hvis blot en af disse betingelser er sand, så skal det efterfølgende
udføres. Betingelse 1 og 2 er dog lidt for sig selv: (1 && !2) er afhængige
af hinanden, forstået sådan at udtrykket i parantesen kun er sandt, hvis
betingelse 1 er sand, OG (&&) betingelse 2 er falsk (!2).

&& er det samme som AND, || er det samme som OR, og ! betyder IS NOT.

echo "class=\"current_page_item\""; } ?>>
<a href="<?php echo get_settings('home'); ?>" >
<?php _e('Home'); ?></a></li>


>Derefter dukker der gudhjælpemig en style definition op. Det er fint nok og
>jeg forstår hvorfor, men der bruges backclash midt i det hele osv. Det
>virker lidt atypisk. Kan man altid henvise til en style på den måde midt i
>et tag?

Ja, det kan du godt.

echo "class=\"current_page_item\""; } ?>>

Backslashene er der fordi sætningen står i php-kode. Så skal gåseøjnene der
skal med i outputtet escapes, og det gøres med backslash.

<?php echo "Test\""; ?>

Vil give outputtet

Test"

>Jeg prøver bare at forstår kodenstumpen. Det kunne jo være man fik brug for
>det en anden gang.

Ja, det var sådan jeg lærte (og stadig lærer) php - ved at prøve at
gennemskue andres kode...

--
Lars Rander ** Pil ikke ved min adresse ** :(){ :&:& };:
http://rander.dk (temporarily down!)

Jeg så en dame gå over vejen. Jeg tog fejl af hendes hensigter. (Skadesanmeldelse)


Mark Thomas Gazel (04-03-2006)
Kommentar
Fra : Mark Thomas Gazel


Dato : 04-03-06 16:32

>> Jeg prøver bare at forstår kodenstumpen. Det kunne jo være man fik
>> brug for det en anden gang.
>
> Ja, det var sådan jeg lærte (og stadig lærer) php - ved at prøve at
> gennemskue andres kode...

Tak for et fremragende svar, Lars.

Jeg har både læst og forstået det, selvom det lige tog mig et par dage at
vende tilbage og svare.


--
Med venlig hilsen

Mark





Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste