diff options
| author | czaks <marcin@6irc.net> | 2013-11-11 21:54:35 +0100 |
|---|---|---|
| committer | czaks <marcin@6irc.net> | 2013-11-11 21:54:35 +0100 |
| commit | f5657caf24753ed7c25d56659ae8dfe79d48b99a (patch) | |
| tree | 989f1149070194f18f6250c851159dda813151fe /inc/lib/Twig/Extension | |
| parent | 0a58973631626879abeea4956b33cc2b56dea453 (diff) | |
| parent | 9fb63b053fbb552a2a8bbde1e230a8b73296fb6d (diff) | |
Merge branch 'master' of https://github.com/savetheinternet/Tinyboard into vichan-devel-4.5
Conflicts:
inc/config.php
install.php
post.php
stylesheets/style.css
Diffstat (limited to 'inc/lib/Twig/Extension')
| -rw-r--r-- | inc/lib/Twig/Extension/Core.php | 22 | ||||
| -rw-r--r-- | inc/lib/Twig/Extension/StringLoader.php | 12 |
2 files changed, 18 insertions, 16 deletions
diff --git a/inc/lib/Twig/Extension/Core.php b/inc/lib/Twig/Extension/Core.php index e68687b4..60fe1936 100644 --- a/inc/lib/Twig/Extension/Core.php +++ b/inc/lib/Twig/Extension/Core.php @@ -348,7 +348,7 @@ function twig_random(Twig_Environment $env, $values = null) return $values < 0 ? mt_rand($values, 0) : mt_rand(0, $values); } - if ($values instanceof Traversable) { + if (is_object($values) && $values instanceof Traversable) { $values = iterator_to_array($values); } elseif (is_string($values)) { if ('' === $values) { @@ -620,7 +620,7 @@ function twig_array_merge($arr1, $arr2) */ function twig_slice(Twig_Environment $env, $item, $start, $length = null, $preserveKeys = false) { - if ($item instanceof Traversable) { + if (is_object($item) && $item instanceof Traversable) { $item = iterator_to_array($item, false); } @@ -687,7 +687,7 @@ function twig_last(Twig_Environment $env, $item) */ function twig_join_filter($value, $glue = '') { - if ($value instanceof Traversable) { + if (is_object($value) && $value instanceof Traversable) { $value = iterator_to_array($value, false); } @@ -829,7 +829,7 @@ function twig_in_filter($value, $compare) } return false !== strpos($compare, (string) $value); - } elseif ($compare instanceof Traversable) { + } elseif (is_object($compare) && $compare instanceof Traversable) { return in_array($value, iterator_to_array($compare, false), is_object($value)); } @@ -1329,13 +1329,13 @@ function twig_constant($constant, $object = null) * * @param array $items An array of items * @param integer $size The size of the batch - * @param string $fill A string to fill missing items + * @param mixed $fill A value used to fill missing items * * @return array */ function twig_array_batch($items, $size, $fill = null) { - if ($items instanceof Traversable) { + if (is_object($items) && $items instanceof Traversable) { $items = iterator_to_array($items, false); } @@ -1345,10 +1345,12 @@ function twig_array_batch($items, $size, $fill = null) if (null !== $fill) { $last = count($result) - 1; - $result[$last] = array_merge( - $result[$last], - array_fill(0, $size - count($result[$last]), $fill) - ); + if ($fillCount = $size - count($result[$last])) { + $result[$last] = array_merge( + $result[$last], + array_fill(0, $fillCount, $fill) + ); + } } return $result; diff --git a/inc/lib/Twig/Extension/StringLoader.php b/inc/lib/Twig/Extension/StringLoader.php index 20f3f994..5e1a60d0 100644 --- a/inc/lib/Twig/Extension/StringLoader.php +++ b/inc/lib/Twig/Extension/StringLoader.php @@ -43,16 +43,16 @@ class Twig_Extension_StringLoader extends Twig_Extension */ function twig_template_from_string(Twig_Environment $env, $template) { - static $loader; + $name = sprintf('__string_template__%s', hash('sha256', uniqid(mt_rand(), true), false)); - if (null === $loader) { - $loader = new Twig_Loader_String(); - } + $loader = new Twig_Loader_Chain(array( + new Twig_Loader_Array(array($name => $template)), + $current = $env->getLoader(), + )); - $current = $env->getLoader(); $env->setLoader($loader); try { - $template = $env->loadTemplate($template); + $template = $env->loadTemplate($name); } catch (Exception $e) { $env->setLoader($current); |
