Avatar billede rasmusc Nybegynder
18. juni 2006 - 22:17 Der er 3 kommentarer

Hvordan henter jeg sidens titel fra et array og bruger den?

Hejsa,

Jeg har efterhånden rodet mig ud i et par tråde, som jeg ikke længe kan overskue. Jeg prøver lige igen og forfra:

Jeg har et array:

<?php

$validPages = array(
'index',
'dokumenter',
'jura',
);
?>

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");
}
?>

Fint nok - det virker.

Menuen burde jeg jo generer automatisk, men af forskellige grunde bliver den lavet manuelt således:

<li> <a href="index.php?p=forsiden">Forsiden</a></li><br />
<li> <a href="index.php?p=dokumenter">Diverse dokumenter</a></li><br />
<li> <a href="index.php?p=jura">juridisk rådgivning</a></li><br />

Fint nok - det virker.

Men ... findes der mon ikke en fiks måde, hvorpå jeg i mit array kan angive hver sides titel, som vil kunne hentes med noget $title i f.eks. index-skabelonens <title<</title> og måske også i de enkelte siders <h1></h1>?

Det kunne jo også bruges i forbindelse med noget dynamisk highligt af det valgte menupunkt (så jeg slipper for det her i hvert menupunkt:

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

med <?php $thisPage="jurabummelum"; ?> i starten af jura-siden)

Det er vel noget med sådan noget her:



<?php

$validPages = array(
'index' => 'Forsiden',
'dokumenter' => 'diverse dokumenter',
'jura' => 'juridisk rådgivning',
);

?>

Men hvordan får det det stykket sammen, så skidtet stadig kigger efter filen jura.txt i den pågældende mappe men henter Juridisk Rådgivning de steder, hvor jeg ønsker det?

Jeg sender naturligvis venlige tanker og en h
Avatar billede ellebaek Nybegynder
18. juni 2006 - 23:04 #1
du kan jo lave et 2-dimensionelt array...

altså:
$validPages[0][0] = "index";
$validPages[0][1] = "Forsiden";

$validPages[1][0] = "dokumenter";
$validPages[1][1] = "Diverse Dokumenter";

$validPages[2][0] = "jura";
$validPages[2][1] = "Juridisk rådgivning";


Så kan du rette det her fra:
<?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");
}
?>

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

så ville jeg i stedet for i dine links bruge indexet i arrayet i stedet for sidenavnet..

det vil give dig følgende til menuen...

for $i = 0 to count($validPages) {
echo "<a href=\"index.php?p=$i\"";
if ($i = $_GET['p']) {
  echo " id=\"currentPage\"";
}
echo ">$validPages[$i][1]</a><br />";
}

sådan ca. har ikke testet, men efter rettelse af et par syntax fejl er det vidst ok...


}
Avatar billede showsource Seniormester
18. juni 2006 - 23:08 #2
Du kan vel noget i stil med:


<?php

$validPages = array("index" => "Forsiden", "dokumenter" => "Diverse dokumenter", "jura" => "Juridisk rådgivning");

foreach($validPages as $key => $text) {
    echo"<a href=\"". $_SERVER["PHP_SELF"] ."?p=". $key ."\">". htmlentities($text) ."</a><br />\r\n";
}

if(isset($_GET["p"], $validPages[$_GET["p"]])) {
echo"<p>". $validPages[$_GET["p"]];
}

?>

Og så bruge is_file() da den tjekker om det er en fil
Avatar billede rasmusc Nybegynder
19. juni 2006 - 08:05 #3
jeg prciserer lige ...

Menuen laves manuelt (jeg skal bruge omnkring 6 forskellige lokale menuer til lige så mange fanmeblade), så det eneste jeg skal vide er hvordan jeg henter det navn, jeg har knyttet til filens navn.

ras
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