Toon posts:

Hoe moet ik hem aanpassen zodat ik phpcode er bij kan adden?

Pagina: 1
Acties:
  • 44 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb nu dit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
include("template.class.inc.php");


$tpl = NEW tpl;



$tpl->putVar("test", "menu");

$tpl->putVar("WinkelWagen | Bestellen | Contact | Service", "header");

$tpl->putVar("IM Shop > Home", "sitemenu");

echo $tpl->parse("./layout/site.tpl");


het werkt perfect to zo ver..

Ben hier in nog een beetje n00b....

Ik wil dus een bestandje include bij "menu"
Een connectie naar de database bij "sitemenu", ect...

wat ik ook doe hij zet de php code boven aan de page of een error...

iemand meschiens een idee??

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Ja. Je templates aanpassen. Ga na welke template engine er gebruikt wordt. Zoek hiervoor het bestand template.class.inc.php even op, en kijk welke template engine daarin vermeld staat. Zoek hiervan vervolgens een handleiding o.i.d. op, en zoek uit hoe je site.tpl aan moet passen (of dit php'tje) om e.e.a. aan te passen.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
ik gebruik geen template engine..

PHP:
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
<?php
//maak een class
class tpl 
{
    //define wat vars
    var $menu = "";
    var $header = "";
    var $sitemenu = "";

    //leuke functie om een waarde toe te voegen een een var
    function putVar($input, $what)
    {
        switch ($what)
        {
            case 'menu':
                $this->menu .= $input;
                break;
            case 'header':
                $this->header .= $input;
                break;
            case 'sitemenu':
                $this->sitemenu .= $input;
                break;
        }
    }

    //hiermee laden we de .tpl file in
    function load($file)
    {
        $fp = fopen($file, "r");
        $fs = fread($fp, filesize($file));
        
        return $fs;
    }

    //Hiermee parsen we de meuk
    function parse($file)
    {
        //Laden die meuk
        $input = $this->load($file);

        //Replacen van %tags% voor variabelen
        $input = str_replace("%menu%", $this->menu, $input);
        $input = str_replace("%header%", $this->header, $input);
        $input = str_replace("%sitemenu%", $this->sitemenu, $input);

        //En we zijn klaar :-P
        return $input;
    }
}

?>


Hij is door iemand gemaakt op e-prog.nl

Verwijderd

Dit is dus een hele basale template engine. Hij opent een file, en schrijft hem vervolgens letterlijk naar de output, met als uitzondering het vervangen van tags voor menu, header en sitemenu. Op het ogenblik dat je een PHP file laat inlezen en naar de output schrijft wordt alle PHP code niet uitgevoerd, maar gewoon tussen je HTML output gegooid, wat dus een enorme puinhoop oplevert.

Mijn advies: gebruik dit ding niet. Het voegt bijna niets toe, en wat het toevoegt kan je zelf ook bouwen, met behoud van PHP functionaliteit. Sowieso is het geen goed idee software van anderen te gebruiken als je niet begrijpt wat het doet.

Edit:
Kleine aanvulling: je doet zelf de output naar de browser met echo. Daardoor kun je evt. je probleem oplossen door wat te spelen met eval() (http://www.php.net/manual/en/function.eval.php). Dit is zeer ranzig en niet aan te raden, maar wel een mogelijkheid.

[ Voor 18% gewijzigd door Verwijderd op 31-12-2002 15:38 ]


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 26-08 16:18
Gebruik gewoon een bekende template-engine, of bijvoorbeeld Yapter, deze werkt erg fijn omdat je Blocks kunt gebruiken, wat dat is kan je vindne op Yapter.net/.com

Wat je nu gebruikt is idd niet echt helemaal netjes, om het maar even netjes te zeggen...

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Basic PHP, begin eens te lezen bij het begin op PHP.net

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1

Dit topic is gesloten.