Dynamic Content / Navigatie / Title / Meta

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

21/09/2010 14:51:05
Quote Anchor link
Hoi!

Ik heb even een probleempje waar ik niet lekker uit kom. Zelf al dagen zitten rommelen maar het wil niet echt lukken. Ben van oorsprong ook eigenlijk grafisch ontwerper maar het kan nooit kwaad om je ook eens in de 'achterkant' te verdiepen.

Anyway, ik zal eerst even uitleggen wat ik precies heb gedaan en daarna uitleggen waar ik nou precies niet uit kom.


Okay, we vergeten voor het gemak even de <HEAD> <TITLE> en <BODY> bladibla en beginnen gewoon bij de container div:

-------
<div id ="container">
-------

-------
***HEADER INCLUDE***
Inhoud niet relevant
-------

-------
***NAVIGATOR INCLUDE***
Is in principe een simpele CSS unordered list met in de <li> de volgende PHP toegevoegd. (Wel per <li> met bijbehorende variabele voor $thisPage uiteraard!)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if ($thisPage=="content1") echo ' class="active"'; ?>


De bedoeling is natuurlijk dat de opmaak wordt veranderd als een link in de lijst als actief wordt beschouwd.

De verder komt er na de <li> een <a href> die gewoon de variabele aangeeft van de content die geladen moet worden. (Dus bijvoorbeeld <a href="index.php?id=content1">) Daarna sluiten we de boel netjes weer met </a> en </li>
-------

-------
***DYNAMIC CONTENT INCLUDE***

Dit is het scriptje dat zorgt dat de content wordt ingeladen zonder dat de hele pagina ververst hoeft te worden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $pass = array('content1','content2','content3','content4');if (in_array($_GET['id'], $pass)) {include ($_SERVER['DOCUMENT_ROOT'] . '/inc/' . $_GET['id'] . '.php'); } elseif (!isset($_GET['id'])) {include ($_SERVER['DOCUMENT_ROOT'] . '/inc/content1.php');} else {header("HTTP/1.0 404 Not Found"); include ($_SERVER['DOCUMENT_ROOT'] . '/inc/error.php');} ?>


Dit heb ik uit een tutorial. Ik begrijp wat het doet maar zou er zelf nooit opgekomen zijn. Of dit veilig is weet ik dus ook niet, maar dat terzijde... Het doet in ieder geval wat het moet doen.
-------

-------
***FOOTER INCLUDE***
Isch wederom niet interesshant....
-------

-------
</div>
-------


Okay, dan is het zo dat bovenaan de content die steeds wordt ingeladen, wordt aangegeven wat de variable van $thisPage is. Zodat de opmaak van de navigatie zich aan kan passen.

Goed, het probleem.... omdat de dynamische content later wordt ingeladen dan de navigatie heb ik het idee dat de variabele voor $thisPage al vast staat en de navigatie dan statisch is. De navigatie wordt ook niet meer ververst na het klikken op één van de links. Dit is natuurlijk makkelijk op te lossen door de include van de navigatie uit de index.php te halen en toe te voegen aan elk php bestandje van de dynamische content.

Dat wil ik alleen niet... waarom niet...? Omdat het de bedoeling is de dynamische content uiteindelijk ook de <title> van de pagina kan veranderen of de <meta> tags. Als ik dan steeds alles helemaal opnieuw moet inladen gaat het idee van dynamische content een beetje verloren.


Dus..... de hamvraag van vandaag:

Is er misschien een manier om een soort van loop te creëren die constant voor de navigatie en later voor bijvoorbeeld de <title> en <meta> checkt wat de variabele is van $thisPage? (Die vervolgens steeds kan veranderen zodra er nieuwe content geinclude wordt?)

En anders... voor het geval ik er hier compleet naast zit... misschien een pointer de goede kant op?

Hopelijk heb ik dit een beetje duidelijk uitgelegd!

Alvast bedankt in ieder geval!

Met vriendelijke groet,

Jesper
Gewijzigd op 21/09/2010 15:48:32 door
 
PHP hulp

PHP hulp

22/12/2024 18:29:54
 
Carlo boy

Carlo boy

21/09/2010 18:24:20
Quote Anchor link
Je schrijft een hele tekst over wat er moet gebeuren. Oke.. Wat ik er uit kan opmaken is dat je wilt dat als je op een link klikt, er een nieuwe tekst wordt geladen (include).

Maar waar wordt $thisPage aangemaakt, staat er boven de pagina ergens
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $thisPage = $_SERVER['PHP_SELF'];?>
?

Edit: Kan je even een samenvatting maken van je verhaal boven, dat vind ik het begrijpelijker
Gewijzigd op 21/09/2010 18:25:32 door Carlo boy
 

21/09/2010 19:14:37
Quote Anchor link
Haha het werd inderdaad een beetje te lang.... okay even kort dan...

Door te klikken op een link in de navigator include ik content.php in index.php. Bovenaan deze content.php wordt dan de waarde van $thisPage bepaald.

$thisPage wordt gebruikt in de navigator om vast te stellen welke link actief is. Daarbuiten zou ik $thisPage bijvoorbeeld willen gebruiken als echo tussen de <title> tags van index.php.


Het probleem is, dat index.php en daarmee ook de navigator al geladen en dus statisch zijn. De waarde van $thisPage wordt daarna pas vastgesteld door content.php die daarna geladen wordt. Ik kan de hele pagina wel opnieuw inladen maar dan heeft het hele principe van dynamische content niet zoveel zin meer toch?


Ik ben dus op zoek naar een manier waarbij index.php en navigator.php maar één keer geladen hoeven worden maar ik....

1. ...binnen index.php de <title> mee verandert met de included content.

2. ...binnen navigator.php kan aangeven welke link/content dan actief is.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.