Fortgeschrittener Template system

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Fortgeschrittener Template system

    Hallo ich mach heute für euch ein Template system und sagt auch wie es auf gebaut ist und wie mann Fehler raus bekommt.
    So dann wollen wir mal anfangen.

    Dann Fangen wir mal mit einfachen an:

    §1 Programmierungs Programme
    §2 Coden Des Template systems
    §3 Edits


    §1: Programmierungs Programme

    Aptana
    Plattform: Mac OS, Microsoft Windows XP,Vista,7 (x86 und x64bit Compatible)
    Kosten: Keine
    Download: aptana.com/products/studio3/download
    Referenzen: keine

    Eclipse
    Plattform: ALL
    Kosten: keine
    Download: eclipse.org/downloads und da ein mal die PHP IDE
    Referenzen: Keine

    NetBeans
    Plattform: ALL
    Kosten: keine
    Download: netbeans.org/downloads
    Referenzen: keine

    §2:Coden des Template systems


    Bitte ein ihr vorher gedownloadeten Programmier Programm öffnen
    Und Den template.class.php erstellen unter einen PHP ordner oder wie ihr es nen wollt

    PHP-Quellcode

    1. //jetzt gehts zum anfang
    2. class Template
    3. {
    4. }


    dass war die grund form einer class jetzt machen wir uns an den anderen sachen so langsam ran.

    PHP-Quellcode

    1. //als erstes die privates
    2. private $templateDir = null; //wichtig bitte nur null benutzen bei den Templatedir
    3. //null ist eigentlich nichts aber wie definieren es aber bald noch
    4. private $languageDir = null;//genau so wie oben
    5. private $leftDelimiter = '{$';//gleich noch weiter er klärt
    6. private $rightDelimiter = '}';
    7. private $leftDelimiterF = '{';
    8. private $rightDelimeterF = '}';
    9. private $leftDelimiterC = '\{\*';
    10. private $rightDelimiterC = '\*\}';
    11. private $leftDelimiterL = '\{L_';
    12. private $rightDelimiterL = '\}';
    13. private $templateFile = "";
    14. private $languageFile = "";
    15. private $templateName = "";
    16. private $template = "";
    17. //jetzt gehts zuden functionen des templates
    18. public function __construct($tpl_dir = "", $lang_dir = "") {
    19. if ( !empty($tpl_dir) ) {
    20. $this->templateDir = $tpl_dir;
    21. } else {
    22. $this->templateDir = SYSTEM_DIR.'templates/';
    23. }
    24. if ( !empty($lang_dir) ) {
    25. $this->languageDir = $lang_dir;
    26. } else {
    27. $this->languageDur = SYSTEM_DIR.'language/';
    28. }
    29. }
    30. public function load($file) {
    31. $this->templateName = $file;
    32. $this->templateFile = $this->templateDir.$file;
    33. if( !empty($this->templateFile) ) {
    34. if( file_exists($this->templateFile) ) {
    35. $this->template = file_get_contents($this->templateFile);
    36. } else {
    37. return '0.1';
    38. }
    39. } else {
    40. return false;
    41. }
    42. $this->parseFunctions();
    43. }
    44. public function assign($replace, $replacement) {
    45. $this->template = str_replace( $this->leftDelimiter .$replace.$this->rightDelimiter,
    46. $replacement, $this->template );
    47. }
    48. public function loadLanguage($files) {
    49. $this->languageFiles = $files;
    50. for( $i = 0; $i < count( $this->languageFiles ); $i++ ) {
    51. if ( !file_exists( $this->languageDir .$this->languageFiles[$i] ) ) {
    52. return false;
    53. } else {
    54. include_once( $this->languageDir .$this->languageFiles[$i] );
    55. }
    56. }
    57. $this->replaceLangVars($lang);
    58. return $lang;
    59. }
    60. private function replaceLangVars($lang) {
    61. $this->template = preg_replace("/\{L_(.*)\}/isUe", "\$lang[strtolower('\\1')]", $this->template);
    62. }
    63. private function parseFunctions() {
    64. while( preg_match( "/" .$this->leftDelimiterF ."include file=\"(.*)\.(.*)\""
    65. .$this->rightDelimiterF ."/isUe", $this->template) )
    66. {
    67. $this->template = preg_replace( "/" .$this->leftDelimiterF ."include file=\"(.*)\.(.*)\""
    68. .$this->rightDelimiterF."/isUe",
    69. "file_get_contents(\$this->templateDir.'\\1'.'.'.'\\2')",
    70. $this->template );
    71. }
    72. $this->template = preg_replace( "/" .$this->leftDelimiterC ."(.*)" .$this->rightDelimiterC ."/isUe",
    73. "", $this->template );
    74. }
    75. public function display() {
    76. echo $this->template;
    77. }
    Alles anzeigen


    jetzt nur noch die index .php so ausstatten dass sie alles laden kann

    PHP-Quellcode

    1. <?php
    2. if (!defined('TPL_DIR')) define('TPL_DIR', dirname(__FILE__).'/TPL/');
    3. require_once(TPL_DIR.'template.class.php');
    4. $tpl = new Template();
    5. echo $tpl->load("index.tpl");
    6. $langs[] = "de/lang_main.php";
    7. $lang = $tpl->loadLanguage($langs);
    8. $tpl->assign( "website_title", "Euer Name" );
    9. $tpl->assign( "start" , "Startseite");
    10. $tpl->assign( "time", date("H:i") );
    11. $tpl->display();
    12. ?>
    Alles anzeigen


    die tpl´s werden fasst wie eine html datei gemacht aber ein bischen anders

    Footer.tpl

    HTML-Quellcode

    1. </body>
    2. </html>


    index.tpl

    PHP-Quellcode

    1. {include file="header.tpl"}
    2. {include file="footer.tpl"}


    header.tpl

    HTML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    3. <html>
    4. <head>
    5. <title>{$website_title} - {$start}</title>
    6. <meta http-equiv="Content-Type" content="text/xhtml; charset=ISO-8859-1" />
    7. </head>
    8. <body>


    §3: Edits

    //e:

    PHP-Quellcode

    1. <php
    2. $lang['EUERER_DATENSATZ'] = "Neuer Datensatz";
    3. ?>


    //e:
    Quellecode, Der Kommt eigentlich von: webmasterpro.de/coding/article…enes-template-system.html
    Dass was ich hab ist die abgewandelte version.
    Und dabei hat mir NurPech geholfen die Fehler raus zu tuhen.

    //e:
    dead ich hab mir dass da abgecodet und undso umgebaut dass da fast keine Fehler drine waren und wenn fehler drine waren hat mir NurPech geholfen und bedanke mich sehr bei ihn erhat mir sehr weiter geholfen.

    ich hoffe es hat euch gefallen ich bin für gute und schlechte kretiken immer offen.

    [M]it
    [F]reundlichen
    [G]rüßen
    HobbyCoder aka TaSuXuZe
    Homepage Content Message System Todolist:
    Spoiler anzeigen

    Teamspeak Viewer
    Admin System
    Member System
    Language Pack System
    Server Start/Stop Funktion(SAMP/Minecraft)
    Ein eingebautes User Control Panel(Aktivierbar)

    Unser Team sucht noch Mitglieder:
    Wollen sie mit machen und ein Supporter oder höher werden, dann besucht uns auf unseren Teamspeak³ Server.
    IP: theperfecthosting.de

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von HobbyCoder ()

  • Dass ist eigentlich auch ein smarty templates system aber nicht so stabil wie alle anderen,
    und dass ist auch dass eigentliche normale template von der template in der Version es kommt auch bald noch ein tutorial mit smarty noch dazu aber jetzt erst mal die Fortgeschrittener reihe weiter gehen und danach kommt die Smarty Reihe.
    Homepage Content Message System Todolist:
    Spoiler anzeigen

    Teamspeak Viewer
    Admin System
    Member System
    Language Pack System
    Server Start/Stop Funktion(SAMP/Minecraft)
    Ein eingebautes User Control Panel(Aktivierbar)

    Unser Team sucht noch Mitglieder:
    Wollen sie mit machen und ein Supporter oder höher werden, dann besucht uns auf unseren Teamspeak³ Server.
    IP: theperfecthosting.de
  • Wenn ihr noch was sagen wollt konnt ihr gern machen ich bin für alles offen.
    Homepage Content Message System Todolist:
    Spoiler anzeigen

    Teamspeak Viewer
    Admin System
    Member System
    Language Pack System
    Server Start/Stop Funktion(SAMP/Minecraft)
    Ein eingebautes User Control Panel(Aktivierbar)

    Unser Team sucht noch Mitglieder:
    Wollen sie mit machen und ein Supporter oder höher werden, dann besucht uns auf unseren Teamspeak³ Server.
    IP: theperfecthosting.de