abonnement Unibet Coolblue Bitvavo
pi_41766712
quote:
Op woensdag 13 september 2006 11:57 schreef Giel83 het volgende:

[..]

Na je tweede if staat een ;
Waarschijnlijk ligt daar het probleem, want een unexpected T_ELSE is meestal het teveel hebben van een { } of een ;
pfftt...

Bedankt iedereen, hij doet het nu!
pi_41767094
quote:
Op woensdag 13 september 2006 09:35 schreef Swetsenegger het volgende:
Hoi, ik zoek een SIMPELE template parser.
Dus geen smarty met 600 opties die nooit gebruikt worden
XTemplate. Simpel, maar niet geheel featureloos. Precies wat je nodig hebt
  woensdag 13 september 2006 @ 12:50:09 #128
62215 qu63
..de tijd drinkt..
pi_41767155
quote:
Op woensdag 13 september 2006 10:36 schreef Swetsenegger het volgende:

[..]



De verborgen grondlijn van mijn verhaal is dat ik eigenlijk niet echt de toegevoegde waarde van een template parser zie omdat ik ze

a. nooit gebruikt heb
b. dus niet goed weet hoe ze toe te passen
c. ik geen zin heb me eerst dagen in template parser opties te verdiepen vooprdat ik er uberhaupt wat mee kan

Dus wilde ik om eens een test met een template parser te doen de meest simpele en uitgeklede vinden. Dat is waarschijnlijk ook op langere termijn meer dan genoeg voor mijn doeleinden.
ik geloof dat Roonaan ook een template-engina hed geschreven ooit..
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_41769604
Wat is eigenlijk het voordeel van een template parser?
Ik ben best bereid om toe te geven dat ik niet altijd gelijk heb, maar ik heb het nooit bij het verkeerde eind
pi_41769729
Het gescheiden houden van je PHP codes en HTML
Makkelijk wisselen tussen layouts, user defined layouts.
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 14:25:45 #131
1972 Swetsenegger
Egocentrische Narcist
pi_41769941
Vooral het wisselen tussen layouts spreekt me aan.
HTML en PHP (grotendeels) gescheiden houden kan ook door een beetje strak te coden.

Xtemplate gaan we eens mee stoeien
pi_41770097
quote:
Op woensdag 13 september 2006 14:25 schreef Swetsenegger het volgende:
Vooral het wisselen tussen layouts spreekt me aan.
Ik gebruik Smarty vooral om het feit dat ik dan echt púre PHP kan schrijven en me bezig kan houden met de logica achter m'n code, en de mogelijkheid om stukken template in andere templates te includen
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 14:34:44 #133
1972 Swetsenegger
Egocentrische Narcist
pi_41770191
quote:
Op woensdag 13 september 2006 14:31 schreef JeRa het volgende:

[..]

Ik gebruik Smarty vooral om het feit dat ik dan echt púre PHP kan schrijven en me bezig kan houden met de logica achter m'n code, en de mogelijkheid om stukken template in andere templates te includen
Het zal vast, zoals gezegd heb ik nog geen flauw idee hoe je een template parser lekker toepast.

Aangezien ik vanaf vrijdag 2 weken vrij ben voordat ik mijn nieuwe job moet beginnen en ik in de tussentijd alleen maar ( ) een kinderkamer af moet maken hou ik wel wat php tijd over
pi_41770553
Als je een beetje wilt leren hoe het leuk te te passen kan je eventueel kijken naar PHPBB.com
http://www.phpbb.com/kb/article.php?article_id=200
Ik ben bezig een site te bouwen die volledig via phpbb werkt, hun usertabellen, template system etc.
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 14:51:08 #135
1972 Swetsenegger
Egocentrische Narcist
pi_41770600
quote:
Op woensdag 13 september 2006 14:49 schreef Darkomen het volgende:
Als je een beetje wilt leren hoe het leuk te te passen kan je eventueel kijken naar PHPBB.com
http://www.phpbb.com/kb/article.php?article_id=200
Ik ben bezig een site te bouwen die volledig via phpbb werkt, hun usertabellen, template system etc.
Wat is daar de lol van
Het zelf maken is toch juist leuk.
pi_41770855
Kwam zo goed uit voor die site.
Voordeel dat ik dus geen sessiemanagment en template parser hoef te bouwen.
Waarom zou ik een apart user systeem bouwen terwijl er toch al phpbb als forum gebruikt word?
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 15:10:15 #137
1972 Swetsenegger
Egocentrische Narcist
pi_41771105
quote:
Op woensdag 13 september 2006 15:00 schreef Darkomen het volgende:
Kwam zo goed uit voor die site.
Voordeel dat ik dus geen sessiemanagment en template parser hoef te bouwen.
Waarom zou ik een apart user systeem bouwen terwijl er toch al phpbb als forum gebruikt word?
Om er wat van te leren .
pi_41771192
quote:
Op woensdag 13 september 2006 14:34 schreef Swetsenegger het volgende:

[..]

Het zal vast, zoals gezegd heb ik nog geen flauw idee hoe je een template parser lekker toepast.
Als je het eenmaal onder de knie hebt zul je niet snel terug gaan
XTemplate is een makkelijk systeem om mee te beginnen en om later wellicht mee over te stappen naar Smarty. Probeer de voorbeeldscripts eens uit en het zal snel duidelijker worden. Ik gebruik nog steeds een (wel zwaar aangepaste) versie voor mijn CMS, omdat het erg snel en compact is .
pi_41771221
Oww maar dat is geen probleem, een user en sessie management heb ik al eens gebouwt Dat is de eerste versie van de site vol dubbel overbodig werk dus
Een template systeem heb ik dan nog wel niet gebouwt, maar ach kan niet alles te gelijk leren.
Er moet nu eerst een goede werkende site komen
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 15:25:52 #140
1972 Swetsenegger
Egocentrische Narcist
pi_41771471
quote:
Op woensdag 13 september 2006 15:15 schreef Darkomen het volgende:
Oww maar dat is geen probleem, een user en sessie management heb ik al eens gebouwt Dat is de eerste versie van de site vol dubbel overbodig werk dus
Een template systeem heb ik dan nog wel niet gebouwt, maar ach kan niet alles te gelijk leren.
Er moet nu eerst een goede werkende site komen
Maakt ook niet uit hoor.
pi_41772643
Hm, het klinkt in ieder geval wel als de moeite waard om er naar te kijken
Ik ben best bereid om toe te geven dat ik niet altijd gelijk heb, maar ik heb het nooit bij het verkeerde eind
pi_41772864
quote:
Op woensdag 13 september 2006 12:50 schreef qu63 het volgende:

[..]

ik geloof dat Roonaan ook een template-engina hed geschreven ooit..
Een paar keer. Tegenwoordig gebruik ik die nauwelijks meer.

-r-
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 16:22:22 #143
1972 Swetsenegger
Egocentrische Narcist
pi_41773147
quote:
Op woensdag 13 september 2006 16:12 schreef Roönaän het volgende:

[..]

Een paar keer. Tegenwoordig gebruik ik die nauwelijks meer.

-r-
Je gebruikt uberhaupt geen template engine of je eigen template engine niet meer?
kwam 'm tegen op phpfreakz
pi_41773428
quote:
Op woensdag 13 september 2006 16:22 schreef Swetsenegger het volgende:

[..]

Je gebruikt uberhaupt geen template engine of je eigen template engine niet meer?
kwam 'm tegen op phpfreakz
Beide :-)

Die engine zit nog wel in een paar sites (hobbit oa), maar tegenwoordig gebruik ik gewoon templates, zonder engine.
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 17:27:46 #145
1972 Swetsenegger
Egocentrische Narcist
pi_41775264
templates zonder engine. Leg eens uit? Je moet die templates toch parsen?
pi_41775523
quote:
Op woensdag 13 september 2006 17:27 schreef Swetsenegger het volgende:
templates zonder engine. Leg eens uit? Je moet die templates toch parsen?
PHP is de allersnelste parser die je hebt. Voor de rest kan je templates en skinkeuze eenvoudig aansturen via een directory settng of bijvoorbeeld stream wrappers.
Het messaging systeem heeft bijvoorbeeld include 'theme://content.inbox.panel.php'; De streamwrapper vogelt vervolgens wel uit welke filesystem file daar bij hoort.
  woensdag 13 september 2006 @ 17:51:12 #147
12880 CraZaay
prettig gestoord
pi_41775979
quote:
Op woensdag 13 september 2006 10:36 schreef Swetsenegger het volgende:

Dus wilde ik om eens een test met een template parser te doen de meest simpele en uitgeklede vinden. Dat is waarschijnlijk ook op langere termijn meer dan genoeg voor mijn doeleinden.
Misschien kun je ook eens kijken naar een MVC-framework voor PHP, zoals bijvoorbeeld Code Igniter. Gaat PHP'en en het scheiden van logica en presentatie toch nog ergens op lijken
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 19:10:40 #148
1972 Swetsenegger
Egocentrische Narcist
pi_41778424
quote:
Op woensdag 13 september 2006 17:36 schreef Roönaän het volgende:

[..]

PHP is de allersnelste parser die je hebt. Voor de rest kan je templates en skinkeuze eenvoudig aansturen via een directory settng of bijvoorbeeld stream wrappers.
Het messaging systeem heeft bijvoorbeeld include 'theme://content.inbox.panel.php'; De streamwrapper vogelt vervolgens wel uit welke filesystem file daar bij hoort.
kan je een eenvoudig voorbeeld geven in code?
pi_41779579
In principe heb je een class:

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
class ThemeStream {
  var
$theme_path;
  var
$default_theme_path;

  var
$vardata;
  var
$position;

  function
stream_open($path, $mode, $options, &$opened_path) {
    if(!
preg_match('/^r[bt]?$/', $mode)) {
      
trigger_error('Libraries can be opened for reading only', E_USER_NOTICE);
      return
false;
    }

    
$this-&gt;default_theme_path = DIR_DEFAULT_THEME.'/'.substr($path,8);
    if(
defined('USER_THEME')) {
      
$this-&gt;theme_path = DIR_THEMES.'/'.USER_THEME.'/'.substr($path,8);
    } else {
      
$this-&gt;theme_path = $this-&gt;default_theme_path;
    }

    if(
false && defined('SESSION_USER') && SESSION_USER == 11753) {
      echo
'<p>'.$this-&gt;theme_path;
      echo
'<br/>'.$this-&gt;default_theme_path;
      echo
'</p>';
    }

    if(
is_file($this-&gt;theme_path)) {
      
$this-&gt;vardata = file_get_contents($this-&gt;theme_path);
    } elseif(
is_file($this-&gt;default_theme_path)) {
      
$this-&gt;vardata = file_get_contents($this-&gt;default_theme_path);
    } else {
      
$this-&gt;vardata = 'Theme-file not found('.$this-&gt;default_theme_path.')';
    }

    
$this-&gt;position = 0;

    return
true;
  }

  function
stream_stat() {
    return array(
'size' =&gt; strlen($this-&gt;vardata));
  }

  function
stream_read($count) {
    
$ret = substr($this-&gt;vardata, $this-&gt;position, $count);
    
$this-&gt;position += strlen($ret);
    return
$ret;
  }

  function
stream_write($data) {
    
$left = substr($this-&gt;vardata, 0, $this-&gt;position);
    
$right = substr($this-&gt;vardata, $this-&gt;position + strlen($data));
    
$this-&gt;vardata = $left . $data . $right;
    
$this-&gt;position += strlen($data);
    return
strlen($data);
  }

  function
stream_tell() {
    return
$this-&gt;position;
  }

  function
stream_eof() {
    return
$this-&gt;position &gt;= strlen($this-&gt;vardata);
  }

  function
stream_seek($offset, $whence) {
    switch (
$whence) {
      case
SEEK_SET:
      if (
$offset &lt; strlen($this-&gt;vardata) && $offset &gt;= 0) {
          
$this-&gt;position = $offset;
          return
true;
        } else {
          return
false;
        }
        break;

      case
SEEK_CUR:
        if (
$offset &gt;= 0) {
          
$this-&gt;position += $offset;
          return
true;
        } else {
          return
false;
        }
        break;

      case
SEEK_END:
        if (
strlen($this-&gt;vardata) + $offset &gt;= 0) {
          
$this-&gt;position = strlen($this-&gt;vardata) + $offset;
          return
true;
        } else {
          return
false;
        }
        break;

      default:
        return
false;
    }
  }
}
?>


Die kan je met stream_wrapper_register verbinden met theme://

1
2
3
4
5
6
7
<?php
php
stream_wrapper_register
("theme", "ThemeStream")
   or die(
"Failed to register theme protocol");

}
?>


Dit bovenstaande doe je in een aparte file, lets say "streamwrapper.php";

Vervolgens pak je een directory structuur:
Hierin heb je voor de verschillende skins/themes, 2 template files.

1
2
3
4
5
6
7
/var/www/templates
              /default/page.normal.php
              /default/content.article.php
              /wml/page.normal.php
              /wml/content.article.php
              /pda/page.normal.php
              /pda/content.article.php


Nu heb je een article.php die wat content uitleest uit een db, dit in een article-layout past. De article layout doet zijn ding, en roept vervolgens de website template aan met de headers/footer/menu, etc, je kent het wel.

In principe ziet article.php er zo uit:
1
2
3
4
5
6
<?php
php
  
include 'config.php';
  
$article = 'tekst uit de database';
  include
'theme://content.article.php';
?>


En de template als volgt:
1
2
3
4
5
6
7
<?php
php
  ob_start
();
  echo
'<div id="article">'.$article.'</div>';;
  
$content = ob_get_clean();
  include
'theme://page.normal.php';
?>


En door het consequente gebruik van theme:// hoef je je nergens meer om directories zorgen te maken, dat doet de streamwrapper voor je.

Je config.php bevat vervolgens de code om aan te geven in welke layout/directory de templates moeten worden gezocht:

1
2
3
4
5
6
7
8
9
10
<?php
php
  define
('DIR_THEMES', '/var/www/templates');
  
define('DIR_DEFAULT_THEME', '/var/www/templates/default');
  if(
$_SESSION['skin'] == 'pda') {
    
define('USER_THEME', 'pda');
  } else {
    
define('USER_THEME', 'default');
  }
?>


Dit laatste is relatief eenvoudig aan je user management en user preferences te verbinden.
  FOK!-Schrikkelbaas woensdag 13 september 2006 @ 20:01:12 #150
1972 Swetsenegger
Egocentrische Narcist
pi_41780246
quote:
Op woensdag 13 september 2006 19:42 schreef Roönaän het volgende:
In principe heb je een class:
[ code verwijderd ]

Die kan je met stream_wrapper_register verbinden met theme://
[ code verwijderd ]

Dit bovenstaande doe je in een aparte file, lets say "streamwrapper.php";

Vervolgens pak je een directory structuur:
Hierin heb je voor de verschillende skins/themes, 2 template files.
[ code verwijderd ]

Nu heb je een article.php die wat content uitleest uit een db, dit in een article-layout past. De article layout doet zijn ding, en roept vervolgens de website template aan met de headers/footer/menu, etc, je kent het wel.

In principe ziet article.php er zo uit:
[ code verwijderd ]

En de template als volgt:
[ code verwijderd ]

En door het consequente gebruik van theme:// hoef je je nergens meer om directories zorgen te maken, dat doet de streamwrapper voor je.

Je config.php bevat vervolgens de code om aan te geven in welke layout/directory de templates moeten worden gezocht:
[ code verwijderd ]

Dit laatste is relatief eenvoudig aan je user management en user preferences te verbinden.
Heel interessant, bedankt.
Volgende week ga ik alles eens goed bestuderen
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')