login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Beste indeling van mijn website (PHP)

Offline rutje1 - 09/01/2008 18:52
Avatar van rutje1Nieuw lid Hii,

Vooraf wil ik al even zeggen: Ik ben nieuw en ik doe mijn best, sorry alvast als t niet duidleijk is.

Ik wil graag een eigen website in PHP, de code gaat mij erg goed af, maar ik zit nog te denken over de indeling van de pagina.

Ik zie bijv. dat phpfreakz werkt met een bestand forum.php / artikelen.php / rulez.php enz. Toch is op elke pagina de indeling hetzelfde. Links een menu, middenstuk (wat veranderd) en rechts een soort van menu.

Mijn website bestaat nu op de volgende manier.

include boven.php
include links.php
include $_GET['pagina']
include onder.php

Ingedeeld met DIV's in het bestand index.php en het middenstuk wordt aangeroepen via www.website.nl?pagina=contact.....

Maar, het eerst probleem wat ik tegenkwam. Ik zou graag de titel in de browser per pagina. Dus bij contactformulier boven in titel <title>Website - Contactpagina</title> en bij een forum het onderwerp, maar dit kan niet omdat de <title> tag al gesloten is en de pagina bij mij er nu later pas wordt aangeroepen.

Hoe kan ik dit het beste indelen?? Templates? HTML en PHP scheiden??

Ik weet het echt niet hoe dit moet, zijn er hier mensen met ervaring die mij kunnen helpen?? Ik ben nog maar beginneling 

En als ik php en html zou moeten scheiden zie ik niet echt hoe dat moet.

Maar hoe delen jullie een pagina in?

Graag jullie antwoord!
Mvg Rutje1

9 antwoorden

Gesponsorde links
Offline nielsvdwal - 09/01/2008 19:15
Avatar van nielsvdwal PHP gevorderde eerst met php kijken op welke pagina je zit.. dan kan je dat in je title zetten.. en dan doe je de rest.. en dan kan je uiteindelijk je pagina includen waar je wilt..

dus zoiets word het dan

pagina opvragen
titel maken
boven
links
$_GET['pagina']
onder
Offline Grayen - 09/01/2008 19:32
Avatar van Grayen PHP ver gevorderde Dit kan je doen met een template parser. Een voorbeeld hiervan is TemplateParser. Ik heb even een scriptje voor je geschreven waarvoor je geen hele parser nodig hebt.

  1. <?php
  2. // Een functie om de titel van je pagina mee aan te geven
  3. function setTitle($sTitle)
  4. {
  5. // Ik kan begrijpen dat je de $GLOBALS variable niet kent,
  6. // hieronder heb ik daarom een link geplaatst daar wordt deze variable uitgelegd.
  7. // http://nl3.php.net/manual/en/reserved.variables.php#reserved.variables.globals
  8. $GLOBALS['title'] = $sTitle;
  9. }
  10.  
  11. // De functie die alle HTML van de pagina als argument mee krijgt,
  12. // omdat we hem hebben meegegeven aan de ob_start functie.
  13. // ob_start slaat de output (zoals HTML maar ook bijv. witruimtes) op in het geheugen,
  14. // zo kun je er later nog wat op uitvoeren (zoals wij nu doen).
  15. function handleOutput($sOutput)
  16. {
  17. // Vervangt {title} in het document.
  18. // Als de titel niet is opgegeven dan moet hij alsnog worden vervangen.
  19. // Voor het geval dat je de (conditie) ? true : false constructie niet kent
  20. // staat hieronder een link met uitleg (halverwege de pagina).
  21. // http://nl3.php.net/manual/en/language.expressions.php
  22. // En wat betreft die preg_replace, daarvoor moet je even kijken op sitemasters
  23. // daar zijn een aantal tutorials over te vinden.
  24. return preg_replace('/(<title>.*){title}(.*<\/title>)/si', '\\1'.(isset($GLOBALS['title']) ? ' - '.$GLOBALS['title'] : '').'\\2', $sOutput);
  25. }
  26.  
  27. ob_start('handleOutput');
  28. ?>
  29. <html>
  30. <head>
  31. <title>Website{title}</title>
  32. </head>
  33. <body>
  34. <div id="content">
  35. <?php
  36. // Het geinclude script van $_GET
  37. setTitle('Contact formulier');
  38. ?>
  39. </div>
  40. </body>
  41. </html>
  42. <?php
  43. // Weergeef de in het geheugen opgeslagen output
  44. ?>
Offline rutje1 - 09/01/2008 19:46
Avatar van rutje1 Nieuw lid Maar ik neem dus aan dat het neit werkt om op deze manier bijv. een titel van een forum in de titel weer te geven, net zoals hiert is SiMa.

Voor mijn gevoel doe ik gewoon de hele indeling fout, maar ik zou niet weten hoe het wel moet.   

Hoe is bijv. de indeling van deze website? is het forum bijvoorbeeld ?pagina=forum of is het eigenlijk forum.php? En wat zijn de verschillen daartussen?

Offline Bart - 09/01/2008 19:47
Avatar van Bart PHP expert ?pagina=forum == forum.php
Dit is gewoon via includen met $_GET gebeurt.
En de vorm die hier op Sima wordt gebruikt is .htaccess (nog moeilijker voor je waarschijnlijk)
Offline Grayen - 09/01/2008 19:51
Avatar van Grayen PHP ver gevorderde
Citaat:
Maar ik neem dus aan dat het neit werkt om op deze manier bijv. een titel van een forum in de titel weer te geven, net zoals hiert is SiMa.


Met behulp van mijn script kan dat nu dus wel in jouw code:

Gewoon in je forum bestand setTitle('Het forum - Titel van je forumbericht'); plaatsen en je krijg het gewenste effect.
Offline rutje1 - 10/01/2008 14:45
Avatar van rutje1 Nieuw lid Ok, ik ga dr even over nadenken. Maar hoe is bij jullie (meestal) een pagina ingedeeld? Html en PHP door elkaar of gescheiden??

Hoe ziet een standaard pagina er bij jullie bijv. uit?
Mvg Rutje1
Offline marten - 10/01/2008 15:20
Avatar van marten Beheerder Gescheiden.
Ik heb 1 pagina genaamd index.php en daar laad ik mijn controllers in die de models en de views weer aan sturen. Dit principe heet MVC. Misschien kan je de tutorial eens doornemen daarover.
Offline rutje1 - 10/01/2008 16:18
Avatar van rutje1 Nieuw lid Oeh, die tutorial is erg pittig. Ik snap er niet veel van :S

Erg ingewikkeld, en zoals te lezen biij je website in de showcase (verzekering) is het erg knap, dat gaat mij helaas dus niet lukken 
Offline marten - 10/01/2008 16:22
Avatar van marten Beheerder Alles lukt je. Als je je ervoor inzet en een poging doet om te leren. Kom je er niet uit met een probleem dan kan je hier altijd je vragen stellen. Zo leer je er mee te werken en leer je weer steeds andere dingen erbij.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.179s