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

Kod: Markera allt

<?php
$name = KiviE;
include head.php;
?>
head.php

Kod: Markera allt

<?php
echo "Välkommen hit $name!";
?>
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 :)