[PHP] FastTemplate-> Probleem PHP

Pagina: 1
Acties:
  • 145 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb FastTemplate gedownload, de gehele documentatie gelezen. Als ik de standaard fasttemplate code upload dan ziet hij 2 dingen fout.

1. Er bestaat een functie dubbel, dit levert de volgende errorcode op:
Fatal error: Cannot redeclare clear_parse() in /dedirvanmijnsitedieikgegeimwildouden/class.FastTemplate.php3 on line 636.
Ik haal de functie van regel 636 weg(op rem zetten), dan doet hij al iets meer.

2. Er zat een fout in dat hij alles tussen {} in de oudere php als gewone haakjes ziet en in de php die ik draai ziet hij het als een waarde als er een string tussenstaat.
Ook stonden de strings tussen aanhalingtekens, deze heb ik verwijderd waardoor het iets sneller werkt.
PHP:
1
2
3
4
5
//oud
$a = str_replace("{$value}","$with","$a");

//nieuw
$a = str_replace("{".$value."}",$with,$a);


3. Ik krijg de volgende code niet werkend:
bla.php
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
$tpl = new FastTemplate("./templates/".$tpl_use);

$start = $tpl->utime();     // Benchmarking

$tpl->define(
    array(
        header      => "header.tpl",
        ran_list    => "ran_list.tpl"
    )
);

$tpl->assign(array(
    TITLE => "Blaat een title")
);

//Begin with functions for RAN

if (1==2) {

} else {
    $tpl->define_dynamic ("listran","table");
    $sql = mysql_query("SELECT * FROM {$database_prefix}_
[kunstmatige enter]{$database_file}_list ORDER BY id;");
    while ($sql_i=mysql_fetch_array($sql)) {
        $tpl->assign(array(
            RANNAME     => $sql_i['name'],
            RANINTRO    => $sql_i['intro']
        ));
        $tpl->parse(LISTRANS,".listran");
    }
}


$tpl->parse(MAIN, array("ran_list","header"));
$tpl->FastPrint();

en
header.tpl
code:
1
2
3
4
5
6
7
8
<!-- // START: header.tpl // -->
<HTML>
<HEAD>
<TITLE>{TITLE}</TITLE>
</HEAD>
<BODY>
{CONTENT}
<!-- // END: header.tpl // -->


list_ran.tpl
code:
1
2
3
4
5
6
7
8
9
10
11
12
<!-- NAME: ran_list.tpl -->
<table>

  <!-- BEGIN DYNAMIC BLOCK: listran -->
  <tr>
    <td>{RANNAME}</td>
    <td>{RANINTRO}</td>
  </tr>
  <!-- END DYNAMIC BLOCK: listran -->

</table>
<!-- END: ran_list.tpl -->


Als ik dit uitvoer krijg ik dit te zien:
ERROR: get_template() failure: [./templates/Eenwebsite.com/]
Deze fout wordt veroorzaakt door de regel: $tpl->parse(LISTRANS,".listran");
Dit kan ook wel kloppen, want ik snap niet(en staat niet goed in help/voorbeelden waarom etc) die LISTRANS er moet staan, deze stond standaard op ROWS, maar vedder werdt er zowel in het voorbeeld php filetje als in de 2 gebruikte tpl files de text ROWS nergens gebruikt. Dus ik snap niet wat ik met die waarde moet doen.

Ook de standaard functie wekrt niet die vanuit fasttemplate is. dus de example_dynamic.php.

Dan zie ik de text ROWS staan. Ik draai die example_dynamic wel MET de veranderde code omdat het anders gewoonweg NIET werkt.

General server information
Operating system: Linux
Apache version: [GUM]
PHP version 4.3.1

Waarom werkt FastTemplate niet met php 4.3.1? En waarom werkt mijn dynamic niet goed?
En als FastTemplate niet te gebruiken is met PHP 4.3.1 waar kan ik dan een andere zeer goeie TPl engine vinden? De functionaliteid van FastTemplate is goed, deze opbouw moet ik hebben, dus templates met max 1 file per pagina heb ik gewoon niets aan.

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Ik ken FastTemplate niet :X maar wil wel een gooi doen ;)

in de code staat
PHP:
1
$tpl = new FastTemplate("./templates/".$tpl_use);
en de error is
code:
1
ERROR: get_template() failure: [./templates/Eenwebsite.com/]

Kan het zijn dat je $tpl_use een file moet zijn en niet een directory :? Wellicht gaat dit fout bij het parsen van de template?

Verder neem ik aan dat je Smarty als alternatief kent?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

In de code van class.FastTemplate.php3 staat twee keer de functie clear_parse(). De tweede keer dat deze functie wordt gedefinieerd moet je die gewoon even verwijderen en dan doet alles het weer.

Wat moet je weghalen:
PHP:
1
2
3
4
5
6
//    ************************************************************
//    Aliased function - used for compatibility with CGI::FastTemplate
    function clear_parse ()
    {
        $this->clear_assign();
    }

[ Voor 58% gewijzigd door dArtagnan op 17-06-2003 20:48 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Spider.007 schreef op 17 June 2003 @ 20:15 een stukje text:
Verder neem ik aan dat je Smarty als alternatief kent?
Ja haha, die $tpl_use is gezet naar een template directory, sorry was ik even vergeten te vertellen.

smarty ken ik niet, maar zal even er naar kijken.
[edit]
nee die templates zijn niet echt mooi, ik hou het tot nu toe bij fasttemplate.
Koraalduivel schreef op 17 juni 2003 @ 20:36:
In de code van class.FastTemplate.php3 staat twee keer de functie clear_parse(). De tweede keer dat deze functie wordt gedefinieerd moet je die gewoon even verwijderen en dan doet alles het weer.

Wat moet je weghalen:
PHP:
1
2
3
4
5
6
//    ************************************************************
//    Aliased function - used for compatibility with CGI::FastTemplate
    function clear_parse ()
    {
        $this->clear_assign();
    }
ja dit had ik al gedaan, zoals ik mijn openingspost te lezen is.

[ Voor 5% gewijzigd door Verwijderd op 17-06-2003 21:19 ]


Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
Ik heb zelf een stackbased template-parser geschreven. Je kunt er foreach, if, else enzo in gebruiken. Tevens issie erg snel (www.kbvdenbosch.nl gebruikt em, www.qprcostcontrol.com ook). Kijk op http://dev.trag.nl/ccbv/include/tpltest.php om te testne. De source staat op www.codebase.nl :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oké ik wil dus gewoon FastTemplate werkend krijgen dit heeft tot nu toe de meest simpele en uitgebrijde functies.

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 09:24

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Ik heb hem werkend onder linux/4.3.2, ik heb hem even voor je gemirrord @ http://prammenhanger.nl/got/class.FastTemplate.phps .

bij $tpl = new FastTemplate() moet je de dir met je templates opgeven, geen file. Die komen later wel bij $tpl->define(), zoals je in je voorbeeld ook goed deed. De laatste update van FastTemplate was meen ik in juli 1999, toen reageerde php niet zo heftig op dubbele functies, nu wel. Die is dus uit bovenstaande link gehaald.

Ik heb dacht ik ook ooit iets met haakjes/accolades weggebroken, maar daar ben ik niet meer zeker van.

Ik zie dat je twee templates in elkaar wilt parsen. Als je één template parst in een variabele, bijv. "TPL1", en je definiëert die niet opnieuw, wordt die in het vervolg automatisch geparst in {TPL1}.

* Thijsmans heeft een tijdje al geen FastTemplates meer gebruikt, want hij is verslaafd aan PrammenTemplates 8)7

[ Voor 2% gewijzigd door Thijsmans op 17-06-2003 22:14 . Reden: linkje zonder punt ]

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ERROR: get_template() failure: [./templates/Mijnsite.com/]

Het is dus gewoon een dir, die waarde $tpl_weetikveel is zodat je meerdere templates kan kiezen.

Hoesnel is FastTemplates? Snel genoeg om een redelijk grote website(2000 unieke bezoers/dag minimaal) te laten draaien?
En ook gezien parsetime en serverload.

offtopic:
Colocated server bij _(geheime locatie)_, op zeer snelle verbinding.

Intel Xeon 2,4ghz(mischien kijken voor dual optie)
1GB Ram, heel mischien maar 512mb
60gb ide 7200prm raid 1, later mischien scsi.

Slackware of Gnetoo als OS, Apache 1.3.27, PHP 4.nieuwste_sable, MySQL.
En dat maar voor 3 websites en een 10 persoonlijke sites(alla KingOfDos.com).

De volledige code staat boven, alleen de code $tpl_weetikveel staat op "Blaat.com", maar later via user prefs aan te passen.

Is FastTemplates wel goed zat voor dit soort opties? Of toch maar beter smarty? Alleen die tpl files zien er zo vaag uit(niet mooi)

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 09:24

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Ik zou zeggen: maak een benchmark-testje :) Laat zowel FT als Smarty dezelfde opdracht doen, en kijk wat de tijden zijn van beide scripts :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.

Pagina: 1