Template Parser Class Improvement |
[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
|