| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
To accomplish this, tag parameters can now be compiled, even if they
contain tags (the parser still doesn't allow this, but the compiler can now handle
this situation).
Also reformatted the code.
|
|
|
|
|
|
|
| |
* Undeclared $code variable fixed.
* "use ($mandatory_params)" only included, if the $mandatory_params
variable will be generated.
* Fixed $outputstack not being initialized correctly.
|
|
|
|
| |
Also now PHP doesn't throw notices here.
|
| |
|
|
|
|
|
|
| |
To reduce the ridiculous amount of notices PHP throws when parsing and
executing templates (should really be fixed in the future, this is
quite embarassing...).
|
| |
|
| |
|
|
|
|
| |
Now everything seems to work fine. The output code very noisy, though...
|
| |
|
| |
|
|
|
|
|
|
| |
* Parser::next fixed
* Parser::search_multi fixes (wrong variable, wrong offset added)
* fixed shortifopen and shortcompopen overwriting parser result.
|
|
|
|
|
|
|
|
|
| |
The previous parser relied on some obscure regular expressions which
probably could be tricked.
The new parser will also allow a more sane definition of the short tags
?{..|..|..} and ~{..|..|..}. Before these were a terrible hack...
All in all the goal of the rewrite is to produce a more robust parser.
|
|
|
|
| |
Grammar and spelling...
|
| |
|
|
|
|
|
|
|
|
|
| |
* <ste:escape> can now also convert line breaks to <br />, if parameter
lines is true.
* <ste:escape> now uses PHP's htmlspecialchars instead of htmlentities
since it only escapes the minimal neccessary chars which should work,
if encoding is handled correctly.
* Fixed 2 markup bugs in docu/language_definition.html
|
| |
|
|
|
|
|
|
|
| |
* ste:in_array checks, if a value is in an array
* ste:join joins an array with a glue string
* ste:split splits a string with a delimiter to an array
* ste:array_add adds an element to an array.
|
|
|
|
|
| |
* It did not return a reference.
* Some Tags from the standardlib used references in a wrong way.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* The exceptions RuntimeError, FatalRuntimeError, CantLoadTemplate and
CantSaveTemplate were introduced.
* RuntimeErrors are automatically catched by the template engine and
will be displayed instead of the tag, unless the parameter
$mute_runtime_errors was set to true.
* Missing tags will result either in a RuntimeError or, if
$fatal_error_on_missing_tag is true, in a FatalRuntimeError.
* The mktag-subcompiler and the standard library functions now use the
new exceptions.
* A bug, that threw away leading TextNodes if a comment or rawtext
pseudotag was parsed, is now fixed.
|
|
|
|
|
|
| |
* Very often the error offsets of parsing errors were too high.
* The offset to line translation now works cleaner and should no longer
throw PHP errors.
|
|
|
|
|
|
|
|
| |
* ste:get allows us to get a variable's content dynamically.
* (') was escaped for TextNodes, which resulted to:
\'
should have been:
'
|
| |
|
| |
|
|
|
|
| |
The template name was not included.
|
|
|
|
|
| |
If a tag parameter was empty, no string was created during
trancompilation. Resulted in a PHP parsing error.
|
|
|
|
| |
The current counter value was not set prorperly.
|
|
|
|
|
|
|
|
|
| |
* If there are unbalanced open/close Tags in the template, STE will now
tell you exactly which Tag was not closed properly (before: the first
opening tag during the current balaning check).
* It was not possible to access array fields dynamically, e.g. this:
$foo[$bar]
was not possible before. Now fixed.
|
|
|
|
|
|
|
| |
The result of this bug: every for-loop, where the step parameter could
be evaluated at compile time (i.e. only text) had step = 1.
Should have seen this in the example pages...
|
|
|
|
|
|
|
| |
Because strftime is more flexible: You can...
* ...put arbitrary text inside the format
* ...manipulate it by set the locale (i.e. set language-specific month
names etc.)
|
| |
|
| |
|
|
|
|
|
| |
Output PHP code is now *much* smaller. Should also be faster, because
not so many variable assignments are performed.
|
|
|
|
|
|
|
|
| |
* Error messages now include the name of the template and the line
where the error occurred.
* `instanceof Text` is no longer valid, must be `instanceof TextNode`.
* The Precompiler is now a own function.
* ste:if subcompiler fixed.
|
|
|
|
|
| |
Template "b" was not found, if "a" <ste:load>-ed it and both were in the
same, non-root directory. Now fixed.
|
|
|
|
|
|
| |
~{a|op|b}
Also updated the documentation and made unescape_text() a alias of
PHP's stripcslashes().
|
|
|
|
|
| |
Newlines and following whitespaces at the beginning of a TextNode will
be ignored now.
|
| |
|
| |
|
|
|