Sida 1 av 1
Nästan gemensam header [LÖST]
Postat: 26 mar 2008, 12:38
av Lars
Här på ubuntu-se har vi som ni ser en gemensam header som visas i alla delar. Det funkar bra, men just nu så ligger koden på 6 olika ställen (minst). Så idag när jag skulle lägga till nedräkningen inför Hardy så var jag tvungen att ändra överallt. Jag känner till att man kan köra include i PHP, men kan man skicka ett argument också? Rätt flik måste ju markeras i de olika delarna.
Hur löser man det här bäst så att man kan utföra framtida ändringar på ETT ställe?
Re: Nästan gemensam header
Postat: 26 mar 2008, 13:50
av KiviE
Varför ska du skicka med ett argument? Så här har jag fattat att include fungerar:
index.php
head.php
Resultat:
Kod: Markera allt
<?php
$name = KiviE;
echo "Välkommen hit $name!";
?>
Alltså all kod som finns i include filen läggs in i filen som inkluderar koden. Så variabler satta i filen gäller även för filen som inkluderas.
Nu har jag säkert helt missuppfattat vad du vill göra?
http://us2.php.net/include/
Re: Nästan gemensam header
Postat: 26 mar 2008, 14:02
av Lars
Aha, naturligtvis, det borde ju fungera

Koden för flikarna ser alltså ut så här:
Kod: Markera allt
<ul>
<li><a href="http://ubuntu-se.org/planet/" title="Bloggar">Bloggar</a></li>
<li><a href="http://ubuntu-se.org/maillista" title="Maillista">Maillista</a></li>
<li><a href="http://ubuntu-se.org/IRC" title="IRC">Chatt</a></li>
<li><a href="http://ubuntu-se.org/wiki" title="Wiki">Wiki</a></li>
<li id="aktiv"><a href="http://www.ubuntu-se.org/forum" title="Forum">Forum</a></li>
<li><a href="http://ubuntu-se.org/drupal/" title="Portal">Portal</a></li>
</ul>
Så det jag vill göra är att sätta id="aktiv" på rätt flik beroende på varifrån jag kör include. Finns det något smidigt sätt att göra det på utan en lång radda if-satser?
Re: Nästan gemensam header
Postat: 26 mar 2008, 14:05
av KiviE
Självklart finns det ett rätt smidigt sätt, fixade ungefär samma sak i Odus.se/wiki. Ska kolla om jag kommer åt koden just nu så jag slipper skriva om allt och köra lite copy paste ist

Re: Nästan gemensam header
Postat: 26 mar 2008, 14:32
av KiviE
Har du koll på vilken sida man är på?
Kod: Markera allt
<ul>
<li<?= ($page == "bloggar"? " id=\"aktiv\"":"") ?>><a href="http://ubuntu-se.org/planet/" title="Bloggar">Bloggar</a></li>
<li<?= ($page == "maillista"? " id=\"aktiv\"":"") ?>><a href="http://ubuntu-se.org/maillista" title="Maillista">Maillista</a></li>
<li<?= ($page == "irc"? " id=\"aktiv\"":"") ?>><a href="http://ubuntu-se.org/IRC" title="IRC">Chatt</a></li>
<li<?= ($page == "wiki"? " id=\"aktiv\"":"") ?>><a href="http://ubuntu-se.org/wiki" title="Wiki">Wiki</a></li>
<li<?= ($page == "forum"? " id=\"aktiv\"":"") ?>><a href="http://www.ubuntu-se.org/forum" title="Forum">Forum</a></li>
<li<?= ($page == "drupal"? " id=\"aktiv\"":"") ?>><a href="http://ubuntu-se.org/drupal/" title="Portal">Portal</a></li>
</ul>
Blev visst en if sats för varje rad men blir rätt snyggt att göra på det viset. $page ska innehålla portal, forum, wiki, irc, maillista eller bloggar beroende på vilken sida man är på... du kan ju ändra om lite så det passar...
Hoppas det hjälper.
Re: Nästan gemensam header
Postat: 26 mar 2008, 14:51
av Lars
Åh, sådana härliga C-ismer med "() ? :", man kanske skulle sätta sig ner och läsa på om PHP någon vacker dag... Men det där ser bra ut, jag snor den koden, tack

Re: Nästan gemensam header
Postat: 26 mar 2008, 16:53
av Lars
En följdfråga då. Jag försöker få till CSS också så att det passar på alla sidor. Som jag förstått det så är det "postition: relative" som jag bör använda (portalens header ligger ju en bit ner/in). Men hur jag än gör får jag inte till det, kika på
http://www.ubuntu-se.org/header/. Hur får jag räknaren att hamna rätt i förhållande till headern?
Re: Nästan gemensam header
Postat: 26 mar 2008, 16:58
av KiviE
Är tyvärr mycket dålig på CSS så kan inte hjälpa dig
Verkar dock finnas de här på forumet som är bra på den biten

Re: Nästan gemensam header
Postat: 27 mar 2008, 00:56
av zero gravity
Lars skrev:En följdfråga då. Jag försöker få till CSS också så att det passar på alla sidor. Som jag förstått det så är det "postition: relative" som jag bör använda (portalens header ligger ju en bit ner/in). Men hur jag än gör får jag inte till det, kika på
http://www.ubuntu-se.org/header/. Hur får jag räknaren att hamna rätt i förhållande till headern?
De verkar ha löst sig?
Re: Nästan gemensam header
Postat: 27 mar 2008, 01:08
av Lars
Japp, det löste sig. Jag lade en extra div runt både loggan och räknaren, verkar onödigt tycker jag. Men bara det funkar är jag glad
