[OPGELOST] Template in één file

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tim van Norde

Tim van Norde

15/02/2012 20:39:59
Quote Anchor link
Ik weet niet echt goed hoe ik dit uit moet leggen, maar ik zou graag het volgende willen behalen:

Ik heb een template gemaakt in mijn index pagina (index.php).
Nu heb ik een classje gemaakt om gebruikers te kunnen registreren en in te loggen etc. Als je registreert ga je naar bijv. register.php. Aangezien de template in de index gebouwd is, zie je op register.php een witte pagina.

Ik wil de index dus altijd de template op laten bouwen. Kan dit, of moet ik de template in elke pagina die ik maak kopiëren?

Ik zou het natuurlijk zo kunnen doen dat ik met een getje op de index pagina check wat de gebruiker wil doen.

Bij voorbaat dank,

Tim
Gewijzigd op 16/02/2012 13:22:39 door Tim van Norde
 
PHP hulp

PHP hulp

25/11/2024 06:03:28
 
Reshad F

Reshad F

15/02/2012 20:45:51
Quote Anchor link
of je maakt gewoon een template pagina en die template pagina gebruik je voor elke pagina?
 
Tim van Norde

Tim van Norde

15/02/2012 20:53:11
Quote Anchor link
"Kan dit, of moet ik de template in elke pagina die ik maak kopiëren?"

Het was dus mijn vraag of het anders kan :)
 
Reshad F

Reshad F

15/02/2012 23:32:49
Quote Anchor link
Wat voor editor gebruik je?
 
Bas  van de Steeg

Bas van de Steeg

16/02/2012 06:52:55
Quote Anchor link
Dit kan wel,
Reshadd wat maakt editor in dit geval uit ?
Tim je moet zorgen dat als je op bijvoorbeeld register drukt je naar de pagina
index.php?p=register gaat. En dan maak je in de content een script die dan register.php include dus :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if($_GET == false){

 include'nieuws.php';

}
else{

include $_GET['p'].'.php';

}


?>

Die code zet je in je content. Waar je dus de informatie wilt hebben.
Oh trouwens het is een heel simpel script.
Als iemand nu naar
index.php?p=bla
gaat dan probeert het script bla.php te includen, dus dan moet je nog even een file exist ofzo erop zetten.
Gewijzigd op 16/02/2012 06:53:13 door Bas van de Steeg
 
Reshad F

Reshad F

16/02/2012 10:05:19
Quote Anchor link
jou manier kan inderdaad ook maar ik vroeg welke editor hij gebruikt omdat je met Dreamweaver bijv. dit automatisch kan laten doen ;)
 
Kris Peeters

Kris Peeters

16/02/2012 10:21:19
Quote Anchor link
if($_GET == false){

Maak daarvan

if(empty($_GET)){

$_GET is een array; een lege array kan je met empty controleren
 
Wouter J

Wouter J

16/02/2012 10:26:32
Quote Anchor link
@Bas, gebruik niet $_GET == false maar isset en count. En verder moet je nooit zomaar wat includen! Anders zou je alle pagina's die op de server staan moeten includen.

Zelf zou ik het zo doen:
- Je maakt 1 bestand aan, genaamd index.php. Hierin zet je de hele code, dus met doctype, head, header, navigatie, content, footer, enz. Gewoon alsof je een hele pagina opmaakt.
- De content van elke pagina, dus het geen wat in de content div staat, plaats je in een apart file die je bijv. in een map /pages/ stopt.
- Open index.php en op de plaats waar je normaal je content zou plaatsen plaats je nu een PHP include, die je afhankelijk kan maken van de get variabele.
Een voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<!doctype html>
<html lang=nl>
  <head>
    <meta charset=utf-8>
    <title>Je titel (deze kan je aanpassen met PHP)</title>
    <link rel=stylesheet href=css/screen.css>
  </head>
  <body>
    <header class="main">
      <h2>Je site naam</h2>
    <header>
    <nav>
      <ul>
        <li><a href="/?page=home">Home</a></li>
        <li><a href="/?page=contact">Contact</a></li>
      </ul>
    </nav>
    <div id=content>
      <?php
        define('PAGES_DIR', '/pages/'); // de map waarin alle pagina's staan
        if( isset($_GET['page']) )
        {
// als je ?page=pagina-naam in de url hebt staan
          switch($_GET['page')
          {
            case
'home' :
              // als je ?page=home invult
              include PAGES_DIR.'home.php';
              break;
            case
'contact' :
              // als je ?page=contact invult
              include PAGES_DIR.'contact.php';
              break;
            case
'about' :
              // als je ?page=about invult
              include PAGES_DIR.'about.php';
              break;
            default :

              // in alle andere gevallen => homepage
              include PAGES_DIR.'home.php';
          }
        }

        else
        { // geen ?page in de url
          include PAGES_DIR.'home.php'; // include de homepagina
        }
      ?>

    </div>

---------------
/pages/home.php
---------------
<h1>Welkom</h1>
<p>Hier de homepagina content</p>

------------------
/pages/contact.php
------------------
<h1>Contact</h1>
<form id="contact-form">
</form>

En zo kun je hem verder uitbouwen.
 
Reshad F

Reshad F

16/02/2012 10:58:40
Quote Anchor link
dat ziet er nice uit wouter ;) je brengt me op ideen
 
Wouter J

Wouter J

16/02/2012 11:06:50
Quote Anchor link
En zo mooi is het niet eens gescript. Kijk eens hoe frameworks het doen of hoe je het doet met het MVC pattern, dat is pas mooi... ;)
 
Reshad F

Reshad F

16/02/2012 11:27:10
Quote Anchor link
ja maar voorheen gebruikte ik altijd sjablonen dus dit is wel heel wat al :p
 
Ozzie PHP

Ozzie PHP

16/02/2012 11:30:35
Quote Anchor link
Reshadd farid op 16/02/2012 11:27:10:
ja maar voorheen gebruikte ik altijd sjablonen dus dit is wel heel wat al :p

Dan heb ik hier wat leesvoor voor je ;)

http://www.phpro.org/tutorials/Model-View-Controller-MVC.html
 
Reshad F

Reshad F

16/02/2012 11:47:49
Quote Anchor link
thanks ozzie! ik zal het even bekijken

Toevoeging op 16/02/2012 11:47:50:

thanks ozzie! ik zal het even bekijken
 
Tim van Norde

Tim van Norde

16/02/2012 13:22:16
Quote Anchor link
'Ik zou het natuurlijk zo kunnen doen dat ik met een getje op de index pagina check wat de gebruiker wil doen.'

Dankjewel voor je voorbeeldcode Wouter, ik had het tijdelijk op de manier waarop jij het beschrijft gedaan.

Blijkt dus dat het zo het beste is (Behalve dat MVC beter zou zijn, kende ik niet eens!)

Dankjewel iedereen, het is hiermee opgelost!
 



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.