TEMPLATE specification » History » Version 11
Werner Klinger, 01/05/2010 10:01 AM
| 1 | 1 | Redmine Admin | h1. TEMPLATE specification |
|---|---|---|---|
| 2 | 1 | Redmine Admin | |
| 3 | 1 | Redmine Admin | This is a new specification for a simple template format: raw HTML containing placeholders. |
| 4 | 1 | Redmine Admin | |
| 5 | 2 | Redmine Admin | This template specification provides no looping capability. However, using the *part template*, it is possible to repeat a template section. |
| 6 | 1 | Redmine Admin | |
| 7 | 11 | Werner Klinger | NOTE: this is *not* another template engine, it is solely a template specification, with a shared definition of template rules and keywords. |
| 8 | 11 | Werner Klinger | |
| 9 | 11 | Werner Klinger | Useful links: |
| 10 | 11 | Werner Klinger | * http://www.broculos.net/tutorials/how_to_make_a_simple_html_template_engine_in_php/20080315/en |
| 11 | 11 | Werner Klinger | * http://articles.sitepoint.com/article/beyond-template-engine |
| 12 | 11 | Werner Klinger | * http://fabien.potencier.org/article/34/templating-engines-in-php |
| 13 | 11 | Werner Klinger | * http://www.livexp.net/technology/php/top-25-php-template-engines.html |
| 14 | 11 | Werner Klinger | * http://nicolas.desaleux.fr/index.php?post/2009/10/21/ND_Template-:-Un-moteur-de-template |
| 15 | 11 | Werner Klinger | |
| 16 | 1 | Redmine Admin | h2. Full versus part template |
| 17 | 1 | Redmine Admin | |
| 18 | 1 | Redmine Admin | h3. Full template |
| 19 | 1 | Redmine Admin | |
| 20 | 1 | Redmine Admin | In case of a full template, the template file is a valid HTML file, including HTML, HEAD and BODY directives. |
| 21 | 1 | Redmine Admin | |
| 22 | 1 | Redmine Admin | h3. Partial template |
| 23 | 1 | Redmine Admin | |
| 24 | 1 | Redmine Admin | Partial template is made of HTML code, excluding any of the HTML, HEAD, BODY directives. |
| 25 | 1 | Redmine Admin | |
| 26 | 1 | Redmine Admin | h2. Place holders and reserved keywords |
| 27 | 1 | Redmine Admin | |
| 28 | 1 | Redmine Admin | h3. syntax |
| 29 | 1 | Redmine Admin | |
| 30 | 1 | Redmine Admin | Placeholders and reserved keywords are delimited within template by '%' (percent) sign surrounding keyword:<pre>Here will the %placeholder% be replaced.</pre> |
| 31 | 7 | Werner Klinger | Werner: Placeholder choice to be discussed here (include your first name when adding comment here). |
| 32 | 10 | Werner Klinger | |
| 33 | 1 | Redmine Admin | |
| 34 | 1 | Redmine Admin | h3. Rules |
| 35 | 1 | Redmine Admin | |
| 36 | 5 | Werner Klinger | Placeholders and reserved keywords are made of any characters from within [a-z], [A-Z], [0-9], '-' (dash) and '_' (underscore), and are case intolerant: _ABC_ and _abc_ designate the same placeholder, but _%ABC%_ may not be replaced properly if match is against _%abc%_. Indeed, performing a case insensitive search/replace is resources consuming. |
| 37 | 1 | Redmine Admin | |
| 38 | 1 | Redmine Admin | h3. Reserved keywords |
| 39 | 1 | Redmine Admin | |
| 40 | 1 | Redmine Admin | Some Placeholders are reserved for futur usage. |
| 41 | 1 | Redmine Admin | |
| 42 | 2 | Redmine Admin | * *include* |
| 43 | 1 | Redmine Admin | * do |
| 44 | 1 | Redmine Admin | * loop |
| 45 | 1 | Redmine Admin | * while |
| 46 | 1 | Redmine Admin | * repeat |
| 47 | 1 | Redmine Admin | * break |
| 48 | 1 | Redmine Admin | * exit |
| 49 | 3 | Werner Klinger | * _any string starting with tpl_ |
| 50 | 3 | Werner Klinger | |
| 51 | 3 | Werner Klinger | h3. Pre-allocated placeholders |
| 52 | 3 | Werner Klinger | |
| 53 | 3 | Werner Klinger | Some Placeholders have a predefined role. Sharing this roles amoung templates users is the main purpose of this specification. |
| 54 | 3 | Werner Klinger | |
| 55 | 3 | Werner Klinger | * page_title |
| 56 | 3 | Werner Klinger | page title for the TITLE directive |
| 57 | 3 | Werner Klinger | * title |
| 58 | 3 | Werner Klinger | Page main title for the H1 directive |
| 59 | 3 | Werner Klinger | * subtitle |
| 60 | 3 | Werner Klinger | Page subtitle, for wordpress like template (title/subtitle in header) |
| 61 | 3 | Werner Klinger | * content |
| 62 | 3 | Werner Klinger | main page content, usually made of a huge amount of text. |
| 63 | 3 | Werner Klinger | * footer |
| 64 | 3 | Werner Klinger | content for the footer area. |
| 65 | 3 | Werner Klinger | * breadcrumb |
| 66 | 3 | Werner Klinger | Breadcrumb line |
| 67 | 4 | Werner Klinger | * menu |
| 68 | 4 | Werner Klinger | main menu, usually vertical left |
| 69 | 4 | Werner Klinger | * nav |
| 70 | 4 | Werner Klinger | navigation menu, usually horizontal in upper area |
| 71 | 2 | Redmine Admin | |
| 72 | 2 | Redmine Admin | h2. Using a template |
| 73 | 2 | Redmine Admin | |
| 74 | 2 | Redmine Admin | Using such a template in PHP is as easy as: |
| 75 | 2 | Redmine Admin | <pre> |
| 76 | 2 | Redmine Admin | |
| 77 | 2 | Redmine Admin | </pre> |