Welcome Guest, Not a member yet? Register   Sign In
Template Parser Class Improvement
#52

[eluser]GDmac - expocom[/eluser]
Hello all. I've made a mashup of the various versions in this thread
Template Parser Extended is attached to this post.
@dmyers, ignore and ignore_pre tags are added.

the parser_test.php controller has two fixme() tests.
<del>fixme1 shows a problem when a variable with the same name 'title' is stored before an array which also has an element named 'title'</del>.
fixme2 has to do with preg_match (which i know very little about). Stripping tags produces errors on javascript.

<del>Updated: version 0.4.1 attached.</del>
Updated: version 0.5.0 attached.)
- version 0.5.0 supports nested conditionals.

Please test, debug, audit. Hope it is usefull. Probably works in php5 only (can somebody test that?).

[pre] * Library: Extended Parser Class (2008-2010)
* Features: Parse templates, loaded as a view, and/or parse strings;
* Nested simple conditionals {if *}x{else}y{/if}.
* Nested conditionals (introduced in version 0.5.0);
* Array-element access; Successive same array usage;
* {Ignore} tag-pair protects a section from strip_vars but tags inside
* it are parsed. {Ignore_pre} is saved early on, and not parsed at all.
* You can use multiple ignore and ignore_pre tag-pairs.
* Tips: - Use Parse() to load a standard view with the php being processed.
* Parse_string() allows you, for instance, to build an email-message
* with simple template logic, or a partial view.
* - The cleanup unused tags option (strip_vars) is optional and should
* IMO be avoided. Better is to set all variables, be it empty. The parse
* will then automatically replace them with empties. Currently strip_vars
* generates a php error on various curly-brackets like inside javascript.
* For the time being, either protect javascript with ignore, or don't
* strip tags. Another reason to not strip_vars is, it also removes tags
* that might be in your data, like an article discussing parser {tags}.
* Version: 0.5.0
* Changes: 0.5.0 gdmac. nested conditionals. option (default) to convert
* delimiters inside data to hmtl-entities.
* 0.4.1 gdmac. fixme1 fixed, process all tag-pairs before singles.
* changed: remove ignore tags, even when strip_tags==false
* 0.4 gdmac. Mashup of parser versions, ignore tag, extra code and debug
* 0.3 rafsoaken. cleanup, test-suite, parse, array, booleans etc.
* 0.2 isaiahdw. conditionals
* 0.1 adamp1. cleanup unused tags and tag-pairs
* Todo: - To get this going, we need some nice documentation with it
* - set_options and better error-reporting and handling (malformed tags).
* - fix for stripping tags on curly brackets like in javascript
* - option to check for empty (next to isset)
* - conditional combinations {if {is_admin}==1 AND {username}==Tim}
* - general optimization and debugging
*
* Install: Put in /application/libraries/ as parser.php instead as MY_parser.php
* Since most methods of the class changed, it made sense to not extend
* the default parser anymore.
*
* Discuss: http://ellislab.com/forums/viewthread/68878/P45/
*
* usage: See the parser_test controller for some examples

[/pre]


Messages In This Thread
Template Parser Class Improvement - by El Forum - 01-14-2008, 01:24 PM
Template Parser Class Improvement - by El Forum - 01-14-2008, 01:29 PM
Template Parser Class Improvement - by El Forum - 01-14-2008, 02:15 PM
Template Parser Class Improvement - by El Forum - 01-14-2008, 04:47 PM
Template Parser Class Improvement - by El Forum - 01-14-2008, 05:08 PM
Template Parser Class Improvement - by El Forum - 01-15-2008, 05:16 AM
Template Parser Class Improvement - by El Forum - 01-18-2008, 06:14 AM
Template Parser Class Improvement - by El Forum - 01-18-2008, 07:59 AM
Template Parser Class Improvement - by El Forum - 01-19-2008, 03:12 AM
Template Parser Class Improvement - by El Forum - 01-20-2008, 03:59 PM
Template Parser Class Improvement - by El Forum - 01-20-2008, 04:30 PM
Template Parser Class Improvement - by El Forum - 01-20-2008, 05:07 PM
Template Parser Class Improvement - by El Forum - 01-20-2008, 05:22 PM
Template Parser Class Improvement - by El Forum - 01-20-2008, 05:32 PM
Template Parser Class Improvement - by El Forum - 01-20-2008, 05:55 PM
Template Parser Class Improvement - by El Forum - 01-20-2008, 07:04 PM
Template Parser Class Improvement - by El Forum - 01-21-2008, 03:48 AM
Template Parser Class Improvement - by El Forum - 01-21-2008, 09:37 AM
Template Parser Class Improvement - by El Forum - 02-18-2008, 10:58 PM
Template Parser Class Improvement - by El Forum - 02-18-2008, 11:08 PM
Template Parser Class Improvement - by El Forum - 02-19-2008, 12:05 AM
Template Parser Class Improvement - by El Forum - 02-19-2008, 12:23 AM
Template Parser Class Improvement - by El Forum - 03-14-2008, 08:26 AM
Template Parser Class Improvement - by El Forum - 03-14-2008, 09:50 AM
Template Parser Class Improvement - by El Forum - 03-14-2008, 09:51 AM
Template Parser Class Improvement - by El Forum - 03-14-2008, 06:01 PM
Template Parser Class Improvement - by El Forum - 05-05-2008, 05:45 AM
Template Parser Class Improvement - by El Forum - 05-05-2008, 05:59 AM
Template Parser Class Improvement - by El Forum - 05-05-2008, 06:02 AM
Template Parser Class Improvement - by El Forum - 05-05-2008, 06:36 AM
Template Parser Class Improvement - by El Forum - 05-05-2008, 06:53 AM
Template Parser Class Improvement - by El Forum - 05-05-2008, 06:55 AM
Template Parser Class Improvement - by El Forum - 05-06-2008, 04:01 AM
Template Parser Class Improvement - by El Forum - 05-06-2008, 04:14 AM
Template Parser Class Improvement - by El Forum - 05-06-2008, 04:25 AM
Template Parser Class Improvement - by El Forum - 05-06-2008, 05:15 AM
Template Parser Class Improvement - by El Forum - 05-06-2008, 09:58 AM
Template Parser Class Improvement - by El Forum - 05-06-2008, 10:10 AM
Template Parser Class Improvement - by El Forum - 05-06-2008, 11:34 AM
Template Parser Class Improvement - by El Forum - 05-07-2008, 10:55 AM
Template Parser Class Improvement - by El Forum - 05-07-2008, 11:08 AM
Template Parser Class Improvement - by El Forum - 05-07-2008, 11:26 AM
Template Parser Class Improvement - by El Forum - 05-25-2008, 09:24 AM
Template Parser Class Improvement - by El Forum - 05-25-2008, 09:32 AM
Template Parser Class Improvement - by El Forum - 05-25-2008, 01:11 PM
Template Parser Class Improvement - by El Forum - 05-29-2008, 02:19 PM
Template Parser Class Improvement - by El Forum - 06-22-2008, 12:00 AM
Template Parser Class Improvement - by El Forum - 08-15-2008, 10:44 PM
Template Parser Class Improvement - by El Forum - 08-16-2008, 07:26 AM
Template Parser Class Improvement - by El Forum - 08-16-2008, 07:39 AM
Template Parser Class Improvement - by El Forum - 11-10-2009, 02:29 PM
Template Parser Class Improvement - by El Forum - 05-01-2010, 01:23 PM
Template Parser Class Improvement - by El Forum - 05-03-2010, 06:57 PM
Template Parser Class Improvement - by El Forum - 06-02-2010, 02:18 PM
Template Parser Class Improvement - by El Forum - 10-26-2010, 12:12 PM
Template Parser Class Improvement - by El Forum - 10-27-2010, 12:02 AM
Template Parser Class Improvement - by El Forum - 10-27-2010, 08:49 AM
Template Parser Class Improvement - by El Forum - 01-14-2011, 02:00 PM
Template Parser Class Improvement - by El Forum - 03-09-2011, 02:25 AM
Template Parser Class Improvement - by El Forum - 03-25-2011, 12:52 AM
Template Parser Class Improvement - by El Forum - 04-03-2011, 10:06 AM
Template Parser Class Improvement - by El Forum - 04-06-2011, 01:43 AM
Template Parser Class Improvement - by El Forum - 04-06-2011, 06:18 AM
Template Parser Class Improvement - by El Forum - 04-06-2011, 09:08 AM
Template Parser Class Improvement - by El Forum - 04-06-2011, 09:42 AM
Template Parser Class Improvement - by El Forum - 04-06-2011, 10:25 AM
Template Parser Class Improvement - by El Forum - 04-06-2011, 10:41 AM
Template Parser Class Improvement - by El Forum - 04-09-2011, 03:00 AM
Template Parser Class Improvement - by El Forum - 04-09-2011, 07:23 AM
Template Parser Class Improvement - by El Forum - 07-22-2011, 05:45 AM
Template Parser Class Improvement - by El Forum - 02-23-2012, 06:08 AM
Template Parser Class Improvement - by El Forum - 02-23-2012, 04:48 PM
Template Parser Class Improvement - by El Forum - 02-28-2012, 04:00 AM
Template Parser Class Improvement - by El Forum - 03-20-2012, 03:03 AM
Template Parser Class Improvement - by El Forum - 04-05-2012, 08:40 AM
Template Parser Class Improvement - by El Forum - 09-12-2012, 02:13 PM
Template Parser Class Improvement - by El Forum - 10-22-2012, 04:56 PM
Template Parser Class Improvement - by El Forum - 10-22-2012, 06:03 PM
Template Parser Class Improvement - by El Forum - 12-03-2012, 05:44 AM
Template Parser Class Improvement - by El Forum - 06-27-2014, 12:04 AM
Template Parser Class Improvement - by El Forum - 06-29-2014, 09:10 AM



Theme © iAndrew 2016 - Forum software by © MyBB