Organisering av koden

Tråden skapades och har fått 34 svar. Det senaste inlägget skrevs .

Hej!
Jag håller på med en hemsida, medan det är 30°C både inne och ute

Jag har byggt upp den med php, utan databaser med include med strukturen (se bild)

Menyn är uppbyggd med såna här taggar:

<li <?php if ($thisPage=="Om oss") echo " id=\"currentpage\""; ?>>
      <a href="omoss.php">Om oss</a>
</li>

I sedan själva dokumentet har jag en, <?php $thisPage="Om oss"; ?> direkt efter doctype.
Meta-taggar jag har byggt upp enligt den här metoden: A List Apart: Articles: Keeping Navigation Current With PHP

<meta name="title" content="Company Name<?php  if ($thisPage!="") echo " | $thisPage"; ?>" />
<meta name="keywords" content="<?php if ($thisPage!="")  echo "$thisPage, "; ?>
company name, keyword1, keyword2,  keyword3" />

Det jag upplever är nu att "allt" på något vis laddar om varje gång man klickar på ett ämne i menyn. Det känns om det vore mindre jobb för browsern att ha hela bodyn laddad en gång för alla och sen byta enbart content, eller har jag fel?

Dessutom hade jag problemet att till exempel problemet att i varje dokument gjorde jag något knas med avslutet av content biten, i och med copy-paste så var det problem i var och ett. Och jag behövde byta ett script som då var på nästan varje sida, in och rota i headern på varje dokument igen.

Det känns som om jag kunde göra det hela enklare för mig, någon som har råd att ge?

  • Skribent
  • Sollentuna
  • 2011-07-02 10:24

För att uppdatera delar av sidan måste du använda Javascript/AJAX. Fullt möjligt och en vanlig lösning, men i ditt fall är det nog för mycket jobb för för lite utdelning.

  • Medlem
  • Stockholm
  • 2011-07-02 10:28
Citat:

Det jag upplever är nu att "allt" på något vis laddar om varje gång man klickar på ett ämne i menyn. Det känns om det vore mindre jobb för browsern att ha hela bodyn laddad en gång för alla och sen byta enbart content, eller har jag fel?

Du har helt rätt, på ett sätt. Browsern får inte mindre arbete, men genom att endast byta content får du själv en bättre struktur som enkelt kan underhållas.

Mina sidor brukar jag bygga kring en enda body, ex:

<html>
<head>
..
<head>
<body>
...
<div id="content">
<?php {inkludering av något slag} ?>
</div>
...
</body>
</html>

Med den struktur du ha just nu på sidan hade jag rekommenderat dig att styra innehållet från URL-fältet (eller vad man nu kallar det).

Ex:

index.php?page=omoss

<?php 
     $thispage = $_GET['page'];
     if ($thispage=='') $thispage="frontpage";
     // Lite fler kontroller / felhantering här
?>
<html>
     <head>
          <title> Company name - <?php echo $thispage ?></title>
          <meta name="title" content="<? echo $title[$thispage] ?>" />
          <meta name="keywords" content="<? echo $keywords[$thispage] ?>" />
     <head>
     <body>
          ...
          <div id="content">
               <?php 
               include ($thispage.'.php'); // Laddar omoss.php
                ?>
          </div>
          ...
     </body>
</html>

Jag lade även till ett (enligt mig) bättre förslag på hur du kan hantera keywords etc. Definitionen av dessa visar jag dock inte i exemplet ovan.

Senast redigerat 2011-07-02 11:25

Helt underbart! Precis vad jag behövde!!

Men jag undrar, hur får jag olika keywords beroende på vilken sida jag laddar?

edit; såklart! var inget.. tack!!

Jag har nu fått det halvt att fungera men "currentpage" läggs inte på så den stylen appliceras inte.. förstår inte hur den ska läggas på i en get-meny...

  • Medlem
  • Stockholm
  • 2011-07-02 13:14

Du kan göra på samma sätt som innan, med en liten modifikation:

<li <?php if ($thispage=="omoss") echo ' id="currentpage"'; ?>>
      <a href="index.php?page=omoss">Om oss</a>
</li>

D.v.s. att du kontrollerar den mot värdet i page/$thispage (med den typen av meny du har så vet ju vilka värden du kan förvänta dig).

Hoppas du får det att fungera nu!

Aaah! Nu fungerar det!

Förlåt att jag krånglar till det nu, men jag har en undermeny på vissa sidor, där jag har nu gjort en liknande:

<li <?php if ($thispage=="seo") echo ' id="servicepage"'; ?>>
			<a href="indextom.php?page=seo">SEO</a>
</li>

Det verkar bara som om det bara går att ha ett id? Kan man komma runt det?

Innan hade jag på varje sida som hade undermeny;
<?php $thisPage="Tjänster"; ?>
<?php $thisunderPage="Bildspel och galleri"; ?>

och i den undermenyn:
<li<?php if ($thisunderPage=="Bildspel och galleri") echo " id=\"servicepage\""; ?>>
<a href="bildspel.php">Bildspel och galleri</a>
</li>

  • Medlem
  • Stockholm
  • 2011-07-02 16:59
Ursprungligen av klarabara:

Aaah! Nu fungerar det!
Förlåt att jag krånglar till det nu, men jag har en undermeny på vissa sidor

Inga problem, det löser vi också.

Om jag förstår din sida rätt så handlar det mest om att visa text, i olika kategorier. Det här kan vi göra hur avancerat som helst, för att det ska vara dynamiskt även i framtiden. Men här är en enklare lösning:

Högst upp i index-filen (eller i någon annan include-fil, hur du nu gjort):

<?php
     $page = $_GET['page'];
     $sub_page = $_GET['spage'];
 
     $thispage = ($sub_page=='') ? $page : $sub_page; // Har en sub-page angivits, så är det den vill visa
     if ($thispage=='') $thispage="frontpage";
     // Lite fler kontroller / felhantering här
?>

Sen för att få rätt markering i menyn:

<li <?php if ($page=="tjanster") echo ' id="currentpage"'; ?>>
      <a href="index.php?page=tjanster">Om oss</a>
</li>

i undermenyn:

<li <?php if ($sub_page=="seo") echo ' id="servicepage"'; ?>>
			<a href="index.php?page=tjanster&spage=seo">SEO</a>
</li>

Så $thispage används för att ladda rätt content, $page för att visa rätt markering i huvudmenyn och $sub_page i undermenyn. Det borde fungera. Notera att länkningen till alla sub-pages blir: index.php?page=tjanster&spage=seo

Angånde CSS-id:n så kan det bara finnas ett id per sida. Du kan istället skapa en class, typ .nav-marker {} som du kan använda i huvud, respektive undermeny.

För att krångla till det hela ytterligare är den undermenyn inkluderad på de undersidorna...

Av någon anledning kommer bara första bokstaven med i keywords och title, fast hela title tex skrivs ut i titeln på sidan? Betyder det här upplägget att keywords sparas i olika variablar som man sen hämtar beroende vilken sida? Isåfall borde man ju kunna ha dem som en separat fil?

Som såhär? <?php
$koppling=fopen("keywords_omoss.txt","r");
$storlek=filesize("keywords.txt");
$keywords_omoss=fread($koppling,$storlek);

fclose($koppling);
?>

Vilken man sen använder:
<meta name="keywords" content="<? echo $keywords_omoss[$thispage] ?>" />

Jo, jag är rätt så ny på det här med php :S

Senast redigerat 2011-07-02 13:57
  • Medlem
  • Stockholm
  • 2011-07-02 17:14
Ursprungligen av klarabara:

För att krångla till det hela ytterligare är den undermenyn inkluderad på de undersidorna...

Av någon anledning kommer bara första bokstaven med i keywords och title, fast hela title tex skrivs ut i titeln på sidan? Betyder det här upplägget att keywords sparas i olika variablar som man sen hämtar beroende vilken sida? Isåfall borde man ju kunna ha dem som en separat fil?

Som såhär? <?php
$koppling=fopen("keywords_omoss.txt","r");
$storlek=filesize("keywords.txt");
$keywords_omoss=fread($koppling,$storlek);

fclose($koppling);
?>

Vilken man sen använder:
<meta name="keywords" content="<? echo $keywords_omoss[$thispage] ?>" />

Jo, jag är rätt så ny på det här med php :S

I min lösning sparar du dina keywords i en array (alla keywords i samma variabel), där nyckeln i arrayen motsvarar en sida, ex:

$keywords = array (
                               'omoss' => "ord1, ord2, ord3",
                               'tjanster' => "ord2, ord2, ord3"
);

Nu var det länge sedan jag läste en fil i PHP, men jag antar att din kod stämmer. Då kan du göra så här:

$keyword_files = array (
                                      'omoss' => 'keywords_omoss.txt',
                                      'tjanster' => 'keywords_tjanster.txt'
);

foreach ($keyword_files as $page => $file) {
     $koppling=fopen($file,"r");
     $storlek=filesize($file);

     $keywords[$page] = fread($koppling,$storlek);

     fclose($koppling);

}

Du kommer sedan att ha en array med dina keywords, som matchar den lösning jag gav tidigare.

Hoppas det hjälper

Menyn är mycket mjukare nu! *dansar*
Jätteskönt, vet inte varför den kändes chunky innan och det var ett helvete att felsöka med all koden.. det var verkligen najs att bara sitta o radera massa onödig kod! Dock, med de senaste ändringarna, så står nu "huvudmenyn" fast på "Tjänster"?

Undermenyn fungerar som den ska, Yay!

Keywordsen kommer som en text-snutt på bakgrunden, vet inte hur.

De hamnar nästan helt rätt i meta-taggen dock! Kan man inte göra så alla sökord för hela sidan är i en och samma fil? Det skulle ju göra uppgiften att skriva sökord enklare?

$keyword_file = array (

                              'allaord' => 'keywords.txt',
                );

foreach ($keyword_files as $page => $file) {
     $koppling=fopen($file,"r");
     $storlek=filesize($file);

     $keywords[$page] = fread($koppling,$storlek);

     fclose($koppling);

}

I filen skriver man:

'omoss' => "ord1, ord2, ord3",
'tjanster' => "ord2, ord2, ord3"
'whatever' =>"ord2, ord2, ord3"

Går det?

Hur gör man med scripts? Förut har jag haft på varje sida det script som var relevant. Nu har jag ju alla i index-filen och det verkar som om somliga av mina bildspel inte klarar av det. Fast jag hänvisar och har med alla filer så fungerar de inte konsekvent. De är med både pikachoose integrerat med fancybox så <script> blir ju ganska stor. Jag har haft en sida med flera bildspel av den typen på en och samma "kod-harang" men då var de alla i samma fil, nu är de i olika. Jag har testat olika vis men läggs inte ens ihop utan blir bara en lång ul-lista..

  • Medlem
  • Göteborg
  • 2011-07-02 23:53

Hej Klarabara,

Jag tänkte återkoppla till startfrågan om hur man lämpligen kan organisera sin kod.

Med includes och utan databaser (för CMS-ändamål) så brukar jag göra som följande:
Jag delar upp varje sida i 2 filer:

- en parameterfil som heter som det är tänkt i url-en (tex index.php)
- en innehållsfil som innehåller det sidspecifika innehållet

Parameterfilen inkluderar en mall som i sin tur inkluderar innehållsfilen som har ett namn kopplat till parameterfilen (här index_content.php). se bifogad bild.

Fördelarna är att man slipper url-er med parametrar (typ index.php?page=minsida - jovisst, just det går att trolla bort med MOD_REWRITE-meckande i htaccess, men det är inte så busenkelt) och man kan sätta precis så många parametrar man vill per sida som mallen skall ta hänsyn till, som just tex titel, metataggar, vilka css/javascript-filer som skall laddas, mm. Innehållet på sidan kan vara ren html eller php-baserad dynamisk innehåll. Man kan ha flera mallar. Det är i parameterfilen som man bestämmer vilken mall som skall hämtas.

(I exemplet har jag struntat helt i css och javascript, men där gör man "som vanligt" i mallen, eller just styr det på sidbasis med en parameter i parameterfilen)

Ursprungligen av pichia:

Hej Klarabara,

Jag tänkte återkoppla till startfrågan om hur man lämpligen kan organisera sin kod.

Med includes och utan databaser (för CMS-ändamål) så brukar jag göra som följande:
Jag delar upp varje sida i 2 filer:

- en parameterfil som heter som det är tänkt i url-en (tex index.php)
- en innehållsfil som innehåller det sidspecifika innehållet

Parameterfilen inkluderar en mall som i sin tur inkluderar innehållsfilen som har ett namn kopplat till parameterfilen (här index_content.php). se bifogad bild.

Fördelarna är att man slipper url-er med parametrar (typ index.php?page=minsida - jovisst, just det går att trolla bort med MOD_REWRITE-meckande i htaccess, men det är inte så busenkelt) och man kan sätta precis så många parametrar man vill per sida som mallen skall ta hänsyn till, som just tex titel, metataggar, vilka css/javascript-filer som skall laddas, mm. Innehållet på sidan kan vara ren html eller php-baserad dynamisk innehåll. Man kan ha flera mallar. Det är i parameterfilen som man bestämmer vilken mall som skall hämtas.

(I exemplet har jag struntat helt i css och javascript, men där gör man "som vanligt" i mallen, eller just styr det på sidbasis med en parameter i parameterfilen)

Jag har använt den här metoden nu på min sprillans portfolio men jag begriper inte hur jag ska använda #current i menyn.. alltså det aktiva valet?

Jag har prövat olika varianter av <?php if ($page=="index") echo ' id="currentpage"'; ?> i li-taggen men det ger antingen alla current eller ingen alls..

  • Medlem
  • Göteborg
  • 2011-11-05 20:58

Om det fortfarande är aktuellt...
Jag skulle göra något i stil med:

<ul id="menu">
<?php 
$menu_pages = array('/index.php'=>'home','/about.php'=>'about us','/contact.php'=>'contact us','/portfolio.php'=>'portfolio');
foreach($menu_pages as $url=>$title){
	$class = ($url == $_SERVER["SCRIPT_NAME"])? ' class="current"' : '';
	echo '<li'.$class.'><a href="'.$url.'">'.$title.'</a></li>'."\n";
}
?>
</ul>

Man kan också köra det "mjukt" och låta javascript identifiera den nuvarande sidan i en meny och lägga till en lämplig klass/id.

Ah, det ser väldigt avancerat ut... kommer definitivt testa det!

Jag har dock insett att klumpigheten när den laddas är likadan, och det är browser-specifikt. Det laddar om allt _allt_ i Safari och i Chrome (mac) medan FF både på pc och mac bara laddar innehållet. Är det något i min kod som jag kan ändra eller vad är problemet?

Jag trodde i min enfald att php bara "låg i bakgrunden" och att det var html och css som fuckade upp websidor men jag har fått påtalat att så inte är fallet...

  • Medlem
  • Göteborg
  • 2011-07-05 22:51
Ursprungligen av klarabara:

Ah, det ser väldigt avancerat ut...

Men det är det inte. Egentligen är det rätt så enkelt och flexibelt samt löser de flesta frågeställningar du har haft ovan (hantering av nyckelord och script på sidbasis) på ett mycket enklare sätt.

Ursprungligen av klarabara:

Det laddar om allt _allt_ i Safari och i Chrome (mac) medan FF både på pc och mac bara laddar innehållet.

Jag inser inte riktigt vad skillnaden är. Kanske vissa webbläsare väntar med att visa sidan tills allt innehåll är nerladdat, medan andra visar innehållet allteftersom det hämtas. Eventuellt kan du testa att att gzip-a din sida och därmed få den att laddas ner som en enda klum som sedan packas upp av webbläsaren lokalt. Eventuellt kan detta jämna ut olikheten. Du behöver bara 2 extra rader php i din mall:

<?php
	ob_start('ob_gzhandler');
	//mallinnehåll
	ob_end_flush();
	?>

Vart ska den vara någonstans? Fick ett fint error-meddelande när jag lagt den i toppen.

Safari can’t open the page “http://kmvdesign.se/”. The error is: “cannot decode raw data” (NSURLErrorDomain:-1015) Please choose Safari > Report Bugs to Apple, note the error number, and describe what you did before you saw this message. (i safari)

Har också haft mina duster med mr. htaccess och hur jag än gör (eller låter andra göra) så blir det ingen skillnad på url-längderna..

  • Medlem
  • Göteborg
  • 2011-07-06 22:54
Ursprungligen av klarabara:

Vart ska den vara någonstans? Fick ett fint error-meddelande när jag lagt den i toppen.

Sorry, jag kanske lite väl summarisk med min kodsnutt. ob_start-grunkan skall vara första rad i mallen och ob_end-raden skall vara sist. All html och php-logik skall ligga i mellan dessa två.

Snygg sida, föresten! Gill Sans är en underskattad höjdare.

  • Medlem
  • Göteborg
  • 2011-07-06 08:56

För att svara på grundfrågan om struktur. Det man oftast uppskattar när man skriver större sidor eller system med php, är att försöka separera presentationen (html, css, js) från affärslogik (beräkningar i php). Sådan kod blir ofta lättare att underhålla och uppdatera. Ett första grundsteg är att flytta upp all php överst i filerna, så "html-delen" blir så ren som möjligt.

Vad det gäller uppslag av keywords beroende på sida, så är det en typisk funktion man i ett större system skulle använda en databas för (mysql brukar det då bli).

En sådan här konstruktion som nämndes ovan är ingen dum idé:

$page = $_GET['page'];
$sub_page = $_GET['spage'];

Det som dock är viktig att vara medveten om, är att man inte bör inkludera den nämnda filen direkt utan kontroller, eftersom illvilliga personer lätt kan ändra url:en så $page eller $sub_page får ett värde man inte räknat med. Har man ett fåtal sidor kan man göra något i stil med

$validPages = array('omoss', 'kontakt', ... );
$page = $_GET['page'];
$sub_page = $_GET['spage'];

if(in_array($page, $validPages) && file_exists("$page.php")) {
    include "$page.php";
}

hm... jag provade den koden och allt hamnade i oordning på sidan och utf-koden försvann. Så ändrade jag fnuttarna till enkel-fnuttar här:
if(in_array($page, $validPages) && file_exists("$page.php")) {
include "$page.php";

och då vart allt som det skulle igen. Men tog jag bort en sida ur arrayen och ändå klickade på en länk till den kom jag som vanligt dit, ska det vara så?

Tack! Den fonten kommer i så många skepnader dessutom!

Vad gäller koden, så är det nog lite skit bakom spakarna här, nu fungerar sidan som den ska. Den är mjukare i Chrome men inte direkt i Safari.. Firefox 5 är ju helt sanslöst mjuk laddning! Utan motstycke!

Ett error som kom upp och som jag löst var att den footer som är fixed rullade med i en iphone, bytte den till absolute och det borde vara löst.

Ett annat som verkar ytterst mystiskt är att portfolio visas helt utan css och headers (förmodligen) för utf8 verkar väck.. alla tecken är åt fanders. Den utsatte hade 10.6.8 installerat i övrigt FF5 osv. Det fungerar fint på allt utom just portfolio, hur kan det komma sig? Allt borde ju laddas likadant? Hos mig på FF5 fungerar det som sagt perfa, men jag har å andra sidan inte 10.6.8 installerat.

Edit: Länken den utsatte får är den gamla stilen, alltså inte /index.php?page=portfolio&cloud=lila
utan /portfolio !

Jag stirrar mig blind på meny-länken men det kanske inte är där det blir fel? :S

Edit igen: jag har en svag känsla av att det var något kombinerat fel av useragent och en felaktig htaccess. Åtgärdat..

Senast redigerat 2011-07-06 23:45

Det är fortfarande aktuellt! Jag undrar dock hur den går direkt till root av localhost för att hitta filen? index.php ligger ju i samma mapp men den letar på localhost? Nu blir det bara en massa "404 not found"...

Jag har en item i menyn som har ett eget id, hur får jag in det?

  • Medlem
  • Sollentuna
  • 2011-11-07 07:45

Kan det möjligen vara för att du skriver '/index.php' (vilket blir en absolut sökväg) istf 'index.php' (som blir en relativ sökväg där du står). Du ska alltså inte skriva dit ett '/' vilket gör att din *nix-burk utgår från root-katalogen. Kanske?

Hm.. nu fungerar länkarna men det läggs inte till någon current-class?

  • Medlem
  • Göteborg
  • 2011-11-07 23:24
Ursprungligen av klarabara:

Det är fortfarande aktuellt! Jag undrar dock hur den går direkt till root av localhost för att hitta filen? index.php ligger ju i samma mapp men den letar på localhost? Nu blir det bara en massa "404 not found"...

Ligger filerna till din meny i en underkatalog i förhållande till localhost, tex "localhost/minsite/index.php", "localhost/minsite/about.php"... så skall man ta hänsyn till det på något sätt: antingen tar man med det i urlbeskrivningen i arrayen enl mitt förslag ovan (#21): '/minsite/index.php'=>'Home', eller så är det med i jämförelsesatsen (se nedan).

Vitsen med att ange en url som börjar med "/" är att den blir då absolut från website-roten. Har du inte det och använder skriptet på en fil i en underkatalog (exvis '/minsite/gallerier/galleri_xx.php'), så kommer url-en att uppfattas som relativa till den aktuella underkatalogen ('gallerier') och antagligen missa de tilltänkta filerna i den överliggande katalogen.

Har du en phpinfo()-sida på din lokala server så kan du få bättre förståelse för vad $_SERVER["SCRIPT_NAME"] är för variabel. Det finns flera i $_SERVER-gruppen som är riktigt användbara. kolla bara att de finns och har samma funktion både på din lokala server och ditt webbhotel.

Ursprungligen av klarabara:

Jag har en item i menyn som har ett eget id, hur får jag in det?

Tex på samma sätt som med klassen. I exemplet nedan så har jag lagt in en variabel $rot som tar hänsyn till om sajten inte börjar riktigt i webbserverroten (som det ofta händer om man kör med flera projekt under localhost*). Här är det sidan special.php som har ett eget id.

<ul id="menu">
<?php 
$rot = '/minsite';
$menu_pages = array(
	'/index.php'=>'home',
	'/about.php'=>'about us',
	'/contact.php'=>'contact us',
	'/special.php'=>'special',
	'/portfolio.php'=>'portfolio'
	);

foreach($menu_pages as $url=>$title){
	$abs_url = $rot.$url;
	$class = ($abs_url == $_SERVER["SCRIPT_NAME"])? ' class="current"' : '';
	$id = ($abs_url == $rot.'/special.php')? ' id="special_id"' : '';
	echo '<li'.$class.$id.'><a href="'.$rot.$url.'">'.$title.'</a></li>'."\n";
}
?>
</ul>

*: rekommenderar MAMP Pro där man enkelt kan ge egna domän-adresser till flera olika projekt på den lokala webbservern och därmed slippa den problematiken med sajter som inte ligger i roten.

Senast redigerat 2011-11-07 23:37

Ahh.. tillåt mig komplicera faktum, sedan jag frågade har jag gjort om lösningen med att åberopa ett rss-flöde från min blogg i mindomän.se/blog och istället har jag en länk i menyn som går direkt dit..hur ordnar jag till en sådan i menyn, den går ju inte som en vanlig länk..

Ioch med att jag filerna på servern ligger på root och på localhost inte så blir det såklart kladdigt här... men jag försökte införliva din idé i root-varianten.. det blir i alla fall inte fatal error men det kommer inte nån special-id på den li-taggen heller..

<?php 
		$menu_pages = array(
		'/index.php'=>'bilder',
		'/webbdesign.php'=>'webbdesign',
		'/blogg.php'=>'blogg',
		'/ommig.php'=>'om klara'
		);
		foreach($menu_pages as $url=>$title){
			$class = ($url == $_SERVER["SCRIPT_NAME"])? ' class="current"' : '';
			
			$id = ($url == $_SERVER["SCRIPT_NAME"].'/ommig.php')? ' id="om"' : '';
				echo '<li'.$class.$id.'><a href="'.$url.'">'.$title.'</a></li>'."\n";		
		}
		?>

Ledsen att jag krånglar till det!

Siten ligger temporärt på KLARA

Hur gör man med bilder i en mobil-version när man organiserar koden? Jag vill ju inte ladda samma som på den vanliga siten utan i mindre format, nu har jag bara löst det med en mobil-mapp. Finns det någon smartare lösning?

  • Medlem
  • Göteborg
  • 2011-11-09 15:55
Ursprungligen av klarabara:

det kommer inte nån special-id på den li-taggen heller..

Den punkten har iaf ett enkelt svar, i id-jämförelsen jobbar du helt internt i array-en och behöver inte ta med något från $_SERVER

<?php 
...
		$id = ($url == '/ommig.php')? ' id="om"' : '';
...
?>
  • Medlem
  • Göteborg
  • 2011-11-09 16:40
Ursprungligen av klarabara:

Ahh.. tillåt mig komplicera faktum, sedan jag frågade har jag gjort om lösningen med att åberopa ett rss-flöde från min blogg i mindomän.se/blog och istället har jag en länk i menyn som går direkt dit..hur ordnar jag till en sådan i menyn, den går ju inte som en vanlig länk..

Jag är inte riktigt säker på vad du menar. Är det så att länken dit är '/blog/', men att slutsidans url blir mer komplicerad än så (för att det är en wp-blog eller dyl)? isf kan du ha en extra rad som reagerar om den aktuella sidan innehåller '/blog/' utan att bry sig om hur länken slutar:

<?php
	$menu_pages = array(
		'/index.php'=>'bilder',
		'/webbdesign.php'=>'webbdesign',
		'/blogg/'=>'blogg', //<== ändrat här
		'/ommig.php'=>'om klara'
	);
	foreach($menu_pages as $url=>$title){
		$class = ($url == $_SERVER["SCRIPT_NAME"])? ' class="current"' : '';
		if((strpos($_SERVER["SCRIPT_NAME"],'blog') > 0) && ($url == '/blog/')){$class = ' class="current"';}
		$id = ($url == $_SERVER["SCRIPT_NAME"].'/ommig.php')? ' id="om"' : '';
		echo '<li'.$class.$id.'><a href="'.$url.'">'.$title.'</a></li>'."\n";		
	}
?>

(Jag har en tenta nu på måndag så jag återkommer efter den..)

Wish me luck!

  • Medlem
  • Göteborg
  • 2011-11-15 20:46

Hoppas tentan gick bra, vad det nu var...

Bevaka tråden