Commit Graph

182 Commits

Author SHA1 Message Date
Luke Lancaster
ace6b1a16b Uses break in switch statements for php 7.3 upgrade 2019-04-10 10:36:22 -05:00
mAAdhaTTah
a07d25d6a3 Fix context switching for mustache blocks
When you switch into a mustache block, an object shouldn't be iterated
over. Associative arrays are closer to objects than lists, so their
behavior should be more like objects.
2016-12-26 21:19:24 -05:00
mAAdhaTTah
c25b7ee150 Add conditional to check if section
This was causing an issue when the section name was also used as a
variable in the block. When walking back up the block to find the open
tag, because it only checked if the name matched, the parser would
see the variable usage as the opening block and drop the rest of the
block. This checks explicitly whether it's a section or inverted block
before doing the left/right trim logic.
2016-12-12 08:05:58 -05:00
André Glatzl
27e9e1c3b2
Improve extensibility of Template 2016-12-09 09:21:59 +01:00
behrooz shabani (everplays)
e5c03d3b01
properly pop the context for fn and inverse callbacks
fixes #160.
2016-11-16 21:52:19 +01:00
Behrooz Shabani
fe4e79ed83 Merge pull request #137 from stevejordan/if_unless_depth_correction
Updates if and unless helper behavior for handlebars 4
2016-07-31 12:16:29 +02:00
hamidr
86ebab9dba Merge remote-tracking branch 'origin/develop' 2016-07-31 14:30:53 +04:30
hfhchan
07d8542e3b Fix syntax error 2016-07-30 01:18:50 +08:00
hfhchan
402f970b77 Don't re-escape variables that are already safe 2016-07-28 18:06:50 +08:00
Maria Sormanova
3a25d9bf17 added versioning to prevent breaking existing projects 2016-07-26 10:43:18 +02:00
Maria Sormanova
51f8a3056b Implementation of TTL for caching 2016-07-25 16:14:39 +02:00
Steve Jordan
909df9ab58 Updates if and unless helper behavior for handlebars 4
handlebars.js 4.0.0 changed the depth behaviour when using the if and
unless conditionals - https://github.com/wycats/handlebars.js/issues/1028

This commit changes the handlebars.php helpers to match.
2015-10-26 11:48:28 +00:00
Christian Blanquera
08ad533e81 case for the right String Class
Not sure where i got StringWrapper from. We now don’t need to case for
this in the `registerHelper()` method
2015-09-26 20:03:52 +08:00
Christian Blanquera
08f4328f9d phpcs
files i made no changes to, but got cs errors on.. not sure why. Just
let me know what the protocol is for this one.
2015-09-21 20:23:20 +08:00
Christian Blanquera
0070ad79c0 phpcs approval
“oh the spacing!”
2015-09-21 18:49:08 +08:00
Christian Blanquera
33c76738b4 Added registerHelper
I did it in such a way where I’m not messing with the other methods or
classes to get what I wanted.

I realize that there maybe no need for the child context, however when
trying a permutation of

```
'fn' => function($data = null) use($context, $template) {
    $context->push($context->last());

    if(is_array($data)) {
   		$context->push($data);
   	}

    $template->setStopToken('else');
    $buffer = $template->render($context);
    $template->setStopToken(false);
    $template->discard($context);

    if(is_array($data)) {
   		$context->pop();
   	}

    $context->pop();

    return $buffer;
}
```
It didn’t parse the `../../../test` correctly in the test. I figured
that the ChildContext is a nice pattern overall and doesn’t interfere
with the rest of the package anyways…
2015-09-21 17:50:00 +08:00
Dmitriy Simushev
33ec96a1b4 Replace String class with StringWrapper one 2015-08-06 10:45:25 +00:00
Dmitriy Simushev
912cc286fa Fix exception message in Context::_findVariableInContext
Fixes #129
2015-07-14 18:03:01 +00:00
Dmitriy Simushev
10dbe6442e Merge pull request #127 from thormeier/partial-support-and-error-reporting
Fix handling of named arguments in partials
2015-06-30 21:02:40 +03:00
Pascal Thormeier
83199fbd65 Remove unnecessary if statement 2015-06-30 10:35:58 +02:00
Pascal Thormeier
2e1b67208d Fix handling of named arguments in partials
Also fix tests that weren't even executed
2015-06-29 17:16:59 +02:00
Dmitriy Simushev
f3067cb41a Merge pull request #121 from mmontagna/master
Fixes a incompatibility with handlebars.js
2015-06-23 23:46:56 +03:00
Pascal Thormeier
6ef6b7bc08 Remove last var_export statements
Got overlooked while refactoring
2015-06-19 11:43:58 +02:00
Pascal Thormeier
15af0f8e52 Remove var_export where unnecessary 2015-06-18 22:56:00 +02:00
Pascal Thormeier
9ebacc28ae Use Arguments class instead of regex 2015-06-17 23:57:12 +02:00
Pascal Thormeier
e1956be453 CS fixes 2015-06-17 16:11:50 +02:00
Pascal Thormeier
0111689f47 Fix and add tests
Also use var_export in exceptions in case array/object/etc get passed
2015-06-17 15:50:10 +02:00
Pascal Thormeier
a4b6f9627a Enable argument support in partials
Create own context if there are arguments and take values from context
where partial was rendered in. Also allow strings with `=` inside
arguments.
2015-06-17 14:19:57 +02:00
Pascal Thormeier
0a908fb6a1 Improve error reporting in case of exception
Make Exception messages more verbose
2015-06-17 14:18:32 +02:00
Martin Zeman
23076d68e5 Added support for class with __toString method as a context variable. 2015-06-07 23:09:14 +02:00
Marco Montagna
083458d839 Don't enforce strict search for variables in block exprs 2015-06-03 14:33:22 -07:00
Dmitriy Simushev
824ae885c6 Fix escaping of tags with multiple slashes 2015-06-01 15:15:52 +00:00
Dmitriy Simushev
04f963a21f Fix slashes mess in Tokenizer
See #113 for details
2015-05-19 13:22:15 +00:00
Dave Stein
6c9aa9573c FilesystemLoader: Updates to be more extendable
Directory setting can be overridden
The way a directory is sanitized can be overridden
The way options are handled can be overridden
2015-05-17 16:41:12 -04:00
Szijarto Tamas
bf327cdb24 APC cache improvement
- add cache key prefix
 - use success param at fetch
2015-05-11 21:35:14 +02:00
Thomas Seven
b65be0e1c5 Implementation + tests for the @root special variable like in handlebars-v2.0.0.js
fixed travis complaints
2015-03-10 13:42:10 +01:00
fzerorubigd
382938b82e
fix phpcs and also add mustache.php copyright notice 2015-01-29 22:28:38 +03:30
fzerorubigd
ccaa5b1d21 Merge branch 'master' of https://github.com/mai7star/handlebars.php 2015-01-29 22:20:16 +03:30
fzerorubigd
639c8e4b27
fix php cs also fixes #105 2015-01-29 22:18:26 +03:30
Thomas Seven
8eb24bd9e4 Fixed indentation and comments in the fix for #105 2015-01-29 12:06:21 +01:00
Thomas Seven
84b3031a44 Make the fix for #105 more elegant, using $template->parseArguments() 2015-01-29 11:59:14 +01:00
Thomas Seven
2b3d450849 Fixes and Tests for #105 2015-01-29 01:32:41 +01:00
mai7star
4bf343d122 add InlineLoader Class (import from Mustache PHP) 2015-01-26 13:54:22 +09:00
Jeff Turcotte
69d4efe259 Added custom template class option 2014-12-16 18:35:16 -05:00
Dmitriy Simushev
e8ce548b86 Add ability to merge Helpers collections 2014-12-12 12:25:21 +00:00
David Cramer
666e44beb5 Update Template.php
Update Template.php

added test case
2014-11-18 07:36:26 +02:00
Jeff Turcotte
9eb7f952d2 Added getCurrentTokenTree to get a token's tree within a helper 2014-11-10 15:05:34 -05:00
Dmitriy Simushev
19c78888ce Pass an instance of \Handlebars\Arguments to a helper 2014-09-20 08:59:45 +00:00
Dmitriy Simushev
e863d7af80 Make subexpressions play nice with context 2014-09-15 09:19:21 +00:00
Dmitriy Simushev
934566765e Treat integer helper arguments as literals 2014-09-10 12:31:23 +00:00