Avatar billede rasmusc Nybegynder
15. juni 2006 - 12:12 Der er 5 kommentarer

sammenskrive to php-kodesnipper

Hej i hytten.

Jeg har nu følgende array:

<?php

$validPages = array(
        'index',
        'jura',
        'politik',
        );

?>

OG det henter jeg med:



<?php
      if (isset($_GET['p']) && in_array($_GET['p'], $validPages))
      {
      if(file_exists("includes/" . $_GET['p'] . ".txt"))
      {
      include("includes/" . $_GET['p'] . ".txt");
      }
      elseif(file_exists("includes/nyheder/" . $_GET['p'] . ".txt"))
      {
      include("includes/nyheder/" . $_GET['p'] . ".txt");
      }
      else
      {
      include("includes/default.txt");
      }
      }
      else
      {
      include("includes/default.txt");
      }
?>


Mine filer (jura.txt og politik.txt) ligger så i mappen includes og hvis systemet ikke finder dem der kigger den i undermappen nyheder. Fint nok.

Nu vil jeg gerne have:

$validPages = array(
        'index' => 'Forsiden',
        'jura' => 'juridsk rådgivning',
        'politik' => 'vores politik',
        );

?>

En flink mand har fortalt mig, at det kan jeg så hente således:

<?php
    if(isset($_GET['p'])){
$sti = $_GET['p'].".php";
$page = $_GET['p'];

if(file_exists($sti))
$titel = $validPages[$page]
else
$titel = "Siden findes ikke";}
?>

Og desuden hente $title hvor jeg lyster (f.eks. i de enkelte siders <h1>...</h1> og i min dynamiske highlight af valgt menupunkt sådan her:

<li<?php if ($thisPage=="jurabummelum")
      echo " id=\"currentpage\""; ?>>
      <a href="index.php?p=jura">Page One</a></li><br />

Jeg vil jo gerne undgå at skulle indsætte $thisPage på alle mine sider men istedet blot hente $title.

Hvordan skriver jeg mappevalget ind i den nye måde at hente siderne på?
Avatar billede zynzz Praktikant
15. juni 2006 - 20:33 #1
Kan du ikke lige give et link til din side så jeg kan se hvad du mener... ?
Avatar billede rasmusc Nybegynder
15. juni 2006 - 20:40 #2
http://www.carlsenskontor.dk/index.php

den dynamiske hightligt er pt i uorden (men det kommer igen - har virket).

Pointen er, at jeg gerne vil have et array, hvor jeg angiver filernes navne. Til hvert filnavn skal der knyttes en titel, som adskiller sig fra sidenavnet og som jeg skal kunne bruge i forgindelse med sidens <title>, <h1> samt i den funktion, der styrer den dynamiske highlight ...

Giver spørgsmålet mening?

ras
Avatar billede zynzz Praktikant
15. juni 2006 - 22:05 #3
Men så det script jeg har lavet virker fint!, fx. hvis du laver en side der hedder index.php og du laver ?page=index i url, så får du følgende værdi i $titel = Forsiden
Avatar billede rasmusc Nybegynder
15. juni 2006 - 22:40 #4
yes - nu hedder filerne txt men jeg kan godt regne ud hvad jeg skal skifte ud i koden. men for overskuelighedens skyld vil jeg gerne have filerne liggende i forskellige mapper - men hvordan skriver jeg det ind i din kode?

Spørgsmål 2:

Kan jeg så i denne:

<li<?php if ($thisPage=="jurabummelum")
      echo " id=\"currentpage\""; ?>>
      <a href="index.php?p=jura">Page One</a></li><br />

gøre:

<li<?php if ($thisPage=="$title")
      echo " id=\"currentpage\""; ?>>
      <a href="index.php?p=jura">Page One</a></li><br />

og i filen jura.txt (eller .php) indsætte: <?php $thisPage="$title"; ?>


og

<h1>echo @title</h1> (sådan cirka)

ras
Avatar billede zynzz Praktikant
16. juni 2006 - 16:22 #5
$sti = $_GET['p'] . '/vis.php';


så laver du og i vis.php laver du fx.:

if(isset($_GET['forside'])){
  include 'sti/forside.php';
}

Så kan linket se således ud:

dinside.dk/index.php?p=index&forside
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester