aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--composer.json2
-rw-r--r--composer.lock29
-rw-r--r--vendor/composer/autoload_classmap.php4
-rw-r--r--vendor/composer/autoload_files.php2
-rw-r--r--vendor/composer/autoload_static.php6
-rw-r--r--vendor/composer/installed.json29
-rw-r--r--vendor/composer/installed.php10
-rw-r--r--vendor/smarty/smarty/CHANGELOG.md59
-rw-r--r--vendor/smarty/smarty/COMPOSER_RELEASE_NOTES.txt31
-rw-r--r--vendor/smarty/smarty/INHERITANCE_RELEASE_NOTES.txt91
-rw-r--r--vendor/smarty/smarty/NEW_FEATURES.txt291
-rw-r--r--vendor/smarty/smarty/README575
-rw-r--r--vendor/smarty/smarty/README.md82
-rw-r--r--vendor/smarty/smarty/SMARTY_2_BC_NOTES.txt109
-rw-r--r--vendor/smarty/smarty/SMARTY_3.0_BC_NOTES.txt24
-rw-r--r--vendor/smarty/smarty/SMARTY_3.1_NOTES.txt306
-rw-r--r--vendor/smarty/smarty/composer.json15
-rw-r--r--vendor/smarty/smarty/expectException0
-rw-r--r--vendor/smarty/smarty/lexer/smarty_internal_templatelexer.plex10
-rw-r--r--vendor/smarty/smarty/lexer/smarty_internal_templateparser.y14
-rw-r--r--vendor/smarty/smarty/libs/Autoloader.php8
-rw-r--r--vendor/smarty/smarty/libs/Smarty.class.php87
-rw-r--r--vendor/smarty/smarty/libs/SmartyBC.class.php477
-rw-r--r--vendor/smarty/smarty/libs/plugins/block.textformat.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.counter.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.cycle.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.fetch.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.html_checkboxes.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.html_image.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.html_options.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.html_radios.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.html_select_date.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.html_select_time.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.html_table.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.mailto.php13
-rw-r--r--vendor/smarty/smarty/libs/plugins/function.math.php34
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifier.date_format.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifier.escape.php14
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifier.mb_wordwrap.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifier.regex_replace.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifier.replace.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifier.spacify.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifier.truncate.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.cat.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.count_characters.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.count_paragraphs.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.count_sentences.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.count_words.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.default.php4
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.escape.php10
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.indent.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.lower.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.string_format.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.strip.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.strip_tags.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.upper.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifiercompiler.wordwrap.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/outputfilter.trimwhitespace.php2
-rw-r--r--vendor/smarty/smarty/libs/plugins/shared.escape_special_chars.php8
-rw-r--r--vendor/smarty/smarty/libs/plugins/shared.mb_str_replace.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_cacheresource_file.php8
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_for.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_foreach.php4
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_function.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_include_php.php110
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_insert.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_php.php253
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_config_file_compiler.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_data.php24
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_errorhandler.php117
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_append.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_appendbyref.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallassign.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallcache.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearassign.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcache.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcompiledtemplate.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearconfig.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_configload.php4
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_createdata.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getconfigvars.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getregisteredobject.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettags.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettemplatevars.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_loadfilter.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registercacheresource.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerclass.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerfilter.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerobject.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerplugin.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerresource.php15
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unloadfilter.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregistercacheresource.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterfilter.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterobject.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterplugin.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterresource.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_template.php138
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_text.php34
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_registered.php101
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_stream.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_codeframe.php2
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php25
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php58
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatelexer.php614
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php5249
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_internal_testinstall.php4
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_resource.php4
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smarty_security.php13
-rw-r--r--vendor/smarty/smarty/libs/sysplugins/smartycompilerexception.php10
111 files changed, 3041 insertions, 6214 deletions
diff --git a/composer.json b/composer.json
index 868ee5fce..1e7e0d35a 100644
--- a/composer.json
+++ b/composer.json
@@ -41,7 +41,7 @@
"pear/text_languagedetect": "^1.0",
"commerceguys/intl": "~1.1.0",
"lukasreschke/id3parser": "^0.0.3",
- "smarty/smarty": "~3.1",
+ "smarty/smarty": "^4.1",
"ramsey/uuid": "^4.1",
"twbs/bootstrap": "^5.0.1",
"blueimp/jquery-file-upload": "^10.3",
diff --git a/composer.lock b/composer.lock
index be0db758b..469c2869c 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "42ed33170ee08f16ca173e0f21dc65e5",
+ "content-hash": "18740ab340a3b2852f6b96f2f85135bb",
"packages": [
{
"name": "blueimp/jquery-file-upload",
@@ -1494,29 +1494,29 @@
},
{
"name": "smarty/smarty",
- "version": "v3.1.39",
+ "version": "v4.1.0",
"source": {
"type": "git",
"url": "https://github.com/smarty-php/smarty.git",
- "reference": "e27da524f7bcd7361e3ea5cdfa99c4378a7b5419"
+ "reference": "9e0536de18b53ba193364291ef0303b0ab9903e1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/smarty-php/smarty/zipball/e27da524f7bcd7361e3ea5cdfa99c4378a7b5419",
- "reference": "e27da524f7bcd7361e3ea5cdfa99c4378a7b5419",
+ "url": "https://api.github.com/repos/smarty-php/smarty/zipball/9e0536de18b53ba193364291ef0303b0ab9903e1",
+ "reference": "9e0536de18b53ba193364291ef0303b0ab9903e1",
"shasum": ""
},
"require": {
- "php": ">=5.2"
+ "php": "^7.1 || ^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^7.5 || ^6.5 || ^5.7 || ^4.8",
+ "phpunit/phpunit": "^8.5 || ^7.5",
"smarty/smarty-lexer": "^3.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1.x-dev"
+ "dev-master": "4.0.x-dev"
}
},
"autoload": {
@@ -1540,20 +1540,23 @@
{
"name": "Rodney Rehm",
"email": "rodney.rehm@medialize.de"
+ },
+ {
+ "name": "Simon Wisselink",
+ "homepage": "https://www.iwink.nl/"
}
],
"description": "Smarty - the compiling PHP template engine",
- "homepage": "http://www.smarty.net",
+ "homepage": "https://smarty-php.github.io/smarty/",
"keywords": [
"templating"
],
"support": {
- "forum": "http://www.smarty.net/forums/",
- "irc": "irc://irc.freenode.org/smarty",
+ "forum": "https://github.com/smarty-php/smarty/discussions",
"issues": "https://github.com/smarty-php/smarty/issues",
- "source": "https://github.com/smarty-php/smarty/tree/v3.1.39"
+ "source": "https://github.com/smarty-php/smarty/tree/v4.1.0"
},
- "time": "2021-02-17T21:57:51+00:00"
+ "time": "2022-02-06T20:34:27+00:00"
},
{
"name": "symfony/polyfill-ctype",
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 0f82ca0bd..e78e4dab7 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -911,7 +911,6 @@ return array(
'SimplePie_XML_Declaration_Parser' => $vendorDir . '/simplepie/simplepie/library/SimplePie/XML/Declaration/Parser.php',
'SimplePie_gzdecode' => $vendorDir . '/simplepie/simplepie/library/SimplePie/gzdecode.php',
'Smarty' => $vendorDir . '/smarty/smarty/libs/Smarty.class.php',
- 'SmartyBC' => $vendorDir . '/smarty/smarty/libs/SmartyBC.class.php',
'SmartyCompilerException' => $vendorDir . '/smarty/smarty/libs/sysplugins/smartycompilerexception.php',
'SmartyException' => $vendorDir . '/smarty/smarty/libs/sysplugins/smartyexception.php',
'Smarty_Autoloader' => $vendorDir . '/smarty/smarty/libs/Autoloader.php',
@@ -951,7 +950,6 @@ return array(
'Smarty_Internal_Compile_If' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_if.php',
'Smarty_Internal_Compile_Ifclose' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_if.php',
'Smarty_Internal_Compile_Include' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_include.php',
- 'Smarty_Internal_Compile_Include_Php' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_include_php.php',
'Smarty_Internal_Compile_Insert' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_insert.php',
'Smarty_Internal_Compile_Ldelim' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_ldelim.php',
'Smarty_Internal_Compile_Make_Nocache' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_make_nocache.php',
@@ -964,7 +962,6 @@ return array(
'Smarty_Internal_Compile_Private_Modifier' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php',
'Smarty_Internal_Compile_Private_Object_Block_Function' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_object_block_function.php',
'Smarty_Internal_Compile_Private_Object_Function' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php',
- 'Smarty_Internal_Compile_Private_Php' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_php.php',
'Smarty_Internal_Compile_Private_Print_Expression' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php',
'Smarty_Internal_Compile_Private_Registered_Block' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_registered_block.php',
'Smarty_Internal_Compile_Private_Registered_Function' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php',
@@ -1045,7 +1042,6 @@ return array(
'Smarty_Internal_Resource_Extends' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_extends.php',
'Smarty_Internal_Resource_File' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_file.php',
'Smarty_Internal_Resource_Php' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_php.php',
- 'Smarty_Internal_Resource_Registered' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_registered.php',
'Smarty_Internal_Resource_Stream' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_stream.php',
'Smarty_Internal_Resource_String' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_string.php',
'Smarty_Internal_Runtime_CacheModify' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_runtime_cachemodify.php',
diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php
index f0c542359..9f126fa7e 100644
--- a/vendor/composer/autoload_files.php
+++ b/vendor/composer/autoload_files.php
@@ -14,8 +14,8 @@ return array(
'93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php',
'23c18046f52bef3eea034657bafda50f' => $vendorDir . '/symfony/polyfill-php81/bootstrap.php',
'ebdb698ed4152ae445614b69b5e4bb6a' => $vendorDir . '/sabre/http/lib/functions.php',
- 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
+ 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
'2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
'decc78cc4436b1292c6c0d151b19445c' => $vendorDir . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
'e39a8b23c42d4e1452234d762b03835a' => $vendorDir . '/ramsey/uuid/src/functions.php',
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index d2afb69a9..6144b4ff9 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -15,8 +15,8 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'93aa591bc4ca510c520999e34229ee79' => __DIR__ . '/..' . '/sabre/xml/lib/Serializer/functions.php',
'23c18046f52bef3eea034657bafda50f' => __DIR__ . '/..' . '/symfony/polyfill-php81/bootstrap.php',
'ebdb698ed4152ae445614b69b5e4bb6a' => __DIR__ . '/..' . '/sabre/http/lib/functions.php',
- 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
+ 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
'2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
'e39a8b23c42d4e1452234d762b03835a' => __DIR__ . '/..' . '/ramsey/uuid/src/functions.php',
@@ -1129,7 +1129,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'SimplePie_XML_Declaration_Parser' => __DIR__ . '/..' . '/simplepie/simplepie/library/SimplePie/XML/Declaration/Parser.php',
'SimplePie_gzdecode' => __DIR__ . '/..' . '/simplepie/simplepie/library/SimplePie/gzdecode.php',
'Smarty' => __DIR__ . '/..' . '/smarty/smarty/libs/Smarty.class.php',
- 'SmartyBC' => __DIR__ . '/..' . '/smarty/smarty/libs/SmartyBC.class.php',
'SmartyCompilerException' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smartycompilerexception.php',
'SmartyException' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smartyexception.php',
'Smarty_Autoloader' => __DIR__ . '/..' . '/smarty/smarty/libs/Autoloader.php',
@@ -1169,7 +1168,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Smarty_Internal_Compile_If' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_if.php',
'Smarty_Internal_Compile_Ifclose' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_if.php',
'Smarty_Internal_Compile_Include' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_include.php',
- 'Smarty_Internal_Compile_Include_Php' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_include_php.php',
'Smarty_Internal_Compile_Insert' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_insert.php',
'Smarty_Internal_Compile_Ldelim' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_ldelim.php',
'Smarty_Internal_Compile_Make_Nocache' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_make_nocache.php',
@@ -1182,7 +1180,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Smarty_Internal_Compile_Private_Modifier' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php',
'Smarty_Internal_Compile_Private_Object_Block_Function' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_object_block_function.php',
'Smarty_Internal_Compile_Private_Object_Function' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php',
- 'Smarty_Internal_Compile_Private_Php' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_php.php',
'Smarty_Internal_Compile_Private_Print_Expression' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php',
'Smarty_Internal_Compile_Private_Registered_Block' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_registered_block.php',
'Smarty_Internal_Compile_Private_Registered_Function' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php',
@@ -1263,7 +1260,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Smarty_Internal_Resource_Extends' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_extends.php',
'Smarty_Internal_Resource_File' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_file.php',
'Smarty_Internal_Resource_Php' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_php.php',
- 'Smarty_Internal_Resource_Registered' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_registered.php',
'Smarty_Internal_Resource_Stream' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_stream.php',
'Smarty_Internal_Resource_String' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_resource_string.php',
'Smarty_Internal_Runtime_CacheModify' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_runtime_cachemodify.php',
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 7636f75d7..4a32ee7c8 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1542,31 +1542,31 @@
},
{
"name": "smarty/smarty",
- "version": "v3.1.39",
- "version_normalized": "3.1.39.0",
+ "version": "v4.1.0",
+ "version_normalized": "4.1.0.0",
"source": {
"type": "git",
"url": "https://github.com/smarty-php/smarty.git",
- "reference": "e27da524f7bcd7361e3ea5cdfa99c4378a7b5419"
+ "reference": "9e0536de18b53ba193364291ef0303b0ab9903e1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/smarty-php/smarty/zipball/e27da524f7bcd7361e3ea5cdfa99c4378a7b5419",
- "reference": "e27da524f7bcd7361e3ea5cdfa99c4378a7b5419",
+ "url": "https://api.github.com/repos/smarty-php/smarty/zipball/9e0536de18b53ba193364291ef0303b0ab9903e1",
+ "reference": "9e0536de18b53ba193364291ef0303b0ab9903e1",
"shasum": ""
},
"require": {
- "php": ">=5.2"
+ "php": "^7.1 || ^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^7.5 || ^6.5 || ^5.7 || ^4.8",
+ "phpunit/phpunit": "^8.5 || ^7.5",
"smarty/smarty-lexer": "^3.1"
},
- "time": "2021-02-17T21:57:51+00:00",
+ "time": "2022-02-06T20:34:27+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1.x-dev"
+ "dev-master": "4.0.x-dev"
}
},
"installation-source": "dist",
@@ -1591,18 +1591,21 @@
{
"name": "Rodney Rehm",
"email": "rodney.rehm@medialize.de"
+ },
+ {
+ "name": "Simon Wisselink",
+ "homepage": "https://www.iwink.nl/"
}
],
"description": "Smarty - the compiling PHP template engine",
- "homepage": "http://www.smarty.net",
+ "homepage": "https://smarty-php.github.io/smarty/",
"keywords": [
"templating"
],
"support": {
- "forum": "http://www.smarty.net/forums/",
- "irc": "irc://irc.freenode.org/smarty",
+ "forum": "https://github.com/smarty-php/smarty/discussions",
"issues": "https://github.com/smarty-php/smarty/issues",
- "source": "https://github.com/smarty-php/smarty/tree/v3.1.39"
+ "source": "https://github.com/smarty-php/smarty/tree/v4.1.0"
},
"install-path": "../smarty/smarty"
},
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
index bab051829..2b484c0f0 100644
--- a/vendor/composer/installed.php
+++ b/vendor/composer/installed.php
@@ -5,7 +5,7 @@
'type' => 'application',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
- 'reference' => 'e74359fcfe4d97efe72a811b45526a69edae3893',
+ 'reference' => '5468de2c6ad5187cd51201cda929c3e54cc2938f',
'name' => 'zotlabs/hubzilla',
'dev' => false,
),
@@ -215,12 +215,12 @@
'dev_requirement' => false,
),
'smarty/smarty' => array(
- 'pretty_version' => 'v3.1.39',
- 'version' => '3.1.39.0',
+ 'pretty_version' => 'v4.1.0',
+ 'version' => '4.1.0.0',
'type' => 'library',
'install_path' => __DIR__ . '/../smarty/smarty',
'aliases' => array(),
- 'reference' => 'e27da524f7bcd7361e3ea5cdfa99c4378a7b5419',
+ 'reference' => '9e0536de18b53ba193364291ef0303b0ab9903e1',
'dev_requirement' => false,
),
'symfony/polyfill-ctype' => array(
@@ -289,7 +289,7 @@
'type' => 'application',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
- 'reference' => 'e74359fcfe4d97efe72a811b45526a69edae3893',
+ 'reference' => '5468de2c6ad5187cd51201cda929c3e54cc2938f',
'dev_requirement' => false,
),
),
diff --git a/vendor/smarty/smarty/CHANGELOG.md b/vendor/smarty/smarty/CHANGELOG.md
index e3bb93a4f..39e834837 100644
--- a/vendor/smarty/smarty/CHANGELOG.md
+++ b/vendor/smarty/smarty/CHANGELOG.md
@@ -6,11 +6,66 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [4.1.0] - 2022-02-06
+
+### Added
+- PHP8.1 compatibility [#713](https://github.com/smarty-php/smarty/pull/713)
+
+## [4.0.4] - 2022-01-18
+
+### Fixed
+- Fixed illegal characters bug in math function security check [#702](https://github.com/smarty-php/smarty/issues/702)
+
+## [4.0.3] - 2022-01-10
+
+### Security
+- Prevent evasion of the `static_classes` security policy. This addresses CVE-2021-21408
+
+## [4.0.2] - 2022-01-10
+
+### Security
+- Prevent arbitrary PHP code execution through maliciously crafted expression for the math function. This addresses CVE-2021-29454
+
+## [4.0.1] - 2022-01-09
+
+### Security
+- Rewrote the mailto function to not use `eval` when encoding with javascript
+
+## [4.0.0] - 2021-11-25
+
+## [4.0.0-rc.0] - 2021-10-13
+
+### Added
+- You can now use `$smarty->muteUndefinedOrNullWarnings()` to activate convert warnings about undefined or null template vars to notices when running PHP8
+
+### Changed
+- Switch CI from Travis to Github CI
+- Updated unit tests to avoid skipped and risky test warnings
+
+### Removed
+- Dropped support for PHP7.0 and below, so Smarty now requires PHP >=7.1
+- Dropped support for php asp tags in templates (removed from php since php7.0)
+- Dropped deprecated API calls that where only accessible through SmartyBC
+- Dropped support for {php} and {include_php} tags and embedded PHP in templates. Embedded PHP will now be passed through as is.
+- Removed all PHP_VERSION_ID and compare_version checks and conditional code blocks that are now no longer required
+- Dropped deprecated SMARTY_RESOURCE_CHAR_SET and SMARTY_RESOURCE_DATE_FORMAT constants
+- Dropped deprecated Smarty::muteExpectedErrors and Smarty::unmuteExpectedErrors API methods
+- Dropped deprecated $smarty->getVariable() method. Use $smarty->getTemplateVars() instead.
+- $smarty->registerResource() no longer accepts an array of callback functions
+
+## [3.1.40] - 2021-10-13
+
+### Changed
+- modifier escape now triggers a E_USER_NOTICE when an unsupported escape type is used https://github.com/smarty-php/smarty/pull/649
+
+### Security
+- More advanced javascript escaping to handle https://html.spec.whatwg.org/multipage/scripting.html#restrictions-for-contents-of-script-elements thanks to m-haritonov
+
## [3.1.39] - 2021-02-17
### Security
-- Prevent access to `$smarty.template_object` in sandbox mode
-- Fixed code injection vulnerability by using illegal function names in `{function name='blah'}{/function}`
+- Prevent access to `$smarty.template_object` in sandbox mode. This addresses CVE-2021-26119.
+- Fixed code injection vulnerability by using illegal function names in `{function name='blah'}{/function}`. This addresses CVE-2021-26120.
## [3.1.38] - 2021-01-08
diff --git a/vendor/smarty/smarty/COMPOSER_RELEASE_NOTES.txt b/vendor/smarty/smarty/COMPOSER_RELEASE_NOTES.txt
deleted file mode 100644
index 0644719c9..000000000
--- a/vendor/smarty/smarty/COMPOSER_RELEASE_NOTES.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-Starting with Smarty 3.1.21 Composer has been configured to load the packages from github.
-
-*******************************************************************************
-* *
-* NOTE: Because of this change you must clear your local composer cache with *
-* the "composer clearcache" command *
-* *
-*******************************************************************************
-
-To get the latest stable version use
- "require": {
- "smarty/smarty": "~3.1"
- }
-in your composer.json file.
-
-To get the trunk version use
- "require": {
- "smarty/smarty": "~3.1@dev"
- }
-
-The "smarty/smarty" package will start at libs/.... subfolder.
-
-To retrieve the development and documentation folders add
- "require-dev": {
- "smarty/smarty-dev": "~3.1@dev"
- }
-
-If you are using (include) the composer generated autoloader.php which is located
-in the /vendor folder it is no longer needed to require the Smarty.class.php file. \ No newline at end of file
diff --git a/vendor/smarty/smarty/INHERITANCE_RELEASE_NOTES.txt b/vendor/smarty/smarty/INHERITANCE_RELEASE_NOTES.txt
deleted file mode 100644
index 67936a81a..000000000
--- a/vendor/smarty/smarty/INHERITANCE_RELEASE_NOTES.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-3.1.3"
-New tags for inheritance parent and chilD
-{parent} == {$smarty.block.parent}
-{child} == {$smarty.block.child}
-Both tags support the assign attribute like
-{child assign=foo}
-
-3.1.31
-New tags for inheritance parent and child
-{block_parent} == {$smarty.block.parent}
-{block_child} == {$smarty.block.child}
-
-Since 3.1.28 you can mix inheritance by extends resource with the {extends} tag.
-A template called by extends resource can extend a subtemplate or chain buy the {extends} tag.
-Since 3.1.31 this feature can be turned off by setting the new Smarty property Smarty::$extends_recursion to false.
-
-3.1.28
-Starting with version 3.1.28 template inheritance is no longer a compile time process.
-All {block} tag parent/child relations are resolved at run time.
-This does resolve all known existing restrictions (see below).
-
-The $smarty::$inheritance_merge_compiled_includes property has been removed.
-Any access to it is ignored.
-
-New features:
-
-Any code outside root {block} tags in child templates is now executed but any output will be ignored.
-
- {extends 'foo.tpl'}
- {$bar = 'on'} // assigns variable $bar seen in parent templates
- {block 'buh'}{/block}
-
- {extends 'foo.tpl'}
- {$bar} // the output of variable bar is ignored
- {block 'buh'}{/block}
-
-{block} tags can be dynamically en/disabled by conditions.
-
- {block 'root'}
- {if $foo}
- {block 'v1'}
- ....
- {/block}
- {else}
- {block 'v1'}
- ....
- {/block}
- {/if}
- {/block}
-
-{block} tags can have variable names.
-
- {block $foo}
- ....
- {/block}
-
-Starting with 3.1.28 you can mix inheritance by extends resource with the {extends} tag.
-A template called by extends resource can extend a subtemplate or chain buy the {extends} tag.
-
-NOTE There is a BC break. If you used the extends resource {extends} tags have been ignored.
-
-THE FOLLOWING RESTRICTIONS ARE NO LONGER EXISTING:
-In Smarty 3.1 template inheritance is a compile time process. All the extending of {block} tags
-is done at compile time and the parent and child templates are compiled in a single compiled template.
-{include} subtemplate could also {block} tags. Such subtemplate could not compiled by it's own because
-it could be used in other context where the {block} extended with a different result. For that reasion
-the compiled code of {include} subtemplates gets also merged in compiled inheritance template.
-
-Merging the code into a single compile template has some drawbacks.
-1. You could not use variable file names in {include} Smarty would use the {include} of compilation time.
-2. You could not use individual compile_id in {include}
-3. Separate caching of subtemplate was not possible
-4. Any change of the template directory structure between calls was not necessarily seen.
-
-Starting with 3.1.15 some of the above conditions got checked and resulted in an exception. It turned out
-that a couple of users did use some of above and now got exceptions.
-
-To resolve this starting with 3.1.16 there is a new configuration parameter $inheritance_merge_compiled_includes.
-For most backward compatibility its default setting is true.
-With this setting all {include} subtemplate will be merge into the compiled inheritance template, but the above cases
-could be rejected by exception.
-
-
-If $smarty->inheritance_merge_compiled_includes = false; {include} subtemplate will not be merged.You must now manually merge all {include} subtemplate which do contain {block} tags. This is done by setting the "inline" option.
-{include file='foo.bar' inline}
-
-1. In case of a variable file name like {include file=$foo inline} you must use the variable in a compile_id $smarty->compile_id = $foo;
-2. If you use individual compile_id in {include file='foo.tpl' compile_id=$bar inline} it must be used in the global compile_id as well $smarty->compile_id = $bar;
-3. If call templates with different template_dir configurations and a parent could same named child template from different folders
- you must make the folder name part of the compile_id.
-
diff --git a/vendor/smarty/smarty/NEW_FEATURES.txt b/vendor/smarty/smarty/NEW_FEATURES.txt
deleted file mode 100644
index 0b2cae1e0..000000000
--- a/vendor/smarty/smarty/NEW_FEATURES.txt
+++ /dev/null
@@ -1,291 +0,0 @@
-
-
-This file contains a brief description of new features which have been added to Smarty 3.1
-
-Smarty 3.1.33-dev
- Variable capture name in Smarty special variable
- ================================================
- {$smarty.capture.$foo} can now be used to access the content of a named
- capture block
-
-Smarty 3.1.32
- New tags for inheritance parent and child
- =========================================
- {parent} == {$smarty.block.parent}
- {child} == {$smarty.block.child}
- Both tags support the assign attribute like
- {child assign=foo}
-
- Deprecate functions Smarty::muteExpectedErrors() and Smarty::unmuteExpectedErrors()
- ===================================================================================
- These functions to start a special error handler are no longer needed as Smarty does
- no longer use error suppression like @filemtime().
- For backward compatibility the functions still can be called.
-
- Using literals containing Smarty's left and right delimiter
- ===========================================================
- New Methods
- $smarty->setLiterals(array $literals)
- $smarty->addLiterals(array $literals)
- to define literals containing Smarty delimiter. This can avoid the need for extreme usage
- of {literal} {/literal} tags.
- A) Treat '{{' and '}}' as literal
- If Smarty::$auto_literal is enabled
- {{ foo }}
- will be treated now as literal. (This does apply for any number of delimiter repeatations).
- However {{foo}} is not an literal but will be interpreted as a recursive Smarty tag.
- If you use
- $smarty->setLiterals(array('{{','}}'));
- {{foo}} is now a literal as well.
- NOTE: In the last example nested Smarty tags starting with '{{' or ending with '}}' will not
- work any longer, but this should be very very raw occouring restriction.
- B) Example 2
- Assume your delimiter are '<-' , '->' and '<--' , '-->' shall be literals
- $smarty->setLiterals(array('<--','-->'));
-
-
- The capture buffers can now be accessed as array
- ================================================
- {capture name='foo'}
- bah
- {\capture}
- {capture name='buh'}
- blar
- {\capture}
- {foreach $smarty.capture as $name => $buffer}
- ....
- {/foreach}
-
-Smarty 3.1.31
- New tags for inheritance parent and child
- =========================================
- {block_parent} == {$smarty.block.parent}
- {block_child} == {$smarty.block.child}
-
-Smarty 3.1.30
-
- Loop optimization {foreach} and {section}
- =========================================
- Smarty does optimize the {foreach} and {section} loops by removing code for not needed loop
- properties.
- The compiler collects needed properties by scanning the current template for $item@property,
- $smarty.foreach.name.property and $smarty.section.name.property.
- The compiler does not know if additional properties will be needed outside the current template scope.
- Additional properties can be generated by adding them with the property attribute.
-
- Example:
- index.tpl
- {foreach $from as $item properties=[iteration, index]}
- {include 'sub.tpl'}
- {$item.total}
- {/foreach}
-
- sub.tpl
- {$item.index} {$item.iteration} {$item.total}
-
- In above example code for the 'total' property is automatically generated as $item.total is used in
- index.tpl. Code for 'iteration' and 'index' must be added with properties=[iteration, index].
-
- New tag {make_nocache}
- ======================
- Syntax: {make_nocache $foo}
-
- This tag makes a variable which does exists normally only while rendering the compiled template
- available in the cached template for use in not cached expressions.
-
- Expample:
- {foreach from=$list item=item}
- <li>{$item.name} {make_nocache $item}{if $current==$item.id} ACTIVE{/if}</li>
- {/foreach}
-
- The {foreach} loop is rendered while processing the compiled template, but $current is a nocache
- variable. Normally the {if $current==$item.id} would fail as the $item variable is unknown in the cached template. {make_nocache $item} does make the current $item value known in thee cached template.
-
- {make_nocache} is ignored when caching is disabled or the variable does exists as nocache variable.
-
- NOTE: if the variable value does contain objects these must have the __set_state method implemented.
-
-
- Scope Attributes
- ================
- The scope handling has been updated to cover all cases of variable assignments in templates.
-
- The tags {assign}, {append} direct assignments like {$foo = ...}, {$foo[...]= ...} support
- the following optional scope attributes:
- scope='parent' - the variable will be assigned in the current template and if the template
- was included by {include} the calling template
- scope='tpl_root' - the variable will be assigned in the outermost root template called by $smarty->display()
- or $smarty->fetch() and is bubbled up all {include} sub-templates to the current template.
- scope='smarty' - the variable will be assigned in the Smarty object and is bubbled up all {include} sub-templates
- to the current template.
- scope='global' - the variable will be assigned as Smarty object global variable and is bubbled up all {include}
- sub-templates to the current template.
- scope='root' - the variable will be assigned if a data object was used for variable definitions in the data
- object or in the Smarty object otherwise and is bubbled up all {include} sub-templates to the
- current template.
- scope='local' - this scope has only a meaning if the tag is called within a template {function}.
- The variable will be assigned in the local scope of the template function and the
- template which did call the template function.
-
-
- The {config_load} tag supports all of the above except the global scope.
-
- The scope attribute can be used also with the {include} tag.
- Supported scope are parent, tpl_root, smarty, global and root.
- A scope used together with the {include} tag will cause that with some exceptions any variable
- assignment within that sub-template will update/assign the variable in other scopes according
- to the above rules. It does include also variables assigned by plugins, tags supporting the assign=foo attribute and direct assignments in {if} and {while} like {if $foo=$bar}.
- Excluded are the key and value variables of {foreach}, {for} loop variables , variables passed by attributes
- in {include} and direct increments/decrements like {$foo++}, {$foo--}
-
- Note: The scopes should be used only to the extend really need. If a variable value assigned in an included
- sub-template should be returned to the calling sub-template just use {$foo='bar' scope='parent'}.
- Use scopes only with variables for which it's realy needed. Avoid general scope settings with the
- {include} tag as it can have a performance impact.
-
- The {assign}, {append}, {config_load} and {$foo...=...} tags have a new option flag 'noscope'.Thi
- Example: {$foo='bar' noscope} This will assign $foo only in the current template and any scope settings
- at {include} is ignored.
-
-
- Caching
- =======
- Caching does now observe the template_dir setting and will create separate cache files if required
-
- Compiled Templates
- ==================
- The template_dir setting is now encoded in the uid of the file name.
- The content of the compiled template may depend on the template_dir search order
- {include .... inline} is used or $smarty->merge_compiled_includes is enabled
-
- APC
- ===
- If APC is enabled force an apc_compile_file() when compiled or cached template was updated
-
-Smarty 3.1.28
-
- OPCACHE
- =======
- Smarty does now invalidate automatically updated and cleared compiled or cached template files in OPCACHE.
- Correct operation is no longer dependent on OPCACHE configuration settings.
-
- Template inheritance
- ====================
- Template inheritance is now processed in run time.
- See the INHERITANCE_RELEASE_NOTES
-
- Modifier regex_replace
- ======================
- An optional limit parameter was added
-
- fetch() and display()
- =====================
- The fetch() and display() methods of the template object accept now optionally the same parameter
- as the corresponding Smarty methods to get the content of another template.
- Example:
- $template->display(); Does display template of template object
- $template->display('foo.tpl'); Does display template 'foo.bar'
-
- File: resource
- ==============
- Multiple template_dir entries can now be selected by a comma separated list of indices.
- The template_dir array is searched in the order of the indices. (Could be used to change the default search order)
- Example:
- $smarty->display('[1],[0]foo.bar');
-
- Filter support
- ==============
- Optional filter names
- An optional filter name was added to $smarty->registerFilter(). It can be used to unregister a filter by name.
- - $smarty->registerFilter('output', $callback, 'name');
- $smarty->unregister('output', 'name');
-
- Closures
- $smarty->registerFilter() does now accept closures.
- - $smarty->registerFilter('pre', function($source) {return $source;});
- If no optional filter name was specified it gets the default name 'closure'.
- If you register multiple closures register each with a unique filter name.
- - $smarty->registerFilter('pre', function($source) {return $source;}, 'closure_1');
- - $smarty->registerFilter('pre', function($source) {return $source;}, 'closure_2');
-
-
-Smarty 3.1.22
-
- Namespace support within templates
- ==================================
- Within templates you can now use namespace specifications on:
- - Constants like foo\bar\FOO
- - Class names like foo\bar\Baz::FOO, foo\bar\Baz::$foo, foo\bar\Baz::foo()
- - PHP function names like foo\bar\baz()
-
- Security
- ========
- - disable special $smarty variable -
- The Smarty_Security class has the new property $disabled_special_smarty_vars.
- It's an array which can be loaded with the $smarty special variable names like
- 'template_object', 'template', 'current_dir' and others which will be disabled.
- Note: That this security check is performed at compile time.
-
- - limit template nesting -
- Property $max_template_nesting of Smarty_Security does set the maximum template nesting level.
- The main template is level 1. The nesting level is checked at run time. When the maximum will be exceeded
- an Exception will be thrown. The default setting is 0 which does disable this check.
-
- - trusted static methods -
- The Smarty_Security class has the new property $trusted_static_methods to restrict access to static methods.
- It's an nested array of trusted class and method names.
- Format:
- array (
- 'class_1' => array('method_1', 'method_2'), // allowed methods
- 'class_2' => array(), // all methods of class allowed
- )
- To disable access for all methods of all classes set $trusted_static_methods = null;
- The default value is an empty array() which does enables all methods of all classes, but for backward compatibility
- the setting of $static_classes will be checked.
- Note: That this security check is performed at compile time.
-
- - trusted static properties -
- The Smarty_Security class has the new property $trusted_static_properties to restrict access to static properties.
- It's an nested array of trusted class and property names.
- Format:
- array (
- 'class_1' => array('prop_1', 'prop_2'), // allowed properties listed
- 'class_2' => array(), // all properties of class allowed
- }
- To disable access for all properties of all classes set $trusted_static_properties = null;
- The default value is an empty array() which does enables all properties of all classes, but for backward compatibility
- the setting of $static_classes will be checked.
- Note: That this security check is performed at compile time.
-
- - trusted constants .
- The Smarty_Security class has the new property $trusted_constants to restrict access to constants.
- It's an array of trusted constant names.
- Format:
- array (
- 'SMARTY_DIR' , // allowed constant
- }
- If the array is empty (default) the usage of constants can be controlled with the
- Smarty_Security::$allow_constants property (default true)
-
-
-
- Compiled Templates
- ==================
- Smarty does now automatically detects a change of the $merge_compiled_includes and $escape_html
- property and creates different compiled templates files depending on the setting.
-
- Same applies to config files and the $config_overwrite, $config_booleanize and
- $config_read_hidden properties.
-
- Debugging
- =========
- The layout of the debug window has been changed for better readability
-
- New class constants
- Smarty::DEBUG_OFF
- Smarty::DEBUG_ON
- Smarty::DEBUG_INDIVIDUAL
- have been introduced for setting the $debugging property.
-
- Smarty::DEBUG_INDIVIDUAL will create for each display() and fetch() call an individual debug window.
-
diff --git a/vendor/smarty/smarty/README b/vendor/smarty/smarty/README
deleted file mode 100644
index 9a71519bd..000000000
--- a/vendor/smarty/smarty/README
+++ /dev/null
@@ -1,575 +0,0 @@
-Smarty 3.x
-
-Author: Monte Ohrt <monte at ohrt dot com >
-Author: Uwe Tews
-
-AN INTRODUCTION TO SMARTY 3
-
-NOTICE FOR 3.1 release:
-
-Please see the SMARTY_3.1_NOTES.txt file that comes with the distribution.
-
-NOTICE for 3.0.5 release:
-
-Smarty now follows the PHP error_reporting level by default. If PHP does not mask E_NOTICE and you try to access an unset template variable, you will now get an E_NOTICE warning. To revert to the old behavior:
-
-$smarty->error_reporting = E_ALL & ~E_NOTICE;
-
-NOTICE for 3.0 release:
-
-IMPORTANT: Some API adjustments have been made between the RC4 and 3.0 release.
-We felt it is better to make these now instead of after a 3.0 release, then have to
-immediately deprecate APIs in 3.1. Online documentation has been updated
-to reflect these changes. Specifically:
-
----- API CHANGES RC4 -> 3.0 ----
-
-$smarty->register->*
-$smarty->unregister->*
-$smarty->utility->*
-$samrty->cache->*
-
-Have all been changed to local method calls such as:
-
-$smarty->clearAllCache()
-$smarty->registerFoo()
-$smarty->unregisterFoo()
-$smarty->testInstall()
-etc.
-
-Registration of function, block, compiler, and modifier plugins have been
-consolidated under two API calls:
-
-$smarty->registerPlugin(...)
-$smarty->unregisterPlugin(...)
-
-Registration of pre, post, output and variable filters have been
-consolidated under two API calls:
-
-$smarty->registerFilter(...)
-$smarty->unregisterFilter(...)
-
-Please refer to the online documentation for all specific changes:
-
-http://www.smarty.net/documentation
-
-----
-
-The Smarty 3 API has been refactored to a syntax geared
-for consistency and modularity. The Smarty 2 API syntax is still supported, but
-will throw a deprecation notice. You can disable the notices, but it is highly
-recommended to adjust your syntax to Smarty 3, as the Smarty 2 syntax must run
-through an extra rerouting wrapper.
-
-Basically, all Smarty methods now follow the "fooBarBaz" camel case syntax. Also,
-all Smarty properties now have getters and setters. So for example, the property
-$smarty->cache_dir can be set with $smarty->setCacheDir('foo/') and can be
-retrieved with $smarty->getCacheDir().
-
-Some of the Smarty 3 APIs have been revoked such as the "is*" methods that were
-just duplicate functions of the now available "get*" methods.
-
-Here is a rundown of the Smarty 3 API:
-
-$smarty->fetch($template, $cache_id = null, $compile_id = null, $parent = null)
-$smarty->display($template, $cache_id = null, $compile_id = null, $parent = null)
-$smarty->isCached($template, $cache_id = null, $compile_id = null)
-$smarty->createData($parent = null)
-$smarty->createTemplate($template, $cache_id = null, $compile_id = null, $parent = null)
-$smarty->enableSecurity()
-$smarty->disableSecurity()
-$smarty->setTemplateDir($template_dir)
-$smarty->addTemplateDir($template_dir)
-$smarty->templateExists($resource_name)
-$smarty->loadPlugin($plugin_name, $check = true)
-$smarty->loadFilter($type, $name)
-$smarty->setExceptionHandler($handler)
-$smarty->addPluginsDir($plugins_dir)
-$smarty->getGlobal($varname = null)
-$smarty->getRegisteredObject($name)
-$smarty->getDebugTemplate()
-$smarty->setDebugTemplate($tpl_name)
-$smarty->assign($tpl_var, $value = null, $nocache = false)
-$smarty->assignGlobal($varname, $value = null, $nocache = false)
-$smarty->assignByRef($tpl_var, &$value, $nocache = false)
-$smarty->append($tpl_var, $value = null, $merge = false, $nocache = false)
-$smarty->appendByRef($tpl_var, &$value, $merge = false)
-$smarty->clearAssign($tpl_var)
-$smarty->clearAllAssign()
-$smarty->configLoad($config_file, $sections = null)
-$smarty->getVariable($variable, $_ptr = null, $search_parents = true, $error_enable = true)
-$smarty->getConfigVariable($variable)
-$smarty->getStreamVariable($variable)
-$smarty->getConfigVars($varname = null)
-$smarty->clearConfig($varname = null)
-$smarty->getTemplateVars($varname = null, $_ptr = null, $search_parents = true)
-$smarty->clearAllCache($exp_time = null, $type = null)
-$smarty->clearCache($template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null)
-
-$smarty->registerPlugin($type, $tag, $callback, $cacheable = true, $cache_attr = array())
-
-$smarty->registerObject($object_name, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
-
-$smarty->registerFilter($type, $function_name)
-$smarty->registerResource($resource_type, $function_names)
-$smarty->registerDefaultPluginHandler($function_name)
-$smarty->registerDefaultTemplateHandler($function_name)
-
-$smarty->unregisterPlugin($type, $tag)
-$smarty->unregisterObject($object_name)
-$smarty->unregisterFilter($type, $function_name)
-$smarty->unregisterResource($resource_type)
-
-$smarty->compileAllTemplates($extension = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null)
-$smarty->clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null)
-$smarty->testInstall()
-
-// then all the getters/setters, available for all properties. Here are a few:
-
-$caching = $smarty->getCaching(); // get $smarty->caching
-$smarty->setCaching(true); // set $smarty->caching
-$smarty->setDeprecationNotices(false); // set $smarty->deprecation_notices
-$smarty->setCacheId($id); // set $smarty->cache_id
-$debugging = $smarty->getDebugging(); // get $smarty->debugging
-
-
-FILE STRUCTURE
-
-The Smarty 3 file structure is similar to Smarty 2:
-
-/libs/
- Smarty.class.php
-/libs/sysplugins/
- internal.*
-/libs/plugins/
- function.mailto.php
- modifier.escape.php
- ...
-
-A lot of Smarty 3 core functionality lies in the sysplugins directory; you do
-not need to change any files here. The /libs/plugins/ folder is where Smarty
-plugins are located. You can add your own here, or create a separate plugin
-directory, just the same as Smarty 2. You will still need to create your own
-/cache/, /templates/, /templates_c/, /configs/ folders. Be sure /cache/ and
-/templates_c/ are writable.
-
-The typical way to use Smarty 3 should also look familiar:
-
-require('Smarty.class.php');
-$smarty = new Smarty;
-$smarty->assign('foo','bar');
-$smarty->display('index.tpl');
-
-
-However, Smarty 3 works completely different on the inside. Smarty 3 is mostly
-backward compatible with Smarty 2, except for the following items:
-
-*) Smarty 3 is PHP 5 only. It will not work with PHP 4.
-*) The {php} tag is disabled by default. Enable with $smarty->allow_php_tag=true.
-*) Delimiters surrounded by whitespace are no longer treated as Smarty tags.
- Therefore, { foo } will not compile as a tag, you must use {foo}. This change
- Makes Javascript/CSS easier to work with, eliminating the need for {literal}.
- This can be disabled by setting $smarty->auto_literal = false;
-*) The Smarty 3 API is a bit different. Many Smarty 2 API calls are deprecated
- but still work. You will want to update your calls to Smarty 3 for maximum
- efficiency.
-
-
-There are many things that are new to Smarty 3. Here are the notable items:
-
-LEXER/PARSER
-============
-
-Smarty 3 now uses a lexing tokenizer for its parser/compiler. Basically, this
-means Smarty has some syntax additions that make life easier such as in-template
-math, shorter/intuitive function parameter options, infinite function recursion,
-more accurate error handling, etc.
-
-
-WHAT IS NEW IN SMARTY TEMPLATE SYNTAX
-=====================================
-
-Smarty 3 allows expressions almost anywhere. Expressions can include PHP
-functions as long as they are not disabled by the security policy, object
-methods and properties, etc. The {math} plugin is no longer necessary but
-is still supported for BC.
-
-Examples:
-{$x+$y} will output the sum of x and y.
-{$foo = strlen($bar)} function in assignment
-{assign var=foo value= $x+$y} in attributes
-{$foo = myfunct( ($x+$y)*3 )} as function parameter
-{$foo[$x+3]} as array index
-
-Smarty tags can be used as values within other tags.
-Example: {$foo={counter}+3}
-
-Smarty tags can also be used inside double quoted strings.
-Example: {$foo="this is message {counter}"}
-
-You can define arrays within templates.
-Examples:
-{assign var=foo value=[1,2,3]}
-{assign var=foo value=['y'=>'yellow','b'=>'blue']}
-Arrays can be nested.
-{assign var=foo value=[1,[9,8],3]}
-
-There is a new short syntax supported for assigning variables.
-Example: {$foo=$bar+2}
-
-You can assign a value to a specific array element. If the variable exists but
-is not an array, it is converted to an array before the new values are assigned.
-Examples:
-{$foo['bar']=1}
-{$foo['bar']['blar']=1}
-
-You can append values to an array. If the variable exists but is not an array,
-it is converted to an array before the new values are assigned.
-Example: {$foo[]=1}
-
-You can use a PHP-like syntax for accessing array elements, as well as the
-original "dot" notation.
-Examples:
-{$foo[1]} normal access
-{$foo['bar']}
-{$foo['bar'][1]}
-{$foo[$x+$x]} index may contain any expression
-{$foo[$bar[1]]} nested index
-{$foo[section_name]} smarty section access, not array access!
-
-The original "dot" notation stays, and with improvements.
-Examples:
-{$foo.a.b.c} => $foo['a']['b']['c']
-{$foo.a.$b.c} => $foo['a'][$b]['c'] with variable index
-{$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c'] with expression as index
-{$foo.a.{$b.c}} => $foo['a'][$b['c']] with nested index
-
-note that { and } are used to address ambiguties when nesting the dot syntax.
-
-Variable names themselves can be variable and contain expressions.
-Examples:
-$foo normal variable
-$foo_{$bar} variable name containing other variable
-$foo_{$x+$y} variable name containing expressions
-$foo_{$bar}_buh_{$blar} variable name with multiple segments
-{$foo_{$x}} will output the variable $foo_1 if $x has a value of 1.
-
-Object method chaining is implemented.
-Example: {$object->method1($x)->method2($y)}
-
-{for} tag added for looping (replacement for {section} tag):
-{for $x=0, $y=count($foo); $x<$y; $x++} .... {/for}
-Any number of statements can be used separated by comma as the first
-initial expression at {for}.
-
-{for $x = $start to $end step $step} ... {/for}is in the SVN now .
-You can use also
-{for $x = $start to $end} ... {/for}
-In this case the step value will be automatically 1 or -1 depending on the start and end values.
-Instead of $start and $end you can use any valid expression.
-Inside the loop the following special vars can be accessed:
-$x@iteration = number of iteration
-$x@total = total number of iterations
-$x@first = true on first iteration
-$x@last = true on last iteration
-
-
-The Smarty 2 {section} syntax is still supported.
-
-New shorter {foreach} syntax to loop over an array.
-Example: {foreach $myarray as $var}...{/foreach}
-
-Within the foreach loop, properties are access via:
-
-$var@key foreach $var array key
-$var@iteration foreach current iteration count (1,2,3...)
-$var@index foreach current index count (0,1,2...)
-$var@total foreach $var array total
-$var@first true on first iteration
-$var@last true on last iteration
-
-The Smarty 2 {foreach} tag syntax is still supported.
-
-NOTE: {$bar[foo]} still indicates a variable inside of a {section} named foo.
-If you want to access an array element with index foo, you must use quotes
-such as {$bar['foo']}, or use the dot syntax {$bar.foo}.
-
-while block tag is now implemented:
-{while $foo}...{/while}
-{while $x lt 10}...{/while}
-
-Direct access to PHP functions:
-Just as you can use PHP functions as modifiers directly, you can now access
-PHP functions directly, provided they are permitted by security settings:
-{time()}
-
-There is a new {function}...{/function} block tag to implement a template function.
-This enables reuse of code sequences like a plugin function. It can call itself recursively.
-Template function must be called with the new {call name=foo...} tag.
-
-Example:
-
-Template file:
-{function name=menu level=0}
- <ul class="level{$level}">
- {foreach $data as $entry}
- {if is_array($entry)}
- <li>{$entry@key}</li>
- {call name=menu data=$entry level=$level+1}
- {else}
- <li>{$entry}</li>
- {/if}
- {/foreach}
- </ul>
-{/function}
-
-{$menu = ['item1','item2','item3' => ['item3-1','item3-2','item3-3' =>
- ['item3-3-1','item3-3-2']],'item4']}
-
-{call name=menu data=$menu}
-
-
-Generated output:
- * item1
- * item2
- * item3
- o item3-1
- o item3-2
- o item3-3
- + item3-3-1
- + item3-3-2
- * item4
-
-The function tag itself must have the "name" attribute. This name is the tag
-name when calling the function. The function tag may have any number of
-additional attributes. These will be default settings for local variables.
-
-New {nocache} block function:
-{nocache}...{/nocache} will declare a section of the template to be non-cached
-when template caching is enabled.
-
-New nocache attribute:
-You can declare variable/function output as non-cached with the nocache attribute.
-Examples:
-
-{$foo nocache=true}
-{$foo nocache} /* same */
-
-{foo bar="baz" nocache=true}
-{foo bar="baz" nocache} /* same */
-
-{time() nocache=true}
-{time() nocache} /* same */
-
-Or you can also assign the variable in your script as nocache:
-$smarty->assign('foo',$something,true); // third param is nocache setting
-{$foo} /* non-cached */
-
-$smarty.current_dir returns the directory name of the current template.
-
-You can use strings directly as templates with the "string" resource type.
-Examples:
-$smarty->display('string:This is my template, {$foo}!'); // php
-{include file="string:This is my template, {$foo}!"} // template
-
-
-
-VARIABLE SCOPE / VARIABLE STORAGE
-=================================
-
-In Smarty 2, all assigned variables were stored within the Smarty object.
-Therefore, all variables assigned in PHP were accessible by all subsequent
-fetch and display template calls.
-
-In Smarty 3, we have the choice to assign variables to the main Smarty object,
-to user-created data objects, and to user-created template objects.
-These objects can be chained. The object at the end of a chain can access all
-variables belonging to that template and all variables within the parent objects.
-The Smarty object can only be the root of a chain, but a chain can be isolated
-from the Smarty object.
-
-All known Smarty assignment interfaces will work on the data and template objects.
-
-Besides the above mentioned objects, there is also a special storage area for
-global variables.
-
-A Smarty data object can be created as follows:
-$data = $smarty->createData(); // create root data object
-$data->assign('foo','bar'); // assign variables as usual
-$data->config_load('my.conf'); // load config file
-
-$data= $smarty->createData($smarty); // create data object having a parent link to
-the Smarty object
-
-$data2= $smarty->createData($data); // create data object having a parent link to
-the $data data object
-
-A template object can be created by using the createTemplate method. It has the
-same parameter assignments as the fetch() or display() method.
-Function definition:
-function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null)
-
-The first parameter can be a template name, a smarty object or a data object.
-
-Examples:
-$tpl = $smarty->createTemplate('mytpl.tpl'); // create template object not linked to any parent
-$tpl->assign('foo','bar'); // directly assign variables
-$tpl->config_load('my.conf'); // load config file
-
-$tpl = $smarty->createTemplate('mytpl.tpl',$smarty); // create template having a parent link to the Smarty object
-$tpl = $smarty->createTemplate('mytpl.tpl',$data); // create template having a parent link to the $data object
-
-The standard fetch() and display() methods will implicitly create a template object.
-If the $parent parameter is not specified in these method calls, the template object
-is will link back to the Smarty object as it's parent.
-
-If a template is called by an {include...} tag from another template, the
-subtemplate links back to the calling template as it's parent.
-
-All variables assigned locally or from a parent template are accessible. If the
-template creates or modifies a variable by using the {assign var=foo...} or
-{$foo=...} tags, these new values are only known locally (local scope). When the
-template exits, none of the new variables or modifications can be seen in the
-parent template(s). This is same behavior as in Smarty 2.
-
-With Smarty 3, we can assign variables with a scope attribute which allows the
-availablility of these new variables or modifications globally (ie in the parent
-templates.)
-
-Possible scopes are local, parent, root and global.
-Examples:
-{assign var=foo value='bar'} // no scope is specified, the default 'local'
-{$foo='bar'} // same, local scope
-{assign var=foo value='bar' scope='local'} // same, local scope
-
-{assign var=foo value='bar' scope='parent'} // Values will be available to the parent object
-{$foo='bar' scope='parent'} // (normally the calling template)
-
-{assign var=foo value='bar' scope='root'} // Values will be exported up to the root object, so they can
-{$foo='bar' scope='root'} // be seen from all templates using the same root.
-
-{assign var=foo value='bar' scope='global'} // Values will be exported to global variable storage,
-{$foo='bar' scope='global'} // they are available to any and all templates.
-
-
-The scope attribute can also be attached to the {include...} tag. In this case,
-the specified scope will be the default scope for all assignments within the
-included template.
-
-
-PLUGINS
-=======
-
-Smarty 3 plugins follow the same coding rules as in Smarty 2.
-The main difference is that the template object is now passed in place of the smarty object.
-The smarty object can be still be accessed through $template->smarty.
-
-smarty_plugintype_name (array $params, Smarty_Internal_Template $template)
-
-The Smarty 2 plugins are still compatible as long as they do not make use of specific Smarty 2 internals.
-
-
-TEMPLATE INHERITANCE:
-=====================
-
-With template inheritance you can define blocks, which are areas that can be
-overridden by child templates, so your templates could look like this:
-
-parent.tpl:
-<html>
- <head>
- <title>{block name='title'}My site name{/block}</title>
- </head>
- <body>
- <h1>{block name='page-title'}Default page title{/block}</h1>
- <div id="content">
- {block name='content'}
- Default content
- {/block}
- </div>
- </body>
-</html>
-
-child.tpl:
-{extends file='parent.tpl'}
-{block name='title'}
-Child title
-{/block}
-
-grandchild.tpl:
-{extends file='child.tpl'}
-{block name='title'}Home - {$smarty.block.parent}{/block}
-{block name='page-title'}My home{/block}
-{block name='content'}
- {foreach $images as $img}
- <img src="{$img.url}" alt="{$img.description}" />
- {/foreach}
-{/block}
-
-We redefined all the blocks here, however in the title block we used {$smarty.block.parent},
-which tells Smarty to insert the default content from the parent template in its place.
-The content block was overridden to display the image files, and page-title has also be
-overridden to display a completely different title.
-
-If we render grandchild.tpl we will get this:
-<html>
- <head>
- <title>Home - Child title</title>
- </head>
- <body>
- <h1>My home</h1>
- <div id="content">
- <img src="/example.jpg" alt="image" />
- <img src="/example2.jpg" alt="image" />
- <img src="/example3.jpg" alt="image" />
- </div>
- </body>
-</html>
-
-NOTE: In the child templates everything outside the {extends} or {block} tag sections
-is ignored.
-
-The inheritance tree can be as big as you want (meaning you can extend a file that
-extends another one that extends another one and so on..), but be aware that all files
-have to be checked for modifications at runtime so the more inheritance the more overhead you add.
-
-Instead of defining the parent/child relationships with the {extends} tag in the child template you
-can use the resource as follow:
-
-$smarty->display('extends:parent.tpl|child.tpl|grandchild.tpl');
-
-Child {block} tags may optionally have a append or prepend attribute. In this case the parent block content
-is appended or prepended to the child block content.
-
-{block name='title' append} My title {/block}
-
-
-PHP STREAMS:
-============
-
-(see online documentation)
-
-VARIBLE FILTERS:
-================
-
-(see online documentation)
-
-
-STATIC CLASS ACCESS AND NAMESPACE SUPPORT
-=========================================
-
-You can register a class with optional namespace for the use in the template like:
-
-$smarty->register->templateClass('foo','name\name2\myclass');
-
-In the template you can use it like this:
-{foo::method()} etc.
-
-
-=======================
-
-Please look through it and send any questions/suggestions/etc to the forums.
-
-http://www.phpinsider.com/smarty-forum/viewtopic.php?t=14168
-
-Monte and Uwe
diff --git a/vendor/smarty/smarty/README.md b/vendor/smarty/smarty/README.md
index ee7edb1ab..782f0b2cb 100644
--- a/vendor/smarty/smarty/README.md
+++ b/vendor/smarty/smarty/README.md
@@ -1,78 +1,20 @@
-# Smarty 3 template engine
-[smarty.net](https://www.smarty.net/)
+# Smarty template engine
+Smarty is a template engine for PHP, facilitating the separation of presentation (HTML/CSS) from application logic.
-[![Build Status](https://travis-ci.org/smarty-php/smarty.svg?branch=master)](https://travis-ci.org/smarty-php/smarty)
+![CI](https://github.com/smarty-php/smarty/workflows/CI/badge.svg)
## Documentation
-
-For documentation see
-[www.smarty.net/docs/en/](https://www.smarty.net/docs/en/)
+Read the [documentation](https://smarty-php.github.io/smarty/) to find out how to use it.
## Requirements
+Smarty can be run with PHP 7.1 to PHP 8.1.
-Smarty can be run with PHP 5.2 to PHP 7.4.
-
-## Distribution repository
-
-> Smarty 3.1.28 introduces run time template inheritance
-
-> Read the NEW_FEATURES and INHERITANCE_RELEASE_NOTES file for recent extensions to Smarty 3.1 functionality
-
-Smarty versions 3.1.11 or later are now on github and can be installed with Composer.
-
-
-The "smarty/smarty" package will start at libs/.... subfolder.
-
-To get the latest stable version of Smarty 3.1 use:
-
-```json
-"require": {
- "smarty/smarty": "~3.1"
-}
-```
-
-in your composer.json file.
-
-To get the trunk version use:
-
-```json
-"require": {
- "smarty/smarty": "~3.1@dev"
-}
-```
-
-For a specific version use something like:
-
-```json
-"require": {
- "smarty/smarty": "3.1.19"
-}
-```
-
-PHPUnit test can be installed by corresponding composer entries like:
-
-```json
-"require": {
- "smarty/smarty-phpunit": "3.1.19"
-}
-```
-
-Similar applies for the lexer/parser generator.
-
-```json
-"require": {
- "smarty/smarty-lexer": "3.1.19"
-}
-```
-
-Or you could use:
-
-```json
-"require": {
- "smarty/smarty-dev": "3.1.19"
-}
-```
+## Installation
+Smarty versions 3.1.11 or later can be installed with [Composer](https://getcomposer.org/).
-Which is a wrapper to install all 3 packages.
+To get the latest stable version of Smarty use:
+```bash
+composer require smarty/smarty
+````
-Composer can also be used for Smarty2 versions 2.6.24 to 2.6.30.
+More in the [Getting Started](./docs/getting-started.md) section of the docs.
diff --git a/vendor/smarty/smarty/SMARTY_2_BC_NOTES.txt b/vendor/smarty/smarty/SMARTY_2_BC_NOTES.txt
deleted file mode 100644
index fd36bd33b..000000000
--- a/vendor/smarty/smarty/SMARTY_2_BC_NOTES.txt
+++ /dev/null
@@ -1,109 +0,0 @@
-= Known incompatibilities with Smarty 2 =
-
-== Syntax ==
-
-Smarty 3 API has a new syntax. Much of the Smarty 2 syntax is supported
-by a wrapper but deprecated. See the README that comes with Smarty 3 for more
-information.
-
-The {$array|@mod} syntax has always been a bit confusing, where an "@" is required
-to apply a modifier to an array instead of the individual elements. Normally you
-always want the modifier to apply to the variable regardless of its type. In Smarty 3,
-{$array|mod} and {$array|@mod} behave identical. It is safe to drop the "@" and the
-modifier will still apply to the array. If you really want the modifier to apply to
-each array element, you must loop the array in-template, or use a custom modifier that
-supports array iteration. Most smarty functions already escape values where necessary
-such as {html_options}
-
-== PHP Version ==
-Smarty 3 is PHP 5 only. It will not work with PHP 4.
-
-== {php} Tag ==
-The {php} tag is disabled by default. The use of {php} tags is
-deprecated. It can be enabled with $smarty->allow_php_tag=true.
-
-But if you scatter PHP code which belongs together into several
-{php} tags it may not work any longer.
-
-== Delimiters and whitespace ==
-Delimiters surrounded by whitespace are no longer treated as Smarty tags.
-Therefore, { foo } will not compile as a tag, you must use {foo}. This change
-Makes Javascript/CSS easier to work with, eliminating the need for {literal}.
-This can be disabled by setting $smarty->auto_literal = false;
-
-== Unquoted Strings ==
-Smarty 2 was a bit more forgiving (and ambiguous) when it comes to unquoted strings
-in parameters. Smarty3 is more restrictive. You can still pass strings without quotes
-so long as they contain no special characters. (anything outside of A-Za-z0-9_)
-
-For example filename strings must be quoted
-<source lang="smarty">
-{include file='path/foo.tpl'}
-</source>
-
-== Extending the Smarty class ==
-Smarty 3 makes use of the __construct method for initialization. If you are extending
-the Smarty class, its constructor is not called implicitly if the your child class defines
-its own constructor. In order to run Smarty's constructor, a call to parent::__construct()
-within your child constructor is required.
-
-<source lang="php">
-class MySmarty extends Smarty {
- function __construct() {
- parent::__construct();
-
- // your initialization code goes here
-
- }
-}
-</source>
-
-== Autoloader ==
-Smarty 3 does register its own autoloader with spl_autoload_register. If your code has
-an existing __autoload function then this function must be explicitly registered on
-the __autoload stack. See http://us3.php.net/manual/en/function.spl-autoload-register.php
-for further details.
-
-== Plugin Filenames ==
-Smarty 3 optionally supports the PHP spl_autoloader. The autoloader requires filenames
-to be lower case. Because of this, Smarty plugin file names must also be lowercase.
-In Smarty 2, mixed case file names did work.
-
-== Scope of Special Smarty Variables ==
-In Smarty 2 the special Smarty variables $smarty.section... and $smarty.foreach...
-had global scope. If you had loops with the same name in subtemplates you could accidentally
-overwrite values of parent template.
-
-In Smarty 3 these special Smarty variable have only local scope in the template which
-is defining the loop. If you need their value in a subtemplate you have to pass them
-as parameter.
-<source lang="smarty">
-{include file='path/foo.tpl' index=$smarty.section.foo.index}
-</source>
-
-== SMARTY_RESOURCE_CHAR_SET ==
-Smarty 3 sets the constant SMARTY_RESOURCE_CHAR_SET to utf-8 as default template charset.
-This is now used also on modifiers like escape as default charset. If your templates use
-other charsets make sure that you define the constant accordingly. Otherwise you may not
-get any output.
-
-== newline at {if} tags ==
-A \n was added to the compiled code of the {if},{else},{elseif},{/if} tags to get output of newlines as expected by the template source.
-If one of the {if} tags is at the line end you will now get a newline in the HTML output.
-
-== trigger_error() ==
-The API function trigger_error() has been removed because it did just map to PHP trigger_error.
-However it's still included in the Smarty2 API wrapper.
-
-== Smarty constants ==
-The constants
-SMARTY_PHP_PASSTHRU
-SMARTY_PHP_QUOTE
-SMARTY_PHP_REMOVE
-SMARTY_PHP_ALLOW
-have been replaced with class constants
-Smarty::PHP_PASSTHRU
-Smarty::PHP_QUOTE
-Smarty::PHP_REMOVE
-Smarty::PHP_ALLOW
-
diff --git a/vendor/smarty/smarty/SMARTY_3.0_BC_NOTES.txt b/vendor/smarty/smarty/SMARTY_3.0_BC_NOTES.txt
deleted file mode 100644
index 24bdec61a..000000000
--- a/vendor/smarty/smarty/SMARTY_3.0_BC_NOTES.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-== Smarty2 backward compatibility ==
-All Smarty2 specific API functions and deprecated functionality has been moved
-to the SmartyBC class.
-
-== {php} Tag ==
-The {php} tag is no longer available in the standard Smarty calls.
-The use of {php} tags is deprecated and only available in the SmartyBC class.
-
-== {include_php} Tag ==
-The {include_php} tag is no longer available in the standard Smarty calls.
-The use of {include_php} tags is deprecated and only available in the SmartyBC class.
-
-== php template resource ==
-The support of the php template resource is removed.
-
-== $cache_dir, $compile_dir, $config_dir, $template_dir access ==
-The mentioned properties can't be accessed directly any longer. You must use
-corresponding getter/setters like addConfigDir(), setConfigDir(), getConfigDir()
-
-== obsolete Smarty class properties ==
-The following no longer used properties are removed:
-$allow_php_tag
-$allow_php_template
-$deprecation_notices \ No newline at end of file
diff --git a/vendor/smarty/smarty/SMARTY_3.1_NOTES.txt b/vendor/smarty/smarty/SMARTY_3.1_NOTES.txt
deleted file mode 100644
index d7c23ccc4..000000000
--- a/vendor/smarty/smarty/SMARTY_3.1_NOTES.txt
+++ /dev/null
@@ -1,306 +0,0 @@
-Smarty 3.1 Notes
-================
-
-Smarty 3.1 is a departure from 2.0 compatibility. Most notably, all
-backward compatibility has been moved to a separate class file named
-SmartyBC.class.php. If you require compatibility with 2.0, you will
-need to use this class.
-
-Some differences from 3.0 are also present. 3.1 begins the journey of
-requiring setters/getters for property access. So far this is only
-implemented on the five directory properties: template_dir,
-plugins_dir, configs_dir, compile_dir and cache_dir. These properties
-are now protected, it is required to use the setters/getters instead.
-That said, direct property access will still work, however slightly
-slower since they will now fall through __set() and __get() and in
-turn passed through the setter/getter methods. 3.2 will exhibit a full
-list of setter/getter methods for all (currently) public properties,
-so code-completion in your IDE will work as expected.
-
-There is absolutely no PHP allowed in templates any more. All
-deprecated features of Smarty 2.0 are gone. Again, use the SmartyBC
-class if you need any backward compatibility.
-
-Internal Changes
-
- Full UTF-8 Compatibility
-
-The plugins shipped with Smarty 3.1 have been rewritten to fully
-support UTF-8 strings if Multibyte String is available. Without
-MBString UTF-8 cannot be handled properly. For those rare cases where
-templates themselves have to juggle encodings, the new modifiers
-to_charset and from_charset may come in handy.
-
- Plugin API and Performance
-
-All Plugins (modifiers, functions, blocks, resources,
-default_template_handlers, etc) are now receiving the
-Smarty_Internal_Template instance, where they were supplied with the
-Smarty instance in Smarty 3.0. *. As The Smarty_Internal_Template
-mimics the behavior of Smarty, this API simplification should not
-require any changes to custom plugins.
-
-The plugins shipped with Smarty 3.1 have been rewritten for better
-performance. Most notably {html_select_date} and {html_select_time}
-have been improved vastly. Performance aside, plugins have also been
-reviewed and generalized in their API. {html_select_date} and
-{html_select_time} now share almost all available options.
-
-The escape modifier now knows the $double_encode option, which will
-prevent entities from being encoded again.
-
-The capitalize modifier now know the $lc_rest option, which makes sure
-all letters following a capital letter are lower-cased.
-
-The count_sentences modifier now accepts (.?!) as
-legitimate endings of a sentence - previously only (.) was
-accepted
-
-The new unescape modifier is there to reverse the effects of the
-escape modifier. This applies to the escape formats html, htmlall and
-entity.
-
- default_template_handler_func
-
-The invocation of $smarty->$default_template_handler_func had to be
-altered. Instead of a Smarty_Internal_Template, the fifth argument is
-now provided with the Smarty instance. New footprint:
-
-
-/**
- * Default Template Handler
- *
- * called when Smarty's file: resource is unable to load a requested file
- *
- * @param string $type resource type (e.g. "file", "string", "eval", "resource")
- * @param string $name resource name (e.g. "foo/bar.tpl")
- * @param string &$content template's content
- * @param integer &$modified template's modification time
- * @param Smarty $smarty Smarty instance
- * @return string|boolean path to file or boolean true if $content and $modified
- * have been filled, boolean false if no default template
- * could be loaded
- */
-function default_template_handler_func($type, $name, &$content, &$modified, Smarty $smarty) {
- if (false) {
- // return corrected filepath
- return "/tmp/some/foobar.tpl";
- } elseif (false) {
- // return a template directly
- $content = "the template source";
- $modified = time();
- return true;
- } else {
- // tell smarty that we failed
- return false;
- }
-}
-
- Stuff done to the compiler
-
-Many performance improvements have happened internally. One notable
-improvement is that all compiled templates are now handled as PHP
-functions. This speeds up repeated templates tremendously, as each one
-calls an (in-memory) PHP function instead of performing another file
-include/scan.
-
-New Features
-
- Template syntax
-
- {block}..{/block}
-
-The {block} tag has a new hide option flag. It does suppress the block
-content if no corresponding child block exists.
-EXAMPLE:
-parent.tpl
-{block name=body hide} child content "{$smarty.block.child}" was
-inserted {block}
-In the above example the whole block will be suppressed if no child
-block "body" is existing.
-
- {setfilter}..{/setfilter}
-
-The new {setfilter} block tag allows the definition of filters which
-run on variable output.
-SYNTAX:
-{setfilter filter1|filter2|filter3....}
-Smarty3 will lookup up matching filters in the following search order:
-1. variable filter plugin in plugins_dir.
-2. a valid modifier. A modifier specification will also accept
-additional parameter like filter2:'foo'
-3. a PHP function
-{/setfilter} will turn previous filter setting off again.
-{setfilter} tags can be nested.
-EXAMPLE:
-{setfilter filter1}
- {$foo}
- {setfilter filter2}
- {$bar}
- {/setfilter}
- {$buh}
-{/setfilter}
-{$blar}
-In the above example filter1 will run on the output of $foo, filter2
-on $bar, filter1 again on $buh and no filter on $blar.
-NOTES:
-- {$foo nofilter} will suppress the filters
-- These filters will run in addition to filters defined by
-registerFilter('variable',...), autoLoadFilter('variable',...) and
-defined default modifier.
-- {setfilter} will effect only the current template, not included
-subtemplates.
-
- Resource API
-
-Smarty 3.1 features a new approach to resource management. The
-Smarty_Resource API allows simple, yet powerful integration of custom
-resources for templates and configuration files. It offers simple
-functions for loading data from a custom resource (e.g. database) as
-well as define new template types adhering to the special
-non-compiling (e,g, plain php) and non-compile-caching (e.g. eval:
-resource type) resources.
-
-See demo/plugins/resource.mysql.php for an example custom database
-resource.
-
-Note that old-fashioned registration of callbacks for resource
-management has been deprecated but is still possible with SmartyBC.
-
- CacheResource API
-
-In line with the Resource API, the CacheResource API offers a more
-comfortable handling of output-cache data. With the
-Smarty_CacheResource_Custom accessing databases is made simple. With
-the introduction of Smarty_CacheResource_KeyValueStore the
-implementation of resources like memcache or APC became a no-brainer;
-simple hash-based storage systems are now supporting hierarchical
-output-caches.
-
-See demo/plugins/cacheresource.mysql.php for an example custom
-database CacheResource.
-See demo/plugins/cacheresource.memcache.php for an example custom
-memcache CacheResource using the KeyValueStore helper.
-
-Note that old-fashioned registration of $cache_handler is not possible
-anymore. As the functionality had not been ported to Smarty 3.0.x
-properly, it has been dropped from 3.1 completely.
-
-Locking facilities have been implemented to avoid concurrent cache
-generation. Enable cache locking by setting
-$smarty->cache_locking = true;
-
- Relative Paths in Templates (File-Resource)
-
-As of Smarty 3.1 {include file="../foo.tpl"} and {include
-file="./foo.tpl"} will resolve relative to the template they're in.
-Relative paths are available with {include file="..."} and
-{extends file="..."}. As $smarty->fetch('../foo.tpl') and
-$smarty->fetch('./foo.tpl') cannot be relative to a template, an
-exception is thrown.
-
- Addressing a specific $template_dir
-
-Smarty 3.1 introduces the $template_dir index notation.
-$smarty->fetch('[foo]bar.tpl') and {include file="[foo]bar.tpl"}
-require the template bar.tpl to be loaded from $template_dir['foo'];
-Smarty::setTemplateDir() and Smarty::addTemplateDir() offer ways to
-define indexes along with the actual directories.
-
- Mixing Resources in extends-Resource
-
-Taking the php extends: template resource one step further, it is now
-possible to mix resources within an extends: call like
-$smarty->fetch("extends:file:foo.tpl|db:bar.tpl");
-
-To make eval: and string: resources available to the inheritance
-chain, eval:base64:TPL_STRING and eval:urlencode:TPL_STRING have been
-introduced. Supplying the base64 or urlencode flags will trigger
-decoding the TPL_STRING in with either base64_decode() or urldecode().
-
- extends-Resource in template inheritance
-
-Template based inheritance may now inherit from php's extends:
-resource like {extends file="extends:foo.tpl|db:bar.tpl"}.
-
- New Smarty property escape_html
-
-$smarty->escape_html = true will autoescape all template variable
-output by calling htmlspecialchars({$output}, ENT_QUOTES,
-SMARTY_RESOURCE_CHAR_SET).
-NOTE:
-This is a compile time option. If you change the setting you must make
-sure that the templates get recompiled.
-
- New option at Smarty property compile_check
-
-The automatic recompilation of modified templates can now be
-controlled by the following settings:
-$smarty->compile_check = COMPILECHECK_OFF (false) - template files
-will not be checked
-$smarty->compile_check = COMPILECHECK_ON (true) - template files will
-always be checked
-$smarty->compile_check = COMPILECHECK_CACHEMISS - template files will
-be checked if caching is enabled and there is no existing cache file
-or it has expired
-
- Automatic recompilation on Smarty version change
-
-Templates will now be automatically recompiled on Smarty version
-changes to avoide incompatibillities in the compiled code. Compiled
-template checked against the current setting of the SMARTY_VERSION
-constant.
-
- default_config_handler_func()
-
-Analogous to the default_template_handler_func()
-default_config_handler_func() has been introduced.
-
- default_plugin_handler_func()
-
-An optional default_plugin_handler_func() can be defined which gets called
-by the compiler on tags which can't be resolved internally or by plugins.
-The default_plugin_handler() can map tags to plugins on the fly.
-
-New getters/setters
-
-The following setters/getters will be part of the official
-documentation, and will be strongly recommended. Direct property
-access will still work for the foreseeable future... it will be
-transparently routed through the setters/getters, and consequently a
-bit slower.
-
-array|string getTemplateDir( [string $index] )
-replaces $smarty->template_dir; and $smarty->template_dir[$index];
-Smarty setTemplateDir( array|string $path )
-replaces $smarty->template_dir = "foo"; and $smarty->template_dir =
-array("foo", "bar");
-Smarty addTemplateDir( array|string $path, [string $index])
-replaces $smarty->template_dir[] = "bar"; and
-$smarty->template_dir[$index] = "bar";
-
-array|string getConfigDir( [string $index] )
-replaces $smarty->config_dir; and $smarty->config_dir[$index];
-Smarty setConfigDir( array|string $path )
-replaces $smarty->config_dir = "foo"; and $smarty->config_dir =
-array("foo", "bar");
-Smarty addConfigDir( array|string $path, [string $index])
-replaces $smarty->config_dir[] = "bar"; and
-$smarty->config_dir[$index] = "bar";
-
-array getPluginsDir()
-replaces $smarty->plugins_dir;
-Smarty setPluginsDir( array|string $path )
-replaces $smarty->plugins_dir = "foo";
-Smarty addPluginsDir( array|string $path )
-replaces $smarty->plugins_dir[] = "bar";
-
-string getCompileDir()
-replaces $smarty->compile_dir;
-Smarty setCompileDir( string $path )
-replaces $smarty->compile_dir = "foo";
-
-string getCacheDir()
-replaces $smarty->cache_dir;
-Smarty setCacheDir( string $path )
-replaces $smarty->cache_dir;
diff --git a/vendor/smarty/smarty/composer.json b/vendor/smarty/smarty/composer.json
index 183f9f240..165bfd2a1 100644
--- a/vendor/smarty/smarty/composer.json
+++ b/vendor/smarty/smarty/composer.json
@@ -5,7 +5,7 @@
"keywords": [
"templating"
],
- "homepage": "http://www.smarty.net",
+ "homepage": "https://smarty-php.github.io/smarty/",
"license": "LGPL-3.0",
"authors": [
{
@@ -19,15 +19,18 @@
{
"name": "Rodney Rehm",
"email": "rodney.rehm@medialize.de"
+ },
+ {
+ "name": "Simon Wisselink",
+ "homepage": "https://www.iwink.nl/"
}
],
"support": {
- "irc": "irc://irc.freenode.org/smarty",
"issues": "https://github.com/smarty-php/smarty/issues",
- "forum": "http://www.smarty.net/forums/"
+ "forum": "https://github.com/smarty-php/smarty/discussions"
},
"require": {
- "php": ">=5.2"
+ "php": "^7.1 || ^8.0"
},
"autoload": {
"classmap": [
@@ -36,11 +39,11 @@
},
"extra": {
"branch-alias": {
- "dev-master": "3.1.x-dev"
+ "dev-master": "4.0.x-dev"
}
},
"require-dev": {
- "phpunit/phpunit": "^7.5 || ^6.5 || ^5.7 || ^4.8",
+ "phpunit/phpunit": "^8.5 || ^7.5",
"smarty/smarty-lexer": "^3.1"
}
}
diff --git a/vendor/smarty/smarty/expectException b/vendor/smarty/smarty/expectException
deleted file mode 100644
index e69de29bb..000000000
--- a/vendor/smarty/smarty/expectException
+++ /dev/null
diff --git a/vendor/smarty/smarty/lexer/smarty_internal_templatelexer.plex b/vendor/smarty/smarty/lexer/smarty_internal_templatelexer.plex
index ac1250255..67c840d74 100644
--- a/vendor/smarty/smarty/lexer/smarty_internal_templatelexer.plex
+++ b/vendor/smarty/smarty/lexer/smarty_internal_templatelexer.plex
@@ -289,8 +289,6 @@ class Smarty_Internal_Templatelexer
textdoublequoted = ~([^"\\]*?)((?:\\.[^"\\]*?)*?)(?=((SMARTYldel)SMARTYal|\$|`\$|"SMARTYliteral))~
namespace = ~([0-9]*[a-zA-Z_]\w*)?(\\[0-9]*[a-zA-Z_]\w*)+~
emptyjava = ~[{][}]~
- phptag = ~(SMARTYldel)SMARTYalphp([ ].*?)?SMARTYrdel|(SMARTYldel)SMARTYal[/]phpSMARTYrdel~
- phpstart = ~[<][?]((php\s+|=)|\s+)|[<][%]|[<][?]xml\s+|[<]script\s+language\s*=\s*["']?\s*php\s*["']?\s*[>]|[?][>]|[%][>]~
slash = ~[/]~
ldel = ~(SMARTYldel)SMARTYal~
rdel = ~\s*SMARTYrdel~
@@ -362,9 +360,6 @@ class Smarty_Internal_Templatelexer
$this->value = substr($this->data,$this->counter,$to-$this->counter);
return false;
}
- phptag {
- $this->compiler->getTagCompiler('private_php')->parsePhp($this);
- }
userliteral {
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
}
@@ -380,12 +375,9 @@ class Smarty_Internal_Templatelexer
$this->yypushstate(self::TAG);
return true;
}
- phpstart {
- $this->compiler->getTagCompiler('private_php')->parsePhp($this);
- }
char {
if (!isset($this->yy_global_text)) {
- $this->yy_global_text = $this->replace('/(SMARTYldel)SMARTYal|[<][?]((php\s+|=)|\s+)|[<][%]|[<][?]xml\s+|[<]script\s+language\s*=\s*["\']?\s*php\s*["\']?\s*[>]|[?][>]|[%][>]SMARTYliteral/isS');
+ $this->yy_global_text = $this->replace('/(SMARTYldel)SMARTYal/isS');
}
$to = $this->dataLength;
preg_match($this->yy_global_text, $this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
diff --git a/vendor/smarty/smarty/lexer/smarty_internal_templateparser.y b/vendor/smarty/smarty/lexer/smarty_internal_templateparser.y
index c6890642f..620498765 100644
--- a/vendor/smarty/smarty/lexer/smarty_internal_templateparser.y
+++ b/vendor/smarty/smarty/lexer/smarty_internal_templateparser.y
@@ -23,7 +23,6 @@ class Smarty_Internal_Templateparser
{
const ERR1 = 'Security error: Call to private object member not allowed';
const ERR2 = 'Security error: Call to dynamic object member not allowed';
- const ERR3 = 'PHP in template not allowed. Use SmartyBC to enable it';
/**
* result status
@@ -237,16 +236,6 @@ start(res) ::= template. {
res = $this->root_buffer->to_smarty_php($this);
}
-
- // php tags
-template ::= template PHP(B). {
- $code = $this->compiler->compileTag('private_php',array(array('code' => B), array('type' => $this->lex->phpType )),array());
- if ($this->compiler->has_code && !empty($code)) {
- $tmp =''; foreach ($this->compiler->prefix_code as $code) {$tmp.=$code;} $this->compiler->prefix_code=array();
- $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp.$code,true)));
- }
-}
-
// template text
template ::= template TEXT(B). {
$text = $this->yystack[ $this->yyidx + 0 ]->minor;
@@ -758,6 +747,9 @@ value(res) ::= doublequoted_with_quotes(s). {
value(res) ::= varindexed(vi) DOUBLECOLON static_class_access(r). {
+ if ($this->security && $this->security->static_classes !== array()) {
+ $this->compiler->trigger_template_error('dynamic static class not allowed by security setting');
+ }
$prefixVar = $this->compiler->getNewPrefixVariable();
if (vi['var'] === '\'smarty\'') {
$this->compiler->appendPrefixCode("<?php {$prefixVar} = ". $this->compiler->compileTag('private_special_variable',array(),vi['smarty_internal_index']).';?>');
diff --git a/vendor/smarty/smarty/libs/Autoloader.php b/vendor/smarty/smarty/libs/Autoloader.php
index c09361b66..1673ce2ff 100644
--- a/vendor/smarty/smarty/libs/Autoloader.php
+++ b/vendor/smarty/smarty/libs/Autoloader.php
@@ -39,7 +39,7 @@ class Smarty_Autoloader
*
* @var array
*/
- public static $rootClasses = array('smarty' => 'Smarty.class.php', 'smartybc' => 'SmartyBC.class.php',);
+ public static $rootClasses = array('smarty' => 'Smarty.class.php');
/**
* Registers Smarty_Autoloader backward compatible to older installations.
@@ -76,11 +76,7 @@ class Smarty_Autoloader
self::$SMARTY_DIR = defined('SMARTY_DIR') ? SMARTY_DIR : dirname(__FILE__) . DIRECTORY_SEPARATOR;
self::$SMARTY_SYSPLUGINS_DIR = defined('SMARTY_SYSPLUGINS_DIR') ? SMARTY_SYSPLUGINS_DIR :
self::$SMARTY_DIR . 'sysplugins' . DIRECTORY_SEPARATOR;
- if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
- spl_autoload_register(array(__CLASS__, 'autoload'), true, $prepend);
- } else {
- spl_autoload_register(array(__CLASS__, 'autoload'));
- }
+ spl_autoload_register(array(__CLASS__, 'autoload'), true, $prepend);
}
/**
diff --git a/vendor/smarty/smarty/libs/Smarty.class.php b/vendor/smarty/smarty/libs/Smarty.class.php
index 375bab133..0abbe6a7d 100644
--- a/vendor/smarty/smarty/libs/Smarty.class.php
+++ b/vendor/smarty/smarty/libs/Smarty.class.php
@@ -20,7 +20,7 @@
* Smarty mailing list. Send a blank e-mail to
* smarty-discussion-subscribe@googlegroups.com
*
- * @link http://www.smarty.net/
+ * @link https://www.smarty.net/
* @copyright 2018 New Digital Group, Inc.
* @copyright 2018 Uwe Tews
* @author Monte Ohrt <monte at ohrt dot com>
@@ -60,19 +60,6 @@ if (!defined('SMARTY_MBSTRING')) {
*/
define('SMARTY_MBSTRING', function_exists('mb_get_info'));
}
-if (!defined('SMARTY_RESOURCE_CHAR_SET')) {
- // UTF-8 can only be done properly when mbstring is available!
- /**
- * @deprecated in favor of Smarty::$_CHARSET
- */
- define('SMARTY_RESOURCE_CHAR_SET', SMARTY_MBSTRING ? 'UTF-8' : 'ISO-8859-1');
-}
-if (!defined('SMARTY_RESOURCE_DATE_FORMAT')) {
- /**
- * @deprecated in favor of Smarty::$_DATE_FORMAT
- */
- define('SMARTY_RESOURCE_DATE_FORMAT', '%b %e, %Y');
-}
/**
* Load Smarty_Autoloader
*/
@@ -111,7 +98,7 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* smarty version
*/
- const SMARTY_VERSION = '3.1.39';
+ const SMARTY_VERSION = '4.1.0';
/**
* define variable scopes
*/
@@ -143,13 +130,7 @@ class Smarty extends Smarty_Internal_TemplateBase
const DEBUG_OFF = 0;
const DEBUG_ON = 1;
const DEBUG_INDIVIDUAL = 2;
- /**
- * modes for handling of "<?php ... ?>" tags in templates.
- */
- const PHP_PASSTHRU = 0; //-> print tags as plain text
- const PHP_QUOTE = 1; //-> escape tags as entities
- const PHP_REMOVE = 2; //-> escape tags as entities
- const PHP_ALLOW = 3; //-> escape tags as entities
+
/**
* filter types
*/
@@ -179,13 +160,13 @@ class Smarty extends Smarty_Internal_TemplateBase
/**
* The character set to adhere to (e.g. "UTF-8")
*/
- public static $_CHARSET = SMARTY_RESOURCE_CHAR_SET;
+ public static $_CHARSET = SMARTY_MBSTRING ? 'UTF-8' : 'ISO-8859-1';
/**
* The date format to be used internally
* (accepts date() and strftime())
*/
- public static $_DATE_FORMAT = SMARTY_RESOURCE_DATE_FORMAT;
+ public static $_DATE_FORMAT = '%b %e, %Y';
/**
* Flag denoting if PCRE should run in UTF-8 mode
@@ -370,13 +351,6 @@ class Smarty extends Smarty_Internal_TemplateBase
public $security_policy = null;
/**
- * controls handling of PHP-blocks
- *
- * @var integer
- */
- public $php_handling = self::PHP_PASSTHRU;
-
- /**
* controls if the php template file resource is allowed
*
* @var bool
@@ -667,6 +641,12 @@ class Smarty extends Smarty_Internal_TemplateBase
);
/**
+ * PHP7 Compatibility mode
+ * @var bool
+ */
+ private $isMutingUndefinedOrNullWarnings = false;
+
+ /**
* Initialize new Smarty object
*/
public function __construct()
@@ -689,27 +669,6 @@ class Smarty extends Smarty_Internal_TemplateBase
}
/**
- * Enable error handler to mute expected messages
- *
- * @return boolean
- * @deprecated
- */
- public static function muteExpectedErrors()
- {
- return Smarty_Internal_ErrorHandler::muteExpectedErrors();
- }
-
- /**
- * Disable error handler muting expected messages
- *
- * @deprecated
- */
- public static function unmuteExpectedErrors()
- {
- restore_error_handler();
- }
-
- /**
* Check if a template resource exists
*
* @param string $resource_name template name
@@ -1387,11 +1346,6 @@ class Smarty extends Smarty_Internal_TemplateBase
private function _normalizeDir($dirName, $dir)
{
$this->{$dirName} = $this->_realpath(rtrim($dir, "/\\") . DIRECTORY_SEPARATOR, true);
- if (class_exists('Smarty_Internal_ErrorHandler', false)) {
- if (!isset(Smarty_Internal_ErrorHandler::$mutedDirectories[ $this->{$dirName} ])) {
- Smarty_Internal_ErrorHandler::$mutedDirectories[ $this->{$dirName} ] = null;
- }
- }
}
/**
@@ -1421,4 +1375,23 @@ class Smarty extends Smarty_Internal_TemplateBase
$isConfig ? $this->_joined_config_dir = join('#', $this->config_dir) :
$this->_joined_template_dir = join('#', $this->template_dir);
}
+
+ /**
+ * Activates PHP7 compatibility mode:
+ * - converts E_WARNINGS for "undefined array key" and "trying to read property of null" errors to E_NOTICE
+ *
+ * @void
+ */
+ public function muteUndefinedOrNullWarnings(): void {
+ $this->isMutingUndefinedOrNullWarnings = true;
+ }
+
+ /**
+ * Indicates if PHP7 compatibility mode is set.
+ * @bool
+ */
+ public function isMutingUndefinedOrNullWarnings(): bool {
+ return $this->isMutingUndefinedOrNullWarnings;
+ }
+
}
diff --git a/vendor/smarty/smarty/libs/SmartyBC.class.php b/vendor/smarty/smarty/libs/SmartyBC.class.php
deleted file mode 100644
index 0550e46dc..000000000
--- a/vendor/smarty/smarty/libs/SmartyBC.class.php
+++ /dev/null
@@ -1,477 +0,0 @@
-<?php
-/**
- * Project: Smarty: the PHP compiling template engine
- * File: SmartyBC.class.php
- * SVN: $Id: $
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3.0 of the License, or (at your option) any later version.
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- * For questions, help, comments, discussion, etc., please join the
- * Smarty mailing list. Send a blank e-mail to
- * smarty-discussion-subscribe@googlegroups.com
- *
- * @link http://www.smarty.net/
- * @copyright 2008 New Digital Group, Inc.
- * @author Monte Ohrt <monte at ohrt dot com>
- * @author Uwe Tews
- * @author Rodney Rehm
- * @package Smarty
- */
-/**
- * @ignore
- */
-require_once dirname(__FILE__) . '/Smarty.class.php';
-
-/**
- * Smarty Backward Compatibility Wrapper Class
- *
- * @package Smarty
- */
-class SmartyBC extends Smarty
-{
- /**
- * Smarty 2 BC
- *
- * @var string
- */
- public $_version = self::SMARTY_VERSION;
-
- /**
- * This is an array of directories where trusted php scripts reside.
- *
- * @var array
- */
- public $trusted_dir = array();
-
- /**
- * Initialize new SmartyBC object
- */
- public function __construct()
- {
- parent::__construct();
- }
-
- /**
- * wrapper for assign_by_ref
- *
- * @param string $tpl_var the template variable name
- * @param mixed &$value the referenced value to assign
- */
- public function assign_by_ref($tpl_var, &$value)
- {
- $this->assignByRef($tpl_var, $value);
- }
-
- /**
- * wrapper for append_by_ref
- *
- * @param string $tpl_var the template variable name
- * @param mixed &$value the referenced value to append
- * @param boolean $merge flag if array elements shall be merged
- */
- public function append_by_ref($tpl_var, &$value, $merge = false)
- {
- $this->appendByRef($tpl_var, $value, $merge);
- }
-
- /**
- * clear the given assigned template variable.
- *
- * @param string $tpl_var the template variable to clear
- */
- public function clear_assign($tpl_var)
- {
- $this->clearAssign($tpl_var);
- }
-
- /**
- * Registers custom function to be used in templates
- *
- * @param string $function the name of the template function
- * @param string $function_impl the name of the PHP function to register
- * @param bool $cacheable
- * @param mixed $cache_attrs
- *
- * @throws \SmartyException
- */
- public function register_function($function, $function_impl, $cacheable = true, $cache_attrs = null)
- {
- $this->registerPlugin('function', $function, $function_impl, $cacheable, $cache_attrs);
- }
-
- /**
- * Unregister custom function
- *
- * @param string $function name of template function
- */
- public function unregister_function($function)
- {
- $this->unregisterPlugin('function', $function);
- }
-
- /**
- * Registers object to be used in templates
- *
- * @param string $object name of template object
- * @param object $object_impl the referenced PHP object to register
- * @param array $allowed list of allowed methods (empty = all)
- * @param boolean $smarty_args smarty argument format, else traditional
- * @param array $block_methods list of methods that are block format
- *
- * @throws SmartyException
- * @internal param array $block_functs list of methods that are block format
- */
- public function register_object(
- $object,
- $object_impl,
- $allowed = array(),
- $smarty_args = true,
- $block_methods = array()
- ) {
- settype($allowed, 'array');
- settype($smarty_args, 'boolean');
- $this->registerObject($object, $object_impl, $allowed, $smarty_args, $block_methods);
- }
-
- /**
- * Unregister object
- *
- * @param string $object name of template object
- */
- public function unregister_object($object)
- {
- $this->unregisterObject($object);
- }
-
- /**
- * Registers block function to be used in templates
- *
- * @param string $block name of template block
- * @param string $block_impl PHP function to register
- * @param bool $cacheable
- * @param mixed $cache_attrs
- *
- * @throws \SmartyException
- */
- public function register_block($block, $block_impl, $cacheable = true, $cache_attrs = null)
- {
- $this->registerPlugin('block', $block, $block_impl, $cacheable, $cache_attrs);
- }
-
- /**
- * Unregister block function
- *
- * @param string $block name of template function
- */
- public function unregister_block($block)
- {
- $this->unregisterPlugin('block', $block);
- }
-
- /**
- * Registers compiler function
- *
- * @param string $function name of template function
- * @param string $function_impl name of PHP function to register
- * @param bool $cacheable
- *
- * @throws \SmartyException
- */
- public function register_compiler_function($function, $function_impl, $cacheable = true)
- {
- $this->registerPlugin('compiler', $function, $function_impl, $cacheable);
- }
-
- /**
- * Unregister compiler function
- *
- * @param string $function name of template function
- */
- public function unregister_compiler_function($function)
- {
- $this->unregisterPlugin('compiler', $function);
- }
-
- /**
- * Registers modifier to be used in templates
- *
- * @param string $modifier name of template modifier
- * @param string $modifier_impl name of PHP function to register
- *
- * @throws \SmartyException
- */
- public function register_modifier($modifier, $modifier_impl)
- {
- $this->registerPlugin('modifier', $modifier, $modifier_impl);
- }
-
- /**
- * Unregister modifier
- *
- * @param string $modifier name of template modifier
- */
- public function unregister_modifier($modifier)
- {
- $this->unregisterPlugin('modifier', $modifier);
- }
-
- /**
- * Registers a resource to fetch a template
- *
- * @param string $type name of resource
- * @param array $functions array of functions to handle resource
- */
- public function register_resource($type, $functions)
- {
- $this->registerResource($type, $functions);
- }
-
- /**
- * Unregister a resource
- *
- * @param string $type name of resource
- */
- public function unregister_resource($type)
- {
- $this->unregisterResource($type);
- }
-
- /**
- * Registers a prefilter function to apply
- * to a template before compiling
- *
- * @param callable $function
- *
- * @throws \SmartyException
- */
- public function register_prefilter($function)
- {
- $this->registerFilter('pre', $function);
- }
-
- /**
- * Unregister a prefilter function
- *
- * @param callable $function
- */
- public function unregister_prefilter($function)
- {
- $this->unregisterFilter('pre', $function);
- }
-
- /**
- * Registers a postfilter function to apply
- * to a compiled template after compilation
- *
- * @param callable $function
- *
- * @throws \SmartyException
- */
- public function register_postfilter($function)
- {
- $this->registerFilter('post', $function);
- }
-
- /**
- * Unregister a postfilter function
- *
- * @param callable $function
- */
- public function unregister_postfilter($function)
- {
- $this->unregisterFilter('post', $function);
- }
-
- /**
- * Registers an output filter function to apply
- * to a template output
- *
- * @param callable $function
- *
- * @throws \SmartyException
- */
- public function register_outputfilter($function)
- {
- $this->registerFilter('output', $function);
- }
-
- /**
- * Unregister an outputfilter function
- *
- * @param callable $function
- */
- public function unregister_outputfilter($function)
- {
- $this->unregisterFilter('output', $function);
- }
-
- /**
- * load a filter of specified type and name
- *
- * @param string $type filter type
- * @param string $name filter name
- *
- * @throws \SmartyException
- */
- public function load_filter($type, $name)
- {
- $this->loadFilter($type, $name);
- }
-
- /**
- * clear cached content for the given template and cache id
- *
- * @param string $tpl_file name of template file
- * @param string $cache_id name of cache_id
- * @param string $compile_id name of compile_id
- * @param string $exp_time expiration time
- *
- * @return boolean
- */
- public function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null)
- {
- return $this->clearCache($tpl_file, $cache_id, $compile_id, $exp_time);
- }
-
- /**
- * clear the entire contents of cache (all templates)
- *
- * @param string $exp_time expire time
- *
- * @return boolean
- */
- public function clear_all_cache($exp_time = null)
- {
- return $this->clearCache(null, null, null, $exp_time);
- }
-
- /**
- * test to see if valid cache exists for this template
- *
- * @param string $tpl_file name of template file
- * @param string $cache_id
- * @param string $compile_id
- *
- * @return bool
- * @throws \Exception
- * @throws \SmartyException
- */
- public function is_cached($tpl_file, $cache_id = null, $compile_id = null)
- {
- return $this->isCached($tpl_file, $cache_id, $compile_id);
- }
-
- /**
- * clear all the assigned template variables.
- */
- public function clear_all_assign()
- {
- $this->clearAllAssign();
- }
-
- /**
- * clears compiled version of specified template resource,
- * or all compiled template files if one is not specified.
- * This function is for advanced use only, not normally needed.
- *
- * @param string $tpl_file
- * @param string $compile_id
- * @param string $exp_time
- *
- * @return boolean results of {@link smarty_core_rm_auto()}
- */
- public function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null)
- {
- return $this->clearCompiledTemplate($tpl_file, $compile_id, $exp_time);
- }
-
- /**
- * Checks whether requested template exists.
- *
- * @param string $tpl_file
- *
- * @return bool
- * @throws \SmartyException
- */
- public function template_exists($tpl_file)
- {
- return $this->templateExists($tpl_file);
- }
-
- /**
- * Returns an array containing template variables
- *
- * @param string $name
- *
- * @return array
- */
- public function get_template_vars($name = null)
- {
- return $this->getTemplateVars($name);
- }
-
- /**
- * Returns an array containing config variables
- *
- * @param string $name
- *
- * @return array
- */
- public function get_config_vars($name = null)
- {
- return $this->getConfigVars($name);
- }
-
- /**
- * load configuration values
- *
- * @param string $file
- * @param string $section
- * @param string $scope
- */
- public function config_load($file, $section = null, $scope = 'global')
- {
- $this->ConfigLoad($file, $section, $scope);
- }
-
- /**
- * return a reference to a registered object
- *
- * @param string $name
- *
- * @return object
- */
- public function get_registered_object($name)
- {
- return $this->getRegisteredObject($name);
- }
-
- /**
- * clear configuration values
- *
- * @param string $var
- */
- public function clear_config($var = null)
- {
- $this->clearConfig($var);
- }
-
- /**
- * trigger Smarty error
- *
- * @param string $error_msg
- * @param integer $error_type
- */
- public function trigger_error($error_msg, $error_type = E_USER_WARNING)
- {
- trigger_error("Smarty error: $error_msg", $error_type);
- }
-}
diff --git a/vendor/smarty/smarty/libs/plugins/block.textformat.php b/vendor/smarty/smarty/libs/plugins/block.textformat.php
index 5e494637e..fed090e4d 100644
--- a/vendor/smarty/smarty/libs/plugins/block.textformat.php
+++ b/vendor/smarty/smarty/libs/plugins/block.textformat.php
@@ -20,7 +20,7 @@
* - indent_char - string (" ")
* - wrap_boundary - boolean (true)
*
- * @link http://www.smarty.net/manual/en/language.function.textformat.php {textformat}
+ * @link https://www.smarty.net/manual/en/language.function.textformat.php {textformat}
* (Smarty online manual)
*
* @param array $params parameters
diff --git a/vendor/smarty/smarty/libs/plugins/function.counter.php b/vendor/smarty/smarty/libs/plugins/function.counter.php
index a4129e77c..54795459c 100644
--- a/vendor/smarty/smarty/libs/plugins/function.counter.php
+++ b/vendor/smarty/smarty/libs/plugins/function.counter.php
@@ -12,7 +12,7 @@
* Purpose: print out a counter value
*
* @author Monte Ohrt <monte at ohrt dot com>
- * @link http://www.smarty.net/manual/en/language.function.counter.php {counter}
+ * @link https://www.smarty.net/manual/en/language.function.counter.php {counter}
* (Smarty online manual)
*
* @param array $params parameters
diff --git a/vendor/smarty/smarty/libs/plugins/function.cycle.php b/vendor/smarty/smarty/libs/plugins/function.cycle.php
index 07ffcc5e2..793569991 100644
--- a/vendor/smarty/smarty/libs/plugins/function.cycle.php
+++ b/vendor/smarty/smarty/libs/plugins/function.cycle.php
@@ -28,7 +28,7 @@
* {cycle name=row values="one,two,three" reset=true}
* {cycle name=row}
*
- * @link http://www.smarty.net/manual/en/language.function.cycle.php {cycle}
+ * @link https://www.smarty.net/manual/en/language.function.cycle.php {cycle}
* (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
* @author credit to Mark Priatel <mpriatel@rogers.com>
diff --git a/vendor/smarty/smarty/libs/plugins/function.fetch.php b/vendor/smarty/smarty/libs/plugins/function.fetch.php
index 768761b23..4a3e88196 100644
--- a/vendor/smarty/smarty/libs/plugins/function.fetch.php
+++ b/vendor/smarty/smarty/libs/plugins/function.fetch.php
@@ -11,7 +11,7 @@
* Name: fetch
* Purpose: fetch file, web or ftp data and display results
*
- * @link http://www.smarty.net/manual/en/language.function.fetch.php {fetch}
+ * @link https://www.smarty.net/manual/en/language.function.fetch.php {fetch}
* (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
diff --git a/vendor/smarty/smarty/libs/plugins/function.html_checkboxes.php b/vendor/smarty/smarty/libs/plugins/function.html_checkboxes.php
index 302358edd..a8e7a07d8 100644
--- a/vendor/smarty/smarty/libs/plugins/function.html_checkboxes.php
+++ b/vendor/smarty/smarty/libs/plugins/function.html_checkboxes.php
@@ -29,7 +29,7 @@
* - assign (optional) - assign the output as an array to this variable
* - escape (optional) - escape the content (not value), defaults to true
*
- * @link http://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes}
+ * @link https://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes}
* (Smarty online manual)
* @author Christopher Kvarme <christopher.kvarme@flashjab.com>
* @author credits to Monte Ohrt <monte at ohrt dot com>
diff --git a/vendor/smarty/smarty/libs/plugins/function.html_image.php b/vendor/smarty/smarty/libs/plugins/function.html_image.php
index ad468e4f1..71bc63864 100644
--- a/vendor/smarty/smarty/libs/plugins/function.html_image.php
+++ b/vendor/smarty/smarty/libs/plugins/function.html_image.php
@@ -21,7 +21,7 @@
* - basedir - (optional) - base directory for absolute paths, default is environment variable DOCUMENT_ROOT
* - path_prefix - prefix for path output (optional, default empty)
*
- * @link http://www.smarty.net/manual/en/language.function.html.image.php {html_image}
+ * @link https://www.smarty.net/manual/en/language.function.html.image.php {html_image}
* (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
* @author credits to Duda <duda@big.hu>
diff --git a/vendor/smarty/smarty/libs/plugins/function.html_options.php b/vendor/smarty/smarty/libs/plugins/function.html_options.php
index 6907e8ee1..3e4335340 100644
--- a/vendor/smarty/smarty/libs/plugins/function.html_options.php
+++ b/vendor/smarty/smarty/libs/plugins/function.html_options.php
@@ -21,7 +21,7 @@
* - id (optional) - string default not set
* - class (optional) - string default not set
*
- * @link http://www.smarty.net/manual/en/language.function.html.options.php {html_image}
+ * @link https://www.smarty.net/manual/en/language.function.html.options.php {html_image}
* (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
* @author Ralf Strehle (minor optimization) <ralf dot strehle at yahoo dot de>
diff --git a/vendor/smarty/smarty/libs/plugins/function.html_radios.php b/vendor/smarty/smarty/libs/plugins/function.html_radios.php
index 5e834587c..2223ff7ee 100644
--- a/vendor/smarty/smarty/libs/plugins/function.html_radios.php
+++ b/vendor/smarty/smarty/libs/plugins/function.html_radios.php
@@ -29,7 +29,7 @@
* {html_radios values=$ids name='box' separator='<br>' output=$names}
* {html_radios values=$ids checked=$checked separator='<br>' output=$names}
*
- * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios}
+ * @link https://www.smarty.net/manual/en/language.function.html.radios.php {html_radios}
* (Smarty online manual)
* @author Christopher Kvarme <christopher.kvarme@flashjab.com>
* @author credits to Monte Ohrt <monte at ohrt dot com>
diff --git a/vendor/smarty/smarty/libs/plugins/function.html_select_date.php b/vendor/smarty/smarty/libs/plugins/function.html_select_date.php
index 86403e3dc..763fc60f9 100644
--- a/vendor/smarty/smarty/libs/plugins/function.html_select_date.php
+++ b/vendor/smarty/smarty/libs/plugins/function.html_select_date.php
@@ -28,7 +28,7 @@
* - 2.0 complete rewrite for performance,
* added attributes month_names, *_id
*
- * @link http://www.smarty.net/manual/en/language.function.html.select.date.php {html_select_date}
+ * @link https://www.smarty.net/manual/en/language.function.html.select.date.php {html_select_date}
* (Smarty online manual)
* @version 2.0
* @author Andrei Zmievski
diff --git a/vendor/smarty/smarty/libs/plugins/function.html_select_time.php b/vendor/smarty/smarty/libs/plugins/function.html_select_time.php
index cb047bc0a..256b56b1c 100644
--- a/vendor/smarty/smarty/libs/plugins/function.html_select_time.php
+++ b/vendor/smarty/smarty/libs/plugins/function.html_select_time.php
@@ -11,7 +11,7 @@
* Name: html_select_time
* Purpose: Prints the dropdowns for time selection
*
- * @link http://www.smarty.net/manual/en/language.function.html.select.time.php {html_select_time}
+ * @link https://www.smarty.net/manual/en/language.function.html.select.time.php {html_select_time}
* (Smarty online manual)
* @author Roberto Berto <roberto@berto.net>
* @author Monte Ohrt <monte AT ohrt DOT com>
diff --git a/vendor/smarty/smarty/libs/plugins/function.html_table.php b/vendor/smarty/smarty/libs/plugins/function.html_table.php
index ae61e83dc..17b0586e2 100644
--- a/vendor/smarty/smarty/libs/plugins/function.html_table.php
+++ b/vendor/smarty/smarty/libs/plugins/function.html_table.php
@@ -38,7 +38,7 @@
* @author credit to Messju Mohr <messju at lammfellpuschen dot de>
* @author credit to boots <boots dot smarty at yahoo dot com>
* @version 1.1
- * @link http://www.smarty.net/manual/en/language.function.html.table.php {html_table}
+ * @link https://www.smarty.net/manual/en/language.function.html.table.php {html_table}
* (Smarty online manual)
*
* @param array $params parameters
diff --git a/vendor/smarty/smarty/libs/plugins/function.mailto.php b/vendor/smarty/smarty/libs/plugins/function.mailto.php
index 27351df82..834d0535a 100644
--- a/vendor/smarty/smarty/libs/plugins/function.mailto.php
+++ b/vendor/smarty/smarty/libs/plugins/function.mailto.php
@@ -36,7 +36,7 @@
* {mailto address="me@domain.com" cc="you@domain.com,they@domain.com"}
* {mailto address="me@domain.com" extra='class="mailto"'}
*
- * @link http://www.smarty.net/manual/en/language.function.mailto.php {mailto}
+ * @link https://www.smarty.net/manual/en/language.function.mailto.php {mailto}
* (Smarty online manual)
* @version 1.2
* @author Monte Ohrt <monte at ohrt dot com>
@@ -94,22 +94,19 @@ function smarty_function_mailto($params)
);
return;
}
- // FIXME: (rodneyrehm) document.write() excues me what? 1998 has passed!
if ($encode === 'javascript') {
- $string = 'document.write(\'<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>\');';
+ $string = '<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>';
$js_encode = '';
for ($x = 0, $_length = strlen($string); $x < $_length; $x++) {
$js_encode .= '%' . bin2hex($string[ $x ]);
}
- return '<script type="text/javascript">eval(unescape(\'' . $js_encode . '\'))</script>';
+ return '<script type="text/javascript">document.write(unescape(\'' . $js_encode . '\'))</script>';
} elseif ($encode === 'javascript_charcode') {
$string = '<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>';
- for ($x = 0, $y = strlen($string); $x < $y; $x++) {
+ for ($x = 0, $_length = strlen($string); $x < $_length; $x++) {
$ord[] = ord($string[ $x ]);
}
- $_ret = "<script type=\"text/javascript\" language=\"javascript\">\n" . "{document.write(String.fromCharCode(" .
- implode(',', $ord) . "))" . "}\n" . "</script>\n";
- return $_ret;
+ return '<script type="text/javascript">document.write(String.fromCharCode(' . implode(',', $ord) . '))</script>';
} elseif ($encode === 'hex') {
preg_match('!^(.*)(\?.*)$!', $address, $match);
if (!empty($match[ 2 ])) {
diff --git a/vendor/smarty/smarty/libs/plugins/function.math.php b/vendor/smarty/smarty/libs/plugins/function.math.php
index 7348d9649..fd5b3d166 100644
--- a/vendor/smarty/smarty/libs/plugins/function.math.php
+++ b/vendor/smarty/smarty/libs/plugins/function.math.php
@@ -12,7 +12,7 @@
* Name: math
* Purpose: handle math computations in template
*
- * @link http://www.smarty.net/manual/en/language.function.math.php {math}
+ * @link https://www.smarty.net/manual/en/language.function.math.php {math}
* (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
@@ -28,7 +28,12 @@ function smarty_function_math($params, $template)
'int' => true,
'abs' => true,
'ceil' => true,
+ 'acos' => true,
+ 'acosh' => true,
'cos' => true,
+ 'cosh' => true,
+ 'deg2rad' => true,
+ 'rad2deg' => true,
'exp' => true,
'floor' => true,
'log' => true,
@@ -39,27 +44,51 @@ function smarty_function_math($params, $template)
'pow' => true,
'rand' => true,
'round' => true,
+ 'asin' => true,
+ 'asinh' => true,
'sin' => true,
+ 'sinh' => true,
'sqrt' => true,
'srand' => true,
- 'tan' => true
+ 'atan' => true,
+ 'atanh' => true,
+ 'tan' => true,
+ 'tanh' => true
);
+
// be sure equation parameter is present
if (empty($params[ 'equation' ])) {
trigger_error("math: missing equation parameter", E_USER_WARNING);
return;
}
$equation = $params[ 'equation' ];
+
+ // Remove whitespaces
+ $equation = preg_replace('/\s+/', '', $equation);
+
+ // Adapted from https://www.php.net/manual/en/function.eval.php#107377
+ $number = '(?:\d+(?:[,.]\d+)?|pi|Ï€)'; // What is a number
+ $functionsOrVars = '((?:0x[a-fA-F0-9]+)|([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*))';
+ $operators = '[+\/*\^%-]'; // Allowed math operators
+ $regexp = '/^(('.$number.'|'.$functionsOrVars.'|('.$functionsOrVars.'\s*\((?1)+\)|\((?1)+\)))(?:'.$operators.'(?1))?)+$/';
+
+ if (!preg_match($regexp, $equation)) {
+ trigger_error("math: illegal characters", E_USER_WARNING);
+ return;
+ }
+
// make sure parenthesis are balanced
if (substr_count($equation, '(') !== substr_count($equation, ')')) {
trigger_error("math: unbalanced parenthesis", E_USER_WARNING);
return;
}
+
// disallow backticks
if (strpos($equation, '`') !== false) {
trigger_error("math: backtick character not allowed in equation", E_USER_WARNING);
return;
}
+
// also disallow dollar signs
if (strpos($equation, '$') !== false) {
trigger_error("math: dollar signs not allowed in equation", E_USER_WARNING);
@@ -96,6 +125,7 @@ function smarty_function_math($params, $template)
}
$smarty_math_result = null;
eval("\$smarty_math_result = " . $equation . ";");
+
if (empty($params[ 'format' ])) {
if (empty($params[ 'assign' ])) {
return $smarty_math_result;
diff --git a/vendor/smarty/smarty/libs/plugins/modifier.date_format.php b/vendor/smarty/smarty/libs/plugins/modifier.date_format.php
index c8e88c5c9..8e7e0b6e1 100644
--- a/vendor/smarty/smarty/libs/plugins/modifier.date_format.php
+++ b/vendor/smarty/smarty/libs/plugins/modifier.date_format.php
@@ -15,7 +15,7 @@
* - format: strftime format for output
* - default_date: default date if $string is empty
*
- * @link http://www.smarty.net/manual/en/language.modifier.date.format.php date_format (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.date.format.php date_format (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param string $string input date string
diff --git a/vendor/smarty/smarty/libs/plugins/modifier.escape.php b/vendor/smarty/smarty/libs/plugins/modifier.escape.php
index 150901c7c..47489aa98 100644
--- a/vendor/smarty/smarty/libs/plugins/modifier.escape.php
+++ b/vendor/smarty/smarty/libs/plugins/modifier.escape.php
@@ -11,7 +11,7 @@
* Name: escape
* Purpose: escape string for output
*
- * @link http://www.smarty.net/docs/en/language.modifier.escape
+ * @link https://www.smarty.net/docs/en/language.modifier.escape
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param string $string input string
@@ -23,12 +23,9 @@
*/
function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $double_encode = true)
{
- static $_double_encode = null;
+ static $_double_encode = true;
static $is_loaded_1 = false;
static $is_loaded_2 = false;
- if ($_double_encode === null) {
- $_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
- }
if (!$char_set) {
$char_set = Smarty::$_CHARSET;
}
@@ -184,7 +181,11 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
'"' => '\\"',
"\r" => '\\r',
"\n" => '\\n',
- '</' => '<\/'
+ '</' => '<\/',
+ // see https://html.spec.whatwg.org/multipage/scripting.html#restrictions-for-contents-of-script-elements
+ '<!--' => '<\!--',
+ '<s' => '<\s',
+ '<S' => '<\S'
)
);
case 'mail':
@@ -250,6 +251,7 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
}
return $return;
default:
+ trigger_error("escape: unsupported type: $esc_type - returning unmodified string", E_USER_NOTICE);
return $string;
}
}
diff --git a/vendor/smarty/smarty/libs/plugins/modifier.mb_wordwrap.php b/vendor/smarty/smarty/libs/plugins/modifier.mb_wordwrap.php
index 1cd625b64..7c7bd875f 100644
--- a/vendor/smarty/smarty/libs/plugins/modifier.mb_wordwrap.php
+++ b/vendor/smarty/smarty/libs/plugins/modifier.mb_wordwrap.php
@@ -11,7 +11,7 @@
* Name: mb_wordwrap
* Purpose: Wrap a string to a given number of characters
*
- * @link http://php.net/manual/en/function.wordwrap.php for similarity
+ * @link https://php.net/manual/en/function.wordwrap.php for similarity
*
* @param string $str the string to wrap
* @param int $width the width of the output
diff --git a/vendor/smarty/smarty/libs/plugins/modifier.regex_replace.php b/vendor/smarty/smarty/libs/plugins/modifier.regex_replace.php
index 7eb550695..cd57cdf33 100644
--- a/vendor/smarty/smarty/libs/plugins/modifier.regex_replace.php
+++ b/vendor/smarty/smarty/libs/plugins/modifier.regex_replace.php
@@ -11,7 +11,7 @@
* Name: regex_replace
* Purpose: regular expression search/replace
*
- * @link http://smarty.php.net/manual/en/language.modifier.regex.replace.php
+ * @link https://www.smarty.net/manual/en/language.modifier.regex.replace.php
* regex_replace (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
diff --git a/vendor/smarty/smarty/libs/plugins/modifier.replace.php b/vendor/smarty/smarty/libs/plugins/modifier.replace.php
index a98f5a4a6..71a7c632a 100644
--- a/vendor/smarty/smarty/libs/plugins/modifier.replace.php
+++ b/vendor/smarty/smarty/libs/plugins/modifier.replace.php
@@ -11,7 +11,7 @@
* Name: replace
* Purpose: simple search/replace
*
- * @link http://smarty.php.net/manual/en/language.modifier.replace.php replace (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.replace.php replace (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
* @author Uwe Tews
*
diff --git a/vendor/smarty/smarty/libs/plugins/modifier.spacify.php b/vendor/smarty/smarty/libs/plugins/modifier.spacify.php
index 98efd4b30..251dbe71b 100644
--- a/vendor/smarty/smarty/libs/plugins/modifier.spacify.php
+++ b/vendor/smarty/smarty/libs/plugins/modifier.spacify.php
@@ -11,7 +11,7 @@
* Name: spacify
* Purpose: add spaces between characters in a string
*
- * @link http://smarty.php.net/manual/en/language.modifier.spacify.php spacify (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.spacify.php spacify (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param string $string input string
diff --git a/vendor/smarty/smarty/libs/plugins/modifier.truncate.php b/vendor/smarty/smarty/libs/plugins/modifier.truncate.php
index bb881bf6e..33e7e53aa 100644
--- a/vendor/smarty/smarty/libs/plugins/modifier.truncate.php
+++ b/vendor/smarty/smarty/libs/plugins/modifier.truncate.php
@@ -13,7 +13,7 @@
* optionally splitting in the middle of a word, and
* appending the $etc string or inserting $etc into the middle.
*
- * @link http://smarty.php.net/manual/en/language.modifier.truncate.php truncate (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.truncate.php truncate (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
*
* @param string $string input string
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.cat.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.cat.php
index 21d0e6624..2c3a8b2a4 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.cat.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.cat.php
@@ -14,7 +14,7 @@
* Input: string to catenate
* Example: {$var|cat:"foo"}
*
- * @link http://smarty.php.net/manual/en/language.modifier.cat.php cat
+ * @link https://www.smarty.net/manual/en/language.modifier.cat.php cat
* (Smarty online manual)
* @author Uwe Tews
*
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_characters.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_characters.php
index 6c44278af..b5d97e276 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_characters.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_characters.php
@@ -11,7 +11,7 @@
* Name: count_characters
* Purpose: count the number of characters in a text
*
- * @link http://www.smarty.net/manual/en/language.modifier.count.characters.php count_characters (Smarty online
+ * @link https://www.smarty.net/manual/en/language.modifier.count.characters.php count_characters (Smarty online
* manual)
* @author Uwe Tews
*
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_paragraphs.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_paragraphs.php
index e214a56f0..332402968 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_paragraphs.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_paragraphs.php
@@ -11,7 +11,7 @@
* Name: count_paragraphs
* Purpose: count the number of paragraphs in a text
*
- * @link http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
+ * @link https://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
* count_paragraphs (Smarty online manual)
* @author Uwe Tews
*
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_sentences.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_sentences.php
index 027745635..30e36e5f0 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_sentences.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_sentences.php
@@ -11,7 +11,7 @@
* Name: count_sentences
* Purpose: count the number of sentences in a text
*
- * @link http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
+ * @link https://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
* count_sentences (Smarty online manual)
* @author Uwe Tews
*
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_words.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_words.php
index 6d889da5c..cf2e50222 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_words.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.count_words.php
@@ -11,7 +11,7 @@
* Name: count_words
* Purpose: count the number of words in a text
*
- * @link http://www.smarty.net/manual/en/language.modifier.count.words.php count_words (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.count.words.php count_words (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.default.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.default.php
index ae886c4b2..dffa7a986 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.default.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.default.php
@@ -11,7 +11,7 @@
* Name: default
* Purpose: designate default value for empty variables
*
- * @link http://www.smarty.net/manual/en/language.modifier.default.php default (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.default.php default (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
@@ -26,7 +26,7 @@ function smarty_modifiercompiler_default($params)
}
array_shift($params);
foreach ($params as $param) {
- $output = '(($tmp = @' . $output . ')===null||$tmp===\'\' ? ' . $param . ' : $tmp)';
+ $output = '(($tmp = ' . $output . ' ?? null)===null||$tmp===\'\' ? ' . $param . ' ?? null : $tmp)';
}
return $output;
}
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.escape.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.escape.php
index e0763adce..70b95cc9d 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.escape.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.escape.php
@@ -11,7 +11,7 @@
* Name: escape
* Purpose: escape string for output
*
- * @link http://www.smarty.net/docsv2/en/language.modifier.escape count_characters (Smarty online manual)
+ * @link https://www.smarty.net/docsv2/en/language.modifier.escape count_characters (Smarty online manual)
* @author Rodney Rehm
*
* @param array $params parameters
@@ -22,7 +22,7 @@
*/
function smarty_modifiercompiler_escape($params, Smarty_Internal_TemplateCompilerBase $compiler)
{
- static $_double_encode = null;
+ static $_double_encode = true;
static $is_loaded = false;
$compiler->template->_checkPlugins(
array(
@@ -32,9 +32,6 @@ function smarty_modifiercompiler_escape($params, Smarty_Internal_TemplateCompile
)
)
);
- if ($_double_encode === null) {
- $_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
- }
try {
$esc_type = smarty_literal_compiler_param($params, 1, 'html');
$char_set = smarty_literal_compiler_param($params, 2, Smarty::$_CHARSET);
@@ -89,9 +86,10 @@ function smarty_modifiercompiler_escape($params, Smarty_Internal_TemplateCompile
return 'preg_replace("%(?<!\\\\\\\\)\'%", "\\\'",' . $params[ 0 ] . ')';
case 'javascript':
// escape quotes and backslashes, newlines, etc.
+ // see https://html.spec.whatwg.org/multipage/scripting.html#restrictions-for-contents-of-script-elements
return 'strtr(' .
$params[ 0 ] .
- ', array("\\\\" => "\\\\\\\\", "\'" => "\\\\\'", "\"" => "\\\\\"", "\\r" => "\\\\r", "\\n" => "\\\n", "</" => "<\/" ))';
+ ', array("\\\\" => "\\\\\\\\", "\'" => "\\\\\'", "\"" => "\\\\\"", "\\r" => "\\\\r", "\\n" => "\\\n", "</" => "<\/", "<!--" => "<\!--", "<s" => "<\s", "<S" => "<\S" ))';
}
} catch (SmartyException $e) {
// pass through to regular plugin fallback
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.indent.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.indent.php
index 2088ad6a8..636f0edf1 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.indent.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.indent.php
@@ -11,7 +11,7 @@
* Name: indent
* Purpose: indent lines of text
*
- * @link http://www.smarty.net/manual/en/language.modifier.indent.php indent (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.indent.php indent (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.lower.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.lower.php
index 0d899a002..ac9cc39d7 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.lower.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.lower.php
@@ -11,7 +11,7 @@
* Name: lower
* Purpose: convert string to lowercase
*
- * @link http://www.smarty.net/manual/en/language.modifier.lower.php lower (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.lower.php lower (Smarty online manual)
* @author Monte Ohrt <monte at ohrt dot com>
* @author Uwe Tews
*
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.string_format.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.string_format.php
index 663094311..8df5632c5 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.string_format.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.string_format.php
@@ -11,7 +11,7 @@
* Name: string_format
* Purpose: format strings via sprintf
*
- * @link http://www.smarty.net/manual/en/language.modifier.string.format.php string_format (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.string.format.php string_format (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.strip.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.strip.php
index 04ea332c5..51944bde6 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.strip.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.strip.php
@@ -14,7 +14,7 @@
* Example: {$var|strip} {$var|strip:"&nbsp;"}
* Date: September 25th, 2002
*
- * @link http://www.smarty.net/manual/en/language.modifier.strip.php strip (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.strip.php strip (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.strip_tags.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.strip_tags.php
index 1bca1a28e..6ee3df9a5 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.strip_tags.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.strip_tags.php
@@ -11,7 +11,7 @@
* Name: strip_tags
* Purpose: strip html tags from text
*
- * @link http://www.smarty.net/docs/en/language.modifier.strip.tags.tpl strip_tags (Smarty online manual)
+ * @link https://www.smarty.net/docs/en/language.modifier.strip.tags.tpl strip_tags (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.upper.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.upper.php
index ea4e95b7a..e12ae6769 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.upper.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.upper.php
@@ -11,7 +11,7 @@
* Name: lower
* Purpose: convert string to uppercase
*
- * @link http://smarty.php.net/manual/en/language.modifier.upper.php lower (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.upper.php lower (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
diff --git a/vendor/smarty/smarty/libs/plugins/modifiercompiler.wordwrap.php b/vendor/smarty/smarty/libs/plugins/modifiercompiler.wordwrap.php
index 8565f140e..49cb40b0f 100644
--- a/vendor/smarty/smarty/libs/plugins/modifiercompiler.wordwrap.php
+++ b/vendor/smarty/smarty/libs/plugins/modifiercompiler.wordwrap.php
@@ -11,7 +11,7 @@
* Name: wordwrap
* Purpose: wrap a string of text at a given length
*
- * @link http://smarty.php.net/manual/en/language.modifier.wordwrap.php wordwrap (Smarty online manual)
+ * @link https://www.smarty.net/manual/en/language.modifier.wordwrap.php wordwrap (Smarty online manual)
* @author Uwe Tews
*
* @param array $params parameters
diff --git a/vendor/smarty/smarty/libs/plugins/outputfilter.trimwhitespace.php b/vendor/smarty/smarty/libs/plugins/outputfilter.trimwhitespace.php
index 7e4503a1c..2f747ad5a 100644
--- a/vendor/smarty/smarty/libs/plugins/outputfilter.trimwhitespace.php
+++ b/vendor/smarty/smarty/libs/plugins/outputfilter.trimwhitespace.php
@@ -41,7 +41,7 @@ function smarty_outputfilter_trimwhitespace($source)
}
}
// Strip all HTML-Comments
- // yes, even the ones in <script> - see http://stackoverflow.com/a/808850/515124
+ // yes, even the ones in <script> - see https://stackoverflow.com/a/808850/515124
$source = preg_replace('#<!--.*?-->#ms', '', $source);
// capture html elements not to be messed with
$_offset = 0;
diff --git a/vendor/smarty/smarty/libs/plugins/shared.escape_special_chars.php b/vendor/smarty/smarty/libs/plugins/shared.escape_special_chars.php
index 6b18d3eec..a204b092c 100644
--- a/vendor/smarty/smarty/libs/plugins/shared.escape_special_chars.php
+++ b/vendor/smarty/smarty/libs/plugins/shared.escape_special_chars.php
@@ -20,13 +20,7 @@
function smarty_function_escape_special_chars($string)
{
if (!is_array($string)) {
- if (version_compare(PHP_VERSION, '5.2.3', '>=')) {
- $string = htmlspecialchars($string, ENT_COMPAT, Smarty::$_CHARSET, false);
- } else {
- $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
- $string = htmlspecialchars($string);
- $string = str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string);
- }
+ $string = htmlspecialchars($string, ENT_COMPAT, Smarty::$_CHARSET, false);
}
return $string;
}
diff --git a/vendor/smarty/smarty/libs/plugins/shared.mb_str_replace.php b/vendor/smarty/smarty/libs/plugins/shared.mb_str_replace.php
index 206cf9ea6..226d9035d 100644
--- a/vendor/smarty/smarty/libs/plugins/shared.mb_str_replace.php
+++ b/vendor/smarty/smarty/libs/plugins/shared.mb_str_replace.php
@@ -44,7 +44,7 @@ if (!function_exists('smarty_mb_str_replace')) {
}
}
} else {
- $parts = mb_split(preg_quote($search), $subject);
+ $parts = mb_split(preg_quote($search), $subject) ?: array();
$count = count($parts) - 1;
$subject = implode($replace, $parts);
}
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_cacheresource_file.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_cacheresource_file.php
index 61618449d..c77ae9e17 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_cacheresource_file.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_cacheresource_file.php
@@ -196,12 +196,8 @@ class Smarty_Internal_CacheResource_File extends Smarty_CacheResource
*/
public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
{
- if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
- clearstatcache(true, $cached->lock_id);
- } else {
- clearstatcache();
- }
- if (is_file($cached->lock_id)) {
+ clearstatcache(true, $cached->lock_id ?? '');
+ if (null !== $cached->lock_id && is_file($cached->lock_id)) {
$t = filemtime($cached->lock_id);
return $t && (time() - $t < $smarty->locking_timeout);
} else {
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_for.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_for.php
index 3f113e56d..969e22c1a 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_for.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_for.php
@@ -18,7 +18,7 @@ class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase
{
/**
* Compiles code for the {for} tag
- * Smarty 3 does implement two different syntax's:
+ * Smarty supports two different syntax's:
* - {for $var in $array}
* For looping over arrays or iterators
* - {for $x=0; $x<$y; $x++}
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_foreach.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_foreach.php
index a68da5409..edfe358be 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_foreach.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_foreach.php
@@ -219,9 +219,9 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_Compile_Private_Fo
if (isset($itemAttr[ 'index' ])) {
$output .= "{$itemVar}->index = -1;\n";
}
- $output .= "{$itemVar}->do_else = true;\n";
+ $output .= "{$itemVar}->do_else = true;\n";
$output .= "if (\$_from !== null) foreach (\$_from as {$keyTerm}{$itemVar}->value) {\n";
- $output .= "{$itemVar}->do_else = false;\n";
+ $output .= "{$itemVar}->do_else = false;\n";
if (isset($attributes[ 'key' ]) && isset($itemAttr[ 'key' ])) {
$output .= "\$_smarty_tpl->tpl_vars['{$key}']->value = {$itemVar}->key;\n";
}
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_function.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_function.php
index d0f2b0f4a..84e9584d9 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_function.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_function.php
@@ -157,7 +157,7 @@ class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_CompileBase
$output = "<?php echo \"/*%%SmartyNocache:{$compiler->template->compiled->nocache_hash}%%*/<?php ";
$output .= "\\\$_smarty_tpl->smarty->ext->_tplFunction->restoreTemplateVariables(\\\$_smarty_tpl, '{$_name}');?>\n";
$output .= "/*/%%SmartyNocache:{$compiler->template->compiled->nocache_hash}%%*/\";\n?>";
- $output .= "<?php echo str_replace('{$compiler->template->compiled->nocache_hash}', \$_smarty_tpl->compiled->nocache_hash, ob_get_clean());\n";
+ $output .= "<?php echo str_replace('{$compiler->template->compiled->nocache_hash}', \$_smarty_tpl->compiled->nocache_hash ?? '', ob_get_clean());\n";
$output .= "}\n}\n";
$output .= "/*/ {$_funcName}_nocache */\n\n";
$output .= "?>\n";
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_include_php.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_include_php.php
deleted file mode 100644
index 1b0fdaad3..000000000
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_include_php.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/**
- * Smarty Internal Plugin Compile Include PHP
- * Compiles the {include_php} tag
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Uwe Tews
- */
-
-/**
- * Smarty Internal Plugin Compile Insert Class
- *
- * @package Smarty
- * @subpackage Compiler
- */
-class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_CompileBase
-{
- /**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
- public $required_attributes = array('file');
-
- /**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
- public $shorttag_order = array('file');
-
- /**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
- public $optional_attributes = array('once', 'assign');
-
- /**
- * Compiles code for the {include_php} tag
- *
- * @param array $args array with attributes from parser
- * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
- *
- * @return string
- * @throws \SmartyCompilerException
- * @throws \SmartyException
- */
- public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler)
- {
- if (!($compiler->smarty instanceof SmartyBC)) {
- throw new SmartyException("{include_php} is deprecated, use SmartyBC class to enable");
- }
- // check and get attributes
- $_attr = $this->getAttributes($compiler, $args);
- /**
- *
- *
- * @var Smarty_Internal_Template $_smarty_tpl
- * used in evaluated code
- */
- $_smarty_tpl = $compiler->template;
- $_filepath = false;
- $_file = null;
- eval('$_file = @' . $_attr[ 'file' ] . ';');
- if (!isset($compiler->smarty->security_policy) && file_exists($_file)) {
- $_filepath = $compiler->smarty->_realpath($_file, true);
- } else {
- if (isset($compiler->smarty->security_policy)) {
- $_dir = $compiler->smarty->security_policy->trusted_dir;
- } else {
- $_dir = $compiler->smarty->trusted_dir;
- }
- if (!empty($_dir)) {
- foreach ((array)$_dir as $_script_dir) {
- $_path = $compiler->smarty->_realpath($_script_dir . DIRECTORY_SEPARATOR . $_file, true);
- if (file_exists($_path)) {
- $_filepath = $_path;
- break;
- }
- }
- }
- }
- if ($_filepath === false) {
- $compiler->trigger_template_error("{include_php} file '{$_file}' is not readable", null, true);
- }
- if (isset($compiler->smarty->security_policy)) {
- $compiler->smarty->security_policy->isTrustedPHPDir($_filepath);
- }
- if (isset($_attr[ 'assign' ])) {
- // output will be stored in a smarty variable instead of being displayed
- $_assign = $_attr[ 'assign' ];
- }
- $_once = '_once';
- if (isset($_attr[ 'once' ])) {
- if ($_attr[ 'once' ] === 'false') {
- $_once = '';
- }
- }
- if (isset($_assign)) {
- return "<?php ob_start();\ninclude{$_once} ('{$_filepath}');\n\$_smarty_tpl->assign({$_assign},ob_get_clean());\n?>";
- } else {
- return "<?php include{$_once} ('{$_filepath}');?>\n";
- }
- }
-}
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_insert.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_insert.php
index 4bdc3952e..c91ff62cb 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_insert.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_insert.php
@@ -89,7 +89,7 @@ class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
if (isset($compiler->smarty->security_policy)) {
$_dir = $compiler->smarty->security_policy->trusted_dir;
} else {
- $_dir = $compiler->smarty instanceof SmartyBC ? $compiler->smarty->trusted_dir : null;
+ $_dir = null;
}
if (!empty($_dir)) {
foreach ((array)$_dir as $_script_dir) {
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_php.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_php.php
deleted file mode 100644
index ff48c6fbc..000000000
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_php.php
+++ /dev/null
@@ -1,253 +0,0 @@
-<?php
-/**
- * Smarty Internal Plugin Compile PHP Expression
- * Compiles any tag which will output an expression or variable
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Uwe Tews
- */
-
-/**
- * Smarty Internal Plugin Compile PHP Expression Class
- *
- * @package Smarty
- * @subpackage Compiler
- */
-class Smarty_Internal_Compile_Private_Php extends Smarty_Internal_CompileBase
-{
- /**
- * Attribute definition: Overwrites base class.
- *
- * @var array
- * @see Smarty_Internal_CompileBase
- */
- public $required_attributes = array('code', 'type');
-
- /**
- * Compiles code for generating output from any expression
- *
- * @param array $args array with attributes from parser
- * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object
- * @param array $parameter array with compilation parameter
- *
- * @return string
- * @throws \SmartyException
- */
- public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter)
- {
- // check and get attributes
- $_attr = $this->getAttributes($compiler, $args);
- $compiler->has_code = false;
- if ($_attr[ 'type' ] === 'xml') {
- $compiler->tag_nocache = true;
- $output = addcslashes($_attr[ 'code' ], "'\\");
- $compiler->parser->current_buffer->append_subtree(
- $compiler->parser,
- new Smarty_Internal_ParseTree_Tag(
- $compiler->parser,
- $compiler->processNocacheCode(
- "<?php echo '{$output}';?>\n",
- true
- )
- )
- );
- return '';
- }
- if ($_attr[ 'type' ] !== 'tag') {
- if ($compiler->php_handling === Smarty::PHP_REMOVE) {
- return '';
- } elseif ($compiler->php_handling === Smarty::PHP_QUOTE) {
- $output =
- preg_replace_callback(
- '#(<\?(?:php|=)?)|(<%)|(<script\s+language\s*=\s*["\']?\s*php\s*["\']?\s*>)|(\?>)|(%>)|(<\/script>)#i',
- array($this, 'quote'),
- $_attr[ 'code' ]
- );
- $compiler->parser->current_buffer->append_subtree(
- $compiler->parser,
- new Smarty_Internal_ParseTree_Text($output)
- );
- return '';
- } elseif ($compiler->php_handling === Smarty::PHP_PASSTHRU || $_attr[ 'type' ] === 'unmatched') {
- $compiler->tag_nocache = true;
- $output = addcslashes($_attr[ 'code' ], "'\\");
- $compiler->parser->current_buffer->append_subtree(
- $compiler->parser,
- new Smarty_Internal_ParseTree_Tag(
- $compiler->parser,
- $compiler->processNocacheCode(
- "<?php echo '{$output}';?>\n",
- true
- )
- )
- );
- return '';
- } elseif ($compiler->php_handling === Smarty::PHP_ALLOW) {
- if (!($compiler->smarty instanceof SmartyBC)) {
- $compiler->trigger_template_error(
- '$smarty->php_handling PHP_ALLOW not allowed. Use SmartyBC to enable it',
- null,
- true
- );
- }
- $compiler->has_code = true;
- return $_attr[ 'code' ];
- } else {
- $compiler->trigger_template_error('Illegal $smarty->php_handling value', null, true);
- }
- } else {
- $compiler->has_code = true;
- if (!($compiler->smarty instanceof SmartyBC)) {
- $compiler->trigger_template_error(
- '{php}{/php} tags not allowed. Use SmartyBC to enable them',
- null,
- true
- );
- }
- $ldel = preg_quote($compiler->smarty->left_delimiter, '#');
- $rdel = preg_quote($compiler->smarty->right_delimiter, '#');
- preg_match("#^({$ldel}php\\s*)((.)*?)({$rdel})#", $_attr[ 'code' ], $match);
- if (!empty($match[ 2 ])) {
- if ('nocache' === trim($match[ 2 ])) {
- $compiler->tag_nocache = true;
- } else {
- $compiler->trigger_template_error("illegal value of option flag '{$match[2]}'", null, true);
- }
- }
- return preg_replace(
- array("#^{$ldel}\\s*php\\s*(.)*?{$rdel}#", "#{$ldel}\\s*/\\s*php\\s*{$rdel}$#"),
- array('<?php ', '?>'),
- $_attr[ 'code' ]
- );
- }
- }
-
- /**
- * Lexer code for PHP tags
- *
- * This code has been moved from lexer here fo easier debugging and maintenance
- *
- * @param Smarty_Internal_Templatelexer $lex
- *
- * @throws \SmartyCompilerException
- */
- public function parsePhp(Smarty_Internal_Templatelexer $lex)
- {
- $lex->token = Smarty_Internal_Templateparser::TP_PHP;
- $close = 0;
- $lex->taglineno = $lex->line;
- $closeTag = '?>';
- if (strpos($lex->value, '<?xml') === 0) {
- $lex->is_xml = true;
- $lex->phpType = 'xml';
- return;
- } elseif (strpos($lex->value, '<?') === 0) {
- $lex->phpType = 'php';
- } elseif (strpos($lex->value, '<%') === 0) {
- $lex->phpType = 'asp';
- $closeTag = '%>';
- } elseif (strpos($lex->value, '%>') === 0) {
- $lex->phpType = 'unmatched';
- } elseif (strpos($lex->value, '?>') === 0) {
- if ($lex->is_xml) {
- $lex->is_xml = false;
- $lex->phpType = 'xml';
- return;
- }
- $lex->phpType = 'unmatched';
- } elseif (strpos($lex->value, '<s') === 0) {
- $lex->phpType = 'script';
- $closeTag = '</script>';
- } elseif (strpos($lex->value, $lex->smarty->left_delimiter) === 0) {
- if ($lex->isAutoLiteral()) {
- $lex->token = Smarty_Internal_Templateparser::TP_TEXT;
- return;
- }
- $closeTag = "{$lex->smarty->left_delimiter}/php{$lex->smarty->right_delimiter}";
- if ($lex->value === $closeTag) {
- $lex->compiler->trigger_template_error("unexpected closing tag '{$closeTag}'");
- }
- $lex->phpType = 'tag';
- }
- if ($lex->phpType === 'unmatched') {
- return;
- }
- if (($lex->phpType === 'php' || $lex->phpType === 'asp')
- &&
- ($lex->compiler->php_handling === Smarty::PHP_PASSTHRU ||
- $lex->compiler->php_handling === Smarty::PHP_QUOTE)
- ) {
- return;
- }
- $start = $lex->counter + strlen($lex->value);
- $body = true;
- if (preg_match('~' . preg_quote($closeTag, '~') . '~i', $lex->data, $match, PREG_OFFSET_CAPTURE, $start)) {
- $close = $match[ 0 ][ 1 ];
- } else {
- $lex->compiler->trigger_template_error("missing closing tag '{$closeTag}'");
- }
- while ($body) {
- if (preg_match(
- '~([/][*])|([/][/][^\n]*)|(\'[^\'\\\\]*(?:\\.[^\'\\\\]*)*\')|("[^"\\\\]*(?:\\.[^"\\\\]*)*")~',
- $lex->data,
- $match,
- PREG_OFFSET_CAPTURE,
- $start
- )
- ) {
- $value = $match[ 0 ][ 0 ];
- $from = $pos = $match[ 0 ][ 1 ];
- if ($pos > $close) {
- $body = false;
- } else {
- $start = $pos + strlen($value);
- $phpCommentStart = $value === '/*';
- if ($phpCommentStart) {
- $phpCommentEnd = preg_match('~([*][/])~', $lex->data, $match, PREG_OFFSET_CAPTURE, $start);
- if ($phpCommentEnd) {
- $pos2 = $match[ 0 ][ 1 ];
- $start = $pos2 + strlen($match[ 0 ][ 0 ]);
- }
- }
- while ($close > $pos && $close < $start) {
- if (preg_match(
- '~' . preg_quote($closeTag, '~') . '~i',
- $lex->data,
- $match,
- PREG_OFFSET_CAPTURE,
- $from
- )
- ) {
- $close = $match[ 0 ][ 1 ];
- $from = $close + strlen($match[ 0 ][ 0 ]);
- } else {
- $lex->compiler->trigger_template_error("missing closing tag '{$closeTag}'");
- }
- }
- if ($phpCommentStart && (!$phpCommentEnd || $pos2 > $close)) {
- $lex->taglineno = $lex->line + substr_count(substr($lex->data, $lex->counter, $start), "\n");
- $lex->compiler->trigger_template_error("missing PHP comment closing tag '*/'");
- }
- }
- } else {
- $body = false;
- }
- }
- $lex->value = substr($lex->data, $lex->counter, $close + strlen($closeTag) - $lex->counter);
- }
-
- /*
- * Call back function for $php_handling = PHP_QUOTE
- *
- */
- /**
- * @param $match
- *
- * @return string
- */
- private function quote($match)
- {
- return htmlspecialchars($match[ 0 ], ENT_QUOTES);
- }
-}
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_config_file_compiler.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_config_file_compiler.php
index 90c5dcefa..a9b940e5a 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_config_file_compiler.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_config_file_compiler.php
@@ -158,7 +158,7 @@ class Smarty_Internal_Config_File_Compiler
}
// template header code
$template_header =
- "<?php /* Smarty version " . Smarty::SMARTY_VERSION . ", created on " . strftime("%Y-%m-%d %H:%M:%S") .
+ "<?php /* Smarty version " . Smarty::SMARTY_VERSION . ", created on " . date("Y-m-d H:i:s") .
"\n";
$template_header .= " compiled from '{$this->template->source->filepath}' */ ?>\n";
$code = '<?php $_smarty_tpl->smarty->ext->configLoad->_loadConfigVars($_smarty_tpl, ' .
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_data.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_data.php
index 98e3e57b3..1b64185b8 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_data.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_data.php
@@ -121,7 +121,7 @@ abstract class Smarty_Internal_Data
* appends values to template variables
*
* @api Smarty::append()
- * @link http://www.smarty.net/docs/en/api.append.tpl
+ * @link https://www.smarty.net/docs/en/api.append.tpl
*
* @param array|string $tpl_var the template variable name(s)
* @param mixed $value the value to append
@@ -182,7 +182,7 @@ abstract class Smarty_Internal_Data
* Returns a single or all template variables
*
* @api Smarty::getTemplateVars()
- * @link http://www.smarty.net/docs/en/api.get.template.vars.tpl
+ * @link https://www.smarty.net/docs/en/api.get.template.vars.tpl
*
* @param string $varName variable name or null
* @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $_ptr optional pointer to data object
@@ -196,26 +196,6 @@ abstract class Smarty_Internal_Data
}
/**
- * gets the object of a Smarty variable
- *
- * @param string $variable the name of the Smarty variable
- * @param Smarty_Internal_Data $_ptr optional pointer to data object
- * @param boolean $searchParents search also in parent data
- * @param bool $error_enable
- *
- * @return Smarty_Variable|Smarty_Undefined_Variable the object of the variable
- * @deprecated since 3.1.28 please use Smarty_Internal_Data::getTemplateVars() instead.
- */
- public function getVariable(
- $variable = null,
- Smarty_Internal_Data $_ptr = null,
- $searchParents = true,
- $error_enable = true
- ) {
- return $this->ext->getTemplateVars->_getVariable($this, $variable, $_ptr, $searchParents, $error_enable);
- }
-
- /**
* Follow the parent chain an merge template and config variables
*
* @param \Smarty_Internal_Data|null $data
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_errorhandler.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_errorhandler.php
index 56dca18fa..c2b653ef4 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_errorhandler.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_errorhandler.php
@@ -1,61 +1,60 @@
<?php
/**
- * Smarty error handler
+ * Smarty error handler to fix new error levels in PHP8 for backwards compatibility
*
* @package Smarty
* @subpackage PluginsInternal
- * @author Uwe Tews
+ * @author Simon Wisselink
*
- * @deprecated
-Smarty does no longer use @filemtime()
*/
class Smarty_Internal_ErrorHandler
{
+
/**
- * contains directories outside of SMARTY_DIR that are to be muted by muteExpectedErrors()
+ * Allows {$foo} where foo is unset.
+ * @var bool
*/
- public static $mutedDirectories = array();
+ public $allowUndefinedVars = true;
/**
- * error handler returned by set_error_handler() in self::muteExpectedErrors()
+ * Allows {$foo.bar} where bar is unset and {$foo.bar1.bar2} where either bar1 or bar2 is unset.
+ * @var bool
*/
- private static $previousErrorHandler = null;
+ public $allowUndefinedArrayKeys = true;
+
+ private $previousErrorHandler = null;
/**
- * Enable error handler to mute expected messages
- *
+ * Enable error handler to intercept errors
*/
- public static function muteExpectedErrors()
- {
+ public function activate() {
/*
- error muting is done because some people implemented custom error_handlers using
- http://php.net/set_error_handler and for some reason did not understand the following paragraph:
+ Error muting is done because some people implemented custom error_handlers using
+ https://php.net/set_error_handler and for some reason did not understand the following paragraph:
- It is important to remember that the standard PHP error handler is completely bypassed for the
- error types specified by error_types unless the callback function returns FALSE.
- error_reporting() settings will have no effect and your error handler will be called regardless -
- however you are still able to read the current value of error_reporting and act appropriately.
- Of particular note is that this value will be 0 if the statement that caused the error was
- prepended by the @ error-control operator.
-
- Smarty deliberately uses @filemtime() over file_exists() and filemtime() in some places. Reasons include
- - @filemtime() is almost twice as fast as using an additional file_exists()
- - between file_exists() and filemtime() a possible race condition is opened,
- which does not exist using the simple @filemtime() approach.
+ It is important to remember that the standard PHP error handler is completely bypassed for the
+ error types specified by error_types unless the callback function returns FALSE.
+ error_reporting() settings will have no effect and your error handler will be called regardless -
+ however you are still able to read the current value of error_reporting and act appropriately.
+ Of particular note is that this value will be 0 if the statement that caused the error was
+ prepended by the @ error-control operator.
*/
- $error_handler = array('Smarty_Internal_ErrorHandler', 'mutingErrorHandler');
- $previous = set_error_handler($error_handler);
- // avoid dead loops
- if ($previous !== $error_handler) {
- self::$previousErrorHandler = $previous;
- }
+ $this->previousErrorHandler = set_error_handler([$this, 'handleError']);
+ }
+
+ /**
+ * Disable error handler
+ */
+ public function deactivate() {
+ restore_error_handler();
+ $this->previousErrorHandler = null;
}
/**
* Error Handler to mute expected messages
*
- * @link http://php.net/set_error_handler
+ * @link https://php.net/set_error_handler
*
* @param integer $errno Error level
* @param $errstr
@@ -65,49 +64,21 @@ class Smarty_Internal_ErrorHandler
*
* @return bool
*/
- public static function mutingErrorHandler($errno, $errstr, $errfile, $errline, $errcontext = array())
+ public function handleError($errno, $errstr, $errfile, $errline, $errcontext = [])
{
- $_is_muted_directory = false;
- // add the SMARTY_DIR to the list of muted directories
- if (!isset(self::$mutedDirectories[ SMARTY_DIR ])) {
- $smarty_dir = realpath(SMARTY_DIR);
- if ($smarty_dir !== false) {
- self::$mutedDirectories[ SMARTY_DIR ] =
- array('file' => $smarty_dir, 'length' => strlen($smarty_dir),);
- }
+ if ($this->allowUndefinedVars && $errstr == 'Attempt to read property "value" on null') {
+ return; // suppresses this error
}
- // walk the muted directories and test against $errfile
- foreach (self::$mutedDirectories as $key => &$dir) {
- if (!$dir) {
- // resolve directory and length for speedy comparisons
- $file = realpath($key);
- if ($file === false) {
- // this directory does not exist, remove and skip it
- unset(self::$mutedDirectories[ $key ]);
- continue;
- }
- $dir = array('file' => $file, 'length' => strlen($file),);
- }
- if (!strncmp($errfile, $dir[ 'file' ], $dir[ 'length' ])) {
- $_is_muted_directory = true;
- break;
- }
- }
- // pass to next error handler if this error did not occur inside SMARTY_DIR
- // or the error was within smarty but masked to be ignored
- if (!$_is_muted_directory || ($errno && $errno & error_reporting())) {
- if (self::$previousErrorHandler) {
- return call_user_func(
- self::$previousErrorHandler,
- $errno,
- $errstr,
- $errfile,
- $errline,
- $errcontext
- );
- } else {
- return false;
- }
+
+ if ($this->allowUndefinedArrayKeys && preg_match(
+ '/^(Undefined array key|Trying to access array offset on value of type null)/',
+ $errstr
+ )) {
+ return; // suppresses this error
}
+
+ // pass all other errors through to the previous error handler or to the default PHP error handler
+ return $this->previousErrorHandler ?
+ call_user_func($this->previousErrorHandler, $errno, $errstr, $errfile, $errline, $errcontext) : false;
}
}
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_append.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_append.php
index 881375efe..e207734e8 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_append.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_append.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_Append
* appends values to template variables
*
* @api Smarty::append()
- * @link http://www.smarty.net/docs/en/api.append.tpl
+ * @link https://www.smarty.net/docs/en/api.append.tpl
*
* @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data
* @param array|string $tpl_var the template variable name(s)
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_appendbyref.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_appendbyref.php
index c95904460..b5be69b54 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_appendbyref.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_appendbyref.php
@@ -15,7 +15,7 @@ class Smarty_Internal_Method_AppendByRef
* appends values to template variables by reference
*
* @api Smarty::appendByRef()
- * @link http://www.smarty.net/docs/en/api.append.by.ref.tpl
+ * @link https://www.smarty.net/docs/en/api.append.by.ref.tpl
*
* @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data
* @param string $tpl_var the template variable name
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallassign.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallassign.php
index 29ff2ffb0..6fb0c8f3d 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallassign.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallassign.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_ClearAllAssign
* clear all the assigned template variables.
*
* @api Smarty::clearAllAssign()
- * @link http://www.smarty.net/docs/en/api.clear.all.assign.tpl
+ * @link https://www.smarty.net/docs/en/api.clear.all.assign.tpl
*
* @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data
*
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallcache.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallcache.php
index 30d55f7d2..b74d30580 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallcache.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallcache.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_ClearAllCache
* Empty cache folder
*
* @api Smarty::clearAllCache()
- * @link http://www.smarty.net/docs/en/api.clear.all.cache.tpl
+ * @link https://www.smarty.net/docs/en/api.clear.all.cache.tpl
*
* @param \Smarty $smarty
* @param integer $exp_time expiration time
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearassign.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearassign.php
index 22bfa2d31..12b755c06 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearassign.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearassign.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_ClearAssign
* clear the given assigned template variable(s).
*
* @api Smarty::clearAssign()
- * @link http://www.smarty.net/docs/en/api.clear.assign.tpl
+ * @link https://www.smarty.net/docs/en/api.clear.assign.tpl
*
* @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data
* @param string|array $tpl_var the template variable(s) to clear
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcache.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcache.php
index a5dd4e26e..df766eee8 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcache.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcache.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_ClearCache
* Empty cache for a specific template
*
* @api Smarty::clearCache()
- * @link http://www.smarty.net/docs/en/api.clear.cache.tpl
+ * @link https://www.smarty.net/docs/en/api.clear.cache.tpl
*
* @param \Smarty $smarty
* @param string $template_name template name
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcompiledtemplate.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcompiledtemplate.php
index bf4929807..db0a49b00 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcompiledtemplate.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcompiledtemplate.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_ClearCompiledTemplate
* Delete compiled template file
*
* @api Smarty::clearCompiledTemplate()
- * @link http://www.smarty.net/docs/en/api.clear.compiled.template.tpl
+ * @link https://www.smarty.net/docs/en/api.clear.compiled.template.tpl
*
* @param \Smarty $smarty
* @param string $resource_name template name
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearconfig.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearconfig.php
index 15bf492a1..d1b730322 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearconfig.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearconfig.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_ClearConfig
* clear a single or all config variables
*
* @api Smarty::clearConfig()
- * @link http://www.smarty.net/docs/en/api.clear.config.tpl
+ * @link https://www.smarty.net/docs/en/api.clear.config.tpl
*
* @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data
* @param string|null $name variable name or null
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_configload.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_configload.php
index 2e6254880..c3174d2d0 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_configload.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_configload.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_ConfigLoad
* load a config file, optionally load just selected sections
*
* @api Smarty::configLoad()
- * @link http://www.smarty.net/docs/en/api.config.load.tpl
+ * @link https://www.smarty.net/docs/en/api.config.load.tpl
*
* @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data
* @param string $config_file filename
@@ -42,7 +42,7 @@ class Smarty_Internal_Method_ConfigLoad
* load a config file, optionally load just selected sections
*
* @api Smarty::configLoad()
- * @link http://www.smarty.net/docs/en/api.config.load.tpl
+ * @link https://www.smarty.net/docs/en/api.config.load.tpl
*
* @param \Smarty|\Smarty_Internal_Data|\Smarty_Internal_Template $data
* @param string $config_file filename
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_createdata.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_createdata.php
index f95097519..c684c0870 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_createdata.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_createdata.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_CreateData
* creates a data object
*
* @api Smarty::createData()
- * @link http://www.smarty.net/docs/en/api.create.data.tpl
+ * @link https://www.smarty.net/docs/en/api.create.data.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param \Smarty_Internal_Template|\Smarty_Internal_Data|\Smarty_Data|\Smarty $parent next higher level of Smarty
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getconfigvars.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getconfigvars.php
index 1d11e44c1..763bdf989 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getconfigvars.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getconfigvars.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_GetConfigVars
* Returns a single or all config variables
*
* @api Smarty::getConfigVars()
- * @link http://www.smarty.net/docs/en/api.get.config.vars.tpl
+ * @link https://www.smarty.net/docs/en/api.get.config.vars.tpl
*
* @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data
* @param string $varname variable name or null
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getregisteredobject.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getregisteredobject.php
index df6ede130..0b3a071d3 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getregisteredobject.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getregisteredobject.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_GetRegisteredObject
* return a reference to a registered object
*
* @api Smarty::getRegisteredObject()
- * @link http://www.smarty.net/docs/en/api.get.registered.object.tpl
+ * @link https://www.smarty.net/docs/en/api.get.registered.object.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $object_name object name
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettags.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettags.php
index c07ae07ec..0d1335a8d 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettags.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettags.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_GetTags
* Return array of tag/attributes of all tags used by an template
*
* @api Smarty::getTags()
- * @link http://www.smarty.net/docs/en/api.get.tags.tpl
+ * @link https://www.smarty.net/docs/en/api.get.tags.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param null|string|Smarty_Internal_Template $template
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettemplatevars.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettemplatevars.php
index 9ef7d46bb..0470785b1 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettemplatevars.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettemplatevars.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_GetTemplateVars
* Returns a single or all template variables
*
* @api Smarty::getTemplateVars()
- * @link http://www.smarty.net/docs/en/api.get.template.vars.tpl
+ * @link https://www.smarty.net/docs/en/api.get.template.vars.tpl
*
* @param \Smarty_Internal_Data|\Smarty_Internal_Template|\Smarty $data
* @param string $varName variable name or null
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_loadfilter.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_loadfilter.php
index 66d80d474..af788a24e 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_loadfilter.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_loadfilter.php
@@ -30,7 +30,7 @@ class Smarty_Internal_Method_LoadFilter
*
* @api Smarty::loadFilter()
*
- * @link http://www.smarty.net/docs/en/api.load.filter.tpl
+ * @link https://www.smarty.net/docs/en/api.load.filter.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $type filter type
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registercacheresource.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registercacheresource.php
index 648365619..5608b3fd0 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registercacheresource.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registercacheresource.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_RegisterCacheResource
* Registers a resource to fetch a template
*
* @api Smarty::registerCacheResource()
- * @link http://www.smarty.net/docs/en/api.register.cacheresource.tpl
+ * @link https://www.smarty.net/docs/en/api.register.cacheresource.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $name name of resource type
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerclass.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerclass.php
index 8d18547e2..76a69c6e5 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerclass.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerclass.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_RegisterClass
* Registers static classes to be used in templates
*
* @api Smarty::registerClass()
- * @link http://www.smarty.net/docs/en/api.register.class.tpl
+ * @link https://www.smarty.net/docs/en/api.register.class.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $class_name
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php
index a9fb78dc6..4cda5b056 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_RegisterDefaultPluginHandler
* Registers a default plugin handler
*
* @api Smarty::registerDefaultPluginHandler()
- * @link http://www.smarty.net/docs/en/api.register.default.plugin.handler.tpl
+ * @link https://www.smarty.net/docs/en/api.register.default.plugin.handler.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param callable $callback class/method name
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerfilter.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerfilter.php
index c0f9fff10..9719eb2b6 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerfilter.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerfilter.php
@@ -30,7 +30,7 @@ class Smarty_Internal_Method_RegisterFilter
*
* @api Smarty::registerFilter()
*
- * @link http://www.smarty.net/docs/en/api.register.filter.tpl
+ * @link https://www.smarty.net/docs/en/api.register.filter.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $type filter type
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerobject.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerobject.php
index 4646e4f22..8e6fe0521 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerobject.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerobject.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_RegisterObject
* Registers object to be used in templates
*
* @api Smarty::registerObject()
- * @link http://www.smarty.net/docs/en/api.register.object.tpl
+ * @link https://www.smarty.net/docs/en/api.register.object.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $object_name
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerplugin.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerplugin.php
index ed18d84bb..74c0ae908 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerplugin.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerplugin.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_RegisterPlugin
* Registers plugin to be used in templates
*
* @api Smarty::registerPlugin()
- * @link http://www.smarty.net/docs/en/api.register.plugin.tpl
+ * @link https://www.smarty.net/docs/en/api.register.plugin.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $type plugin type
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerresource.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerresource.php
index 7c7d0f78a..302657ae0 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerresource.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerresource.php
@@ -22,25 +22,18 @@ class Smarty_Internal_Method_RegisterResource
* Registers a resource to fetch a template
*
* @api Smarty::registerResource()
- * @link http://www.smarty.net/docs/en/api.register.resource.tpl
+ * @link https://www.smarty.net/docs/en/api.register.resource.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $name name of resource type
- * @param Smarty_Resource|array $resource_handler or instance of
- * Smarty_Resource,
- * or array of
- * callbacks to
- * handle
- * resource
- * (deprecated)
+ * @param Smarty_Resource $resource_handler instance of Smarty_Resource
*
* @return \Smarty|\Smarty_Internal_Template
*/
- public function registerResource(Smarty_Internal_TemplateBase $obj, $name, $resource_handler)
+ public function registerResource(Smarty_Internal_TemplateBase $obj, $name, Smarty_Resource $resource_handler)
{
$smarty = $obj->_getSmartyObj();
- $smarty->registered_resources[ $name ] =
- $resource_handler instanceof Smarty_Resource ? $resource_handler : array($resource_handler, false);
+ $smarty->registered_resources[ $name ] = $resource_handler;
return $obj;
}
}
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unloadfilter.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unloadfilter.php
index 55e1596be..e41e8dffc 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unloadfilter.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unloadfilter.php
@@ -16,7 +16,7 @@ class Smarty_Internal_Method_UnloadFilter extends Smarty_Internal_Method_LoadFil
*
* @api Smarty::unloadFilter()
*
- * @link http://www.smarty.net/docs/en/api.unload.filter.tpl
+ * @link https://www.smarty.net/docs/en/api.unload.filter.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $type filter type
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregistercacheresource.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregistercacheresource.php
index b99903867..377397e97 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregistercacheresource.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregistercacheresource.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_UnregisterCacheResource
* Registers a resource to fetch a template
*
* @api Smarty::unregisterCacheResource()
- * @link http://www.smarty.net/docs/en/api.unregister.cacheresource.tpl
+ * @link https://www.smarty.net/docs/en/api.unregister.cacheresource.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param $name
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterfilter.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterfilter.php
index 9cb494a52..ebc9337d0 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterfilter.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterfilter.php
@@ -16,7 +16,7 @@ class Smarty_Internal_Method_UnregisterFilter extends Smarty_Internal_Method_Reg
*
* @api Smarty::unregisterFilter()
*
- * @link http://www.smarty.net/docs/en/api.unregister.filter.tpl
+ * @link https://www.smarty.net/docs/en/api.unregister.filter.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $type filter type
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterobject.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterobject.php
index 1e592b339..77d619637 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterobject.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterobject.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_UnregisterObject
* Registers plugin to be used in templates
*
* @api Smarty::unregisterObject()
- * @link http://www.smarty.net/docs/en/api.unregister.object.tpl
+ * @link https://www.smarty.net/docs/en/api.unregister.object.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $object_name name of object
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterplugin.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterplugin.php
index f39e31678..2431d5c23 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterplugin.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterplugin.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_UnregisterPlugin
* Registers plugin to be used in templates
*
* @api Smarty::unregisterPlugin()
- * @link http://www.smarty.net/docs/en/api.unregister.plugin.tpl
+ * @link https://www.smarty.net/docs/en/api.unregister.plugin.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $type plugin type
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterresource.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterresource.php
index a79db4299..bbb6a861d 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterresource.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterresource.php
@@ -22,7 +22,7 @@ class Smarty_Internal_Method_UnregisterResource
* Registers a resource to fetch a template
*
* @api Smarty::unregisterResource()
- * @link http://www.smarty.net/docs/en/api.unregister.resource.tpl
+ * @link https://www.smarty.net/docs/en/api.unregister.resource.tpl
*
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
* @param string $type name of resource type
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_template.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_template.php
index ab4c3ec3b..829c420fe 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_template.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_template.php
@@ -87,83 +87,83 @@ class Smarty_Internal_ParseTree_Template extends Smarty_Internal_ParseTree
$code = '';
foreach ($this->getChunkedSubtrees() as $chunk) {
- $text = '';
- switch ($chunk['mode']) {
- case 'textstripped':
- foreach ($chunk['subtrees'] as $subtree) {
- $text .= $subtree->to_smarty_php($parser);
- }
- $code .= preg_replace(
- '/((<%)|(%>)|(<\?php)|(<\?)|(\?>)|(<\/?script))/',
- "<?php echo '\$1'; ?>\n",
- $parser->compiler->processText($text)
- );
- break;
- case 'text':
- foreach ($chunk['subtrees'] as $subtree) {
- $text .= $subtree->to_smarty_php($parser);
- }
- $code .= preg_replace(
- '/((<%)|(%>)|(<\?php)|(<\?)|(\?>)|(<\/?script))/',
- "<?php echo '\$1'; ?>\n",
- $text
- );
- break;
- case 'tag':
- foreach ($chunk['subtrees'] as $subtree) {
- $text = $parser->compiler->appendCode($text, $subtree->to_smarty_php($parser));
- }
- $code .= $text;
- break;
- default:
- foreach ($chunk['subtrees'] as $subtree) {
- $text = $subtree->to_smarty_php($parser);
- }
- $code .= $text;
+ $text = '';
+ switch ($chunk['mode']) {
+ case 'textstripped':
+ foreach ($chunk['subtrees'] as $subtree) {
+ $text .= $subtree->to_smarty_php($parser);
+ }
+ $code .= preg_replace(
+ '/((<%)|(%>)|(<\?php)|(<\?)|(\?>)|(<\/?script))/',
+ "<?php echo '\$1'; ?>\n",
+ $parser->compiler->processText($text)
+ );
+ break;
+ case 'text':
+ foreach ($chunk['subtrees'] as $subtree) {
+ $text .= $subtree->to_smarty_php($parser);
+ }
+ $code .= preg_replace(
+ '/((<%)|(%>)|(<\?php)|(<\?)|(\?>)|(<\/?script))/',
+ "<?php echo '\$1'; ?>\n",
+ $text
+ );
+ break;
+ case 'tag':
+ foreach ($chunk['subtrees'] as $subtree) {
+ $text = $parser->compiler->appendCode($text, $subtree->to_smarty_php($parser));
+ }
+ $code .= $text;
+ break;
+ default:
+ foreach ($chunk['subtrees'] as $subtree) {
+ $text = $subtree->to_smarty_php($parser);
+ }
+ $code .= $text;
- }
+ }
}
return $code;
}
private function getChunkedSubtrees() {
- $chunks = array();
- $currentMode = null;
- $currentChunk = array();
- for ($key = 0, $cnt = count($this->subtrees); $key < $cnt; $key++) {
+ $chunks = array();
+ $currentMode = null;
+ $currentChunk = array();
+ for ($key = 0, $cnt = count($this->subtrees); $key < $cnt; $key++) {
- if ($this->subtrees[ $key ]->data === '' && in_array($currentMode, array('textstripped', 'text', 'tag'))) {
- continue;
- }
+ if ($this->subtrees[ $key ]->data === '' && in_array($currentMode, array('textstripped', 'text', 'tag'))) {
+ continue;
+ }
- if ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Text
- && $this->subtrees[ $key ]->isToBeStripped()) {
- $newMode = 'textstripped';
- } elseif ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Text) {
- $newMode = 'text';
- } elseif ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Tag) {
- $newMode = 'tag';
- } else {
- $newMode = 'other';
- }
+ if ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Text
+ && $this->subtrees[ $key ]->isToBeStripped()) {
+ $newMode = 'textstripped';
+ } elseif ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Text) {
+ $newMode = 'text';
+ } elseif ($this->subtrees[ $key ] instanceof Smarty_Internal_ParseTree_Tag) {
+ $newMode = 'tag';
+ } else {
+ $newMode = 'other';
+ }
- if ($newMode == $currentMode) {
- $currentChunk[] = $this->subtrees[ $key ];
- } else {
- $chunks[] = array(
- 'mode' => $currentMode,
- 'subtrees' => $currentChunk
- );
- $currentMode = $newMode;
- $currentChunk = array($this->subtrees[ $key ]);
- }
- }
- if ($currentMode && $currentChunk) {
- $chunks[] = array(
- 'mode' => $currentMode,
- 'subtrees' => $currentChunk
- );
- }
- return $chunks;
+ if ($newMode == $currentMode) {
+ $currentChunk[] = $this->subtrees[ $key ];
+ } else {
+ $chunks[] = array(
+ 'mode' => $currentMode,
+ 'subtrees' => $currentChunk
+ );
+ $currentMode = $newMode;
+ $currentChunk = array($this->subtrees[ $key ]);
+ }
+ }
+ if ($currentMode && $currentChunk) {
+ $chunks[] = array(
+ 'mode' => $currentMode,
+ 'subtrees' => $currentChunk
+ );
+ }
+ return $chunks;
}
}
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_text.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_text.php
index 399e84941..58116c811 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_text.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_text.php
@@ -17,30 +17,30 @@
class Smarty_Internal_ParseTree_Text extends Smarty_Internal_ParseTree
{
- /**
- * Wether this section should be stripped on output to smarty php
- * @var bool
- */
- private $toBeStripped = false;
+ /**
+ * Wether this section should be stripped on output to smarty php
+ * @var bool
+ */
+ private $toBeStripped = false;
- /**
- * Create template text buffer
- *
- * @param string $data text
- * @param bool $toBeStripped wether this section should be stripped on output to smarty php
- */
+ /**
+ * Create template text buffer
+ *
+ * @param string $data text
+ * @param bool $toBeStripped wether this section should be stripped on output to smarty php
+ */
public function __construct($data, $toBeStripped = false)
{
$this->data = $data;
$this->toBeStripped = $toBeStripped;
}
- /**
- * Wether this section should be stripped on output to smarty php
- * @return bool
- */
- public function isToBeStripped() {
- return $this->toBeStripped;
+ /**
+ * Wether this section should be stripped on output to smarty php
+ * @return bool
+ */
+ public function isToBeStripped() {
+ return $this->toBeStripped;
}
/**
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_registered.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_registered.php
deleted file mode 100644
index df526101f..000000000
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_registered.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-/**
- * Smarty Internal Plugin Resource Registered
- *
- * @package Smarty
- * @subpackage TemplateResources
- * @author Uwe Tews
- * @author Rodney Rehm
- */
-
-/**
- * Smarty Internal Plugin Resource Registered
- * Implements the registered resource for Smarty template
- *
- * @package Smarty
- * @subpackage TemplateResources
- * @deprecated
- */
-class Smarty_Internal_Resource_Registered extends Smarty_Resource
-{
- /**
- * populate Source Object with meta data from Resource
- *
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
- *
- * @return void
- */
- public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
- {
- $source->filepath = $source->type . ':' . $source->name;
- $source->uid = sha1($source->filepath . $source->smarty->_joined_template_dir);
- $source->timestamp = $this->getTemplateTimestamp($source);
- $source->exists = !!$source->timestamp;
- }
-
- /**
- * populate Source Object with timestamp and exists from Resource
- *
- * @param Smarty_Template_Source $source source object
- *
- * @return void
- */
- public function populateTimestamp(Smarty_Template_Source $source)
- {
- $source->timestamp = $this->getTemplateTimestamp($source);
- $source->exists = !!$source->timestamp;
- }
-
- /**
- * Get timestamp (epoch) the template source was modified
- *
- * @param Smarty_Template_Source $source source object
- *
- * @return integer|boolean timestamp (epoch) the template was modified, false if resources has no timestamp
- */
- public function getTemplateTimestamp(Smarty_Template_Source $source)
- {
- // return timestamp
- $time_stamp = false;
- call_user_func_array(
- $source->smarty->registered_resources[ $source->type ][ 0 ][ 1 ],
- array($source->name, &$time_stamp, $source->smarty)
- );
- return is_numeric($time_stamp) ? (int)$time_stamp : $time_stamp;
- }
-
- /**
- * Load template's source by invoking the registered callback into current template object
- *
- * @param Smarty_Template_Source $source source object
- *
- * @return string template source
- * @throws SmartyException if source cannot be loaded
- */
- public function getContent(Smarty_Template_Source $source)
- {
- // return template string
- $content = null;
- $t = call_user_func_array(
- $source->smarty->registered_resources[ $source->type ][ 0 ][ 0 ],
- array($source->name, &$content, $source->smarty)
- );
- if (is_bool($t) && !$t) {
- throw new SmartyException("Unable to read template {$source->type} '{$source->name}'");
- }
- return $content;
- }
-
- /**
- * Determine basename for compiled filename
- *
- * @param Smarty_Template_Source $source source object
- *
- * @return string resource's basename
- */
- public function getBasename(Smarty_Template_Source $source)
- {
- return basename($source->name);
- }
-}
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_stream.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_stream.php
index 9956bd073..5f0203498 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_stream.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_stream.php
@@ -13,7 +13,7 @@
* Smarty Internal Plugin Resource Stream
* Implements the streams as resource for Smarty template
*
- * @link http://php.net/streams
+ * @link https://php.net/streams
* @package Smarty
* @subpackage TemplateResources
*/
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_codeframe.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_codeframe.php
index 983ca6180..b5361c9bb 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_codeframe.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_codeframe.php
@@ -45,7 +45,7 @@ class Smarty_Internal_Runtime_CodeFrame
$properties[ 'cache_lifetime' ] = $_template->cache_lifetime;
}
$output = "<?php\n";
- $output .= "/* Smarty version {$properties[ 'version' ]}, created on " . strftime("%Y-%m-%d %H:%M:%S") .
+ $output .= "/* Smarty version {$properties[ 'version' ]}, created on " . date("Y-m-d H:i:s") .
"\n from '" . str_replace('*/', '* /', $_template->source->filepath) . "' */\n\n";
$output .= "/* @var Smarty_Internal_Template \$_smarty_tpl */\n";
$dec = "\$_smarty_tpl->_decodeProperties(\$_smarty_tpl, " . var_export($properties, true) . ',' .
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php
index 200c11bb5..2ffb896fa 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php
@@ -138,7 +138,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
* test if cache is valid
*
* @api Smarty::isCached()
- * @link http://www.smarty.net/docs/en/api.is.cached.tpl
+ * @link https://www.smarty.net/docs/en/api.is.cached.tpl
*
* @param null|string|\Smarty_Internal_Template $template the resource handle of the template file or template
* object
@@ -199,6 +199,12 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
try {
$_smarty_old_error_level =
isset($smarty->error_reporting) ? error_reporting($smarty->error_reporting) : null;
+
+ if ($smarty->isMutingUndefinedOrNullWarnings()) {
+ $errorHandler = new Smarty_Internal_ErrorHandler();
+ $errorHandler->activate();
+ }
+
if ($this->_objType === 2) {
/* @var Smarty_Internal_Template $this */
$template->tplFunctions = $this->tplFunctions;
@@ -242,6 +248,11 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
}
}
}
+
+ if (isset($errorHandler)) {
+ $errorHandler->deactivate();
+ }
+
if (isset($_smarty_old_error_level)) {
error_reporting($_smarty_old_error_level);
}
@@ -250,6 +261,10 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
while (ob_get_level() > $level) {
ob_end_clean();
}
+ if (isset($errorHandler)) {
+ $errorHandler->deactivate();
+ }
+
if (isset($_smarty_old_error_level)) {
error_reporting($_smarty_old_error_level);
}
@@ -261,7 +276,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
* Registers plugin to be used in templates
*
* @api Smarty::registerPlugin()
- * @link http://www.smarty.net/docs/en/api.register.plugin.tpl
+ * @link https://www.smarty.net/docs/en/api.register.plugin.tpl
*
* @param string $type plugin type
* @param string $name name of template tag
@@ -281,7 +296,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
* load a filter of specified type and name
*
* @api Smarty::loadFilter()
- * @link http://www.smarty.net/docs/en/api.load.filter.tpl
+ * @link https://www.smarty.net/docs/en/api.load.filter.tpl
*
* @param string $type filter type
* @param string $name filter name
@@ -298,7 +313,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
* Registers a filter function
*
* @api Smarty::registerFilter()
- * @link http://www.smarty.net/docs/en/api.register.filter.tpl
+ * @link https://www.smarty.net/docs/en/api.register.filter.tpl
*
* @param string $type filter type
* @param callable $callback
@@ -316,7 +331,7 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
* Registers object to be used in templates
*
* @api Smarty::registerObject()
- * @link http://www.smarty.net/docs/en/api.register.object.tpl
+ * @link https://www.smarty.net/docs/en/api.register.object.tpl
*
* @param string $object_name
* @param object $object the referenced PHP object to register
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
index 3cc957dec..272616148 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
@@ -204,13 +204,6 @@ abstract class Smarty_Internal_TemplateCompilerBase
public $blockOrFunctionCode = '';
/**
- * php_handling setting either from Smarty or security
- *
- * @var int
- */
- public $php_handling = 0;
-
- /**
* flags for used modifier plugins
*
* @var array
@@ -438,11 +431,6 @@ abstract class Smarty_Internal_TemplateCompilerBase
}
$this->smarty->_debug->start_compile($this->template);
}
- if (isset($this->template->smarty->security_policy)) {
- $this->php_handling = $this->template->smarty->security_policy->php_handling;
- } else {
- $this->php_handling = $this->template->smarty->php_handling;
- }
$this->parent_compiler = $parent_compiler ? $parent_compiler : $this;
$nocache = isset($nocache) ? $nocache : false;
if (empty($template->compiled->nocache_hash)) {
@@ -627,11 +615,11 @@ abstract class Smarty_Internal_TemplateCompilerBase
$this->trigger_template_error('Illegal number of parameter in "isset()"');
}
- $pa = array();
- foreach ($parameter as $p) {
- $pa[] = $this->syntaxMatchesVariable($p) ? 'isset(' . $p . ')' : '(' . $p . ' !== null )';
- }
- return '(' . implode(' && ', $pa) . ')';
+ $pa = array();
+ foreach ($parameter as $p) {
+ $pa[] = $this->syntaxMatchesVariable($p) ? 'isset(' . $p . ')' : '(' . $p . ' !== null )';
+ }
+ return '(' . implode(' && ', $pa) . ')';
} elseif (in_array(
$func_name,
@@ -649,12 +637,8 @@ abstract class Smarty_Internal_TemplateCompilerBase
$this->trigger_template_error("Illegal number of parameter in '{$func_name()}'");
}
if ($func_name === 'empty') {
- if (!$this->syntaxMatchesVariable($parameter[0]) && version_compare(PHP_VERSION, '5.5.0', '<')) {
- return '(' . $parameter[ 0 ] . ' === false )';
- } else {
- return $func_name . '(' .
- str_replace("')->value", "',null,true,false)->value", $parameter[ 0 ]) . ')';
- }
+ return $func_name . '(' .
+ str_replace("')->value", "',null,true,false)->value", $parameter[ 0 ]) . ')';
} else {
return $func_name . '(' . $parameter[ 0 ] . ')';
}
@@ -667,16 +651,16 @@ abstract class Smarty_Internal_TemplateCompilerBase
}
}
- /**
- * Determines whether the passed string represents a valid (PHP) variable.
- * This is important, because `isset()` only works on variables and `empty()` can only be passed
- * a variable prior to php5.5
- * @param $string
- * @return bool
- */
- private function syntaxMatchesVariable($string) {
- static $regex_pattern = '/^\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*((->)[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*|\[.*]*\])*$/';
- return 1 === preg_match($regex_pattern, trim($string));
+ /**
+ * Determines whether the passed string represents a valid (PHP) variable.
+ * This is important, because `isset()` only works on variables and `empty()` can only be passed
+ * a variable prior to php5.5
+ * @param $string
+ * @return bool
+ */
+ private function syntaxMatchesVariable($string) {
+ static $regex_pattern = '/^\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*((->)[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*|\[.*]*\])*$/';
+ return 1 === preg_match($regex_pattern, trim($string));
}
/**
@@ -691,11 +675,11 @@ abstract class Smarty_Internal_TemplateCompilerBase
{
if (strpos($text, '<') === false) {
- return preg_replace($this->stripRegEx, '', $text);
+ return preg_replace($this->stripRegEx, '', $text);
}
- $store = array();
- $_store = 0;
+ $store = array();
+ $_store = 0;
// capture html elements not to be messed with
$_offset = 0;
@@ -1151,7 +1135,7 @@ abstract class Smarty_Internal_TemplateCompilerBase
flush();
}
$e = new SmartyCompilerException($error_text);
- $e->line = $line;
+ $e->setLine($line);
$e->source = trim(preg_replace('![\t\r\n]+!', ' ', $match[ $line - 1 ]));
$e->desc = $args;
$e->template = $this->template->source->filepath;
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatelexer.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatelexer.php
index 867a31d26..5ca482058 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatelexer.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatelexer.php
@@ -18,12 +18,6 @@
*/
class Smarty_Internal_Templatelexer
{
- const TEXT = 1;
- const TAG = 2;
- const TAGBODY = 3;
- const LITERAL = 4;
- const DOUBLEQUOTEDSTRING = 5;
-
/**
* Source
*
@@ -80,7 +74,7 @@ class Smarty_Internal_Templatelexer
*/
public $phpType = '';
- /**
+ /**
* state number
*
* @var int
@@ -229,10 +223,6 @@ class Smarty_Internal_Templatelexer
*/
private $yy_global_literal = null;
- private $_yy_state = 1;
-
- private $_yy_stack = array();
-
/**
* constructor
*
@@ -245,14 +235,14 @@ class Smarty_Internal_Templatelexer
$this->dataLength = strlen($this->data);
$this->counter = 0;
if (preg_match('/^\xEF\xBB\xBF/i', $this->data, $match)) {
- $this->counter += strlen($match[ 0 ]);
+ $this->counter += strlen($match[0]);
}
$this->line = 1;
$this->smarty = $compiler->template->smarty;
$this->compiler = $compiler;
$this->compiler->initDelimiterPreg();
- $this->smarty_token_names[ 'LDEL' ] = $this->smarty->getLeftDelimiter();
- $this->smarty_token_names[ 'RDEL' ] = $this->smarty->getRightDelimiter();
+ $this->smarty_token_names['LDEL'] = $this->smarty->getLeftDelimiter();
+ $this->smarty_token_names['RDEL'] = $this->smarty->getRightDelimiter();
}
/**
@@ -265,17 +255,17 @@ class Smarty_Internal_Templatelexer
$this->yyTracePrompt = '<br>';
}
- /**
+ /**
* replace placeholders with runtime preg code
*
* @param string $preg
*
* @return string
*/
- public function replace($preg)
- {
+ public function replace($preg)
+ {
return $this->compiler->replaceDelimiter($preg);
- }
+ }
/**
* check if current value is an autoliteral left delimiter
@@ -286,7 +276,11 @@ class Smarty_Internal_Templatelexer
{
return $this->smarty->getAutoLiteral() && isset($this->value[ $this->compiler->getLdelLength() ]) ?
strpos(" \n\t\r", $this->value[ $this->compiler->getLdelLength() ]) !== false : false;
- } // end function
+ }
+
+
+ private $_yy_state = 1;
+ private $_yy_stack = array();
public function yylex()
{
@@ -296,62 +290,60 @@ class Smarty_Internal_Templatelexer
public function yypushstate($state)
{
if ($this->yyTraceFILE) {
- fprintf($this->yyTraceFILE, "%sState push %s\n", $this->yyTracePrompt,
- isset($this->state_name[ $this->_yy_state ]) ? $this->state_name[ $this->_yy_state ] : $this->_yy_state);
+ fprintf($this->yyTraceFILE, "%sState push %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
}
array_push($this->_yy_stack, $this->_yy_state);
$this->_yy_state = $state;
if ($this->yyTraceFILE) {
- fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt,
- isset($this->state_name[ $this->_yy_state ]) ? $this->state_name[ $this->_yy_state ] : $this->_yy_state);
+ fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
}
}
public function yypopstate()
{
- if ($this->yyTraceFILE) {
- fprintf($this->yyTraceFILE, "%sState pop %s\n", $this->yyTracePrompt,
- isset($this->state_name[ $this->_yy_state ]) ? $this->state_name[ $this->_yy_state ] : $this->_yy_state);
+ if ($this->yyTraceFILE) {
+ fprintf($this->yyTraceFILE, "%sState pop %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
}
- $this->_yy_state = array_pop($this->_yy_stack);
+ $this->_yy_state = array_pop($this->_yy_stack);
if ($this->yyTraceFILE) {
- fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt,
- isset($this->state_name[ $this->_yy_state ]) ? $this->state_name[ $this->_yy_state ] : $this->_yy_state);
+ fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
}
+
}
public function yybegin($state)
{
- $this->_yy_state = $state;
+ $this->_yy_state = $state;
if ($this->yyTraceFILE) {
- fprintf($this->yyTraceFILE, "%sState set %s\n", $this->yyTracePrompt,
- isset($this->state_name[ $this->_yy_state ]) ? $this->state_name[ $this->_yy_state ] : $this->_yy_state);
+ fprintf($this->yyTraceFILE, "%sState set %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state);
}
}
+
+
public function yylex1()
{
if (!isset($this->yy_global_pattern1)) {
- $this->yy_global_pattern1 =
- $this->replace("/\G([{][}])|\G((SMARTYldel)SMARTYal[*])|\G((SMARTYldel)SMARTYalphp([ ].*?)?SMARTYrdel|(SMARTYldel)SMARTYal[\/]phpSMARTYrdel)|\G((SMARTYldel)SMARTYautoliteral\\s+SMARTYliteral)|\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal)|\G([<][?]((php\\s+|=)|\\s+)|[<][%]|[<][?]xml\\s+|[<]script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*[>]|[?][>]|[%][>])|\G([\S\s])/isS");
+ $this->yy_global_pattern1 = $this->replace("/\G([{][}])|\G((SMARTYldel)SMARTYal[*])|\G((SMARTYldel)SMARTYautoliteral\\s+SMARTYliteral)|\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal)|\G([\S\s])/isS");
}
if (!isset($this->dataLength)) {
$this->dataLength = strlen($this->data);
}
- if ($this->counter >= $this->dataLength) {
+ if ($this->counter >= $this->dataLength) {
return false; // end of input
}
+
do {
- if (preg_match($this->yy_global_pattern1, $this->data, $yymatches, 0, $this->counter)) {
- if (!isset($yymatches[ 0 ][ 1 ])) {
- $yymatches = preg_grep("/(.|\s)+/", $yymatches);
+ if (preg_match($this->yy_global_pattern1,$this->data, $yymatches, 0, $this->counter)) {
+ if (!isset($yymatches[ 0 ][1])) {
+ $yymatches = preg_grep("/(.|\s)+/", $yymatches);
} else {
$yymatches = array_filter($yymatches);
}
if (empty($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state TEXT');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state TEXT');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
@@ -369,110 +361,102 @@ class Smarty_Internal_Templatelexer
} elseif ($r === false) {
$this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= $this->dataLength) {
+ if ($this->counter >= $this->dataLength) {
return false; // end of input
}
// skip this token
continue;
- }
- } else {
- throw new Exception('Unexpected input at line ' . $this->line .
- ': ' . $this->data[ $this->counter ]);
+ } } else {
+ throw new Exception('Unexpected input at line' . $this->line .
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
- }
+ } // end function
+
+
+ const TEXT = 1;
public function yy_r1_1()
{
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
public function yy_r1_2()
{
- $to = $this->dataLength;
- preg_match("/[*]{$this->compiler->getRdelPreg()}[\n]?/", $this->data, $match, PREG_OFFSET_CAPTURE,
- $this->counter);
- if (isset($match[ 0 ][ 1 ])) {
- $to = $match[ 0 ][ 1 ] + strlen($match[ 0 ][ 0 ]);
+
+ $to = $this->dataLength;
+ preg_match("/[*]{$this->compiler->getRdelPreg()}[\n]?/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
+ if (isset($match[0][1])) {
+ $to = $match[0][1] + strlen($match[0][0]);
} else {
- $this->compiler->trigger_template_error("missing or misspelled comment closing tag '{$this->smarty->getRightDelimiter()}'");
+ $this->compiler->trigger_template_error ("missing or misspelled comment closing tag '{$this->smarty->getRightDelimiter()}'");
}
- $this->value = substr($this->data, $this->counter, $to - $this->counter);
+ $this->value = substr($this->data,$this->counter,$to-$this->counter);
return false;
- }
-
+ }
public function yy_r1_4()
{
- $this->compiler->getTagCompiler('private_php')->parsePhp($this);
- }
- public function yy_r1_8()
- {
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
-
- public function yy_r1_10()
+ }
+ public function yy_r1_6()
{
+
$this->token = Smarty_Internal_Templateparser::TP_LITERALSTART;
$this->yypushstate(self::LITERAL);
- }
-
- public function yy_r1_12()
+ }
+ public function yy_r1_8()
{
+
$this->token = Smarty_Internal_Templateparser::TP_LITERALEND;
$this->yypushstate(self::LITERAL);
- } // end function
-
- public function yy_r1_14()
+ }
+ public function yy_r1_10()
{
+
$this->yypushstate(self::TAG);
return true;
- }
-
- public function yy_r1_16()
+ }
+ public function yy_r1_12()
{
- $this->compiler->getTagCompiler('private_php')->parsePhp($this);
- }
- public function yy_r1_19()
- {
- if (!isset($this->yy_global_text)) {
- $this->yy_global_text =
- $this->replace('/(SMARTYldel)SMARTYal|[<][?]((php\s+|=)|\s+)|[<][%]|[<][?]xml\s+|[<]script\s+language\s*=\s*["\']?\s*php\s*["\']?\s*[>]|[?][>]|[%][>]SMARTYliteral/isS');
- }
- $to = $this->dataLength;
- preg_match($this->yy_global_text, $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter);
- if (isset($match[ 0 ][ 1 ])) {
- $to = $match[ 0 ][ 1 ];
- }
- $this->value = substr($this->data, $this->counter, $to - $this->counter);
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
+ if (!isset($this->yy_global_text)) {
+ $this->yy_global_text = $this->replace('/(SMARTYldel)SMARTYal/isS');
+ }
+ $to = $this->dataLength;
+ preg_match($this->yy_global_text, $this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
+ if (isset($match[0][1])) {
+ $to = $match[0][1];
+ }
+ $this->value = substr($this->data,$this->counter,$to-$this->counter);
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
+
public function yylex2()
{
if (!isset($this->yy_global_pattern2)) {
- $this->yy_global_pattern2 =
- $this->replace("/\G((SMARTYldel)SMARTYal(if|elseif|else if|while)\\s+)|\G((SMARTYldel)SMARTYalfor\\s+)|\G((SMARTYldel)SMARTYalforeach(?![^\s]))|\G((SMARTYldel)SMARTYalsetfilter\\s+)|\G((SMARTYldel)SMARTYalmake_nocache\\s+)|\G((SMARTYldel)SMARTYal[0-9]*[a-zA-Z_]\\w*(\\s+nocache)?\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[$]smarty\\.block\\.(child|parent)\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/][0-9]*[a-zA-Z_]\\w*\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[$][0-9]*[a-zA-Z_]\\w*(\\s+nocache)?\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/])|\G((SMARTYldel)SMARTYal)/isS");
+ $this->yy_global_pattern2 = $this->replace("/\G((SMARTYldel)SMARTYal(if|elseif|else if|while)\\s+)|\G((SMARTYldel)SMARTYalfor\\s+)|\G((SMARTYldel)SMARTYalforeach(?![^\s]))|\G((SMARTYldel)SMARTYalsetfilter\\s+)|\G((SMARTYldel)SMARTYalmake_nocache\\s+)|\G((SMARTYldel)SMARTYal[0-9]*[a-zA-Z_]\\w*(\\s+nocache)?\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[$]smarty\\.block\\.(child|parent)\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/][0-9]*[a-zA-Z_]\\w*\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[$][0-9]*[a-zA-Z_]\\w*(\\s+nocache)?\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/])|\G((SMARTYldel)SMARTYal)/isS");
}
if (!isset($this->dataLength)) {
$this->dataLength = strlen($this->data);
}
- if ($this->counter >= $this->dataLength) {
+ if ($this->counter >= $this->dataLength) {
return false; // end of input
}
+
do {
- if (preg_match($this->yy_global_pattern2, $this->data, $yymatches, 0, $this->counter)) {
- if (!isset($yymatches[ 0 ][ 1 ])) {
- $yymatches = preg_grep("/(.|\s)+/", $yymatches);
+ if (preg_match($this->yy_global_pattern2,$this->data, $yymatches, 0, $this->counter)) {
+ if (!isset($yymatches[ 0 ][1])) {
+ $yymatches = preg_grep("/(.|\s)+/", $yymatches);
} else {
$yymatches = array_filter($yymatches);
}
if (empty($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state TAG');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state TAG');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
@@ -490,79 +474,82 @@ class Smarty_Internal_Templatelexer
} elseif ($r === false) {
$this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= $this->dataLength) {
+ if ($this->counter >= $this->dataLength) {
return false; // end of input
}
// skip this token
continue;
- }
- } else {
- throw new Exception('Unexpected input at line ' . $this->line .
- ': ' . $this->data[ $this->counter ]);
+ } } else {
+ throw new Exception('Unexpected input at line' . $this->line .
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
- }
+ } // end function
+
+
+ const TAG = 2;
public function yy_r2_1()
{
+
$this->token = Smarty_Internal_Templateparser::TP_LDELIF;
$this->yybegin(self::TAGBODY);
$this->taglineno = $this->line;
- }
-
+ }
public function yy_r2_4()
{
+
$this->token = Smarty_Internal_Templateparser::TP_LDELFOR;
$this->yybegin(self::TAGBODY);
$this->taglineno = $this->line;
- }
-
+ }
public function yy_r2_6()
{
+
$this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH;
$this->yybegin(self::TAGBODY);
$this->taglineno = $this->line;
- }
-
+ }
public function yy_r2_8()
{
+
$this->token = Smarty_Internal_Templateparser::TP_LDELSETFILTER;
$this->yybegin(self::TAGBODY);
$this->taglineno = $this->line;
- }
-
+ }
public function yy_r2_10()
{
+
$this->token = Smarty_Internal_Templateparser::TP_LDELMAKENOCACHE;
$this->yybegin(self::TAGBODY);
$this->taglineno = $this->line;
- }
-
+ }
public function yy_r2_12()
{
+
$this->yypopstate();
$this->token = Smarty_Internal_Templateparser::TP_SIMPLETAG;
$this->taglineno = $this->line;
- }
-
+ }
public function yy_r2_15()
{
- $this->yypopstate();
- $this->token = Smarty_Internal_Templateparser::TP_SMARTYBLOCKCHILDPARENT;
- $this->taglineno = $this->line;
- }
+ $this->yypopstate();
+ $this->token = Smarty_Internal_Templateparser::TP_SMARTYBLOCKCHILDPARENT;
+ $this->taglineno = $this->line;
+ }
public function yy_r2_18()
{
+
$this->yypopstate();
$this->token = Smarty_Internal_Templateparser::TP_CLOSETAG;
$this->taglineno = $this->line;
- }
-
+ }
public function yy_r2_20()
{
- if ($this->_yy_stack[ count($this->_yy_stack) - 1 ] === self::TEXT) {
+
+ if ($this->_yy_stack[count($this->_yy_stack)-1] === self::TEXT) {
$this->yypopstate();
$this->token = Smarty_Internal_Templateparser::TP_SIMPELOUTPUT;
$this->taglineno = $this->line;
@@ -572,45 +559,46 @@ class Smarty_Internal_Templatelexer
$this->yybegin(self::TAGBODY);
$this->taglineno = $this->line;
}
- } // end function
-
+ }
public function yy_r2_23()
{
+
$this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
$this->yybegin(self::TAGBODY);
$this->taglineno = $this->line;
- }
-
+ }
public function yy_r2_25()
{
+
$this->token = Smarty_Internal_Templateparser::TP_LDEL;
$this->yybegin(self::TAGBODY);
$this->taglineno = $this->line;
- }
+ }
+
public function yylex3()
{
if (!isset($this->yy_global_pattern3)) {
- $this->yy_global_pattern3 =
- $this->replace("/\G(\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal)|\G([\"])|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*([!=][=]{1,2}|[<][=>]?|[>][=]?|[&|]{2})\\s*)|\G(\\s+(eq|ne|neq|gt|ge|gte|lt|le|lte|mod|and|or|xor)\\s+)|\G(\\s+is\\s+(not\\s+)?(odd|even|div)\\s+by\\s+)|\G(\\s+is\\s+(not\\s+)?(odd|even))|\G([!]\\s*|not\\s+)|\G([(](int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)[)]\\s*)|\G(\\s*[(]\\s*)|\G(\\s*[)])|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*[-][>]\\s*)|\G(\\s*[=][>]\\s*)|\G(\\s*[=]\\s*)|\G(([+]|[-]){2})|\G(\\s*([+]|[-])\\s*)|\G(\\s*([*]{1,2}|[%\/^&]|[<>]{2})\\s*)|\G([@])|\G(array\\s*[(]\\s*)|\G([#])|\G(\\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\\s*[=]\\s*)|\G(([0-9]*[a-zA-Z_]\\w*)?(\\\\[0-9]*[a-zA-Z_]\\w*)+)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G([`])|\G([|][@]?)|\G([.])|\G(\\s*[,]\\s*)|\G(\\s*[;]\\s*)|\G([:]{2})|\G(\\s*[:]\\s*)|\G(\\s*[?]\\s*)|\G(0[xX][0-9a-fA-F]+)|\G(\\s+)|\G([\S\s])/isS");
+ $this->yy_global_pattern3 = $this->replace("/\G(\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal)|\G([\"])|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*([!=][=]{1,2}|[<][=>]?|[>][=]?|[&|]{2})\\s*)|\G(\\s+(eq|ne|neq|gt|ge|gte|lt|le|lte|mod|and|or|xor)\\s+)|\G(\\s+is\\s+(not\\s+)?(odd|even|div)\\s+by\\s+)|\G(\\s+is\\s+(not\\s+)?(odd|even))|\G([!]\\s*|not\\s+)|\G([(](int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)[)]\\s*)|\G(\\s*[(]\\s*)|\G(\\s*[)])|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*[-][>]\\s*)|\G(\\s*[=][>]\\s*)|\G(\\s*[=]\\s*)|\G(([+]|[-]){2})|\G(\\s*([+]|[-])\\s*)|\G(\\s*([*]{1,2}|[%\/^&]|[<>]{2})\\s*)|\G([@])|\G(array\\s*[(]\\s*)|\G([#])|\G(\\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\\s*[=]\\s*)|\G(([0-9]*[a-zA-Z_]\\w*)?(\\\\[0-9]*[a-zA-Z_]\\w*)+)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G([`])|\G([|][@]?)|\G([.])|\G(\\s*[,]\\s*)|\G(\\s*[;]\\s*)|\G([:]{2})|\G(\\s*[:]\\s*)|\G(\\s*[?]\\s*)|\G(0[xX][0-9a-fA-F]+)|\G(\\s+)|\G([\S\s])/isS");
}
if (!isset($this->dataLength)) {
$this->dataLength = strlen($this->data);
}
- if ($this->counter >= $this->dataLength) {
+ if ($this->counter >= $this->dataLength) {
return false; // end of input
}
+
do {
- if (preg_match($this->yy_global_pattern3, $this->data, $yymatches, 0, $this->counter)) {
- if (!isset($yymatches[ 0 ][ 1 ])) {
- $yymatches = preg_grep("/(.|\s)+/", $yymatches);
+ if (preg_match($this->yy_global_pattern3,$this->data, $yymatches, 0, $this->counter)) {
+ if (!isset($yymatches[ 0 ][1])) {
+ $yymatches = preg_grep("/(.|\s)+/", $yymatches);
} else {
$yymatches = array_filter($yymatches);
}
if (empty($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state TAGBODY');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state TAGBODY');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
@@ -628,281 +616,285 @@ class Smarty_Internal_Templatelexer
} elseif ($r === false) {
$this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= $this->dataLength) {
+ if ($this->counter >= $this->dataLength) {
return false; // end of input
}
// skip this token
continue;
- }
- } else {
- throw new Exception('Unexpected input at line ' . $this->line .
- ': ' . $this->data[ $this->counter ]);
+ } } else {
+ throw new Exception('Unexpected input at line' . $this->line .
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
- }
+ } // end function
+
+
+ const TAGBODY = 3;
public function yy_r3_1()
{
+
$this->token = Smarty_Internal_Templateparser::TP_RDEL;
$this->yypopstate();
- }
-
+ }
public function yy_r3_2()
{
+
$this->yypushstate(self::TAG);
return true;
- }
-
+ }
public function yy_r3_4()
{
+
$this->token = Smarty_Internal_Templateparser::TP_QUOTE;
$this->yypushstate(self::DOUBLEQUOTEDSTRING);
$this->compiler->enterDoubleQuote();
- }
-
+ }
public function yy_r3_5()
{
- $this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING;
+ }
public function yy_r3_6()
{
- $this->token = Smarty_Internal_Templateparser::TP_DOLLARID;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_DOLLARID;
+ }
public function yy_r3_7()
{
- $this->token = Smarty_Internal_Templateparser::TP_DOLLAR;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_DOLLAR;
+ }
public function yy_r3_8()
{
- $this->token = Smarty_Internal_Templateparser::TP_ISIN;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_ISIN;
+ }
public function yy_r3_9()
{
- $this->token = Smarty_Internal_Templateparser::TP_AS;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_AS;
+ }
public function yy_r3_10()
{
- $this->token = Smarty_Internal_Templateparser::TP_TO;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_TO;
+ }
public function yy_r3_11()
{
- $this->token = Smarty_Internal_Templateparser::TP_STEP;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_STEP;
+ }
public function yy_r3_12()
{
- $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF;
+ }
public function yy_r3_13()
{
- $this->token = Smarty_Internal_Templateparser::TP_LOGOP;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_LOGOP;
+ }
public function yy_r3_15()
{
- $this->token = Smarty_Internal_Templateparser::TP_SLOGOP;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_SLOGOP;
+ }
public function yy_r3_17()
{
- $this->token = Smarty_Internal_Templateparser::TP_TLOGOP;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_TLOGOP;
+ }
public function yy_r3_20()
{
- $this->token = Smarty_Internal_Templateparser::TP_SINGLECOND;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_SINGLECOND;
+ }
public function yy_r3_23()
{
- $this->token = Smarty_Internal_Templateparser::TP_NOT;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_NOT;
+ }
public function yy_r3_24()
{
- $this->token = Smarty_Internal_Templateparser::TP_TYPECAST;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_TYPECAST;
+ }
public function yy_r3_28()
{
- $this->token = Smarty_Internal_Templateparser::TP_OPENP;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_OPENP;
+ }
public function yy_r3_29()
{
- $this->token = Smarty_Internal_Templateparser::TP_CLOSEP;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_CLOSEP;
+ }
public function yy_r3_30()
{
- $this->token = Smarty_Internal_Templateparser::TP_OPENB;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_OPENB;
+ }
public function yy_r3_31()
{
- $this->token = Smarty_Internal_Templateparser::TP_CLOSEB;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_CLOSEB;
+ }
public function yy_r3_32()
{
- $this->token = Smarty_Internal_Templateparser::TP_PTR;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_PTR;
+ }
public function yy_r3_33()
{
- $this->token = Smarty_Internal_Templateparser::TP_APTR;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_APTR;
+ }
public function yy_r3_34()
{
- $this->token = Smarty_Internal_Templateparser::TP_EQUAL;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_EQUAL;
+ }
public function yy_r3_35()
{
- $this->token = Smarty_Internal_Templateparser::TP_INCDEC;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_INCDEC;
+ }
public function yy_r3_37()
{
- $this->token = Smarty_Internal_Templateparser::TP_UNIMATH;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_UNIMATH;
+ }
public function yy_r3_39()
{
- $this->token = Smarty_Internal_Templateparser::TP_MATH;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_MATH;
+ }
public function yy_r3_41()
{
- $this->token = Smarty_Internal_Templateparser::TP_AT;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_AT;
+ }
public function yy_r3_42()
{
- $this->token = Smarty_Internal_Templateparser::TP_ARRAYOPEN;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_ARRAYOPEN;
+ }
public function yy_r3_43()
{
- $this->token = Smarty_Internal_Templateparser::TP_HATCH;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_HATCH;
+ }
public function yy_r3_44()
{
+
// resolve conflicts with shorttag and right_delimiter starting with '='
- if (substr($this->data, $this->counter + strlen($this->value) - 1, $this->compiler->getRdelLength()) ===
- $this->smarty->getRightDelimiter()) {
- preg_match('/\s+/', $this->value, $match);
- $this->value = $match[ 0 ];
+ if (substr($this->data, $this->counter + strlen($this->value) - 1, $this->compiler->getRdelLength()) === $this->smarty->getRightDelimiter()) {
+ preg_match('/\s+/',$this->value,$match);
+ $this->value = $match[0];
$this->token = Smarty_Internal_Templateparser::TP_SPACE;
} else {
$this->token = Smarty_Internal_Templateparser::TP_ATTR;
}
- }
-
+ }
public function yy_r3_45()
{
- $this->token = Smarty_Internal_Templateparser::TP_NAMESPACE;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_NAMESPACE;
+ }
public function yy_r3_48()
{
- $this->token = Smarty_Internal_Templateparser::TP_ID;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_ID;
+ }
public function yy_r3_49()
{
- $this->token = Smarty_Internal_Templateparser::TP_INTEGER;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_INTEGER;
+ }
public function yy_r3_50()
{
+
$this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
$this->yypopstate();
- }
-
+ }
public function yy_r3_51()
{
- $this->token = Smarty_Internal_Templateparser::TP_VERT;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_VERT;
+ }
public function yy_r3_52()
{
- $this->token = Smarty_Internal_Templateparser::TP_DOT;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_DOT;
+ }
public function yy_r3_53()
{
- $this->token = Smarty_Internal_Templateparser::TP_COMMA;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_COMMA;
+ }
public function yy_r3_54()
{
- $this->token = Smarty_Internal_Templateparser::TP_SEMICOLON;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_SEMICOLON;
+ }
public function yy_r3_55()
{
- $this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON;
+ }
public function yy_r3_56()
{
- $this->token = Smarty_Internal_Templateparser::TP_COLON;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_COLON;
+ }
public function yy_r3_57()
{
- $this->token = Smarty_Internal_Templateparser::TP_QMARK;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_QMARK;
+ }
public function yy_r3_58()
{
- $this->token = Smarty_Internal_Templateparser::TP_HEX;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_HEX;
+ }
public function yy_r3_59()
{
- $this->token = Smarty_Internal_Templateparser::TP_SPACE;
- } // end function
+ $this->token = Smarty_Internal_Templateparser::TP_SPACE;
+ }
public function yy_r3_60()
{
+
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
+ }
+
+
public function yylex4()
{
if (!isset($this->yy_global_pattern4)) {
- $this->yy_global_pattern4 =
- $this->replace("/\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G([\S\s])/isS");
+ $this->yy_global_pattern4 = $this->replace("/\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G([\S\s])/isS");
}
if (!isset($this->dataLength)) {
$this->dataLength = strlen($this->data);
}
- if ($this->counter >= $this->dataLength) {
+ if ($this->counter >= $this->dataLength) {
return false; // end of input
}
+
do {
- if (preg_match($this->yy_global_pattern4, $this->data, $yymatches, 0, $this->counter)) {
- if (!isset($yymatches[ 0 ][ 1 ])) {
- $yymatches = preg_grep("/(.|\s)+/", $yymatches);
+ if (preg_match($this->yy_global_pattern4,$this->data, $yymatches, 0, $this->counter)) {
+ if (!isset($yymatches[ 0 ][1])) {
+ $yymatches = preg_grep("/(.|\s)+/", $yymatches);
} else {
$yymatches = array_filter($yymatches);
}
if (empty($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state LITERAL');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state LITERAL');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
@@ -920,76 +912,80 @@ class Smarty_Internal_Templatelexer
} elseif ($r === false) {
$this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= $this->dataLength) {
+ if ($this->counter >= $this->dataLength) {
return false; // end of input
}
// skip this token
continue;
- }
- } else {
- throw new Exception('Unexpected input at line ' . $this->line .
- ': ' . $this->data[ $this->counter ]);
+ } } else {
+ throw new Exception('Unexpected input at line' . $this->line .
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
- }
+ } // end function
+
+
+ const LITERAL = 4;
public function yy_r4_1()
{
+
$this->literal_cnt++;
$this->token = Smarty_Internal_Templateparser::TP_LITERAL;
- }
-
+ }
public function yy_r4_3()
{
+
if ($this->literal_cnt) {
- $this->literal_cnt--;
+ $this->literal_cnt--;
$this->token = Smarty_Internal_Templateparser::TP_LITERAL;
} else {
$this->token = Smarty_Internal_Templateparser::TP_LITERALEND;
$this->yypopstate();
}
- }
-
+ }
public function yy_r4_5()
{
- if (!isset($this->yy_global_literal)) {
- $this->yy_global_literal = $this->replace('/(SMARTYldel)SMARTYal[\/]?literalSMARTYrdel/isS');
- }
- $to = $this->dataLength;
- preg_match($this->yy_global_literal, $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter);
- if (isset($match[ 0 ][ 1 ])) {
- $to = $match[ 0 ][ 1 ];
- } else {
- $this->compiler->trigger_template_error("missing or misspelled literal closing tag");
- }
- $this->value = substr($this->data, $this->counter, $to - $this->counter);
- $this->token = Smarty_Internal_Templateparser::TP_LITERAL;
- } // end function
+ if (!isset($this->yy_global_literal)) {
+ $this->yy_global_literal = $this->replace('/(SMARTYldel)SMARTYal[\/]?literalSMARTYrdel/isS');
+ }
+ $to = $this->dataLength;
+ preg_match($this->yy_global_literal, $this->data,$match,PREG_OFFSET_CAPTURE,$this->counter);
+ if (isset($match[0][1])) {
+ $to = $match[0][1];
+ } else {
+ $this->compiler->trigger_template_error ("missing or misspelled literal closing tag");
+ }
+ $this->value = substr($this->data,$this->counter,$to-$this->counter);
+ $this->token = Smarty_Internal_Templateparser::TP_LITERAL;
+ }
+
+
public function yylex5()
{
if (!isset($this->yy_global_pattern5)) {
- $this->yy_global_pattern5 =
- $this->replace("/\G((SMARTYldel)SMARTYautoliteral\\s+SMARTYliteral)|\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/])|\G((SMARTYldel)SMARTYal[0-9]*[a-zA-Z_]\\w*)|\G((SMARTYldel)SMARTYal)|\G([\"])|\G([`][$])|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=((SMARTYldel)SMARTYal|\\$|`\\$|\"SMARTYliteral)))|\G([\S\s])/isS");
+ $this->yy_global_pattern5 = $this->replace("/\G((SMARTYldel)SMARTYautoliteral\\s+SMARTYliteral)|\G((SMARTYldel)SMARTYalliteral\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/]literal\\s*SMARTYrdel)|\G((SMARTYldel)SMARTYal[\/])|\G((SMARTYldel)SMARTYal[0-9]*[a-zA-Z_]\\w*)|\G((SMARTYldel)SMARTYal)|\G([\"])|\G([`][$])|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=((SMARTYldel)SMARTYal|\\$|`\\$|\"SMARTYliteral)))|\G([\S\s])/isS");
}
if (!isset($this->dataLength)) {
$this->dataLength = strlen($this->data);
}
- if ($this->counter >= $this->dataLength) {
+ if ($this->counter >= $this->dataLength) {
return false; // end of input
}
+
do {
- if (preg_match($this->yy_global_pattern5, $this->data, $yymatches, 0, $this->counter)) {
- if (!isset($yymatches[ 0 ][ 1 ])) {
- $yymatches = preg_grep("/(.|\s)+/", $yymatches);
+ if (preg_match($this->yy_global_pattern5,$this->data, $yymatches, 0, $this->counter)) {
+ if (!isset($yymatches[ 0 ][1])) {
+ $yymatches = preg_grep("/(.|\s)+/", $yymatches);
} else {
$yymatches = array_filter($yymatches);
}
if (empty($yymatches)) {
throw new Exception('Error: lexing failed because a rule matched' .
- ' an empty string. Input "' . substr($this->data,
- $this->counter, 5) . '... state DOUBLEQUOTEDSTRING');
+ ' an empty string. Input "' . substr($this->data,
+ $this->counter, 5) . '... state DOUBLEQUOTEDSTRING');
}
next($yymatches); // skip global match
$this->token = key($yymatches); // token number
@@ -1007,89 +1003,93 @@ class Smarty_Internal_Templatelexer
} elseif ($r === false) {
$this->counter += strlen($this->value);
$this->line += substr_count($this->value, "\n");
- if ($this->counter >= $this->dataLength) {
+ if ($this->counter >= $this->dataLength) {
return false; // end of input
}
// skip this token
continue;
- }
- } else {
- throw new Exception('Unexpected input at line ' . $this->line .
- ': ' . $this->data[ $this->counter ]);
+ } } else {
+ throw new Exception('Unexpected input at line' . $this->line .
+ ': ' . $this->data[$this->counter]);
}
break;
} while (true);
- }
+ } // end function
+
+
+ const DOUBLEQUOTEDSTRING = 5;
public function yy_r5_1()
{
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
public function yy_r5_3()
{
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
public function yy_r5_5()
{
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
public function yy_r5_7()
{
+
$this->yypushstate(self::TAG);
return true;
- }
-
+ }
public function yy_r5_9()
{
+
$this->yypushstate(self::TAG);
return true;
- }
-
+ }
public function yy_r5_11()
{
+
$this->token = Smarty_Internal_Templateparser::TP_LDEL;
$this->taglineno = $this->line;
$this->yypushstate(self::TAGBODY);
- }
-
+ }
public function yy_r5_13()
{
+
$this->token = Smarty_Internal_Templateparser::TP_QUOTE;
$this->yypopstate();
- }
-
+ }
public function yy_r5_14()
{
+
$this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
- $this->value = substr($this->value, 0, -1);
+ $this->value = substr($this->value,0,-1);
$this->yypushstate(self::TAGBODY);
$this->taglineno = $this->line;
- }
-
+ }
public function yy_r5_15()
{
- $this->token = Smarty_Internal_Templateparser::TP_DOLLARID;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_DOLLARID;
+ }
public function yy_r5_16()
{
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
public function yy_r5_17()
{
- $this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
+ $this->token = Smarty_Internal_Templateparser::TP_TEXT;
+ }
public function yy_r5_22()
{
+
$to = $this->dataLength;
- $this->value = substr($this->data, $this->counter, $to - $this->counter);
+ $this->value = substr($this->data,$this->counter,$to-$this->counter);
$this->token = Smarty_Internal_Templateparser::TP_TEXT;
- }
-}
+ }
-
+ }
+
+ \ No newline at end of file
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php
index aaeae63b7..a2dd0d6fb 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php
@@ -7,1598 +7,25 @@ class TP_yyStackEntry
** number for the token at this stack level */
public $minor; /* The user-supplied minor token value. This
** is the value of the token */
-}
+};
+
// line 11 "../smarty/lexer/smarty_internal_templateparser.y"
/**
- * Smarty Template Parser Class
- *
- * This is the template parser.
- * It is generated from the smarty_internal_templateparser.y file
- *
- * @author Uwe Tews <uwe.tews@googlemail.com>
- */
+* Smarty Template Parser Class
+*
+* This is the template parser.
+* It is generated from the smarty_internal_templateparser.y file
+*
+* @author Uwe Tews <uwe.tews@googlemail.com>
+*/
class Smarty_Internal_Templateparser
{
- // line 23 "../smarty/lexer/smarty_internal_templateparser.y"
- const ERR1 = 'Security error: Call to private object member not allowed';
- const ERR2 = 'Security error: Call to dynamic object member not allowed';
- const ERR3 = 'PHP in template not allowed. Use SmartyBC to enable it';
- const TP_VERT = 1;
- const TP_COLON = 2;
- const TP_PHP = 3;
- const TP_TEXT = 4;
- const TP_STRIPON = 5;
- const TP_STRIPOFF = 6;
- const TP_LITERALSTART = 7;
- const TP_LITERALEND = 8;
- const TP_LITERAL = 9;
- const TP_SIMPELOUTPUT = 10;
- const TP_SIMPLETAG = 11;
- const TP_SMARTYBLOCKCHILDPARENT = 12;
- const TP_LDEL = 13;
- const TP_RDEL = 14;
- const TP_DOLLARID = 15;
- const TP_EQUAL = 16;
- const TP_ID = 17;
- const TP_PTR = 18;
- const TP_LDELMAKENOCACHE = 19;
- const TP_LDELIF = 20;
- const TP_LDELFOR = 21;
- const TP_SEMICOLON = 22;
- const TP_INCDEC = 23;
- const TP_TO = 24;
- const TP_STEP = 25;
- const TP_LDELFOREACH = 26;
- const TP_SPACE = 27;
- const TP_AS = 28;
- const TP_APTR = 29;
- const TP_LDELSETFILTER = 30;
- const TP_CLOSETAG = 31;
- const TP_LDELSLASH = 32;
- const TP_ATTR = 33;
- const TP_INTEGER = 34;
- const TP_COMMA = 35;
- const TP_OPENP = 36;
- const TP_CLOSEP = 37;
- const TP_MATH = 38;
- const TP_UNIMATH = 39;
- const TP_ISIN = 40;
- const TP_QMARK = 41;
- const TP_NOT = 42;
- const TP_TYPECAST = 43;
- const TP_HEX = 44;
- const TP_DOT = 45;
- const TP_INSTANCEOF = 46;
- const TP_SINGLEQUOTESTRING = 47;
- const TP_DOUBLECOLON = 48;
- const TP_NAMESPACE = 49;
- const TP_AT = 50;
- const TP_HATCH = 51;
- const TP_OPENB = 52;
- const TP_CLOSEB = 53;
- const TP_DOLLAR = 54;
- const TP_LOGOP = 55;
- const TP_SLOGOP = 56;
- const TP_TLOGOP = 57;
- const TP_SINGLECOND = 58;
- const TP_ARRAYOPEN = 59;
- const TP_QUOTE = 60;
- const TP_BACKTICK = 61;
- const YY_NO_ACTION = 516;
- const YY_ACCEPT_ACTION = 515;
- const YY_ERROR_ACTION = 514;
- const YY_SZ_ACTTAB = 2071;
- const YY_SHIFT_USE_DFLT = -31;
- const YY_SHIFT_MAX = 230;
- const YY_REDUCE_USE_DFLT = -91;
- const YY_REDUCE_MAX = 178;
- const YYNOCODE = 110;
- const YYSTACKDEPTH = 500;
- const YYNSTATE = 327;
- const YYNRULE = 187;
- const YYERRORSYMBOL = 62;
- const YYERRSYMDT = 'yy0';
- const YYFALLBACK = 0;
-
- public static $yy_action = array(
- 251, 234, 237, 1, 144, 127, 428, 184, 199, 212,
- 10, 54, 19, 175, 282, 215, 109, 389, 428, 428,
- 224, 321, 223, 303, 203, 389, 13, 389, 281, 43,
- 389, 428, 41, 40, 266, 225, 389, 213, 389, 194,
- 389, 52, 4, 308, 301, 383, 34, 209, 222, 3,
- 50, 153, 251, 234, 237, 1, 199, 131, 383, 198,
- 305, 212, 10, 54, 383, 16, 199, 428, 109, 385,
- 132, 18, 224, 321, 223, 222, 221, 12, 32, 428,
- 116, 43, 385, 262, 41, 40, 266, 225, 385, 233,
- 95, 194, 16, 52, 4, 131, 301, 252, 18, 265,
- 164, 3, 50, 324, 251, 234, 237, 1, 23, 130,
- 229, 198, 150, 212, 10, 54, 326, 11, 170, 284,
- 109, 42, 22, 239, 224, 321, 223, 193, 221, 261,
- 13, 52, 157, 43, 301, 286, 41, 40, 266, 225,
- 205, 233, 5, 194, 96, 52, 4, 263, 301, 301,
- 99, 349, 96, 3, 50, 199, 251, 234, 237, 1,
- 238, 130, 241, 181, 349, 212, 10, 54, 382, 240,
- 349, 36, 109, 185, 104, 256, 224, 321, 223, 132,
- 191, 382, 13, 49, 91, 43, 12, 382, 41, 40,
- 266, 225, 257, 233, 152, 194, 457, 52, 4, 457,
- 301, 301, 228, 457, 282, 3, 50, 285, 251, 234,
- 237, 1, 301, 131, 441, 198, 238, 212, 10, 54,
- 349, 441, 325, 175, 109, 30, 349, 273, 224, 321,
- 223, 20, 221, 295, 32, 211, 457, 39, 166, 49,
- 41, 40, 266, 225, 87, 233, 205, 194, 279, 52,
- 4, 24, 301, 204, 200, 280, 99, 3, 50, 199,
- 251, 234, 237, 1, 31, 130, 96, 198, 205, 212,
- 10, 54, 350, 55, 293, 207, 109, 283, 99, 96,
- 224, 321, 223, 199, 180, 350, 13, 134, 230, 43,
- 222, 350, 41, 40, 266, 225, 104, 233, 316, 194,
- 279, 52, 4, 24, 301, 165, 284, 280, 85, 3,
- 50, 25, 251, 234, 237, 1, 131, 129, 210, 198,
- 14, 212, 10, 54, 269, 270, 301, 116, 109, 295,
- 216, 211, 224, 321, 223, 171, 221, 95, 13, 28,
- 219, 43, 323, 9, 41, 40, 266, 225, 151, 233,
- 324, 194, 52, 52, 4, 301, 301, 30, 282, 302,
- 178, 3, 50, 7, 251, 234, 237, 1, 136, 130,
- 304, 179, 238, 212, 10, 54, 279, 175, 282, 24,
- 109, 238, 429, 280, 224, 321, 223, 177, 221, 270,
- 13, 255, 281, 43, 429, 49, 41, 40, 266, 225,
- 275, 233, 318, 194, 49, 52, 4, 276, 301, 163,
- 26, 199, 8, 3, 50, 119, 251, 234, 237, 1,
- 11, 93, 291, 51, 107, 212, 10, 54, 226, 428,
- 206, 201, 109, 148, 178, 322, 224, 321, 223, 441,
- 221, 428, 13, 282, 9, 43, 441, 115, 41, 40,
- 266, 225, 167, 233, 227, 194, 457, 52, 4, 457,
- 301, 96, 158, 457, 101, 3, 50, 271, 251, 234,
- 237, 1, 282, 130, 235, 186, 135, 212, 10, 54,
- 199, 37, 119, 315, 109, 165, 284, 176, 224, 321,
- 223, 104, 221, 149, 13, 281, 146, 43, 281, 300,
- 41, 40, 266, 225, 30, 233, 289, 194, 21, 52,
- 4, 272, 301, 211, 18, 301, 161, 3, 50, 110,
- 251, 234, 237, 1, 137, 128, 282, 198, 268, 212,
- 10, 54, 222, 169, 515, 92, 109, 172, 284, 31,
- 224, 321, 223, 29, 221, 238, 6, 260, 53, 43,
- 232, 139, 41, 40, 266, 225, 154, 233, 178, 194,
- 168, 52, 4, 214, 301, 145, 99, 33, 49, 3,
- 50, 245, 208, 211, 320, 282, 90, 111, 311, 183,
- 98, 70, 309, 297, 236, 178, 95, 319, 142, 258,
- 247, 267, 249, 264, 250, 195, 231, 199, 246, 324,
- 317, 253, 254, 259, 126, 137, 133, 251, 234, 237,
- 1, 326, 290, 105, 143, 156, 212, 10, 54, 88,
- 84, 83, 484, 109, 322, 282, 37, 224, 321, 223,
- 245, 208, 211, 320, 281, 90, 111, 298, 182, 98,
- 56, 245, 298, 211, 178, 95, 103, 147, 258, 197,
- 102, 75, 141, 250, 195, 231, 95, 246, 324, 258,
- 279, 242, 89, 24, 250, 195, 231, 280, 246, 324,
- 298, 298, 298, 298, 298, 298, 298, 16, 298, 192,
- 277, 298, 298, 18, 294, 44, 45, 38, 298, 298,
- 251, 234, 237, 2, 298, 296, 298, 298, 298, 212,
- 10, 54, 310, 312, 313, 314, 109, 162, 298, 298,
- 224, 321, 223, 298, 298, 298, 294, 282, 298, 42,
- 22, 239, 251, 234, 237, 2, 298, 296, 298, 298,
- 298, 212, 10, 54, 298, 159, 298, 298, 109, 298,
- 298, 17, 224, 321, 223, 282, 298, 42, 22, 239,
- 298, 298, 245, 298, 211, 278, 298, 103, 111, 298,
- 183, 98, 70, 298, 298, 298, 298, 95, 298, 298,
- 258, 298, 292, 17, 298, 250, 195, 231, 279, 246,
- 324, 24, 298, 395, 245, 280, 211, 298, 298, 103,
- 298, 298, 197, 102, 75, 16, 298, 140, 298, 95,
- 298, 18, 258, 298, 298, 298, 298, 250, 195, 231,
- 298, 246, 324, 298, 298, 298, 298, 428, 298, 395,
- 395, 395, 202, 277, 298, 245, 298, 211, 298, 428,
- 103, 298, 298, 197, 120, 69, 395, 395, 395, 395,
- 95, 298, 298, 258, 298, 298, 298, 160, 250, 195,
- 231, 86, 246, 324, 245, 16, 211, 282, 298, 103,
- 196, 18, 197, 120, 69, 298, 44, 45, 38, 95,
- 298, 298, 258, 298, 298, 298, 178, 250, 195, 231,
- 298, 246, 324, 310, 312, 313, 314, 298, 298, 190,
- 245, 298, 211, 298, 298, 103, 298, 298, 197, 102,
- 75, 298, 298, 298, 298, 95, 298, 298, 258, 298,
- 298, 298, 298, 250, 195, 231, 298, 246, 324, 298,
- 298, 298, 245, 298, 211, 298, 199, 100, 298, 288,
- 197, 120, 47, 298, 106, 298, 298, 95, 298, 353,
- 258, 155, 298, 218, 298, 250, 195, 231, 298, 246,
- 324, 282, 16, 42, 22, 239, 298, 245, 18, 211,
- 298, 428, 103, 298, 298, 197, 120, 69, 298, 298,
- 298, 298, 95, 428, 298, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 100, 189, 298, 197, 120, 59, 245, 207, 211,
- 298, 95, 103, 298, 258, 197, 120, 81, 298, 250,
- 195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
- 298, 298, 103, 298, 298, 197, 120, 80, 298, 298,
- 298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 103, 298, 298, 197, 120, 67, 245, 298, 211,
- 298, 95, 103, 298, 258, 197, 120, 57, 298, 250,
- 195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
- 298, 298, 103, 298, 298, 197, 120, 58, 298, 298,
- 298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 103, 298, 298, 197, 120, 82, 245, 298, 211,
- 298, 95, 103, 298, 258, 197, 97, 76, 298, 250,
- 195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
- 298, 298, 103, 298, 298, 197, 120, 71, 298, 298,
- 298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 103, 298, 298, 187, 120, 61, 245, 298, 211,
- 298, 95, 103, 298, 258, 197, 120, 63, 298, 250,
- 195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
- 298, 298, 103, 298, 298, 197, 94, 79, 298, 298,
- 298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 103, 298, 298, 197, 120, 59, 245, 298, 211,
- 298, 95, 103, 298, 258, 197, 120, 77, 298, 250,
- 195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
- 298, 298, 103, 298, 298, 188, 108, 64, 298, 298,
- 298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 103, 298, 298, 197, 120, 65, 245, 298, 211,
- 298, 95, 103, 298, 258, 197, 97, 66, 298, 250,
- 195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
- 298, 298, 103, 298, 298, 197, 120, 68, 298, 298,
- 298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 103, 298, 298, 197, 120, 62, 245, 298, 211,
- 298, 95, 103, 298, 258, 197, 120, 60, 298, 250,
- 195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
- 298, 298, 103, 298, 298, 197, 120, 74, 298, 298,
- 298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 103, 298, 298, 197, 120, 72, 245, 298, 211,
- 298, 95, 103, 298, 258, 197, 120, 48, 298, 250,
- 195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
- 298, 298, 103, 298, 298, 197, 120, 46, 298, 298,
- 298, 298, 95, 298, 298, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 103, 298, 298, 197, 120, 78, 245, 298, 211,
- 298, 95, 103, 298, 258, 197, 120, 73, 298, 250,
- 195, 231, 95, 246, 324, 258, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
- 298, 298, 103, 298, 298, 197, 125, 298, 298, 298,
- 298, 298, 95, 298, 298, 298, 298, 298, 298, 244,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 103, 298, 298, 197, 114, 298, 245, 298, 211,
- 298, 95, 103, 298, 298, 197, 122, 298, 243, 250,
- 195, 231, 95, 246, 324, 298, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
- 298, 298, 103, 298, 298, 197, 117, 298, 298, 298,
- 298, 298, 95, 298, 298, 298, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 103, 298, 298, 197, 121, 298, 245, 298, 211,
- 298, 95, 103, 298, 298, 197, 124, 298, 298, 250,
- 195, 231, 95, 246, 324, 298, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 298, 245, 298, 211,
- 298, 298, 103, 298, 298, 197, 118, 298, 298, 298,
- 298, 298, 95, 298, 298, 298, 298, 298, 298, 298,
- 250, 195, 231, 298, 246, 324, 245, 298, 211, 298,
- 298, 103, 298, 298, 197, 123, 298, 245, 298, 211,
- 298, 95, 103, 298, 298, 197, 113, 298, 298, 250,
- 195, 231, 95, 246, 324, 298, 298, 298, 298, 298,
- 250, 195, 231, 220, 246, 324, 298, 27, 298, 16,
- 298, 457, 298, 298, 457, 18, 298, 26, 457, 441,
- 44, 45, 38, 217, 44, 45, 38, 298, 298, 298,
- 298, 298, 298, 298, 298, 298, 298, 310, 312, 313,
- 314, 310, 312, 313, 314, 298, 441, 298, 298, 441,
- 298, 457, 220, 441, 457, 298, 298, 457, 298, 298,
- 457, 457, 441, 457, 298, 298, 220, 457, 441, 298,
- 298, 298, 298, 298, 457, 298, 298, 457, 298, 298,
- 5, 457, 441, 298, 298, 298, 298, 298, 298, 441,
- 298, 298, 441, 298, 457, 441, 441, 298, 441, 298,
- 457, 298, 441, 306, 298, 298, 298, 298, 298, 441,
- 298, 298, 441, 298, 457, 220, 441, 298, 298, 298,
- 298, 298, 298, 457, 298, 298, 457, 298, 298, 15,
- 457, 441, 35, 274, 44, 45, 38, 457, 298, 298,
- 457, 298, 298, 298, 457, 441, 298, 298, 298, 298,
- 298, 310, 312, 313, 314, 298, 298, 298, 441, 298,
- 298, 441, 298, 457, 298, 441, 287, 298, 44, 45,
- 38, 298, 441, 298, 298, 441, 298, 457, 298, 441,
- 248, 298, 298, 298, 298, 310, 312, 313, 314, 298,
- 44, 45, 38, 298, 298, 112, 298, 44, 45, 38,
- 298, 173, 298, 298, 44, 45, 38, 310, 312, 313,
- 314, 44, 45, 38, 310, 312, 313, 314, 298, 298,
- 299, 310, 312, 313, 314, 44, 45, 38, 310, 312,
- 313, 314, 174, 298, 298, 298, 138, 298, 298, 298,
- 298, 298, 310, 312, 313, 314, 44, 45, 38, 298,
- 298, 298, 44, 45, 38, 298, 44, 45, 38, 298,
- 44, 45, 38, 310, 312, 313, 314, 307, 298, 310,
- 312, 313, 314, 310, 312, 313, 314, 310, 312, 313,
- 314,
- );
-
- public static $yy_lookahead = array(
- 10, 11, 12, 13, 74, 15, 36, 17, 1, 19,
- 20, 21, 29, 103, 84, 45, 26, 14, 48, 36,
- 30, 31, 32, 53, 34, 22, 36, 24, 98, 39,
- 27, 48, 42, 43, 44, 45, 33, 47, 35, 49,
- 37, 51, 52, 53, 54, 14, 16, 16, 45, 59,
- 60, 96, 10, 11, 12, 13, 1, 15, 27, 17,
- 53, 19, 20, 21, 33, 27, 1, 36, 26, 14,
- 45, 33, 30, 31, 32, 45, 34, 52, 36, 48,
- 72, 39, 27, 75, 42, 43, 44, 45, 33, 47,
- 82, 49, 27, 51, 52, 15, 54, 17, 33, 91,
- 83, 59, 60, 95, 10, 11, 12, 13, 13, 15,
- 15, 17, 17, 19, 20, 21, 97, 35, 99, 100,
- 26, 86, 87, 88, 30, 31, 32, 66, 34, 49,
- 36, 51, 96, 39, 54, 53, 42, 43, 44, 45,
- 72, 47, 16, 49, 18, 51, 52, 79, 54, 54,
- 82, 14, 18, 59, 60, 1, 10, 11, 12, 13,
- 23, 15, 15, 17, 27, 19, 20, 21, 14, 17,
- 33, 13, 26, 15, 48, 17, 30, 31, 32, 45,
- 34, 27, 36, 46, 83, 39, 52, 33, 42, 43,
- 44, 45, 34, 47, 74, 49, 10, 51, 52, 13,
- 54, 54, 50, 17, 84, 59, 60, 14, 10, 11,
- 12, 13, 54, 15, 45, 17, 23, 19, 20, 21,
- 27, 52, 100, 103, 26, 35, 33, 37, 30, 31,
- 32, 22, 34, 67, 36, 69, 50, 39, 83, 46,
- 42, 43, 44, 45, 35, 47, 72, 49, 10, 51,
- 52, 13, 54, 79, 80, 17, 82, 59, 60, 1,
- 10, 11, 12, 13, 16, 15, 18, 17, 72, 19,
- 20, 21, 14, 107, 108, 79, 26, 71, 82, 18,
- 30, 31, 32, 1, 34, 27, 36, 15, 50, 39,
- 45, 33, 42, 43, 44, 45, 48, 47, 53, 49,
- 10, 51, 52, 13, 54, 99, 100, 17, 36, 59,
- 60, 29, 10, 11, 12, 13, 15, 15, 17, 17,
- 13, 19, 20, 21, 8, 9, 54, 72, 26, 67,
- 75, 69, 30, 31, 32, 78, 34, 82, 36, 24,
- 50, 39, 17, 36, 42, 43, 44, 45, 74, 47,
- 95, 49, 51, 51, 52, 54, 54, 35, 84, 37,
- 103, 59, 60, 36, 10, 11, 12, 13, 74, 15,
- 108, 17, 23, 19, 20, 21, 10, 103, 84, 13,
- 26, 23, 36, 17, 30, 31, 32, 7, 34, 9,
- 36, 17, 98, 39, 48, 46, 42, 43, 44, 45,
- 17, 47, 53, 49, 46, 51, 52, 93, 54, 78,
- 16, 1, 36, 59, 60, 101, 10, 11, 12, 13,
- 35, 15, 37, 17, 48, 19, 20, 21, 18, 36,
- 65, 66, 26, 74, 103, 104, 30, 31, 32, 45,
- 34, 48, 36, 84, 36, 39, 52, 17, 42, 43,
- 44, 45, 15, 47, 17, 49, 10, 51, 52, 13,
- 54, 18, 74, 17, 82, 59, 60, 34, 10, 11,
- 12, 13, 84, 15, 93, 17, 15, 19, 20, 21,
- 1, 2, 101, 101, 26, 99, 100, 17, 30, 31,
- 32, 48, 34, 96, 36, 98, 96, 39, 98, 71,
- 42, 43, 44, 45, 35, 47, 37, 49, 27, 51,
- 52, 67, 54, 69, 33, 54, 74, 59, 60, 17,
- 10, 11, 12, 13, 96, 15, 84, 17, 34, 19,
- 20, 21, 45, 78, 63, 64, 26, 99, 100, 16,
- 30, 31, 32, 16, 34, 23, 36, 17, 17, 39,
- 23, 51, 42, 43, 44, 45, 72, 47, 103, 49,
- 78, 51, 52, 17, 54, 74, 82, 41, 46, 59,
- 60, 67, 68, 69, 70, 84, 72, 73, 53, 75,
- 76, 77, 53, 61, 15, 103, 82, 14, 51, 85,
- 14, 37, 17, 8, 90, 91, 92, 1, 94, 95,
- 3, 4, 5, 6, 7, 96, 82, 10, 11, 12,
- 13, 97, 84, 81, 96, 74, 19, 20, 21, 78,
- 82, 82, 1, 26, 104, 84, 2, 30, 31, 32,
- 67, 68, 69, 70, 98, 72, 73, 109, 75, 76,
- 77, 67, 109, 69, 103, 82, 72, 96, 85, 75,
- 76, 77, 96, 90, 91, 92, 82, 94, 95, 85,
- 10, 14, 96, 13, 90, 91, 92, 17, 94, 95,
- 109, 109, 109, 109, 109, 109, 109, 27, 109, 105,
- 106, 109, 109, 33, 4, 38, 39, 40, 109, 109,
- 10, 11, 12, 13, 109, 15, 109, 109, 109, 19,
- 20, 21, 55, 56, 57, 58, 26, 74, 109, 109,
- 30, 31, 32, 109, 109, 109, 4, 84, 109, 86,
- 87, 88, 10, 11, 12, 13, 109, 15, 109, 109,
- 109, 19, 20, 21, 109, 74, 109, 109, 26, 109,
- 60, 61, 30, 31, 32, 84, 109, 86, 87, 88,
- 109, 109, 67, 109, 69, 70, 109, 72, 73, 109,
- 75, 76, 77, 109, 109, 109, 109, 82, 109, 109,
- 85, 109, 60, 61, 109, 90, 91, 92, 10, 94,
- 95, 13, 109, 2, 67, 17, 69, 109, 109, 72,
- 109, 109, 75, 76, 77, 27, 109, 29, 109, 82,
- 109, 33, 85, 109, 109, 109, 109, 90, 91, 92,
- 109, 94, 95, 109, 109, 109, 109, 36, 109, 38,
- 39, 40, 105, 106, 109, 67, 109, 69, 109, 48,
- 72, 109, 109, 75, 76, 77, 55, 56, 57, 58,
- 82, 109, 109, 85, 109, 109, 109, 74, 90, 91,
- 92, 78, 94, 95, 67, 27, 69, 84, 109, 72,
- 102, 33, 75, 76, 77, 109, 38, 39, 40, 82,
- 109, 109, 85, 109, 109, 109, 103, 90, 91, 92,
- 109, 94, 95, 55, 56, 57, 58, 109, 109, 102,
- 67, 109, 69, 109, 109, 72, 109, 109, 75, 76,
- 77, 109, 109, 109, 109, 82, 109, 109, 85, 109,
- 109, 109, 109, 90, 91, 92, 109, 94, 95, 109,
- 109, 109, 67, 109, 69, 109, 1, 72, 109, 106,
- 75, 76, 77, 109, 79, 109, 109, 82, 109, 14,
- 85, 74, 109, 18, 109, 90, 91, 92, 109, 94,
- 95, 84, 27, 86, 87, 88, 109, 67, 33, 69,
- 109, 36, 72, 109, 109, 75, 76, 77, 109, 109,
- 109, 109, 82, 48, 109, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 102, 109, 75, 76, 77, 67, 79, 69,
- 109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
- 91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
- 109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
- 109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
- 109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
- 91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
- 109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
- 109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
- 109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
- 91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
- 109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
- 109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
- 109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
- 91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
- 109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
- 109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
- 109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
- 91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
- 109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
- 109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
- 109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
- 91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
- 109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
- 109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
- 109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
- 91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
- 109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
- 109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
- 109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
- 91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
- 109, 109, 72, 109, 109, 75, 76, 77, 109, 109,
- 109, 109, 82, 109, 109, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 109, 109, 75, 76, 77, 67, 109, 69,
- 109, 82, 72, 109, 85, 75, 76, 77, 109, 90,
- 91, 92, 82, 94, 95, 85, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
- 109, 109, 72, 109, 109, 75, 76, 109, 109, 109,
- 109, 109, 82, 109, 109, 109, 109, 109, 109, 89,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 109, 109, 75, 76, 109, 67, 109, 69,
- 109, 82, 72, 109, 109, 75, 76, 109, 89, 90,
- 91, 92, 82, 94, 95, 109, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
- 109, 109, 72, 109, 109, 75, 76, 109, 109, 109,
- 109, 109, 82, 109, 109, 109, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 109, 109, 75, 76, 109, 67, 109, 69,
- 109, 82, 72, 109, 109, 75, 76, 109, 109, 90,
- 91, 92, 82, 94, 95, 109, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 109, 67, 109, 69,
- 109, 109, 72, 109, 109, 75, 76, 109, 109, 109,
- 109, 109, 82, 109, 109, 109, 109, 109, 109, 109,
- 90, 91, 92, 109, 94, 95, 67, 109, 69, 109,
- 109, 72, 109, 109, 75, 76, 109, 67, 109, 69,
- 109, 82, 72, 109, 109, 75, 76, 109, 109, 90,
- 91, 92, 82, 94, 95, 109, 109, 109, 109, 109,
- 90, 91, 92, 2, 94, 95, 109, 25, 109, 27,
- 109, 10, 109, 109, 13, 33, 109, 16, 17, 18,
- 38, 39, 40, 37, 38, 39, 40, 109, 109, 109,
- 109, 109, 109, 109, 109, 109, 109, 55, 56, 57,
- 58, 55, 56, 57, 58, 109, 45, 109, 109, 48,
- 109, 50, 2, 52, 10, 109, 109, 13, 109, 109,
- 10, 17, 18, 13, 109, 109, 2, 17, 18, 109,
- 109, 109, 109, 109, 10, 109, 109, 13, 109, 109,
- 16, 17, 18, 109, 109, 109, 109, 109, 109, 45,
- 109, 109, 48, 109, 50, 45, 52, 109, 48, 109,
- 50, 109, 52, 53, 109, 109, 109, 109, 109, 45,
- 109, 109, 48, 109, 50, 2, 52, 109, 109, 109,
- 109, 109, 109, 10, 109, 109, 13, 109, 109, 2,
- 17, 18, 2, 37, 38, 39, 40, 10, 109, 109,
- 13, 109, 109, 109, 17, 18, 109, 109, 109, 109,
- 109, 55, 56, 57, 58, 109, 109, 109, 45, 109,
- 109, 48, 109, 50, 109, 52, 14, 109, 38, 39,
- 40, 109, 45, 109, 109, 48, 109, 50, 109, 52,
- 14, 109, 109, 109, 109, 55, 56, 57, 58, 109,
- 38, 39, 40, 109, 109, 22, 109, 38, 39, 40,
- 109, 14, 109, 109, 38, 39, 40, 55, 56, 57,
- 58, 38, 39, 40, 55, 56, 57, 58, 109, 109,
- 61, 55, 56, 57, 58, 38, 39, 40, 55, 56,
- 57, 58, 14, 109, 109, 109, 28, 109, 109, 109,
- 109, 109, 55, 56, 57, 58, 38, 39, 40, 109,
- 109, 109, 38, 39, 40, 109, 38, 39, 40, 109,
- 38, 39, 40, 55, 56, 57, 58, 53, 109, 55,
- 56, 57, 58, 55, 56, 57, 58, 55, 56, 57,
- 58,
- );
+// line 23 "../smarty/lexer/smarty_internal_templateparser.y"
- public static $yy_shift_ofst = array(
- -31, 406, 406, 458, 458, 94, 510, 94, 94, 94,
- 510, 458, -10, 94, 94, 354, 146, 94, 94, 94,
- 94, 146, 94, 94, 94, 94, 250, 94, 94, 94,
- 94, 94, 94, 302, 94, 94, 94, 198, 42, 42,
- 42, 42, 42, 42, 42, 42, 1772, 828, 828, 80,
- 712, 925, 301, 65, 272, 680, 1942, 1920, 1886, 1776,
- 647, 1949, 1977, 2008, 2004, 1963, 1998, 1956, 2012, 2012,
- 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012,
- 2012, 2012, 2012, 768, 650, 272, 65, 272, 65, 134,
- 126, 479, 597, 1854, 154, 290, 95, 55, 258, 366,
- 248, 366, 282, 443, 437, 38, 38, 437, 7, 481,
- 410, 38, 461, 621, 596, 596, 261, 596, 596, 261,
- 596, 596, 596, 596, 596, -31, -31, 1840, 1791, 1917,
- 1903, 1834, 158, 238, 394, 446, 38, 25, 147, 169,
- 147, 25, 169, 25, 38, 38, 25, 25, 38, 25,
- 307, 38, 38, 25, 527, 38, 38, 25, 38, 38,
- 38, 38, 38, 596, 624, 261, 624, 327, 596, 596,
- 261, 596, 261, -31, -31, -31, -31, -31, -31, 781,
- 3, 31, 193, 137, -30, 186, -17, 522, 349, 469,
- 322, 30, 82, 316, 346, 376, 190, 358, 393, 152,
- 209, 380, 385, 245, 315, 523, 585, 554, 576, 575,
- 537, 573, 569, 529, 525, 546, 500, 526, 531, 325,
- 530, 487, 494, 502, 470, 433, 430, 408, 383, 327,
- 374,
- );
-
- public static $yy_reduce_ofst = array(
- 471, 504, 563, 717, 574, 685, 919, 890, 787, 758,
- 855, 823, 1240, 1199, 1140, 1100, 1070, 1129, 1170, 1210,
- 1269, 1280, 1310, 1339, 1350, 1380, 1409, 1420, 1450, 1479,
- 1490, 1059, 1030, 1000, 930, 960, 989, 1520, 1549, 1700,
- 1619, 1689, 1660, 1630, 1590, 1560, 633, 661, 867, 8,
- 166, 773, 255, 541, 174, 262, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 294, -70, 196, 120, 68, 274, 19,
- 206, 331, 444, 428, 257, 400, 382, 257, 257, 400,
- 386, 397, 257, 386, 381, 388, 359, 314, 257, 442,
- 482, 491, 484, 257, 257, 455, 386, 257, 257, 438,
- 257, 257, 257, 257, 257, 257, 365, 509, 509, 509,
- 509, 509, 524, 536, 509, 509, 528, 514, 539, 551,
- 538, 514, 556, 514, 528, 528, 514, 514, 528, 514,
- 518, 528, 528, 514, 532, 528, 528, 514, 528, 528,
- 528, 528, 528, -90, 520, 122, 520, 566, -90, -90,
- 122, -90, 122, -45, 36, 155, 101, 61, 17,
- );
-
- public static $yyExpectedTokens = array(
- array(),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 53, 54, 59,
- 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(
- 10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60,
- ),
- array(25, 27, 33, 38, 39, 40, 55, 56, 57, 58,),
- array(27, 33, 38, 39, 40, 55, 56, 57, 58,),
- array(27, 33, 38, 39, 40, 55, 56, 57, 58,),
- array(15, 17, 49, 51, 54,),
- array(4, 10, 11, 12, 13, 15, 19, 20, 21, 26, 30, 31, 32, 60, 61,),
- array(1, 14, 18, 27, 33, 36, 48,),
- array(15, 17, 51, 54,),
- array(1, 27, 33,),
- array(15, 36, 54,),
- array(4, 10, 11, 12, 13, 15, 19, 20, 21, 26, 30, 31, 32, 60, 61,),
- array(14, 38, 39, 40, 55, 56, 57, 58,),
- array(2, 38, 39, 40, 55, 56, 57, 58,),
- array(37, 38, 39, 40, 55, 56, 57, 58,),
- array(37, 38, 39, 40, 55, 56, 57, 58,),
- array(14, 38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58, 61,),
- array(14, 38, 39, 40, 55, 56, 57, 58,),
- array(14, 38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 53, 55, 56, 57, 58,),
- array(22, 38, 39, 40, 55, 56, 57, 58,),
- array(28, 38, 39, 40, 55, 56, 57, 58,),
- array(14, 38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(38, 39, 40, 55, 56, 57, 58,),
- array(10, 13, 17, 27, 29, 33,),
- array(10, 13, 17, 27, 33,),
- array(15, 36, 54,),
- array(1, 27, 33,),
- array(15, 36, 54,),
- array(1, 27, 33,),
- array(18, 45, 52,),
- array(16, 18, 48,),
- array(1, 2,),
- array(3, 4, 5, 6, 7, 10, 11, 12, 13, 19, 20, 21, 26, 30, 31, 32,),
- array(2, 10, 13, 16, 17, 18, 45, 48, 50, 52,),
- array(1, 14, 27, 33,),
- array(10, 13, 17, 50,),
- array(13, 15, 17, 54,),
- array(1, 14, 27, 33,),
- array(1, 14, 27, 33,),
- array(10, 13, 17,),
- array(16, 18, 48,),
- array(10, 13, 17,),
- array(1, 29,),
- array(18, 48,),
- array(15, 17,),
- array(27, 33,),
- array(27, 33,),
- array(15, 17,),
- array(1, 53,),
- array(27, 33,),
- array(1, 18,),
- array(27, 33,),
- array(15, 54,),
- array(1,),
- array(1,),
- array(1,),
- array(18,),
- array(1,),
- array(1,),
- array(18,),
- array(1,),
- array(1,),
- array(1,),
- array(1,),
- array(1,),
- array(),
- array(),
- array(2, 10, 13, 17, 18, 45, 48, 50, 52, 53,),
- array(2, 10, 13, 16, 17, 18, 45, 48, 50, 52,),
- array(2, 10, 13, 17, 18, 45, 48, 50, 52,),
- array(2, 10, 13, 17, 18, 45, 48, 50, 52,),
- array(10, 13, 17, 18, 45, 48, 50, 52,),
- array(13, 15, 17, 34, 54,),
- array(10, 13, 17, 50,),
- array(16, 45, 52,),
- array(10, 13, 17,),
- array(27, 33,),
- array(45, 52,),
- array(15, 54,),
- array(45, 52,),
- array(15, 54,),
- array(45, 52,),
- array(45, 52,),
- array(45, 52,),
- array(27, 33,),
- array(27, 33,),
- array(45, 52,),
- array(45, 52,),
- array(27, 33,),
- array(45, 52,),
- array(13, 36,),
- array(27, 33,),
- array(27, 33,),
- array(45, 52,),
- array(16, 23,),
- array(27, 33,),
- array(27, 33,),
- array(45, 52,),
- array(27, 33,),
- array(27, 33,),
- array(27, 33,),
- array(27, 33,),
- array(27, 33,),
- array(1,),
- array(2,),
- array(18,),
- array(2,),
- array(36,),
- array(1,),
- array(1,),
- array(18,),
- array(1,),
- array(18,),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(2, 36, 38, 39, 40, 48, 55, 56, 57, 58,),
- array(14, 22, 24, 27, 33, 35, 37, 45,),
- array(14, 16, 27, 33, 36, 48,),
- array(14, 23, 27, 33, 46,),
- array(14, 23, 27, 33, 46,),
- array(36, 45, 48, 53,),
- array(10, 13, 17, 50,),
- array(29, 36, 48,),
- array(23, 46, 61,),
- array(23, 46, 53,),
- array(35, 37,),
- array(35, 37,),
- array(16, 45,),
- array(35, 53,),
- array(8, 9,),
- array(36, 48,),
- array(36, 48,),
- array(35, 37,),
- array(23, 46,),
- array(36, 48,),
- array(17, 50,),
- array(22, 35,),
- array(7, 9,),
- array(35, 37,),
- array(45, 53,),
- array(24,),
- array(16,),
- array(8,),
- array(37,),
- array(14,),
- array(17,),
- array(51,),
- array(14,),
- array(15,),
- array(53,),
- array(53,),
- array(17,),
- array(51,),
- array(41,),
- array(17,),
- array(17,),
- array(17,),
- array(45,),
- array(34,),
- array(17,),
- array(17,),
- array(34,),
- array(17,),
- array(36,),
- array(17,),
- array(36,),
- array(17,),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- array(),
- );
-
- public static $yy_default = array(
- 338, 514, 514, 499, 499, 514, 514, 476, 476, 476,
- 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 514, 514, 379, 358, 379, 514,
- 514, 415, 514, 379, 514, 514, 351, 514, 514, 514,
- 514, 514, 514, 514, 514, 514, 384, 514, 399, 475,
- 351, 403, 390, 474, 500, 502, 384, 501, 363, 381,
- 404, 386, 391, 379, 379, 514, 379, 514, 379, 489,
- 431, 370, 327, 430, 393, 441, 514, 393, 393, 441,
- 431, 441, 393, 431, 514, 379, 360, 514, 393, 379,
- 373, 379, 514, 406, 402, 375, 431, 396, 398, 486,
- 393, 408, 397, 407, 406, 483, 336, 430, 430, 430,
- 430, 430, 514, 443, 457, 441, 367, 438, 514, 436,
- 514, 435, 434, 466, 368, 348, 439, 437, 361, 467,
- 441, 356, 354, 468, 514, 366, 355, 469, 362, 359,
- 352, 369, 365, 371, 478, 463, 477, 441, 374, 376,
- 490, 424, 487, 441, 441, 482, 482, 336, 482, 415,
- 411, 415, 405, 405, 415, 442, 415, 405, 405, 514,
- 514, 411, 514, 514, 425, 514, 514, 405, 415, 514,
- 514, 334, 514, 411, 387, 514, 514, 514, 514, 514,
- 514, 514, 514, 420, 514, 514, 514, 417, 514, 514,
- 514, 411, 413, 514, 514, 514, 514, 488, 514, 457,
- 514, 421, 364, 420, 340, 422, 357, 341, 409, 400,
- 480, 457, 462, 401, 485, 423, 426, 342, 447, 380,
- 416, 339, 428, 329, 330, 444, 445, 446, 394, 331,
- 395, 429, 419, 388, 332, 418, 410, 392, 412, 333,
- 335, 414, 337, 472, 417, 479, 427, 497, 347, 461,
- 460, 459, 378, 346, 464, 510, 495, 511, 498, 473,
- 377, 496, 503, 506, 513, 512, 509, 507, 504, 508,
- 345, 458, 471, 448, 505, 454, 452, 455, 456, 450,
- 491, 449, 492, 493, 494, 470, 451, 328, 453, 343,
- 344, 372, 481, 432, 433, 465, 440,
- );
-
- public static $yyFallback = array();
-
- public static $yyRuleName = array(
- 'start ::= template',
- 'template ::= template PHP',
- 'template ::= template TEXT',
- 'template ::= template STRIPON',
- 'template ::= template STRIPOFF',
- 'template ::= template LITERALSTART literal_e2 LITERALEND',
- 'literal_e2 ::= literal_e1 LITERALSTART literal_e1 LITERALEND',
- 'literal_e2 ::= literal_e1',
- 'literal_e1 ::= literal_e1 LITERAL',
- 'literal_e1 ::=',
- 'template ::= template smartytag',
- 'template ::=',
- 'smartytag ::= SIMPELOUTPUT',
- 'smartytag ::= SIMPLETAG',
- 'smartytag ::= SMARTYBLOCKCHILDPARENT',
- 'smartytag ::= LDEL tagbody RDEL',
- 'smartytag ::= tag RDEL',
- 'tagbody ::= outattr',
- 'tagbody ::= DOLLARID eqoutattr',
- 'tagbody ::= varindexed eqoutattr',
- 'eqoutattr ::= EQUAL outattr',
- 'outattr ::= output attributes',
- 'output ::= variable',
- 'output ::= value',
- 'output ::= expr',
- 'tag ::= LDEL ID attributes',
- 'tag ::= LDEL ID',
- 'tag ::= LDEL ID modifierlist attributes',
- 'tag ::= LDEL ID PTR ID attributes',
- 'tag ::= LDEL ID PTR ID modifierlist attributes',
- 'tag ::= LDELMAKENOCACHE DOLLARID',
- 'tag ::= LDELIF expr',
- 'tag ::= LDELIF expr attributes',
- 'tag ::= LDELIF statement',
- 'tag ::= LDELIF statement attributes',
- 'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes',
- 'foraction ::= EQUAL expr',
- 'foraction ::= INCDEC',
- 'tag ::= LDELFOR statement TO expr attributes',
- 'tag ::= LDELFOR statement TO expr STEP expr attributes',
- 'tag ::= LDELFOREACH SPACE expr AS varvar attributes',
- 'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes',
- 'tag ::= LDELFOREACH attributes',
- 'tag ::= LDELSETFILTER ID modparameters',
- 'tag ::= LDELSETFILTER ID modparameters modifierlist',
- 'smartytag ::= CLOSETAG',
- 'tag ::= LDELSLASH ID',
- 'tag ::= LDELSLASH ID modifierlist',
- 'tag ::= LDELSLASH ID PTR ID',
- 'tag ::= LDELSLASH ID PTR ID modifierlist',
- 'attributes ::= attributes attribute',
- 'attributes ::= attribute',
- 'attributes ::=',
- 'attribute ::= SPACE ID EQUAL ID',
- 'attribute ::= ATTR expr',
- 'attribute ::= ATTR value',
- 'attribute ::= SPACE ID',
- 'attribute ::= SPACE expr',
- 'attribute ::= SPACE value',
- 'attribute ::= SPACE INTEGER EQUAL expr',
- 'statements ::= statement',
- 'statements ::= statements COMMA statement',
- 'statement ::= DOLLARID EQUAL INTEGER',
- 'statement ::= DOLLARID EQUAL expr',
- 'statement ::= varindexed EQUAL expr',
- 'statement ::= OPENP statement CLOSEP',
- 'expr ::= value',
- 'expr ::= ternary',
- 'expr ::= DOLLARID COLON ID',
- 'expr ::= expr MATH value',
- 'expr ::= expr UNIMATH value',
- 'expr ::= expr tlop value',
- 'expr ::= expr lop expr',
- 'expr ::= expr scond',
- 'expr ::= expr ISIN array',
- 'expr ::= expr ISIN value',
- 'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr',
- 'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr',
- 'value ::= variable',
- 'value ::= UNIMATH value',
- 'value ::= NOT value',
- 'value ::= TYPECAST value',
- 'value ::= variable INCDEC',
- 'value ::= HEX',
- 'value ::= INTEGER',
- 'value ::= INTEGER DOT INTEGER',
- 'value ::= INTEGER DOT',
- 'value ::= DOT INTEGER',
- 'value ::= ID',
- 'value ::= function',
- 'value ::= OPENP expr CLOSEP',
- 'value ::= variable INSTANCEOF ns1',
- 'value ::= variable INSTANCEOF variable',
- 'value ::= SINGLEQUOTESTRING',
- 'value ::= doublequoted_with_quotes',
- 'value ::= varindexed DOUBLECOLON static_class_access',
- 'value ::= smartytag',
- 'value ::= value modifierlist',
- 'value ::= NAMESPACE',
- 'value ::= arraydef',
- 'value ::= ns1 DOUBLECOLON static_class_access',
- 'ns1 ::= ID',
- 'ns1 ::= NAMESPACE',
- 'variable ::= DOLLARID',
- 'variable ::= varindexed',
- 'variable ::= varvar AT ID',
- 'variable ::= object',
- 'variable ::= HATCH ID HATCH',
- 'variable ::= HATCH ID HATCH arrayindex',
- 'variable ::= HATCH variable HATCH',
- 'variable ::= HATCH variable HATCH arrayindex',
- 'varindexed ::= DOLLARID arrayindex',
- 'varindexed ::= varvar arrayindex',
- 'arrayindex ::= arrayindex indexdef',
- 'arrayindex ::=',
- 'indexdef ::= DOT DOLLARID',
- 'indexdef ::= DOT varvar',
- 'indexdef ::= DOT varvar AT ID',
- 'indexdef ::= DOT ID',
- 'indexdef ::= DOT INTEGER',
- 'indexdef ::= DOT LDEL expr RDEL',
- 'indexdef ::= OPENB ID CLOSEB',
- 'indexdef ::= OPENB ID DOT ID CLOSEB',
- 'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB',
- 'indexdef ::= OPENB INTEGER CLOSEB',
- 'indexdef ::= OPENB DOLLARID CLOSEB',
- 'indexdef ::= OPENB variable CLOSEB',
- 'indexdef ::= OPENB value CLOSEB',
- 'indexdef ::= OPENB expr CLOSEB',
- 'indexdef ::= OPENB CLOSEB',
- 'varvar ::= DOLLARID',
- 'varvar ::= DOLLAR',
- 'varvar ::= varvar varvarele',
- 'varvarele ::= ID',
- 'varvarele ::= SIMPELOUTPUT',
- 'varvarele ::= LDEL expr RDEL',
- 'object ::= varindexed objectchain',
- 'objectchain ::= objectelement',
- 'objectchain ::= objectchain objectelement',
- 'objectelement ::= PTR ID arrayindex',
- 'objectelement ::= PTR varvar arrayindex',
- 'objectelement ::= PTR LDEL expr RDEL arrayindex',
- 'objectelement ::= PTR ID LDEL expr RDEL arrayindex',
- 'objectelement ::= PTR method',
- 'function ::= ns1 OPENP params CLOSEP',
- 'method ::= ID OPENP params CLOSEP',
- 'method ::= DOLLARID OPENP params CLOSEP',
- 'params ::= params COMMA expr',
- 'params ::= expr',
- 'params ::=',
- 'modifierlist ::= modifierlist modifier modparameters',
- 'modifierlist ::= modifier modparameters',
- 'modifier ::= VERT AT ID',
- 'modifier ::= VERT ID',
- 'modparameters ::= modparameters modparameter',
- 'modparameters ::=',
- 'modparameter ::= COLON value',
- 'modparameter ::= COLON UNIMATH value',
- 'modparameter ::= COLON array',
- 'static_class_access ::= method',
- 'static_class_access ::= method objectchain',
- 'static_class_access ::= ID',
- 'static_class_access ::= DOLLARID arrayindex',
- 'static_class_access ::= DOLLARID arrayindex objectchain',
- 'lop ::= LOGOP',
- 'lop ::= SLOGOP',
- 'tlop ::= TLOGOP',
- 'scond ::= SINGLECOND',
- 'arraydef ::= OPENB arrayelements CLOSEB',
- 'arraydef ::= ARRAYOPEN arrayelements CLOSEP',
- 'arrayelements ::= arrayelement',
- 'arrayelements ::= arrayelements COMMA arrayelement',
- 'arrayelements ::=',
- 'arrayelement ::= value APTR expr',
- 'arrayelement ::= ID APTR expr',
- 'arrayelement ::= expr',
- 'doublequoted_with_quotes ::= QUOTE QUOTE',
- 'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE',
- 'doublequoted ::= doublequoted doublequotedcontent',
- 'doublequoted ::= doublequotedcontent',
- 'doublequotedcontent ::= BACKTICK variable BACKTICK',
- 'doublequotedcontent ::= BACKTICK expr BACKTICK',
- 'doublequotedcontent ::= DOLLARID',
- 'doublequotedcontent ::= LDEL variable RDEL',
- 'doublequotedcontent ::= LDEL expr RDEL',
- 'doublequotedcontent ::= smartytag',
- 'doublequotedcontent ::= TEXT',
- );
-
- public static $yyRuleInfo = array(
- array(0 => 63, 1 => 1),
- array(0 => 64, 1 => 2),
- array(0 => 64, 1 => 2),
- array(0 => 64, 1 => 2),
- array(0 => 64, 1 => 2),
- array(0 => 64, 1 => 4),
- array(0 => 65, 1 => 4),
- array(0 => 65, 1 => 1),
- array(0 => 66, 1 => 2),
- array(0 => 66, 1 => 0),
- array(0 => 64, 1 => 2),
- array(0 => 64, 1 => 0),
- array(0 => 67, 1 => 1),
- array(0 => 67, 1 => 1),
- array(0 => 67, 1 => 1),
- array(0 => 67, 1 => 3),
- array(0 => 67, 1 => 2),
- array(0 => 68, 1 => 1),
- array(0 => 68, 1 => 2),
- array(0 => 68, 1 => 2),
- array(0 => 71, 1 => 2),
- array(0 => 70, 1 => 2),
- array(0 => 73, 1 => 1),
- array(0 => 73, 1 => 1),
- array(0 => 73, 1 => 1),
- array(0 => 69, 1 => 3),
- array(0 => 69, 1 => 2),
- array(0 => 69, 1 => 4),
- array(0 => 69, 1 => 5),
- array(0 => 69, 1 => 6),
- array(0 => 69, 1 => 2),
- array(0 => 69, 1 => 2),
- array(0 => 69, 1 => 3),
- array(0 => 69, 1 => 2),
- array(0 => 69, 1 => 3),
- array(0 => 69, 1 => 8),
- array(0 => 81, 1 => 2),
- array(0 => 81, 1 => 1),
- array(0 => 69, 1 => 5),
- array(0 => 69, 1 => 7),
- array(0 => 69, 1 => 6),
- array(0 => 69, 1 => 8),
- array(0 => 69, 1 => 2),
- array(0 => 69, 1 => 3),
- array(0 => 69, 1 => 4),
- array(0 => 67, 1 => 1),
- array(0 => 69, 1 => 2),
- array(0 => 69, 1 => 3),
- array(0 => 69, 1 => 4),
- array(0 => 69, 1 => 5),
- array(0 => 74, 1 => 2),
- array(0 => 74, 1 => 1),
- array(0 => 74, 1 => 0),
- array(0 => 84, 1 => 4),
- array(0 => 84, 1 => 2),
- array(0 => 84, 1 => 2),
- array(0 => 84, 1 => 2),
- array(0 => 84, 1 => 2),
- array(0 => 84, 1 => 2),
- array(0 => 84, 1 => 4),
- array(0 => 80, 1 => 1),
- array(0 => 80, 1 => 3),
- array(0 => 79, 1 => 3),
- array(0 => 79, 1 => 3),
- array(0 => 79, 1 => 3),
- array(0 => 79, 1 => 3),
- array(0 => 77, 1 => 1),
- array(0 => 77, 1 => 1),
- array(0 => 77, 1 => 3),
- array(0 => 77, 1 => 3),
- array(0 => 77, 1 => 3),
- array(0 => 77, 1 => 3),
- array(0 => 77, 1 => 3),
- array(0 => 77, 1 => 2),
- array(0 => 77, 1 => 3),
- array(0 => 77, 1 => 3),
- array(0 => 85, 1 => 7),
- array(0 => 85, 1 => 7),
- array(0 => 76, 1 => 1),
- array(0 => 76, 1 => 2),
- array(0 => 76, 1 => 2),
- array(0 => 76, 1 => 2),
- array(0 => 76, 1 => 2),
- array(0 => 76, 1 => 1),
- array(0 => 76, 1 => 1),
- array(0 => 76, 1 => 3),
- array(0 => 76, 1 => 2),
- array(0 => 76, 1 => 2),
- array(0 => 76, 1 => 1),
- array(0 => 76, 1 => 1),
- array(0 => 76, 1 => 3),
- array(0 => 76, 1 => 3),
- array(0 => 76, 1 => 3),
- array(0 => 76, 1 => 1),
- array(0 => 76, 1 => 1),
- array(0 => 76, 1 => 3),
- array(0 => 76, 1 => 1),
- array(0 => 76, 1 => 2),
- array(0 => 76, 1 => 1),
- array(0 => 76, 1 => 1),
- array(0 => 76, 1 => 3),
- array(0 => 91, 1 => 1),
- array(0 => 91, 1 => 1),
- array(0 => 75, 1 => 1),
- array(0 => 75, 1 => 1),
- array(0 => 75, 1 => 3),
- array(0 => 75, 1 => 1),
- array(0 => 75, 1 => 3),
- array(0 => 75, 1 => 4),
- array(0 => 75, 1 => 3),
- array(0 => 75, 1 => 4),
- array(0 => 72, 1 => 2),
- array(0 => 72, 1 => 2),
- array(0 => 96, 1 => 2),
- array(0 => 96, 1 => 0),
- array(0 => 97, 1 => 2),
- array(0 => 97, 1 => 2),
- array(0 => 97, 1 => 4),
- array(0 => 97, 1 => 2),
- array(0 => 97, 1 => 2),
- array(0 => 97, 1 => 4),
- array(0 => 97, 1 => 3),
- array(0 => 97, 1 => 5),
- array(0 => 97, 1 => 3),
- array(0 => 97, 1 => 3),
- array(0 => 97, 1 => 3),
- array(0 => 97, 1 => 3),
- array(0 => 97, 1 => 3),
- array(0 => 97, 1 => 3),
- array(0 => 97, 1 => 2),
- array(0 => 82, 1 => 1),
- array(0 => 82, 1 => 1),
- array(0 => 82, 1 => 2),
- array(0 => 98, 1 => 1),
- array(0 => 98, 1 => 1),
- array(0 => 98, 1 => 3),
- array(0 => 95, 1 => 2),
- array(0 => 99, 1 => 1),
- array(0 => 99, 1 => 2),
- array(0 => 100, 1 => 3),
- array(0 => 100, 1 => 3),
- array(0 => 100, 1 => 5),
- array(0 => 100, 1 => 6),
- array(0 => 100, 1 => 2),
- array(0 => 90, 1 => 4),
- array(0 => 101, 1 => 4),
- array(0 => 101, 1 => 4),
- array(0 => 102, 1 => 3),
- array(0 => 102, 1 => 1),
- array(0 => 102, 1 => 0),
- array(0 => 78, 1 => 3),
- array(0 => 78, 1 => 2),
- array(0 => 103, 1 => 3),
- array(0 => 103, 1 => 2),
- array(0 => 83, 1 => 2),
- array(0 => 83, 1 => 0),
- array(0 => 104, 1 => 2),
- array(0 => 104, 1 => 3),
- array(0 => 104, 1 => 2),
- array(0 => 93, 1 => 1),
- array(0 => 93, 1 => 2),
- array(0 => 93, 1 => 1),
- array(0 => 93, 1 => 2),
- array(0 => 93, 1 => 3),
- array(0 => 87, 1 => 1),
- array(0 => 87, 1 => 1),
- array(0 => 86, 1 => 1),
- array(0 => 88, 1 => 1),
- array(0 => 94, 1 => 3),
- array(0 => 94, 1 => 3),
- array(0 => 105, 1 => 1),
- array(0 => 105, 1 => 3),
- array(0 => 105, 1 => 0),
- array(0 => 106, 1 => 3),
- array(0 => 106, 1 => 3),
- array(0 => 106, 1 => 1),
- array(0 => 92, 1 => 2),
- array(0 => 92, 1 => 3),
- array(0 => 107, 1 => 2),
- array(0 => 107, 1 => 1),
- array(0 => 108, 1 => 3),
- array(0 => 108, 1 => 3),
- array(0 => 108, 1 => 1),
- array(0 => 108, 1 => 3),
- array(0 => 108, 1 => 3),
- array(0 => 108, 1 => 1),
- array(0 => 108, 1 => 1),
- );
-
- public static $yyReduceMap = array(
- 0 => 0,
- 1 => 1,
- 2 => 2,
- 3 => 3,
- 4 => 4,
- 5 => 5,
- 6 => 6,
- 7 => 7,
- 22 => 7,
- 23 => 7,
- 24 => 7,
- 37 => 7,
- 57 => 7,
- 58 => 7,
- 66 => 7,
- 67 => 7,
- 78 => 7,
- 83 => 7,
- 84 => 7,
- 89 => 7,
- 93 => 7,
- 94 => 7,
- 98 => 7,
- 99 => 7,
- 101 => 7,
- 106 => 7,
- 170 => 7,
- 175 => 7,
- 8 => 8,
- 9 => 9,
- 10 => 10,
- 12 => 12,
- 13 => 13,
- 14 => 14,
- 15 => 15,
- 16 => 16,
- 17 => 17,
- 18 => 18,
- 19 => 19,
- 20 => 20,
- 21 => 21,
- 25 => 25,
- 26 => 26,
- 27 => 27,
- 28 => 28,
- 29 => 29,
- 30 => 30,
- 31 => 31,
- 32 => 32,
- 34 => 32,
- 33 => 33,
- 35 => 35,
- 36 => 36,
- 38 => 38,
- 39 => 39,
- 40 => 40,
- 41 => 41,
- 42 => 42,
- 43 => 43,
- 44 => 44,
- 45 => 45,
- 46 => 46,
- 47 => 47,
- 48 => 48,
- 49 => 49,
- 50 => 50,
- 51 => 51,
- 60 => 51,
- 148 => 51,
- 152 => 51,
- 156 => 51,
- 158 => 51,
- 52 => 52,
- 149 => 52,
- 155 => 52,
- 53 => 53,
- 54 => 54,
- 55 => 54,
- 56 => 56,
- 133 => 56,
- 59 => 59,
- 61 => 61,
- 62 => 62,
- 63 => 62,
- 64 => 64,
- 65 => 65,
- 68 => 68,
- 69 => 69,
- 70 => 69,
- 71 => 71,
- 72 => 72,
- 73 => 73,
- 74 => 74,
- 75 => 75,
- 76 => 76,
- 77 => 77,
- 79 => 79,
- 81 => 79,
- 82 => 79,
- 113 => 79,
- 80 => 80,
- 85 => 85,
- 86 => 86,
- 87 => 87,
- 88 => 88,
- 90 => 90,
- 91 => 91,
- 92 => 91,
- 95 => 95,
- 96 => 96,
- 97 => 97,
- 100 => 100,
- 102 => 102,
- 103 => 103,
- 104 => 104,
- 105 => 105,
- 107 => 107,
- 108 => 108,
- 109 => 109,
- 110 => 110,
- 111 => 111,
- 112 => 112,
- 114 => 114,
- 172 => 114,
- 115 => 115,
- 116 => 116,
- 117 => 117,
- 118 => 118,
- 119 => 119,
- 120 => 120,
- 128 => 120,
- 121 => 121,
- 122 => 122,
- 123 => 123,
- 124 => 123,
- 126 => 123,
- 127 => 123,
- 125 => 125,
- 129 => 129,
- 130 => 130,
- 131 => 131,
- 176 => 131,
- 132 => 132,
- 134 => 134,
- 135 => 135,
- 136 => 136,
- 137 => 137,
- 138 => 138,
- 139 => 139,
- 140 => 140,
- 141 => 141,
- 142 => 142,
- 143 => 143,
- 144 => 144,
- 145 => 145,
- 146 => 146,
- 147 => 147,
- 150 => 150,
- 151 => 151,
- 153 => 153,
- 154 => 154,
- 157 => 157,
- 159 => 159,
- 160 => 160,
- 161 => 161,
- 162 => 162,
- 163 => 163,
- 164 => 164,
- 165 => 165,
- 166 => 166,
- 167 => 167,
- 168 => 168,
- 169 => 168,
- 171 => 171,
- 173 => 173,
- 174 => 174,
- 177 => 177,
- 178 => 178,
- 179 => 179,
- 180 => 180,
- 183 => 180,
- 181 => 181,
- 184 => 181,
- 182 => 182,
- 185 => 185,
- 186 => 186,
- );
+ const ERR1 = 'Security error: Call to private object member not allowed';
+ const ERR2 = 'Security error: Call to dynamic object member not allowed';
/**
* result status
@@ -1655,12 +82,18 @@ class Smarty_Internal_Templateparser
public $lex;
/**
+ * internal error flag
+ *
+ * @var bool
+ */
+ private $internalError = false;
+
+ /**
* {strip} status
*
* @var bool
*/
public $strip = false;
-
/**
* compiler object
*
@@ -1710,54 +143,6 @@ class Smarty_Internal_Templateparser
*/
public $template_postfix = array();
- public $yyTraceFILE;
-
- public $yyTracePrompt;
-
- public $yyidx;
-
- public $yyerrcnt;
-
- public $yystack = array();
-
- public $yyTokenName = array(
- '$', 'VERT', 'COLON', 'PHP',
- 'TEXT', 'STRIPON', 'STRIPOFF', 'LITERALSTART',
- 'LITERALEND', 'LITERAL', 'SIMPELOUTPUT', 'SIMPLETAG',
- 'SMARTYBLOCKCHILDPARENT', 'LDEL', 'RDEL', 'DOLLARID',
- 'EQUAL', 'ID', 'PTR', 'LDELMAKENOCACHE',
- 'LDELIF', 'LDELFOR', 'SEMICOLON', 'INCDEC',
- 'TO', 'STEP', 'LDELFOREACH', 'SPACE',
- 'AS', 'APTR', 'LDELSETFILTER', 'CLOSETAG',
- 'LDELSLASH', 'ATTR', 'INTEGER', 'COMMA',
- 'OPENP', 'CLOSEP', 'MATH', 'UNIMATH',
- 'ISIN', 'QMARK', 'NOT', 'TYPECAST',
- 'HEX', 'DOT', 'INSTANCEOF', 'SINGLEQUOTESTRING',
- 'DOUBLECOLON', 'NAMESPACE', 'AT', 'HATCH',
- 'OPENB', 'CLOSEB', 'DOLLAR', 'LOGOP',
- 'SLOGOP', 'TLOGOP', 'SINGLECOND', 'ARRAYOPEN',
- 'QUOTE', 'BACKTICK', 'error', 'start',
- 'template', 'literal_e2', 'literal_e1', 'smartytag',
- 'tagbody', 'tag', 'outattr', 'eqoutattr',
- 'varindexed', 'output', 'attributes', 'variable',
- 'value', 'expr', 'modifierlist', 'statement',
- 'statements', 'foraction', 'varvar', 'modparameters',
- 'attribute', 'ternary', 'tlop', 'lop',
- 'scond', 'array', 'function', 'ns1',
- 'doublequoted_with_quotes', 'static_class_access', 'arraydef', 'object',
- 'arrayindex', 'indexdef', 'varvarele', 'objectchain',
- 'objectelement', 'method', 'params', 'modifier',
- 'modparameter', 'arrayelements', 'arrayelement', 'doublequoted',
- 'doublequotedcontent',
- );
-
- /**
- * internal error flag
- *
- * @var bool
- */
- private $internalError = false; /* Index of top element in stack */
- private $_retvalue; /* Shifts left before out of the error */
/**
* constructor
*
@@ -1772,16 +157,9 @@ class Smarty_Internal_Templateparser
$this->smarty = $this->template->smarty;
$this->security = isset($this->smarty->security_policy) ? $this->smarty->security_policy : false;
$this->current_buffer = $this->root_buffer = new Smarty_Internal_ParseTree_Template();
- } /* The parser's stack */
- public static function yy_destructor($yymajor, $yypminor)
- {
- switch ($yymajor) {
- default:
- break; /* If no destructor action specified: do nothing */
- }
}
- /**
+ /**
* insert PHP code in current buffer
*
* @param string $code
@@ -1823,6 +201,898 @@ class Smarty_Internal_Templateparser
return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp, true));
}
+
+ const TP_VERT = 1;
+ const TP_COLON = 2;
+ const TP_TEXT = 3;
+ const TP_STRIPON = 4;
+ const TP_STRIPOFF = 5;
+ const TP_LITERALSTART = 6;
+ const TP_LITERALEND = 7;
+ const TP_LITERAL = 8;
+ const TP_SIMPELOUTPUT = 9;
+ const TP_SIMPLETAG = 10;
+ const TP_SMARTYBLOCKCHILDPARENT = 11;
+ const TP_LDEL = 12;
+ const TP_RDEL = 13;
+ const TP_DOLLARID = 14;
+ const TP_EQUAL = 15;
+ const TP_ID = 16;
+ const TP_PTR = 17;
+ const TP_LDELMAKENOCACHE = 18;
+ const TP_LDELIF = 19;
+ const TP_LDELFOR = 20;
+ const TP_SEMICOLON = 21;
+ const TP_INCDEC = 22;
+ const TP_TO = 23;
+ const TP_STEP = 24;
+ const TP_LDELFOREACH = 25;
+ const TP_SPACE = 26;
+ const TP_AS = 27;
+ const TP_APTR = 28;
+ const TP_LDELSETFILTER = 29;
+ const TP_CLOSETAG = 30;
+ const TP_LDELSLASH = 31;
+ const TP_ATTR = 32;
+ const TP_INTEGER = 33;
+ const TP_COMMA = 34;
+ const TP_OPENP = 35;
+ const TP_CLOSEP = 36;
+ const TP_MATH = 37;
+ const TP_UNIMATH = 38;
+ const TP_ISIN = 39;
+ const TP_QMARK = 40;
+ const TP_NOT = 41;
+ const TP_TYPECAST = 42;
+ const TP_HEX = 43;
+ const TP_DOT = 44;
+ const TP_INSTANCEOF = 45;
+ const TP_SINGLEQUOTESTRING = 46;
+ const TP_DOUBLECOLON = 47;
+ const TP_NAMESPACE = 48;
+ const TP_AT = 49;
+ const TP_HATCH = 50;
+ const TP_OPENB = 51;
+ const TP_CLOSEB = 52;
+ const TP_DOLLAR = 53;
+ const TP_LOGOP = 54;
+ const TP_SLOGOP = 55;
+ const TP_TLOGOP = 56;
+ const TP_SINGLECOND = 57;
+ const TP_ARRAYOPEN = 58;
+ const TP_QUOTE = 59;
+ const TP_BACKTICK = 60;
+ const YY_NO_ACTION = 514;
+ const YY_ACCEPT_ACTION = 513;
+ const YY_ERROR_ACTION = 512;
+
+ const YY_SZ_ACTTAB = 1997;
+public static $yy_action = array(
+ 249, 250, 239, 1, 27, 127, 220, 184, 160, 213,
+ 11, 54, 278, 10, 173, 34, 108, 387, 282, 279,
+ 223, 321, 221, 8, 194, 387, 18, 387, 85, 41,
+ 387, 285, 42, 44, 264, 222, 387, 209, 387, 198,
+ 387, 52, 5, 307, 288, 288, 164, 283, 224, 4,
+ 50, 249, 250, 239, 1, 232, 131, 381, 189, 205,
+ 213, 11, 54, 39, 35, 243, 31, 108, 94, 17,
+ 381, 223, 321, 221, 439, 226, 381, 33, 49, 426,
+ 41, 439, 89, 42, 44, 264, 222, 9, 235, 163,
+ 198, 426, 52, 5, 131, 288, 212, 284, 102, 106,
+ 4, 50, 249, 250, 239, 1, 232, 129, 426, 189,
+ 347, 213, 11, 54, 175, 324, 347, 208, 108, 22,
+ 426, 301, 223, 321, 221, 302, 226, 135, 18, 49,
+ 52, 41, 26, 288, 42, 44, 264, 222, 16, 235,
+ 294, 198, 204, 52, 5, 170, 288, 32, 90, 267,
+ 268, 4, 50, 249, 250, 239, 1, 20, 129, 185,
+ 179, 255, 213, 11, 54, 455, 288, 192, 455, 108,
+ 175, 167, 455, 223, 321, 221, 439, 226, 256, 18,
+ 55, 292, 41, 439, 132, 42, 44, 264, 222, 427,
+ 235, 12, 198, 165, 52, 5, 232, 288, 288, 347,
+ 153, 427, 4, 50, 249, 250, 239, 1, 232, 129,
+ 286, 181, 347, 213, 11, 54, 24, 13, 347, 49,
+ 108, 232, 320, 426, 223, 321, 221, 195, 201, 173,
+ 18, 49, 139, 41, 296, 426, 42, 44, 264, 222,
+ 7, 235, 286, 198, 49, 52, 5, 147, 288, 117,
+ 150, 317, 263, 4, 50, 249, 250, 239, 1, 95,
+ 130, 173, 189, 155, 213, 11, 54, 22, 244, 271,
+ 192, 108, 323, 286, 101, 223, 321, 221, 294, 226,
+ 204, 18, 348, 257, 41, 166, 283, 42, 44, 264,
+ 222, 28, 235, 300, 198, 348, 52, 5, 247, 288,
+ 117, 348, 94, 206, 4, 50, 249, 250, 239, 1,
+ 95, 129, 22, 189, 277, 213, 11, 54, 91, 274,
+ 224, 426, 108, 323, 216, 156, 223, 321, 221, 132,
+ 180, 262, 18, 426, 100, 41, 12, 288, 42, 44,
+ 264, 222, 15, 235, 216, 198, 254, 52, 5, 233,
+ 288, 210, 190, 192, 100, 4, 50, 249, 250, 239,
+ 1, 3, 131, 94, 189, 192, 213, 11, 54, 269,
+ 10, 204, 290, 108, 325, 216, 224, 223, 321, 221,
+ 23, 226, 211, 33, 315, 100, 45, 513, 92, 42,
+ 44, 264, 222, 102, 235, 178, 198, 268, 52, 5,
+ 275, 288, 161, 192, 37, 25, 4, 50, 249, 250,
+ 239, 1, 286, 129, 172, 187, 305, 213, 11, 54,
+ 164, 283, 310, 141, 108, 281, 281, 236, 223, 321,
+ 221, 169, 226, 230, 18, 122, 171, 41, 225, 175,
+ 42, 44, 264, 222, 144, 235, 303, 198, 134, 52,
+ 5, 265, 288, 151, 286, 192, 175, 4, 50, 249,
+ 250, 239, 1, 286, 128, 94, 189, 143, 213, 11,
+ 54, 219, 152, 207, 193, 108, 149, 281, 31, 223,
+ 321, 221, 100, 226, 21, 6, 286, 288, 41, 158,
+ 16, 42, 44, 264, 222, 102, 235, 238, 198, 286,
+ 52, 5, 157, 288, 281, 122, 168, 283, 4, 50,
+ 249, 250, 239, 1, 30, 93, 308, 51, 215, 213,
+ 11, 54, 53, 251, 140, 248, 108, 245, 304, 116,
+ 223, 321, 221, 111, 226, 176, 18, 270, 266, 41,
+ 224, 322, 42, 44, 264, 222, 7, 235, 259, 198,
+ 147, 52, 5, 257, 288, 43, 40, 38, 83, 4,
+ 50, 241, 214, 204, 319, 280, 88, 107, 138, 182,
+ 97, 64, 311, 312, 313, 316, 95, 281, 298, 258,
+ 142, 234, 94, 105, 272, 197, 231, 482, 237, 323,
+ 37, 133, 324, 241, 214, 204, 319, 314, 88, 107,
+ 296, 183, 97, 82, 84, 43, 40, 38, 95, 296,
+ 296, 258, 296, 296, 296, 159, 272, 197, 231, 296,
+ 237, 323, 311, 312, 313, 316, 241, 296, 204, 296,
+ 296, 103, 296, 296, 199, 104, 77, 296, 296, 110,
+ 296, 95, 296, 296, 258, 278, 296, 296, 34, 272,
+ 197, 231, 279, 237, 323, 43, 40, 38, 296, 296,
+ 296, 241, 26, 204, 196, 276, 103, 296, 16, 199,
+ 104, 77, 311, 312, 313, 316, 95, 192, 296, 258,
+ 146, 296, 296, 296, 272, 197, 231, 296, 237, 323,
+ 286, 393, 39, 35, 243, 296, 296, 296, 296, 191,
+ 276, 296, 26, 318, 252, 253, 126, 296, 16, 249,
+ 250, 239, 1, 296, 296, 131, 296, 261, 213, 11,
+ 54, 296, 296, 296, 426, 108, 393, 393, 393, 223,
+ 321, 221, 241, 296, 204, 299, 426, 103, 107, 296,
+ 183, 97, 82, 393, 393, 393, 393, 95, 296, 260,
+ 258, 52, 296, 296, 288, 272, 197, 231, 296, 237,
+ 323, 293, 296, 296, 296, 296, 296, 249, 250, 239,
+ 2, 296, 295, 296, 296, 296, 213, 11, 54, 296,
+ 296, 177, 296, 108, 136, 296, 296, 223, 321, 221,
+ 296, 296, 296, 293, 43, 40, 38, 296, 296, 249,
+ 250, 239, 2, 296, 295, 43, 40, 38, 213, 11,
+ 54, 311, 312, 313, 316, 108, 296, 291, 14, 223,
+ 321, 221, 311, 312, 313, 316, 296, 296, 241, 296,
+ 204, 296, 192, 103, 296, 296, 199, 104, 77, 296,
+ 296, 296, 296, 95, 383, 296, 258, 296, 296, 297,
+ 14, 272, 197, 231, 296, 237, 323, 383, 296, 296,
+ 241, 296, 204, 383, 296, 99, 296, 287, 199, 120,
+ 48, 241, 112, 204, 296, 95, 103, 296, 258, 199,
+ 120, 74, 296, 272, 197, 231, 95, 237, 323, 258,
+ 455, 296, 296, 455, 272, 197, 231, 455, 237, 323,
+ 241, 296, 204, 296, 296, 103, 200, 296, 199, 120,
+ 74, 296, 296, 296, 296, 95, 296, 296, 258, 278,
+ 296, 296, 34, 272, 197, 231, 279, 237, 323, 241,
+ 455, 204, 296, 296, 99, 202, 296, 199, 120, 56,
+ 241, 211, 204, 296, 95, 103, 296, 258, 199, 120,
+ 74, 296, 272, 197, 231, 95, 237, 323, 258, 227,
+ 296, 296, 296, 272, 197, 231, 296, 237, 323, 241,
+ 296, 204, 148, 296, 103, 203, 86, 199, 120, 73,
+ 296, 296, 286, 296, 95, 296, 296, 258, 278, 296,
+ 296, 34, 272, 197, 231, 279, 237, 323, 241, 296,
+ 204, 175, 296, 103, 296, 296, 199, 120, 75, 241,
+ 296, 204, 296, 95, 103, 296, 258, 199, 120, 63,
+ 296, 272, 197, 231, 95, 237, 323, 258, 229, 192,
+ 296, 296, 272, 197, 231, 296, 237, 323, 241, 296,
+ 204, 380, 296, 103, 296, 296, 199, 120, 58, 296,
+ 296, 296, 296, 95, 380, 296, 258, 296, 296, 296,
+ 380, 272, 197, 231, 296, 237, 323, 241, 296, 204,
+ 296, 296, 103, 296, 296, 199, 120, 71, 241, 296,
+ 204, 296, 95, 103, 296, 258, 199, 120, 79, 296,
+ 272, 197, 231, 95, 237, 323, 258, 296, 296, 296,
+ 154, 272, 197, 231, 87, 237, 323, 241, 296, 204,
+ 286, 296, 103, 296, 296, 199, 120, 70, 296, 296,
+ 296, 296, 95, 296, 296, 258, 296, 296, 296, 175,
+ 272, 197, 231, 296, 237, 323, 241, 296, 204, 296,
+ 296, 103, 296, 296, 199, 120, 56, 241, 296, 204,
+ 296, 95, 103, 296, 258, 199, 120, 46, 296, 272,
+ 197, 231, 95, 237, 323, 258, 296, 296, 296, 296,
+ 272, 197, 231, 296, 237, 323, 241, 296, 204, 296,
+ 296, 103, 296, 296, 199, 120, 78, 296, 296, 296,
+ 296, 95, 296, 296, 258, 296, 296, 296, 296, 272,
+ 197, 231, 296, 237, 323, 241, 296, 204, 296, 296,
+ 103, 296, 296, 199, 120, 66, 241, 296, 204, 296,
+ 95, 103, 296, 258, 199, 120, 59, 296, 272, 197,
+ 231, 95, 237, 323, 258, 296, 296, 296, 296, 272,
+ 197, 231, 296, 237, 323, 241, 296, 204, 296, 296,
+ 103, 296, 296, 186, 109, 57, 296, 296, 296, 296,
+ 95, 296, 296, 258, 296, 296, 296, 296, 272, 197,
+ 231, 296, 237, 323, 241, 296, 204, 296, 296, 103,
+ 296, 296, 188, 120, 67, 241, 296, 204, 296, 95,
+ 103, 296, 258, 199, 96, 62, 296, 272, 197, 231,
+ 95, 237, 323, 258, 296, 296, 296, 296, 272, 197,
+ 231, 296, 237, 323, 241, 296, 204, 296, 296, 103,
+ 296, 296, 199, 120, 80, 296, 296, 296, 296, 95,
+ 296, 296, 258, 296, 296, 296, 296, 272, 197, 231,
+ 296, 237, 323, 241, 296, 204, 296, 296, 103, 296,
+ 296, 199, 120, 76, 241, 296, 204, 296, 95, 103,
+ 296, 258, 199, 120, 81, 296, 272, 197, 231, 95,
+ 237, 323, 258, 296, 296, 296, 296, 272, 197, 231,
+ 296, 237, 323, 241, 296, 204, 296, 296, 103, 296,
+ 296, 199, 120, 65, 296, 296, 296, 296, 95, 296,
+ 296, 258, 296, 296, 296, 296, 272, 197, 231, 296,
+ 237, 323, 241, 296, 204, 296, 296, 103, 296, 296,
+ 199, 96, 68, 241, 296, 204, 296, 95, 103, 296,
+ 258, 199, 120, 61, 296, 272, 197, 231, 95, 237,
+ 323, 258, 296, 296, 296, 296, 272, 197, 231, 296,
+ 237, 323, 241, 296, 204, 296, 296, 103, 296, 296,
+ 199, 98, 69, 296, 296, 296, 296, 95, 296, 296,
+ 258, 296, 296, 296, 296, 272, 197, 231, 296, 237,
+ 323, 241, 296, 204, 296, 296, 103, 296, 296, 199,
+ 120, 72, 241, 296, 204, 296, 95, 103, 296, 258,
+ 199, 120, 47, 296, 272, 197, 231, 95, 237, 323,
+ 258, 296, 296, 296, 296, 272, 197, 231, 296, 237,
+ 323, 241, 192, 204, 296, 296, 103, 296, 296, 199,
+ 120, 60, 296, 296, 351, 296, 95, 296, 217, 258,
+ 296, 296, 296, 296, 272, 197, 231, 26, 237, 323,
+ 241, 296, 204, 16, 296, 103, 426, 296, 199, 125,
+ 296, 241, 296, 204, 296, 95, 103, 296, 426, 199,
+ 118, 296, 242, 272, 197, 231, 95, 237, 323, 296,
+ 296, 296, 296, 246, 272, 197, 231, 296, 237, 323,
+ 241, 296, 204, 278, 296, 103, 34, 296, 199, 121,
+ 279, 296, 296, 296, 296, 95, 296, 296, 296, 296,
+ 26, 296, 162, 272, 197, 231, 16, 237, 323, 241,
+ 296, 204, 296, 296, 103, 296, 296, 199, 123, 296,
+ 241, 296, 204, 296, 95, 103, 296, 296, 199, 114,
+ 296, 296, 272, 197, 231, 95, 237, 323, 296, 296,
+ 296, 296, 296, 272, 197, 231, 296, 237, 323, 241,
+ 296, 204, 296, 145, 103, 296, 296, 199, 124, 296,
+ 296, 296, 296, 286, 95, 39, 35, 243, 296, 296,
+ 296, 296, 272, 197, 231, 296, 237, 323, 241, 296,
+ 204, 296, 296, 103, 296, 296, 199, 115, 296, 241,
+ 296, 204, 296, 95, 103, 296, 296, 199, 113, 296,
+ 296, 272, 197, 231, 95, 237, 323, 296, 296, 296,
+ 296, 296, 272, 197, 231, 228, 237, 323, 241, 296,
+ 204, 296, 455, 103, 296, 455, 199, 119, 3, 455,
+ 439, 296, 296, 95, 296, 296, 296, 296, 296, 296,
+ 296, 272, 197, 231, 228, 237, 323, 296, 296, 296,
+ 296, 455, 296, 296, 455, 296, 296, 439, 455, 439,
+ 439, 228, 455, 296, 439, 296, 296, 137, 455, 296,
+ 296, 455, 296, 296, 32, 455, 439, 286, 296, 39,
+ 35, 243, 29, 296, 26, 296, 439, 296, 296, 439,
+ 16, 455, 296, 439, 306, 43, 40, 38, 296, 296,
+ 296, 296, 296, 439, 296, 296, 439, 296, 455, 296,
+ 439, 26, 311, 312, 313, 316, 296, 16, 228, 296,
+ 296, 296, 43, 40, 38, 455, 296, 296, 455, 296,
+ 296, 296, 455, 439, 296, 296, 19, 296, 296, 311,
+ 312, 313, 316, 455, 296, 296, 455, 296, 296, 296,
+ 455, 439, 296, 296, 296, 43, 40, 38, 296, 296,
+ 439, 296, 296, 439, 174, 455, 296, 439, 296, 240,
+ 309, 296, 311, 312, 313, 316, 296, 289, 439, 296,
+ 36, 439, 296, 455, 296, 439, 296, 296, 43, 40,
+ 38, 296, 296, 43, 40, 38, 296, 296, 296, 296,
+ 296, 43, 40, 38, 296, 311, 312, 313, 316, 296,
+ 311, 312, 313, 316, 296, 43, 40, 38, 311, 312,
+ 313, 316, 273, 43, 40, 38, 296, 296, 296, 296,
+ 296, 296, 311, 312, 313, 316, 296, 296, 296, 296,
+ 311, 312, 313, 316, 455, 296, 296, 455, 43, 40,
+ 38, 455, 439, 218, 43, 40, 38, 296, 296, 296,
+ 296, 296, 296, 296, 296, 311, 312, 313, 316, 296,
+ 296, 311, 312, 313, 316, 296, 296, 296, 296, 439,
+ 296, 296, 439, 296, 455, 296, 439,
+ );
+ public static $yy_lookahead = array(
+ 9, 10, 11, 12, 12, 14, 14, 16, 16, 18,
+ 19, 20, 9, 34, 102, 12, 25, 13, 70, 16,
+ 29, 30, 31, 35, 33, 21, 35, 23, 95, 38,
+ 26, 52, 41, 42, 43, 44, 32, 46, 34, 48,
+ 36, 50, 51, 52, 53, 53, 98, 99, 44, 58,
+ 59, 9, 10, 11, 12, 22, 14, 13, 16, 15,
+ 18, 19, 20, 85, 86, 87, 15, 25, 17, 21,
+ 26, 29, 30, 31, 44, 33, 32, 35, 45, 35,
+ 38, 51, 34, 41, 42, 43, 44, 35, 46, 77,
+ 48, 47, 50, 51, 14, 53, 16, 13, 47, 47,
+ 58, 59, 9, 10, 11, 12, 22, 14, 35, 16,
+ 26, 18, 19, 20, 102, 103, 32, 44, 25, 34,
+ 47, 36, 29, 30, 31, 52, 33, 14, 35, 45,
+ 50, 38, 26, 53, 41, 42, 43, 44, 32, 46,
+ 66, 48, 68, 50, 51, 77, 53, 15, 35, 7,
+ 8, 58, 59, 9, 10, 11, 12, 12, 14, 14,
+ 16, 16, 18, 19, 20, 9, 53, 1, 12, 25,
+ 102, 82, 16, 29, 30, 31, 44, 33, 33, 35,
+ 106, 107, 38, 51, 44, 41, 42, 43, 44, 35,
+ 46, 51, 48, 82, 50, 51, 22, 53, 53, 13,
+ 73, 47, 58, 59, 9, 10, 11, 12, 22, 14,
+ 83, 16, 26, 18, 19, 20, 28, 12, 32, 45,
+ 25, 22, 70, 35, 29, 30, 31, 65, 33, 102,
+ 35, 45, 73, 38, 60, 47, 41, 42, 43, 44,
+ 35, 46, 83, 48, 45, 50, 51, 95, 53, 71,
+ 95, 52, 74, 58, 59, 9, 10, 11, 12, 81,
+ 14, 102, 16, 73, 18, 19, 20, 34, 90, 36,
+ 1, 25, 94, 83, 81, 29, 30, 31, 66, 33,
+ 68, 35, 13, 96, 38, 98, 99, 41, 42, 43,
+ 44, 15, 46, 100, 48, 26, 50, 51, 14, 53,
+ 71, 32, 17, 74, 58, 59, 9, 10, 11, 12,
+ 81, 14, 34, 16, 36, 18, 19, 20, 82, 107,
+ 44, 35, 25, 94, 71, 95, 29, 30, 31, 44,
+ 33, 78, 35, 47, 81, 38, 51, 53, 41, 42,
+ 43, 44, 15, 46, 71, 48, 16, 50, 51, 22,
+ 53, 78, 79, 1, 81, 58, 59, 9, 10, 11,
+ 12, 15, 14, 17, 16, 1, 18, 19, 20, 66,
+ 34, 68, 36, 25, 16, 71, 44, 29, 30, 31,
+ 28, 33, 78, 35, 52, 81, 38, 62, 63, 41,
+ 42, 43, 44, 47, 46, 6, 48, 8, 50, 51,
+ 16, 53, 73, 1, 2, 40, 58, 59, 9, 10,
+ 11, 12, 83, 14, 77, 16, 52, 18, 19, 20,
+ 98, 99, 52, 95, 25, 97, 97, 92, 29, 30,
+ 31, 77, 33, 49, 35, 100, 14, 38, 16, 102,
+ 41, 42, 43, 44, 73, 46, 14, 48, 14, 50,
+ 51, 36, 53, 73, 83, 1, 102, 58, 59, 9,
+ 10, 11, 12, 83, 14, 17, 16, 50, 18, 19,
+ 20, 17, 71, 64, 65, 25, 73, 97, 15, 29,
+ 30, 31, 81, 33, 26, 35, 83, 53, 38, 73,
+ 32, 41, 42, 43, 44, 47, 46, 92, 48, 83,
+ 50, 51, 95, 53, 97, 100, 98, 99, 58, 59,
+ 9, 10, 11, 12, 23, 14, 52, 16, 16, 18,
+ 19, 20, 16, 7, 50, 16, 25, 13, 13, 16,
+ 29, 30, 31, 16, 33, 16, 35, 33, 33, 38,
+ 44, 16, 41, 42, 43, 44, 35, 46, 16, 48,
+ 95, 50, 51, 96, 53, 37, 38, 39, 81, 58,
+ 59, 66, 67, 68, 69, 83, 71, 72, 95, 74,
+ 75, 76, 54, 55, 56, 57, 81, 97, 60, 84,
+ 95, 13, 17, 80, 89, 90, 91, 1, 93, 94,
+ 2, 81, 103, 66, 67, 68, 69, 99, 71, 72,
+ 108, 74, 75, 76, 81, 37, 38, 39, 81, 108,
+ 108, 84, 108, 108, 108, 95, 89, 90, 91, 108,
+ 93, 94, 54, 55, 56, 57, 66, 108, 68, 108,
+ 108, 71, 108, 108, 74, 75, 76, 108, 108, 21,
+ 108, 81, 108, 108, 84, 9, 108, 108, 12, 89,
+ 90, 91, 16, 93, 94, 37, 38, 39, 108, 108,
+ 108, 66, 26, 68, 104, 105, 71, 108, 32, 74,
+ 75, 76, 54, 55, 56, 57, 81, 1, 108, 84,
+ 73, 108, 108, 108, 89, 90, 91, 108, 93, 94,
+ 83, 2, 85, 86, 87, 108, 108, 108, 108, 104,
+ 105, 108, 26, 3, 4, 5, 6, 108, 32, 9,
+ 10, 11, 12, 108, 108, 14, 108, 16, 18, 19,
+ 20, 108, 108, 108, 35, 25, 37, 38, 39, 29,
+ 30, 31, 66, 108, 68, 69, 47, 71, 72, 108,
+ 74, 75, 76, 54, 55, 56, 57, 81, 108, 48,
+ 84, 50, 108, 108, 53, 89, 90, 91, 108, 93,
+ 94, 3, 108, 108, 108, 108, 108, 9, 10, 11,
+ 12, 108, 14, 108, 108, 108, 18, 19, 20, 108,
+ 108, 13, 108, 25, 27, 108, 108, 29, 30, 31,
+ 108, 108, 108, 3, 37, 38, 39, 108, 108, 9,
+ 10, 11, 12, 108, 14, 37, 38, 39, 18, 19,
+ 20, 54, 55, 56, 57, 25, 108, 59, 60, 29,
+ 30, 31, 54, 55, 56, 57, 108, 108, 66, 108,
+ 68, 108, 1, 71, 108, 108, 74, 75, 76, 108,
+ 108, 108, 108, 81, 13, 108, 84, 108, 108, 59,
+ 60, 89, 90, 91, 108, 93, 94, 26, 108, 108,
+ 66, 108, 68, 32, 108, 71, 108, 105, 74, 75,
+ 76, 66, 78, 68, 108, 81, 71, 108, 84, 74,
+ 75, 76, 108, 89, 90, 91, 81, 93, 94, 84,
+ 9, 108, 108, 12, 89, 90, 91, 16, 93, 94,
+ 66, 108, 68, 108, 108, 71, 101, 108, 74, 75,
+ 76, 108, 108, 108, 108, 81, 108, 108, 84, 9,
+ 108, 108, 12, 89, 90, 91, 16, 93, 94, 66,
+ 49, 68, 108, 108, 71, 101, 108, 74, 75, 76,
+ 66, 78, 68, 108, 81, 71, 108, 84, 74, 75,
+ 76, 108, 89, 90, 91, 81, 93, 94, 84, 49,
+ 108, 108, 108, 89, 90, 91, 108, 93, 94, 66,
+ 108, 68, 73, 108, 71, 101, 77, 74, 75, 76,
+ 108, 108, 83, 108, 81, 108, 108, 84, 9, 108,
+ 108, 12, 89, 90, 91, 16, 93, 94, 66, 108,
+ 68, 102, 108, 71, 108, 108, 74, 75, 76, 66,
+ 108, 68, 108, 81, 71, 108, 84, 74, 75, 76,
+ 108, 89, 90, 91, 81, 93, 94, 84, 49, 1,
+ 108, 108, 89, 90, 91, 108, 93, 94, 66, 108,
+ 68, 13, 108, 71, 108, 108, 74, 75, 76, 108,
+ 108, 108, 108, 81, 26, 108, 84, 108, 108, 108,
+ 32, 89, 90, 91, 108, 93, 94, 66, 108, 68,
+ 108, 108, 71, 108, 108, 74, 75, 76, 66, 108,
+ 68, 108, 81, 71, 108, 84, 74, 75, 76, 108,
+ 89, 90, 91, 81, 93, 94, 84, 108, 108, 108,
+ 73, 89, 90, 91, 77, 93, 94, 66, 108, 68,
+ 83, 108, 71, 108, 108, 74, 75, 76, 108, 108,
+ 108, 108, 81, 108, 108, 84, 108, 108, 108, 102,
+ 89, 90, 91, 108, 93, 94, 66, 108, 68, 108,
+ 108, 71, 108, 108, 74, 75, 76, 66, 108, 68,
+ 108, 81, 71, 108, 84, 74, 75, 76, 108, 89,
+ 90, 91, 81, 93, 94, 84, 108, 108, 108, 108,
+ 89, 90, 91, 108, 93, 94, 66, 108, 68, 108,
+ 108, 71, 108, 108, 74, 75, 76, 108, 108, 108,
+ 108, 81, 108, 108, 84, 108, 108, 108, 108, 89,
+ 90, 91, 108, 93, 94, 66, 108, 68, 108, 108,
+ 71, 108, 108, 74, 75, 76, 66, 108, 68, 108,
+ 81, 71, 108, 84, 74, 75, 76, 108, 89, 90,
+ 91, 81, 93, 94, 84, 108, 108, 108, 108, 89,
+ 90, 91, 108, 93, 94, 66, 108, 68, 108, 108,
+ 71, 108, 108, 74, 75, 76, 108, 108, 108, 108,
+ 81, 108, 108, 84, 108, 108, 108, 108, 89, 90,
+ 91, 108, 93, 94, 66, 108, 68, 108, 108, 71,
+ 108, 108, 74, 75, 76, 66, 108, 68, 108, 81,
+ 71, 108, 84, 74, 75, 76, 108, 89, 90, 91,
+ 81, 93, 94, 84, 108, 108, 108, 108, 89, 90,
+ 91, 108, 93, 94, 66, 108, 68, 108, 108, 71,
+ 108, 108, 74, 75, 76, 108, 108, 108, 108, 81,
+ 108, 108, 84, 108, 108, 108, 108, 89, 90, 91,
+ 108, 93, 94, 66, 108, 68, 108, 108, 71, 108,
+ 108, 74, 75, 76, 66, 108, 68, 108, 81, 71,
+ 108, 84, 74, 75, 76, 108, 89, 90, 91, 81,
+ 93, 94, 84, 108, 108, 108, 108, 89, 90, 91,
+ 108, 93, 94, 66, 108, 68, 108, 108, 71, 108,
+ 108, 74, 75, 76, 108, 108, 108, 108, 81, 108,
+ 108, 84, 108, 108, 108, 108, 89, 90, 91, 108,
+ 93, 94, 66, 108, 68, 108, 108, 71, 108, 108,
+ 74, 75, 76, 66, 108, 68, 108, 81, 71, 108,
+ 84, 74, 75, 76, 108, 89, 90, 91, 81, 93,
+ 94, 84, 108, 108, 108, 108, 89, 90, 91, 108,
+ 93, 94, 66, 108, 68, 108, 108, 71, 108, 108,
+ 74, 75, 76, 108, 108, 108, 108, 81, 108, 108,
+ 84, 108, 108, 108, 108, 89, 90, 91, 108, 93,
+ 94, 66, 108, 68, 108, 108, 71, 108, 108, 74,
+ 75, 76, 66, 108, 68, 108, 81, 71, 108, 84,
+ 74, 75, 76, 108, 89, 90, 91, 81, 93, 94,
+ 84, 108, 108, 108, 108, 89, 90, 91, 108, 93,
+ 94, 66, 1, 68, 108, 108, 71, 108, 108, 74,
+ 75, 76, 108, 108, 13, 108, 81, 108, 17, 84,
+ 108, 108, 108, 108, 89, 90, 91, 26, 93, 94,
+ 66, 108, 68, 32, 108, 71, 35, 108, 74, 75,
+ 108, 66, 108, 68, 108, 81, 71, 108, 47, 74,
+ 75, 108, 88, 89, 90, 91, 81, 93, 94, 108,
+ 108, 108, 108, 88, 89, 90, 91, 108, 93, 94,
+ 66, 108, 68, 9, 108, 71, 12, 108, 74, 75,
+ 16, 108, 108, 108, 108, 81, 108, 108, 108, 108,
+ 26, 108, 28, 89, 90, 91, 32, 93, 94, 66,
+ 108, 68, 108, 108, 71, 108, 108, 74, 75, 108,
+ 66, 108, 68, 108, 81, 71, 108, 108, 74, 75,
+ 108, 108, 89, 90, 91, 81, 93, 94, 108, 108,
+ 108, 108, 108, 89, 90, 91, 108, 93, 94, 66,
+ 108, 68, 108, 73, 71, 108, 108, 74, 75, 108,
+ 108, 108, 108, 83, 81, 85, 86, 87, 108, 108,
+ 108, 108, 89, 90, 91, 108, 93, 94, 66, 108,
+ 68, 108, 108, 71, 108, 108, 74, 75, 108, 66,
+ 108, 68, 108, 81, 71, 108, 108, 74, 75, 108,
+ 108, 89, 90, 91, 81, 93, 94, 108, 108, 108,
+ 108, 108, 89, 90, 91, 2, 93, 94, 66, 108,
+ 68, 108, 9, 71, 108, 12, 74, 75, 15, 16,
+ 17, 108, 108, 81, 108, 108, 108, 108, 108, 108,
+ 108, 89, 90, 91, 2, 93, 94, 108, 108, 108,
+ 108, 9, 108, 108, 12, 108, 108, 44, 16, 17,
+ 47, 2, 49, 108, 51, 108, 108, 73, 9, 108,
+ 108, 12, 108, 108, 15, 16, 17, 83, 108, 85,
+ 86, 87, 24, 108, 26, 108, 44, 108, 108, 47,
+ 32, 49, 108, 51, 52, 37, 38, 39, 108, 108,
+ 108, 108, 108, 44, 108, 108, 47, 108, 49, 108,
+ 51, 26, 54, 55, 56, 57, 108, 32, 2, 108,
+ 108, 108, 37, 38, 39, 9, 108, 108, 12, 108,
+ 108, 108, 16, 17, 108, 108, 2, 108, 108, 54,
+ 55, 56, 57, 9, 108, 108, 12, 108, 108, 108,
+ 16, 17, 108, 108, 108, 37, 38, 39, 108, 108,
+ 44, 108, 108, 47, 13, 49, 108, 51, 108, 13,
+ 52, 108, 54, 55, 56, 57, 108, 13, 44, 108,
+ 2, 47, 108, 49, 108, 51, 108, 108, 37, 38,
+ 39, 108, 108, 37, 38, 39, 108, 108, 108, 108,
+ 108, 37, 38, 39, 108, 54, 55, 56, 57, 108,
+ 54, 55, 56, 57, 108, 37, 38, 39, 54, 55,
+ 56, 57, 36, 37, 38, 39, 108, 108, 108, 108,
+ 108, 108, 54, 55, 56, 57, 108, 108, 108, 108,
+ 54, 55, 56, 57, 9, 108, 108, 12, 37, 38,
+ 39, 16, 17, 36, 37, 38, 39, 108, 108, 108,
+ 108, 108, 108, 108, 108, 54, 55, 56, 57, 108,
+ 108, 54, 55, 56, 57, 108, 108, 108, 108, 44,
+ 108, 108, 47, 108, 49, 108, 51,
+);
+ const YY_SHIFT_USE_DFLT = -22;
+ const YY_SHIFT_MAX = 230;
+ public static $yy_shift_ofst = array(
+ -22, 501, 501, 93, 399, 399, 450, 93, 93, 93,
+ 399, 450, -9, 93, 93, 93, 93, 93, 93, 144,
+ 93, 195, 93, 93, 93, 246, 195, 93, 93, 93,
+ 93, 93, 297, 93, 93, 93, 93, 348, 42, 42,
+ 42, 42, 42, 42, 42, 42, 1768, 1795, 1795, 701,
+ 758, 1521, 80, 676, 113, 790, 1927, 1828, 1896, 568,
+ 768, 1861, 757, 1866, 1874, 1888, 618, 518, 1921, 1921,
+ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
+ 1921, 1921, 1921, 1584, 636, 285, 676, 676, 346, 113,
+ 113, 402, 700, 1723, -8, 910, 831, 269, 1028, 51,
+ 3, 3, 422, 448, 352, 106, 422, 106, 458, 364,
+ 434, 454, 106, 166, 166, 166, 166, 565, 166, 166,
+ 166, 586, 565, 166, 166, -22, -22, 1752, 1769, 1826,
+ 1844, 1945, 145, 979, 156, 132, 284, 106, 140, 106,
+ 30, 140, 140, 30, 106, 106, 106, 140, 106, 106,
+ 140, 106, 327, 106, 106, 106, 140, 140, 106, 140,
+ 205, 106, 284, 166, 565, 588, 565, 588, 565, 166,
+ 166, -12, 166, -22, -22, -22, -22, -22, -22, 689,
+ 4, 44, 84, 186, 73, 881, 199, 188, 174, 286,
+ 48, 336, 384, 389, 332, 142, -21, 52, 154, 33,
+ 85, 276, 278, 233, 515, 509, 474, 516, 502, 464,
+ 491, 415, 417, 432, 514, 370, 463, 506, 365, 513,
+ -12, 517, 504, 519, 505, 511, 496, 525, 532, 330,
+ 358,
+);
+ const YY_REDUCE_USE_DFLT = -89;
+ const YY_REDUCE_MAX = 178;
+ public static $yy_reduce_ofst = array(
+ 325, 527, 495, 666, 595, 560, 863, 874, 834, 805,
+ 762, 794, 1179, 1455, 1208, 1012, 1386, 1139, 1070, 1110,
+ 1150, 1219, 1248, 1277, 1288, 1317, 1346, 1357, 1415, 1426,
+ 1081, 1041, 1001, 972, 943, 932, 903, 1484, 1495, 1622,
+ 1633, 1662, 1593, 1564, 1553, 1524, 1704, 607, 1590, 178,
+ 74, 1027, 229, 899, 273, 212, -22, -22, -22, -22,
+ -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
+ -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
+ -22, -22, -22, 380, 329, 187, 159, 127, -52, 253,
+ 304, 12, 303, 152, 193, 328, 68, 68, 68, 322,
+ 328, 407, 405, 322, 68, 190, 335, 416, 403, 68,
+ 401, 354, 371, 68, 68, 68, 337, 322, 68, 68,
+ 68, 68, 408, 68, 68, 68, 409, 455, 455, 455,
+ 455, 455, 510, 480, 455, 455, 477, 482, 457, 482,
+ 473, 457, 457, 485, 482, 482, 482, 457, 482, 482,
+ 457, 482, 503, 482, 482, 482, 457, 457, 482, 457,
+ 520, 482, 523, -88, 498, 489, 498, 489, 498, -88,
+ -88, -67, -88, 111, 155, 89, 236, 230, 162,
+);
+ public static $yyExpectedTokens = array(
+ array(),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(9, 10, 11, 12, 14, 16, 18, 19, 20, 25, 29, 30, 31, 33, 35, 38, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58, 59, ),
+ array(24, 26, 32, 37, 38, 39, 54, 55, 56, 57, ),
+ array(26, 32, 37, 38, 39, 54, 55, 56, 57, ),
+ array(26, 32, 37, 38, 39, 54, 55, 56, 57, ),
+ array(14, 16, 48, 50, 53, ),
+ array(3, 9, 10, 11, 12, 14, 18, 19, 20, 25, 29, 30, 31, 59, 60, ),
+ array(1, 13, 17, 26, 32, 35, 47, ),
+ array(14, 16, 50, 53, ),
+ array(1, 26, 32, ),
+ array(14, 35, 53, ),
+ array(3, 9, 10, 11, 12, 14, 18, 19, 20, 25, 29, 30, 31, 59, 60, ),
+ array(36, 37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 52, 54, 55, 56, 57, ),
+ array(36, 37, 38, 39, 54, 55, 56, 57, ),
+ array(13, 37, 38, 39, 54, 55, 56, 57, ),
+ array(13, 37, 38, 39, 54, 55, 56, 57, ),
+ array(13, 37, 38, 39, 54, 55, 56, 57, ),
+ array(27, 37, 38, 39, 54, 55, 56, 57, ),
+ array(13, 37, 38, 39, 54, 55, 56, 57, ),
+ array(13, 37, 38, 39, 54, 55, 56, 57, ),
+ array(2, 37, 38, 39, 54, 55, 56, 57, ),
+ array(21, 37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, 60, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(37, 38, 39, 54, 55, 56, 57, ),
+ array(9, 12, 16, 26, 28, 32, ),
+ array(9, 12, 16, 26, 32, ),
+ array(17, 44, 51, ),
+ array(1, 26, 32, ),
+ array(1, 26, 32, ),
+ array(15, 17, 47, ),
+ array(14, 35, 53, ),
+ array(14, 35, 53, ),
+ array(1, 2, ),
+ array(3, 4, 5, 6, 9, 10, 11, 12, 18, 19, 20, 25, 29, 30, 31, ),
+ array(2, 9, 12, 15, 16, 17, 44, 47, 49, 51, ),
+ array(12, 14, 16, 53, ),
+ array(9, 12, 16, 49, ),
+ array(1, 13, 26, 32, ),
+ array(1, 13, 26, 32, ),
+ array(1, 13, 26, 32, ),
+ array(15, 17, 47, ),
+ array(9, 12, 16, ),
+ array(9, 12, 16, ),
+ array(14, 16, ),
+ array(17, 47, ),
+ array(1, 28, ),
+ array(26, 32, ),
+ array(14, 16, ),
+ array(26, 32, ),
+ array(26, 32, ),
+ array(1, 52, ),
+ array(14, 53, ),
+ array(1, 17, ),
+ array(26, 32, ),
+ array(1, ),
+ array(1, ),
+ array(1, ),
+ array(1, ),
+ array(17, ),
+ array(1, ),
+ array(1, ),
+ array(1, ),
+ array(1, ),
+ array(17, ),
+ array(1, ),
+ array(1, ),
+ array(),
+ array(),
+ array(2, 9, 12, 16, 17, 44, 47, 49, 51, 52, ),
+ array(2, 9, 12, 15, 16, 17, 44, 47, 49, 51, ),
+ array(2, 9, 12, 16, 17, 44, 47, 49, 51, ),
+ array(2, 9, 12, 16, 17, 44, 47, 49, 51, ),
+ array(9, 12, 16, 17, 44, 47, 49, 51, ),
+ array(12, 14, 16, 33, 53, ),
+ array(9, 12, 16, 49, ),
+ array(9, 12, 16, ),
+ array(15, 44, 51, ),
+ array(14, 53, ),
+ array(26, 32, ),
+ array(44, 51, ),
+ array(26, 32, ),
+ array(44, 51, ),
+ array(44, 51, ),
+ array(44, 51, ),
+ array(44, 51, ),
+ array(26, 32, ),
+ array(26, 32, ),
+ array(26, 32, ),
+ array(44, 51, ),
+ array(26, 32, ),
+ array(26, 32, ),
+ array(44, 51, ),
+ array(26, 32, ),
+ array(15, 22, ),
+ array(26, 32, ),
+ array(26, 32, ),
+ array(26, 32, ),
+ array(44, 51, ),
+ array(44, 51, ),
+ array(26, 32, ),
+ array(44, 51, ),
+ array(12, 35, ),
+ array(26, 32, ),
+ array(14, 53, ),
+ array(1, ),
+ array(17, ),
+ array(2, ),
+ array(17, ),
+ array(2, ),
+ array(17, ),
+ array(1, ),
+ array(1, ),
+ array(35, ),
+ array(1, ),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(2, 35, 37, 38, 39, 47, 54, 55, 56, 57, ),
+ array(13, 21, 23, 26, 32, 34, 36, 44, ),
+ array(13, 15, 26, 32, 35, 47, ),
+ array(13, 22, 26, 32, 45, ),
+ array(13, 22, 26, 32, 45, ),
+ array(35, 44, 47, 52, ),
+ array(9, 12, 16, 49, ),
+ array(22, 45, 52, ),
+ array(28, 35, 47, ),
+ array(22, 45, 60, ),
+ array(35, 47, ),
+ array(21, 34, ),
+ array(34, 36, ),
+ array(16, 49, ),
+ array(6, 8, ),
+ array(44, 52, ),
+ array(7, 8, ),
+ array(34, 52, ),
+ array(35, 47, ),
+ array(35, 47, ),
+ array(22, 45, ),
+ array(34, 36, ),
+ array(15, 44, ),
+ array(34, 36, ),
+ array(34, 36, ),
+ array(13, ),
+ array(16, ),
+ array(50, ),
+ array(7, ),
+ array(16, ),
+ array(52, ),
+ array(23, ),
+ array(36, ),
+ array(50, ),
+ array(14, ),
+ array(13, ),
+ array(52, ),
+ array(15, ),
+ array(16, ),
+ array(40, ),
+ array(16, ),
+ array(35, ),
+ array(16, ),
+ array(33, ),
+ array(16, ),
+ array(33, ),
+ array(35, ),
+ array(44, ),
+ array(16, ),
+ array(16, ),
+ array(16, ),
+ array(16, ),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+ array(),
+);
+ public static $yy_default = array(
+ 336, 512, 512, 512, 497, 497, 512, 474, 474, 474,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 377, 377, 356, 512,
+ 512, 413, 512, 377, 512, 512, 512, 512, 512, 512,
+ 512, 512, 382, 512, 349, 512, 512, 512, 382, 379,
+ 389, 388, 384, 402, 473, 397, 498, 500, 401, 361,
+ 472, 499, 349, 377, 377, 487, 377, 377, 429, 512,
+ 512, 368, 326, 428, 512, 439, 391, 391, 391, 429,
+ 439, 439, 512, 429, 391, 377, 512, 377, 377, 391,
+ 512, 371, 358, 395, 394, 396, 373, 429, 400, 404,
+ 391, 404, 484, 406, 405, 481, 334, 428, 428, 428,
+ 428, 428, 512, 441, 439, 455, 512, 363, 435, 354,
+ 434, 437, 433, 432, 359, 357, 364, 436, 353, 367,
+ 466, 365, 512, 352, 350, 360, 467, 465, 346, 464,
+ 439, 366, 512, 369, 461, 475, 488, 476, 485, 372,
+ 422, 439, 374, 480, 439, 480, 480, 439, 334, 413,
+ 409, 413, 403, 403, 413, 440, 403, 413, 403, 413,
+ 512, 512, 512, 332, 409, 512, 512, 512, 423, 403,
+ 512, 409, 512, 512, 512, 512, 512, 512, 512, 418,
+ 385, 512, 512, 512, 512, 512, 512, 512, 415, 512,
+ 455, 512, 512, 512, 411, 486, 409, 512, 512, 512,
+ 512, 419, 407, 362, 445, 418, 425, 424, 420, 339,
+ 460, 421, 483, 398, 416, 340, 399, 455, 378, 337,
+ 338, 330, 328, 329, 442, 443, 444, 438, 392, 393,
+ 427, 426, 386, 417, 408, 390, 410, 331, 333, 335,
+ 412, 470, 414, 415, 503, 478, 495, 471, 459, 458,
+ 375, 457, 344, 462, 508, 493, 376, 496, 456, 509,
+ 494, 501, 504, 511, 510, 507, 505, 502, 506, 345,
+ 468, 469, 446, 355, 341, 452, 450, 454, 448, 453,
+ 447, 489, 490, 491, 463, 449, 492, 451, 327, 342,
+ 343, 370, 430, 431, 479, 477,
+);
+ const YYNOCODE = 109;
+ const YYSTACKDEPTH = 500;
+ const YYNSTATE = 326;
+ const YYNRULE = 186;
+ const YYERRORSYMBOL = 61;
+ const YYERRSYMDT = 'yy0';
+ const YYFALLBACK = 0;
+ public static $yyFallback = array(
+ );
public function Trace($TraceFILE, $zTracePrompt)
{
if (!$TraceFILE) {
@@ -1840,18 +1110,250 @@ class Smarty_Internal_Templateparser
$this->yyTracePrompt = '<br>';
}
+ public $yyTraceFILE;
+ public $yyTracePrompt;
+ public $yyidx; /* Index of top element in stack */
+ public $yyerrcnt; /* Shifts left before out of the error */
+ public $yystack = array(); /* The parser's stack */
+
+ public $yyTokenName = array(
+ '$', 'VERT', 'COLON', 'TEXT',
+ 'STRIPON', 'STRIPOFF', 'LITERALSTART', 'LITERALEND',
+ 'LITERAL', 'SIMPELOUTPUT', 'SIMPLETAG', 'SMARTYBLOCKCHILDPARENT',
+ 'LDEL', 'RDEL', 'DOLLARID', 'EQUAL',
+ 'ID', 'PTR', 'LDELMAKENOCACHE', 'LDELIF',
+ 'LDELFOR', 'SEMICOLON', 'INCDEC', 'TO',
+ 'STEP', 'LDELFOREACH', 'SPACE', 'AS',
+ 'APTR', 'LDELSETFILTER', 'CLOSETAG', 'LDELSLASH',
+ 'ATTR', 'INTEGER', 'COMMA', 'OPENP',
+ 'CLOSEP', 'MATH', 'UNIMATH', 'ISIN',
+ 'QMARK', 'NOT', 'TYPECAST', 'HEX',
+ 'DOT', 'INSTANCEOF', 'SINGLEQUOTESTRING', 'DOUBLECOLON',
+ 'NAMESPACE', 'AT', 'HATCH', 'OPENB',
+ 'CLOSEB', 'DOLLAR', 'LOGOP', 'SLOGOP',
+ 'TLOGOP', 'SINGLECOND', 'ARRAYOPEN', 'QUOTE',
+ 'BACKTICK', 'error', 'start', 'template',
+ 'literal_e2', 'literal_e1', 'smartytag', 'tagbody',
+ 'tag', 'outattr', 'eqoutattr', 'varindexed',
+ 'output', 'attributes', 'variable', 'value',
+ 'expr', 'modifierlist', 'statement', 'statements',
+ 'foraction', 'varvar', 'modparameters', 'attribute',
+ 'ternary', 'tlop', 'lop', 'scond',
+ 'array', 'function', 'ns1', 'doublequoted_with_quotes',
+ 'static_class_access', 'arraydef', 'object', 'arrayindex',
+ 'indexdef', 'varvarele', 'objectchain', 'objectelement',
+ 'method', 'params', 'modifier', 'modparameter',
+ 'arrayelements', 'arrayelement', 'doublequoted', 'doublequotedcontent',
+ );
+
+ public static $yyRuleName = array(
+ 'start ::= template',
+ 'template ::= template TEXT',
+ 'template ::= template STRIPON',
+ 'template ::= template STRIPOFF',
+ 'template ::= template LITERALSTART literal_e2 LITERALEND',
+ 'literal_e2 ::= literal_e1 LITERALSTART literal_e1 LITERALEND',
+ 'literal_e2 ::= literal_e1',
+ 'literal_e1 ::= literal_e1 LITERAL',
+ 'literal_e1 ::=',
+ 'template ::= template smartytag',
+ 'template ::=',
+ 'smartytag ::= SIMPELOUTPUT',
+ 'smartytag ::= SIMPLETAG',
+ 'smartytag ::= SMARTYBLOCKCHILDPARENT',
+ 'smartytag ::= LDEL tagbody RDEL',
+ 'smartytag ::= tag RDEL',
+ 'tagbody ::= outattr',
+ 'tagbody ::= DOLLARID eqoutattr',
+ 'tagbody ::= varindexed eqoutattr',
+ 'eqoutattr ::= EQUAL outattr',
+ 'outattr ::= output attributes',
+ 'output ::= variable',
+ 'output ::= value',
+ 'output ::= expr',
+ 'tag ::= LDEL ID attributes',
+ 'tag ::= LDEL ID',
+ 'tag ::= LDEL ID modifierlist attributes',
+ 'tag ::= LDEL ID PTR ID attributes',
+ 'tag ::= LDEL ID PTR ID modifierlist attributes',
+ 'tag ::= LDELMAKENOCACHE DOLLARID',
+ 'tag ::= LDELIF expr',
+ 'tag ::= LDELIF expr attributes',
+ 'tag ::= LDELIF statement',
+ 'tag ::= LDELIF statement attributes',
+ 'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes',
+ 'foraction ::= EQUAL expr',
+ 'foraction ::= INCDEC',
+ 'tag ::= LDELFOR statement TO expr attributes',
+ 'tag ::= LDELFOR statement TO expr STEP expr attributes',
+ 'tag ::= LDELFOREACH SPACE expr AS varvar attributes',
+ 'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes',
+ 'tag ::= LDELFOREACH attributes',
+ 'tag ::= LDELSETFILTER ID modparameters',
+ 'tag ::= LDELSETFILTER ID modparameters modifierlist',
+ 'smartytag ::= CLOSETAG',
+ 'tag ::= LDELSLASH ID',
+ 'tag ::= LDELSLASH ID modifierlist',
+ 'tag ::= LDELSLASH ID PTR ID',
+ 'tag ::= LDELSLASH ID PTR ID modifierlist',
+ 'attributes ::= attributes attribute',
+ 'attributes ::= attribute',
+ 'attributes ::=',
+ 'attribute ::= SPACE ID EQUAL ID',
+ 'attribute ::= ATTR expr',
+ 'attribute ::= ATTR value',
+ 'attribute ::= SPACE ID',
+ 'attribute ::= SPACE expr',
+ 'attribute ::= SPACE value',
+ 'attribute ::= SPACE INTEGER EQUAL expr',
+ 'statements ::= statement',
+ 'statements ::= statements COMMA statement',
+ 'statement ::= DOLLARID EQUAL INTEGER',
+ 'statement ::= DOLLARID EQUAL expr',
+ 'statement ::= varindexed EQUAL expr',
+ 'statement ::= OPENP statement CLOSEP',
+ 'expr ::= value',
+ 'expr ::= ternary',
+ 'expr ::= DOLLARID COLON ID',
+ 'expr ::= expr MATH value',
+ 'expr ::= expr UNIMATH value',
+ 'expr ::= expr tlop value',
+ 'expr ::= expr lop expr',
+ 'expr ::= expr scond',
+ 'expr ::= expr ISIN array',
+ 'expr ::= expr ISIN value',
+ 'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr',
+ 'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr',
+ 'value ::= variable',
+ 'value ::= UNIMATH value',
+ 'value ::= NOT value',
+ 'value ::= TYPECAST value',
+ 'value ::= variable INCDEC',
+ 'value ::= HEX',
+ 'value ::= INTEGER',
+ 'value ::= INTEGER DOT INTEGER',
+ 'value ::= INTEGER DOT',
+ 'value ::= DOT INTEGER',
+ 'value ::= ID',
+ 'value ::= function',
+ 'value ::= OPENP expr CLOSEP',
+ 'value ::= variable INSTANCEOF ns1',
+ 'value ::= variable INSTANCEOF variable',
+ 'value ::= SINGLEQUOTESTRING',
+ 'value ::= doublequoted_with_quotes',
+ 'value ::= varindexed DOUBLECOLON static_class_access',
+ 'value ::= smartytag',
+ 'value ::= value modifierlist',
+ 'value ::= NAMESPACE',
+ 'value ::= arraydef',
+ 'value ::= ns1 DOUBLECOLON static_class_access',
+ 'ns1 ::= ID',
+ 'ns1 ::= NAMESPACE',
+ 'variable ::= DOLLARID',
+ 'variable ::= varindexed',
+ 'variable ::= varvar AT ID',
+ 'variable ::= object',
+ 'variable ::= HATCH ID HATCH',
+ 'variable ::= HATCH ID HATCH arrayindex',
+ 'variable ::= HATCH variable HATCH',
+ 'variable ::= HATCH variable HATCH arrayindex',
+ 'varindexed ::= DOLLARID arrayindex',
+ 'varindexed ::= varvar arrayindex',
+ 'arrayindex ::= arrayindex indexdef',
+ 'arrayindex ::=',
+ 'indexdef ::= DOT DOLLARID',
+ 'indexdef ::= DOT varvar',
+ 'indexdef ::= DOT varvar AT ID',
+ 'indexdef ::= DOT ID',
+ 'indexdef ::= DOT INTEGER',
+ 'indexdef ::= DOT LDEL expr RDEL',
+ 'indexdef ::= OPENB ID CLOSEB',
+ 'indexdef ::= OPENB ID DOT ID CLOSEB',
+ 'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB',
+ 'indexdef ::= OPENB INTEGER CLOSEB',
+ 'indexdef ::= OPENB DOLLARID CLOSEB',
+ 'indexdef ::= OPENB variable CLOSEB',
+ 'indexdef ::= OPENB value CLOSEB',
+ 'indexdef ::= OPENB expr CLOSEB',
+ 'indexdef ::= OPENB CLOSEB',
+ 'varvar ::= DOLLARID',
+ 'varvar ::= DOLLAR',
+ 'varvar ::= varvar varvarele',
+ 'varvarele ::= ID',
+ 'varvarele ::= SIMPELOUTPUT',
+ 'varvarele ::= LDEL expr RDEL',
+ 'object ::= varindexed objectchain',
+ 'objectchain ::= objectelement',
+ 'objectchain ::= objectchain objectelement',
+ 'objectelement ::= PTR ID arrayindex',
+ 'objectelement ::= PTR varvar arrayindex',
+ 'objectelement ::= PTR LDEL expr RDEL arrayindex',
+ 'objectelement ::= PTR ID LDEL expr RDEL arrayindex',
+ 'objectelement ::= PTR method',
+ 'function ::= ns1 OPENP params CLOSEP',
+ 'method ::= ID OPENP params CLOSEP',
+ 'method ::= DOLLARID OPENP params CLOSEP',
+ 'params ::= params COMMA expr',
+ 'params ::= expr',
+ 'params ::=',
+ 'modifierlist ::= modifierlist modifier modparameters',
+ 'modifierlist ::= modifier modparameters',
+ 'modifier ::= VERT AT ID',
+ 'modifier ::= VERT ID',
+ 'modparameters ::= modparameters modparameter',
+ 'modparameters ::=',
+ 'modparameter ::= COLON value',
+ 'modparameter ::= COLON UNIMATH value',
+ 'modparameter ::= COLON array',
+ 'static_class_access ::= method',
+ 'static_class_access ::= method objectchain',
+ 'static_class_access ::= ID',
+ 'static_class_access ::= DOLLARID arrayindex',
+ 'static_class_access ::= DOLLARID arrayindex objectchain',
+ 'lop ::= LOGOP',
+ 'lop ::= SLOGOP',
+ 'tlop ::= TLOGOP',
+ 'scond ::= SINGLECOND',
+ 'arraydef ::= OPENB arrayelements CLOSEB',
+ 'arraydef ::= ARRAYOPEN arrayelements CLOSEP',
+ 'arrayelements ::= arrayelement',
+ 'arrayelements ::= arrayelements COMMA arrayelement',
+ 'arrayelements ::=',
+ 'arrayelement ::= value APTR expr',
+ 'arrayelement ::= ID APTR expr',
+ 'arrayelement ::= expr',
+ 'doublequoted_with_quotes ::= QUOTE QUOTE',
+ 'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE',
+ 'doublequoted ::= doublequoted doublequotedcontent',
+ 'doublequoted ::= doublequotedcontent',
+ 'doublequotedcontent ::= BACKTICK variable BACKTICK',
+ 'doublequotedcontent ::= BACKTICK expr BACKTICK',
+ 'doublequotedcontent ::= DOLLARID',
+ 'doublequotedcontent ::= LDEL variable RDEL',
+ 'doublequotedcontent ::= LDEL expr RDEL',
+ 'doublequotedcontent ::= smartytag',
+ 'doublequotedcontent ::= TEXT',
+ );
+
public function tokenName($tokenType)
{
if ($tokenType === 0) {
return 'End of Input';
}
if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
- return $this->yyTokenName[ $tokenType ];
+ return $this->yyTokenName[$tokenType];
} else {
return 'Unknown';
}
}
+ public static function yy_destructor($yymajor, $yypminor)
+ {
+ switch ($yymajor) {
+ default: break; /* If no destructor action specified: do nothing */
+ }
+ }
+
public function yy_pop_parser_stack()
{
if (empty($this->yystack)) {
@@ -1860,18 +1362,19 @@ class Smarty_Internal_Templateparser
$yytos = array_pop($this->yystack);
if ($this->yyTraceFILE && $this->yyidx >= 0) {
fwrite($this->yyTraceFILE,
- $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[ $yytos->major ] .
- "\n");
+ $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
+ "\n");
}
$yymajor = $yytos->major;
self::yy_destructor($yymajor, $yytos->minor);
$this->yyidx--;
+
return $yymajor;
}
public function __destruct()
{
- while ($this->yystack !== array()) {
+ while ($this->yystack !== Array()) {
$this->yy_pop_parser_stack();
}
if (is_resource($this->yyTraceFILE)) {
@@ -1883,14 +1386,14 @@ class Smarty_Internal_Templateparser
{
static $res3 = array();
static $res4 = array();
- $state = $this->yystack[ $this->yyidx ]->stateno;
- $expected = self::$yyExpectedTokens[ $state ];
- if (isset($res3[ $state ][ $token ])) {
- if ($res3[ $state ][ $token ]) {
+ $state = $this->yystack[$this->yyidx]->stateno;
+ $expected = self::$yyExpectedTokens[$state];
+ if (isset($res3[$state][$token])) {
+ if ($res3[$state][$token]) {
return $expected;
}
} else {
- if ($res3[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) {
+ if ($res3[$state][$token] = in_array($token, self::$yyExpectedTokens[$state], true)) {
return $expected;
}
}
@@ -1910,21 +1413,20 @@ class Smarty_Internal_Templateparser
return array_unique($expected);
}
$yyruleno = $yyact - self::YYNSTATE;
- $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][ 1 ];
+ $this->yyidx -= self::$yyRuleInfo[$yyruleno][1];
$nextstate = $this->yy_find_reduce_action(
- $this->yystack[ $this->yyidx ]->stateno,
- self::$yyRuleInfo[ $yyruleno ][ 0 ]);
- if (isset(self::$yyExpectedTokens[ $nextstate ])) {
- $expected = array_merge($expected, self::$yyExpectedTokens[ $nextstate ]);
- if (isset($res4[ $nextstate ][ $token ])) {
- if ($res4[ $nextstate ][ $token ]) {
+ $this->yystack[$this->yyidx]->stateno,
+ self::$yyRuleInfo[$yyruleno][0]);
+ if (isset(self::$yyExpectedTokens[$nextstate])) {
+ $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
+ if (isset($res4[$nextstate][$token])) {
+ if ($res4[$nextstate][$token]) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
return array_unique($expected);
}
} else {
- if ($res4[ $nextstate ][ $token ] =
- in_array($token, self::$yyExpectedTokens[ $nextstate ], true)) {
+ if ($res4[$nextstate][$token] = in_array($token, self::$yyExpectedTokens[$nextstate], true)) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
return array_unique($expected);
@@ -1936,8 +1438,8 @@ class Smarty_Internal_Templateparser
$this->yyidx++;
$x = new TP_yyStackEntry;
$x->stateno = $nextstate;
- $x->major = self::$yyRuleInfo[ $yyruleno ][ 0 ];
- $this->yystack[ $this->yyidx ] = $x;
+ $x->major = self::$yyRuleInfo[$yyruleno][0];
+ $this->yystack[$this->yyidx] = $x;
continue 2;
} elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) {
$this->yyidx = $yyidx;
@@ -1958,8 +1460,9 @@ class Smarty_Internal_Templateparser
}
break;
} while (true);
- $this->yyidx = $yyidx;
- $this->yystack = $stack;
+ $this->yyidx = $yyidx;
+ $this->yystack = $stack;
+
return array_unique($expected);
}
@@ -1970,16 +1473,16 @@ class Smarty_Internal_Templateparser
if ($token === 0) {
return true; // 0 is not part of this
}
- $state = $this->yystack[ $this->yyidx ]->stateno;
- if (isset($res[ $state ][ $token ])) {
- if ($res[ $state ][ $token ]) {
+ $state = $this->yystack[$this->yyidx]->stateno;
+ if (isset($res[$state][$token])) {
+ if ($res[$state][$token]) {
return true;
}
} else {
- if ($res[ $state ][ $token ] = in_array($token, self::$yyExpectedTokens[ $state ], true)) {
+ if ($res[$state][$token] = in_array($token, self::$yyExpectedTokens[$state], true)) {
return true;
}
- }
+ }
$stack = $this->yystack;
$yyidx = $this->yyidx;
do {
@@ -1996,20 +1499,18 @@ class Smarty_Internal_Templateparser
return true;
}
$yyruleno = $yyact - self::YYNSTATE;
- $this->yyidx -= self::$yyRuleInfo[ $yyruleno ][ 1 ];
+ $this->yyidx -= self::$yyRuleInfo[$yyruleno][1];
$nextstate = $this->yy_find_reduce_action(
- $this->yystack[ $this->yyidx ]->stateno,
- self::$yyRuleInfo[ $yyruleno ][ 0 ]);
- if (isset($res2[ $nextstate ][ $token ])) {
- if ($res2[ $nextstate ][ $token ]) {
+ $this->yystack[$this->yyidx]->stateno,
+ self::$yyRuleInfo[$yyruleno][0]);
+ if (isset($res2[$nextstate][$token])) {
+ if ($res2[$nextstate][$token]) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
return true;
}
} else {
- if ($res2[ $nextstate ][ $token ] =
- (isset(self::$yyExpectedTokens[ $nextstate ]) &&
- in_array($token, self::$yyExpectedTokens[ $nextstate ], true))) {
+ if ($res2[$nextstate][$token] = (isset(self::$yyExpectedTokens[$nextstate]) && in_array($token, self::$yyExpectedTokens[$nextstate], true))) {
$this->yyidx = $yyidx;
$this->yystack = $stack;
return true;
@@ -2020,8 +1521,8 @@ class Smarty_Internal_Templateparser
$this->yyidx++;
$x = new TP_yyStackEntry;
$x->stateno = $nextstate;
- $x->major = self::$yyRuleInfo[ $yyruleno ][ 0 ];
- $this->yystack[ $this->yyidx ] = $x;
+ $x->major = self::$yyRuleInfo[$yyruleno][0];
+ $this->yystack[$this->yyidx] = $x;
continue 2;
} elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) {
$this->yyidx = $yyidx;
@@ -2048,65 +1549,69 @@ class Smarty_Internal_Templateparser
} while (true);
$this->yyidx = $yyidx;
$this->yystack = $stack;
+
return true;
}
- public function yy_find_shift_action($iLookAhead)
+ public function yy_find_shift_action($iLookAhead)
{
- $stateno = $this->yystack[ $this->yyidx ]->stateno;
+ $stateno = $this->yystack[$this->yyidx]->stateno;
+
/* if ($this->yyidx < 0) return self::YY_NO_ACTION; */
- if (!isset(self::$yy_shift_ofst[ $stateno ])) {
+ if (!isset(self::$yy_shift_ofst[$stateno])) {
// no shift actions
- return self::$yy_default[ $stateno ];
+ return self::$yy_default[$stateno];
}
- $i = self::$yy_shift_ofst[ $stateno ];
+ $i = self::$yy_shift_ofst[$stateno];
if ($i === self::YY_SHIFT_USE_DFLT) {
- return self::$yy_default[ $stateno ];
+ return self::$yy_default[$stateno];
}
if ($iLookAhead === self::YYNOCODE) {
return self::YY_NO_ACTION;
}
$i += $iLookAhead;
if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
- self::$yy_lookahead[ $i ] != $iLookAhead) {
+ self::$yy_lookahead[$i] != $iLookAhead) {
if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
- && ($iFallback = self::$yyFallback[ $iLookAhead ]) != 0) {
+ && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) {
if ($this->yyTraceFILE) {
fwrite($this->yyTraceFILE, $this->yyTracePrompt . 'FALLBACK ' .
- $this->yyTokenName[ $iLookAhead ] . ' => ' .
- $this->yyTokenName[ $iFallback ] . "\n");
+ $this->yyTokenName[$iLookAhead] . ' => ' .
+ $this->yyTokenName[$iFallback] . "\n");
}
+
return $this->yy_find_shift_action($iFallback);
}
- return self::$yy_default[ $stateno ];
+
+ return self::$yy_default[$stateno];
} else {
- return self::$yy_action[ $i ];
+ return self::$yy_action[$i];
}
}
public function yy_find_reduce_action($stateno, $iLookAhead)
{
/* $stateno = $this->yystack[$this->yyidx]->stateno; */
- if (!isset(self::$yy_reduce_ofst[ $stateno ])) {
- return self::$yy_default[ $stateno ];
+
+ if (!isset(self::$yy_reduce_ofst[$stateno])) {
+ return self::$yy_default[$stateno];
}
- $i = self::$yy_reduce_ofst[ $stateno ];
+ $i = self::$yy_reduce_ofst[$stateno];
if ($i === self::YY_REDUCE_USE_DFLT) {
- return self::$yy_default[ $stateno ];
+ return self::$yy_default[$stateno];
}
if ($iLookAhead === self::YYNOCODE) {
return self::YY_NO_ACTION;
}
$i += $iLookAhead;
if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
- self::$yy_lookahead[ $i ] != $iLookAhead) {
- return self::$yy_default[ $stateno ];
+ self::$yy_lookahead[$i] != $iLookAhead) {
+ return self::$yy_default[$stateno];
} else {
- return self::$yy_action[ $i ];
+ return self::$yy_action[$i];
}
}
- // line 234 "../smarty/lexer/smarty_internal_templateparser.y"
public function yy_shift($yyNewState, $yyMajor, $yypMinor)
{
$this->yyidx++;
@@ -2118,9 +1623,11 @@ class Smarty_Internal_Templateparser
while ($this->yyidx >= 0) {
$this->yy_pop_parser_stack();
}
- // line 221 "../smarty/lexer/smarty_internal_templateparser.y"
- $this->internalError = true;
- $this->compiler->trigger_template_error('Stack overflow in template parser');
+// line 220 "../smarty/lexer/smarty_internal_templateparser.y"
+
+ $this->internalError = true;
+ $this->compiler->trigger_template_error('Stack overflow in template parser');
+
return;
}
$yytos = new TP_yyStackEntry;
@@ -2134,1357 +1641,1150 @@ class Smarty_Internal_Templateparser
fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
for ($i = 1; $i <= $this->yyidx; $i++) {
fprintf($this->yyTraceFILE, " %s",
- $this->yyTokenName[ $this->yystack[ $i ]->major ]);
+ $this->yyTokenName[$this->yystack[$i]->major]);
}
- fwrite($this->yyTraceFILE, "\n");
+ fwrite($this->yyTraceFILE,"\n");
}
}
- // line 242 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r0()
- {
- $this->root_buffer->prepend_array($this, $this->template_prefix);
- $this->root_buffer->append_array($this, $this->template_postfix);
- $this->_retvalue = $this->root_buffer->to_smarty_php($this);
- }
-
- // line 251 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r1()
- {
- $code =
- $this->compiler->compileTag('private_php',
- array(array('code' => $this->yystack[ $this->yyidx + 0 ]->minor), array('type' => $this->lex->phpType)),
- array());
- if ($this->compiler->has_code && !empty($code)) {
- $tmp = '';
- foreach ($this->compiler->prefix_code as $code) {
- $tmp .= $code;
- }
- $this->compiler->prefix_code = array();
- $this->current_buffer->append_subtree($this,
- new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp . $code, true)));
- }
- }
-
- // line 255 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r2()
- {
- $text = $this->yystack[ $this->yyidx + 0 ]->minor;
-
- if ((string)$text == '') {
- $this->current_buffer->append_subtree($this, null);
- }
-
- $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Text($text, $this->strip));
- }
+ public static $yyRuleInfo = array(
+ array( 0 => 62, 1 => 1 ),
+ array( 0 => 63, 1 => 2 ),
+ array( 0 => 63, 1 => 2 ),
+ array( 0 => 63, 1 => 2 ),
+ array( 0 => 63, 1 => 4 ),
+ array( 0 => 64, 1 => 4 ),
+ array( 0 => 64, 1 => 1 ),
+ array( 0 => 65, 1 => 2 ),
+ array( 0 => 65, 1 => 0 ),
+ array( 0 => 63, 1 => 2 ),
+ array( 0 => 63, 1 => 0 ),
+ array( 0 => 66, 1 => 1 ),
+ array( 0 => 66, 1 => 1 ),
+ array( 0 => 66, 1 => 1 ),
+ array( 0 => 66, 1 => 3 ),
+ array( 0 => 66, 1 => 2 ),
+ array( 0 => 67, 1 => 1 ),
+ array( 0 => 67, 1 => 2 ),
+ array( 0 => 67, 1 => 2 ),
+ array( 0 => 70, 1 => 2 ),
+ array( 0 => 69, 1 => 2 ),
+ array( 0 => 72, 1 => 1 ),
+ array( 0 => 72, 1 => 1 ),
+ array( 0 => 72, 1 => 1 ),
+ array( 0 => 68, 1 => 3 ),
+ array( 0 => 68, 1 => 2 ),
+ array( 0 => 68, 1 => 4 ),
+ array( 0 => 68, 1 => 5 ),
+ array( 0 => 68, 1 => 6 ),
+ array( 0 => 68, 1 => 2 ),
+ array( 0 => 68, 1 => 2 ),
+ array( 0 => 68, 1 => 3 ),
+ array( 0 => 68, 1 => 2 ),
+ array( 0 => 68, 1 => 3 ),
+ array( 0 => 68, 1 => 8 ),
+ array( 0 => 80, 1 => 2 ),
+ array( 0 => 80, 1 => 1 ),
+ array( 0 => 68, 1 => 5 ),
+ array( 0 => 68, 1 => 7 ),
+ array( 0 => 68, 1 => 6 ),
+ array( 0 => 68, 1 => 8 ),
+ array( 0 => 68, 1 => 2 ),
+ array( 0 => 68, 1 => 3 ),
+ array( 0 => 68, 1 => 4 ),
+ array( 0 => 66, 1 => 1 ),
+ array( 0 => 68, 1 => 2 ),
+ array( 0 => 68, 1 => 3 ),
+ array( 0 => 68, 1 => 4 ),
+ array( 0 => 68, 1 => 5 ),
+ array( 0 => 73, 1 => 2 ),
+ array( 0 => 73, 1 => 1 ),
+ array( 0 => 73, 1 => 0 ),
+ array( 0 => 83, 1 => 4 ),
+ array( 0 => 83, 1 => 2 ),
+ array( 0 => 83, 1 => 2 ),
+ array( 0 => 83, 1 => 2 ),
+ array( 0 => 83, 1 => 2 ),
+ array( 0 => 83, 1 => 2 ),
+ array( 0 => 83, 1 => 4 ),
+ array( 0 => 79, 1 => 1 ),
+ array( 0 => 79, 1 => 3 ),
+ array( 0 => 78, 1 => 3 ),
+ array( 0 => 78, 1 => 3 ),
+ array( 0 => 78, 1 => 3 ),
+ array( 0 => 78, 1 => 3 ),
+ array( 0 => 76, 1 => 1 ),
+ array( 0 => 76, 1 => 1 ),
+ array( 0 => 76, 1 => 3 ),
+ array( 0 => 76, 1 => 3 ),
+ array( 0 => 76, 1 => 3 ),
+ array( 0 => 76, 1 => 3 ),
+ array( 0 => 76, 1 => 3 ),
+ array( 0 => 76, 1 => 2 ),
+ array( 0 => 76, 1 => 3 ),
+ array( 0 => 76, 1 => 3 ),
+ array( 0 => 84, 1 => 7 ),
+ array( 0 => 84, 1 => 7 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 2 ),
+ array( 0 => 75, 1 => 2 ),
+ array( 0 => 75, 1 => 2 ),
+ array( 0 => 75, 1 => 2 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 75, 1 => 2 ),
+ array( 0 => 75, 1 => 2 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 2 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 1 ),
+ array( 0 => 75, 1 => 3 ),
+ array( 0 => 90, 1 => 1 ),
+ array( 0 => 90, 1 => 1 ),
+ array( 0 => 74, 1 => 1 ),
+ array( 0 => 74, 1 => 1 ),
+ array( 0 => 74, 1 => 3 ),
+ array( 0 => 74, 1 => 1 ),
+ array( 0 => 74, 1 => 3 ),
+ array( 0 => 74, 1 => 4 ),
+ array( 0 => 74, 1 => 3 ),
+ array( 0 => 74, 1 => 4 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 71, 1 => 2 ),
+ array( 0 => 95, 1 => 2 ),
+ array( 0 => 95, 1 => 0 ),
+ array( 0 => 96, 1 => 2 ),
+ array( 0 => 96, 1 => 2 ),
+ array( 0 => 96, 1 => 4 ),
+ array( 0 => 96, 1 => 2 ),
+ array( 0 => 96, 1 => 2 ),
+ array( 0 => 96, 1 => 4 ),
+ array( 0 => 96, 1 => 3 ),
+ array( 0 => 96, 1 => 5 ),
+ array( 0 => 96, 1 => 3 ),
+ array( 0 => 96, 1 => 3 ),
+ array( 0 => 96, 1 => 3 ),
+ array( 0 => 96, 1 => 3 ),
+ array( 0 => 96, 1 => 3 ),
+ array( 0 => 96, 1 => 3 ),
+ array( 0 => 96, 1 => 2 ),
+ array( 0 => 81, 1 => 1 ),
+ array( 0 => 81, 1 => 1 ),
+ array( 0 => 81, 1 => 2 ),
+ array( 0 => 97, 1 => 1 ),
+ array( 0 => 97, 1 => 1 ),
+ array( 0 => 97, 1 => 3 ),
+ array( 0 => 94, 1 => 2 ),
+ array( 0 => 98, 1 => 1 ),
+ array( 0 => 98, 1 => 2 ),
+ array( 0 => 99, 1 => 3 ),
+ array( 0 => 99, 1 => 3 ),
+ array( 0 => 99, 1 => 5 ),
+ array( 0 => 99, 1 => 6 ),
+ array( 0 => 99, 1 => 2 ),
+ array( 0 => 89, 1 => 4 ),
+ array( 0 => 100, 1 => 4 ),
+ array( 0 => 100, 1 => 4 ),
+ array( 0 => 101, 1 => 3 ),
+ array( 0 => 101, 1 => 1 ),
+ array( 0 => 101, 1 => 0 ),
+ array( 0 => 77, 1 => 3 ),
+ array( 0 => 77, 1 => 2 ),
+ array( 0 => 102, 1 => 3 ),
+ array( 0 => 102, 1 => 2 ),
+ array( 0 => 82, 1 => 2 ),
+ array( 0 => 82, 1 => 0 ),
+ array( 0 => 103, 1 => 2 ),
+ array( 0 => 103, 1 => 3 ),
+ array( 0 => 103, 1 => 2 ),
+ array( 0 => 92, 1 => 1 ),
+ array( 0 => 92, 1 => 2 ),
+ array( 0 => 92, 1 => 1 ),
+ array( 0 => 92, 1 => 2 ),
+ array( 0 => 92, 1 => 3 ),
+ array( 0 => 86, 1 => 1 ),
+ array( 0 => 86, 1 => 1 ),
+ array( 0 => 85, 1 => 1 ),
+ array( 0 => 87, 1 => 1 ),
+ array( 0 => 93, 1 => 3 ),
+ array( 0 => 93, 1 => 3 ),
+ array( 0 => 104, 1 => 1 ),
+ array( 0 => 104, 1 => 3 ),
+ array( 0 => 104, 1 => 0 ),
+ array( 0 => 105, 1 => 3 ),
+ array( 0 => 105, 1 => 3 ),
+ array( 0 => 105, 1 => 1 ),
+ array( 0 => 91, 1 => 2 ),
+ array( 0 => 91, 1 => 3 ),
+ array( 0 => 106, 1 => 2 ),
+ array( 0 => 106, 1 => 1 ),
+ array( 0 => 107, 1 => 3 ),
+ array( 0 => 107, 1 => 3 ),
+ array( 0 => 107, 1 => 1 ),
+ array( 0 => 107, 1 => 3 ),
+ array( 0 => 107, 1 => 3 ),
+ array( 0 => 107, 1 => 1 ),
+ array( 0 => 107, 1 => 1 ),
+ );
- // line 259 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r3()
- {
+ public static $yyReduceMap = array(
+ 0 => 0,
+ 1 => 1,
+ 2 => 2,
+ 3 => 3,
+ 4 => 4,
+ 5 => 5,
+ 6 => 6,
+ 21 => 6,
+ 22 => 6,
+ 23 => 6,
+ 36 => 6,
+ 56 => 6,
+ 57 => 6,
+ 65 => 6,
+ 66 => 6,
+ 77 => 6,
+ 82 => 6,
+ 83 => 6,
+ 88 => 6,
+ 92 => 6,
+ 93 => 6,
+ 97 => 6,
+ 98 => 6,
+ 100 => 6,
+ 105 => 6,
+ 169 => 6,
+ 174 => 6,
+ 7 => 7,
+ 8 => 8,
+ 9 => 9,
+ 11 => 11,
+ 12 => 12,
+ 13 => 13,
+ 14 => 14,
+ 15 => 15,
+ 16 => 16,
+ 17 => 17,
+ 18 => 18,
+ 19 => 19,
+ 20 => 20,
+ 24 => 24,
+ 25 => 25,
+ 26 => 26,
+ 27 => 27,
+ 28 => 28,
+ 29 => 29,
+ 30 => 30,
+ 31 => 31,
+ 33 => 31,
+ 32 => 32,
+ 34 => 34,
+ 35 => 35,
+ 37 => 37,
+ 38 => 38,
+ 39 => 39,
+ 40 => 40,
+ 41 => 41,
+ 42 => 42,
+ 43 => 43,
+ 44 => 44,
+ 45 => 45,
+ 46 => 46,
+ 47 => 47,
+ 48 => 48,
+ 49 => 49,
+ 50 => 50,
+ 59 => 50,
+ 147 => 50,
+ 151 => 50,
+ 155 => 50,
+ 157 => 50,
+ 51 => 51,
+ 148 => 51,
+ 154 => 51,
+ 52 => 52,
+ 53 => 53,
+ 54 => 53,
+ 55 => 55,
+ 132 => 55,
+ 58 => 58,
+ 60 => 60,
+ 61 => 61,
+ 62 => 61,
+ 63 => 63,
+ 64 => 64,
+ 67 => 67,
+ 68 => 68,
+ 69 => 68,
+ 70 => 70,
+ 71 => 71,
+ 72 => 72,
+ 73 => 73,
+ 74 => 74,
+ 75 => 75,
+ 76 => 76,
+ 78 => 78,
+ 80 => 78,
+ 81 => 78,
+ 112 => 78,
+ 79 => 79,
+ 84 => 84,
+ 85 => 85,
+ 86 => 86,
+ 87 => 87,
+ 89 => 89,
+ 90 => 90,
+ 91 => 90,
+ 94 => 94,
+ 95 => 95,
+ 96 => 96,
+ 99 => 99,
+ 101 => 101,
+ 102 => 102,
+ 103 => 103,
+ 104 => 104,
+ 106 => 106,
+ 107 => 107,
+ 108 => 108,
+ 109 => 109,
+ 110 => 110,
+ 111 => 111,
+ 113 => 113,
+ 171 => 113,
+ 114 => 114,
+ 115 => 115,
+ 116 => 116,
+ 117 => 117,
+ 118 => 118,
+ 119 => 119,
+ 127 => 119,
+ 120 => 120,
+ 121 => 121,
+ 122 => 122,
+ 123 => 122,
+ 125 => 122,
+ 126 => 122,
+ 124 => 124,
+ 128 => 128,
+ 129 => 129,
+ 130 => 130,
+ 175 => 130,
+ 131 => 131,
+ 133 => 133,
+ 134 => 134,
+ 135 => 135,
+ 136 => 136,
+ 137 => 137,
+ 138 => 138,
+ 139 => 139,
+ 140 => 140,
+ 141 => 141,
+ 142 => 142,
+ 143 => 143,
+ 144 => 144,
+ 145 => 145,
+ 146 => 146,
+ 149 => 149,
+ 150 => 150,
+ 152 => 152,
+ 153 => 153,
+ 156 => 156,
+ 158 => 158,
+ 159 => 159,
+ 160 => 160,
+ 161 => 161,
+ 162 => 162,
+ 163 => 163,
+ 164 => 164,
+ 165 => 165,
+ 166 => 166,
+ 167 => 167,
+ 168 => 167,
+ 170 => 170,
+ 172 => 172,
+ 173 => 173,
+ 176 => 176,
+ 177 => 177,
+ 178 => 178,
+ 179 => 179,
+ 182 => 179,
+ 180 => 180,
+ 183 => 180,
+ 181 => 181,
+ 184 => 184,
+ 185 => 185,
+ );
+// line 233 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r0(){
+ $this->root_buffer->prepend_array($this, $this->template_prefix);
+ $this->root_buffer->append_array($this, $this->template_postfix);
+ $this->_retvalue = $this->root_buffer->to_smarty_php($this);
+ }
+// line 240 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r1(){
+ $text = $this->yystack[ $this->yyidx + 0 ]->minor;
+
+ if ((string)$text == '') {
+ $this->current_buffer->append_subtree($this, null);
+ }
+
+ $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Text($text, $this->strip));
+ }
+// line 250 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r2(){
+ $this->strip = true;
+ }
+// line 254 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r3(){
+ $this->strip = false;
+ }
+// line 259 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r4(){
+ $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Text($this->yystack[$this->yyidx + -1]->minor));
+ }
+// line 264 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r5(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor.$this->yystack[$this->yyidx + -1]->minor;
+ }
+// line 267 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r6(){
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
+ }
+// line 271 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r7(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
+
+ }
+// line 276 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r8(){
+ $this->_retvalue = '';
+ }
+// line 280 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r9(){
+ if ($this->compiler->has_code) {
+ $this->current_buffer->append_subtree($this, $this->mergePrefixCode($this->yystack[$this->yyidx + 0]->minor));
+ }
+ $this->compiler->has_variable_string = false;
+ $this->block_nesting_level = count($this->compiler->_tag_stack);
+ }
+// line 292 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r11(){
+ $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' $');
+ if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) {
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array('nocache'),array('value'=>$this->compiler->compileVariable('\''.$match[1].'\'')));
+ } else {
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->compiler->compileVariable('\''.$var.'\'')));
+ }
+ }
+// line 302 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r12(){
+ $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()));
+ if ($tag == 'strip') {
$this->strip = true;
- }
-
- // line 264 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r4()
- {
- $this->strip = false;
- }
-
- // line 269 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r5()
- {
- $this->current_buffer->append_subtree($this,
- new Smarty_Internal_ParseTree_Text($this->yystack[ $this->yyidx + -1 ]->minor));
- }
-
- // line 272 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r6()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -3 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor;
- }
-
- // line 276 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r7()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 281 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r8()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 285 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r9()
- {
- $this->_retvalue = '';
- }
-
- // line 297 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r10()
- {
- if ($this->compiler->has_code) {
- $this->current_buffer->append_subtree($this,
- $this->mergePrefixCode($this->yystack[ $this->yyidx + 0 ]->minor));
- }
- $this->compiler->has_variable_string = false;
- $this->block_nesting_level = count($this->compiler->_tag_stack);
- }
-
- // line 307 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r12()
- {
- $var =
- trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
- -$this->compiler->getRdelLength()), ' $');
- if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) {
- $this->_retvalue =
- $this->compiler->compileTag('private_print_expression', array('nocache'),
- array('value' => $this->compiler->compileVariable('\'' . $match[ 1 ] . '\'')));
- } else {
- $this->_retvalue =
- $this->compiler->compileTag('private_print_expression', array(),
- array('value' => $this->compiler->compileVariable('\'' . $var . '\'')));
- }
- }
-
- // line 328 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r13()
- {
- $tag =
- trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
- -$this->compiler->getRdelLength()));
- if ($tag == 'strip') {
- $this->strip = true;
- $this->_retvalue = null;
- } else {
- if (defined($tag)) {
- if ($this->security) {
- $this->security->isTrustedConstant($tag, $this->compiler);
- }
- $this->_retvalue =
- $this->compiler->compileTag('private_print_expression', array(), array('value' => $tag));
- } else {
- if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) {
- $this->_retvalue = $this->compiler->compileTag($match[ 1 ], array('\'nocache\''));
- } else {
- $this->_retvalue = $this->compiler->compileTag($tag, array());
- }
- }
- }
- }
-
- // line 339 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r14()
- {
- $j = strrpos($this->yystack[ $this->yyidx + 0 ]->minor, '.');
- if ($this->yystack[ $this->yyidx + 0 ]->minor[ $j + 1 ] == 'c') {
- // {$smarty.block.child}
- $this->_retvalue =
- $this->compiler->compileTag('child', array(), array($this->yystack[ $this->yyidx + 0 ]->minor));
- } else {
- // {$smarty.block.parent}
- $this->_retvalue =
- $this->compiler->compileTag('parent', array(), array($this->yystack[ $this->yyidx + 0 ]->minor));
- }
- }
-
- // line 343 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r15()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
- }
-
- // line 347 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r16()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
- }
-
- // line 356 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r17()
- {
- $this->_retvalue =
- $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ],
- array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]));
- }
-
- // line 360 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r18()
- {
- $this->_retvalue =
- $this->compiler->compileTag('assign', array_merge(array(
- array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]),
- array('var' => '\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'')
- ), $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ]));
- }
-
- // line 364 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r19()
- {
- $this->_retvalue =
- $this->compiler->compileTag('assign', array_merge(array(
- array('value' => $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ]),
- array('var' => $this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ])
- ), $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ]), array(
- 'smarty_internal_index' => $this->yystack[ $this->yyidx +
- -1 ]->minor[ 'smarty_internal_index' ]
- ));
- }
-
- // line 368 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r20()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 383 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r21()
- {
- $this->_retvalue = array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor);
- }
-
- // line 393 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r25()
- {
- if (defined($this->yystack[ $this->yyidx + -1 ]->minor)) {
- if ($this->security) {
- $this->security->isTrustedConstant($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler);
- }
- $this->_retvalue =
- $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor,
- array('value' => $this->yystack[ $this->yyidx + -1 ]->minor));
- } else {
- $this->_retvalue =
- $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor,
- $this->yystack[ $this->yyidx + 0 ]->minor);
- }
- }
-
- // line 406 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r26()
- {
- if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
+ $this->_retvalue = null;
+ } else {
+ if (defined($tag)) {
if ($this->security) {
- $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
+ $this->security->isTrustedConstant($tag, $this->compiler);
}
- $this->_retvalue =
- $this->compiler->compileTag('private_print_expression', array(),
- array('value' => $this->yystack[ $this->yyidx + 0 ]->minor));
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$tag));
} else {
- $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor, array());
- }
- }
-
- // line 418 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r27()
- {
- if (defined($this->yystack[ $this->yyidx + -2 ]->minor)) {
- if ($this->security) {
- $this->security->isTrustedConstant($this->yystack[ $this->yyidx + -2 ]->minor, $this->compiler);
+ if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) {
+ $this->_retvalue = $this->compiler->compileTag($match[1],array('\'nocache\''));
+ } else {
+ $this->_retvalue = $this->compiler->compileTag($tag,array());
}
- $this->_retvalue =
- $this->compiler->compileTag('private_print_expression', $this->yystack[ $this->yyidx + 0 ]->minor,
- array(
- 'value' => $this->yystack[ $this->yyidx + -2 ]->minor,
- 'modifierlist' => $this->yystack[ $this->yyidx + -1 ]->minor
- ));
- } else {
- $this->_retvalue =
- $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor,
- $this->yystack[ $this->yyidx + 0 ]->minor,
- array('modifierlist' => $this->yystack[ $this->yyidx + -1 ]->minor));
- }
- }
-
- // line 423 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r28()
- {
- $this->_retvalue =
- $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor,
- $this->yystack[ $this->yyidx + 0 ]->minor,
- array('object_method' => $this->yystack[ $this->yyidx + -1 ]->minor));
- }
-
- // line 428 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r29()
- {
- $this->_retvalue =
- $this->compiler->compileTag($this->yystack[ $this->yyidx + -4 ]->minor,
- $this->yystack[ $this->yyidx + 0 ]->minor, array(
- 'modifierlist' => $this->yystack[ $this->yyidx + -1 ]->minor,
- 'object_method' => $this->yystack[ $this->yyidx + -2 ]->minor
- ));
- }
-
- // line 433 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r30()
- {
- $this->_retvalue =
- $this->compiler->compileTag('make_nocache',
- array(array('var' => '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'')));
- }
-
- // line 438 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r31()
- {
- $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler->getLdelLength()));
- $this->_retvalue =
- $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag, array(),
- array('if condition' => $this->yystack[ $this->yyidx + 0 ]->minor));
- }
-
- // line 443 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r32()
- {
- $tag = trim(substr($this->yystack[ $this->yyidx + -2 ]->minor, $this->compiler->getLdelLength()));
- $this->_retvalue =
- $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag,
- $this->yystack[ $this->yyidx + 0 ]->minor,
- array('if condition' => $this->yystack[ $this->yyidx + -1 ]->minor));
- }
-
- // line 454 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r33()
- {
- $tag = trim(substr($this->yystack[ $this->yyidx + -1 ]->minor, $this->compiler->getLdelLength()));
- $this->_retvalue =
- $this->compiler->compileTag(($tag === 'else if') ? 'elseif' : $tag, array(),
- array('if condition' => $this->yystack[ $this->yyidx + 0 ]->minor));
- }
-
- // line 458 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r35()
- {
- $this->_retvalue =
- $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
- array('start' => $this->yystack[ $this->yyidx + -6 ]->minor),
- array('ifexp' => $this->yystack[ $this->yyidx + -4 ]->minor),
- array('var' => $this->yystack[ $this->yyidx + -2 ]->minor),
- array('step' => $this->yystack[ $this->yyidx + -1 ]->minor)
- )), 1);
- }
-
- // line 466 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r36()
- {
- $this->_retvalue = '=' . $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 470 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r38()
- {
- $this->_retvalue =
- $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
- array('start' => $this->yystack[ $this->yyidx + -3 ]->minor),
- array('to' => $this->yystack[ $this->yyidx + -1 ]->minor)
- )), 0);
- }
-
- // line 475 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r39()
- {
- $this->_retvalue =
- $this->compiler->compileTag('for', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
- array('start' => $this->yystack[ $this->yyidx + -5 ]->minor),
- array('to' => $this->yystack[ $this->yyidx + -3 ]->minor),
- array('step' => $this->yystack[ $this->yyidx + -1 ]->minor)
- )), 0);
- }
-
- // line 479 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r40()
- {
- $this->_retvalue =
- $this->compiler->compileTag('foreach', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
- array('from' => $this->yystack[ $this->yyidx + -3 ]->minor),
- array('item' => $this->yystack[ $this->yyidx + -1 ]->minor)
- )));
- }
-
- // line 482 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r41()
- {
- $this->_retvalue =
- $this->compiler->compileTag('foreach', array_merge($this->yystack[ $this->yyidx + 0 ]->minor, array(
- array('from' => $this->yystack[ $this->yyidx + -5 ]->minor),
- array('item' => $this->yystack[ $this->yyidx + -1 ]->minor),
- array('key' => $this->yystack[ $this->yyidx + -3 ]->minor)
- )));
- }
-
- // line 487 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r42()
- {
- $this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[ $this->yyidx + 0 ]->minor);
- }
-
- // line 491 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r43()
- {
- $this->_retvalue =
- $this->compiler->compileTag('setfilter', array(), array(
- 'modifier_list' => array(
- array_merge(array($this->yystack[ $this->yyidx + -1 ]->minor),
- $this->yystack[ $this->yyidx + 0 ]->minor)
- )
- ));
- }
-
- // line 497 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r44()
- {
- $this->_retvalue =
- $this->compiler->compileTag('setfilter', array(), array(
- 'modifier_list' => array_merge(array(
- array_merge(array(
- $this->yystack[ $this->yyidx +
- -2 ]->minor
- ), $this->yystack[ $this->yyidx + -1 ]->minor)
- ), $this->yystack[ $this->yyidx + 0 ]->minor)
- ));
- }
-
- // line 506 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r45()
- {
- $tag =
- trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
- -$this->compiler->getRdelLength()), ' /');
- if ($tag === 'strip') {
- $this->strip = false;
- $this->_retvalue = null;
- } else {
- $this->_retvalue = $this->compiler->compileTag($tag . 'close', array());
}
}
-
- // line 510 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r46()
- {
- $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor . 'close', array());
}
-
- // line 515 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r47()
- {
- $this->_retvalue =
- $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor . 'close', array(),
- array('modifier_list' => $this->yystack[ $this->yyidx + 0 ]->minor));
- }
-
- // line 519 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r48()
- {
- $this->_retvalue =
- $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor . 'close', array(),
- array('object_method' => $this->yystack[ $this->yyidx + 0 ]->minor));
- }
-
- // line 527 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r49()
- {
- $this->_retvalue =
- $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor . 'close', array(), array(
- 'object_method' => $this->yystack[ $this->yyidx + -1 ]->minor,
- 'modifier_list' => $this->yystack[ $this->yyidx + 0 ]->minor
- ));
- }
-
- // line 533 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r50()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
- $this->_retvalue[] = $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 538 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r51()
- {
- $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor);
- }
-
- // line 543 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r52()
- {
- $this->_retvalue = array();
- }
-
- // line 554 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r53()
- {
- if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
+// line 323 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r13(){
+ $j = strrpos($this->yystack[$this->yyidx + 0]->minor,'.');
+ if ($this->yystack[$this->yyidx + 0]->minor[$j+1] == 'c') {
+ // {$smarty.block.child}
+ $this->_retvalue = $this->compiler->compileTag('child',array(),array($this->yystack[$this->yyidx + 0]->minor));
+ } else {
+ // {$smarty.block.parent}
+ $this->_retvalue = $this->compiler->compileTag('parent',array(),array($this->yystack[$this->yyidx + 0]->minor));
+ }
+ }
+// line 334 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r14(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
+ }
+// line 338 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r15(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
+ }
+// line 342 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r16(){
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor[1],array('value'=>$this->yystack[$this->yyidx + 0]->minor[0]));
+ }
+// line 351 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r17(){
+ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + 0]->minor[0]),array('var'=>'\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'')),$this->yystack[$this->yyidx + 0]->minor[1]));
+ }
+// line 355 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r18(){
+ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + 0]->minor[0]),array('var'=>$this->yystack[$this->yyidx + -1]->minor['var'])),$this->yystack[$this->yyidx + 0]->minor[1]),array('smarty_internal_index'=>$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']));
+ }
+// line 359 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r19(){
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
+ }
+// line 363 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r20(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
+ }
+// line 378 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r24(){
+ if (defined($this->yystack[$this->yyidx + -1]->minor)) {
if ($this->security) {
- $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
+ $this->security->isTrustedConstant($this->yystack[$this->yyidx + -1]->minor, $this->compiler);
}
- $this->_retvalue =
- array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor);
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -1]->minor));
} else {
- $this->_retvalue =
- array(
- $this->yystack[ $this->yyidx + -2 ]->minor => '\'' .
- $this->yystack[ $this->yyidx + 0 ]->minor .
- '\''
- );
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
}
}
-
- // line 562 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r54()
- {
- $this->_retvalue =
- array(
- trim($this->yystack[ $this->yyidx + -1 ]->minor, " =\n\r\t") => $this->yystack[ $this->yyidx +
- 0 ]->minor
- );
- }
-
- // line 574 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r56()
- {
- $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\'';
- }
-
- // line 587 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r59()
- {
- $this->_retvalue =
- array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor);
- }
-
- // line 592 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r61()
- {
- $this->yystack[ $this->yyidx + -2 ]->minor[] = $this->yystack[ $this->yyidx + 0 ]->minor;
- $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor;
- }
-
- // line 599 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r62()
- {
- $this->_retvalue =
- array(
- 'var' => '\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '\'',
- 'value' => $this->yystack[ $this->yyidx + 0 ]->minor
- );
- }
-
- // line 603 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r64()
- {
- $this->_retvalue =
- array(
- 'var' => $this->yystack[ $this->yyidx + -2 ]->minor,
- 'value' => $this->yystack[ $this->yyidx + 0 ]->minor
- );
- }
-
- // line 623 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r65()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
- }
-
- // line 628 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r68()
- {
- $this->_retvalue =
- '$_smarty_tpl->getStreamVariable(\'' .
- substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) .
- '://' .
- $this->yystack[ $this->yyidx + 0 ]->minor .
- '\')';
- }
-
- // line 638 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r69()
- {
- $this->_retvalue =
- $this->yystack[ $this->yyidx + -2 ]->minor .
- trim($this->yystack[ $this->yyidx + -1 ]->minor) .
- $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 642 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r71()
- {
- $this->_retvalue =
- $this->yystack[ $this->yyidx + -1 ]->minor[ 'pre' ] .
- $this->yystack[ $this->yyidx + -2 ]->minor .
- $this->yystack[ $this->yyidx + -1 ]->minor[ 'op' ] .
- $this->yystack[ $this->yyidx + 0 ]->minor .
- ')';
- }
-
- // line 646 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r72()
- {
- $this->_retvalue =
- $this->yystack[ $this->yyidx + -2 ]->minor .
- $this->yystack[ $this->yyidx + -1 ]->minor .
- $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 650 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r73()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
- }
-
- // line 654 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r74()
- {
- $this->_retvalue =
- 'in_array(' .
- $this->yystack[ $this->yyidx + -2 ]->minor .
- ',' .
- $this->yystack[ $this->yyidx + 0 ]->minor .
- ')';
- }
-
- // line 662 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r75()
- {
- $this->_retvalue =
- 'in_array(' .
- $this->yystack[ $this->yyidx + -2 ]->minor .
- ',(array)' .
- $this->yystack[ $this->yyidx + 0 ]->minor .
- ')';
- }
-
- // line 666 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r76()
- {
- $this->_retvalue =
- $this->yystack[ $this->yyidx + -5 ]->minor .
- ' ? ' .
- $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '\'') .
- ' : ' .
- $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 676 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r77()
- {
- $this->_retvalue =
- $this->yystack[ $this->yyidx + -5 ]->minor .
- ' ? ' .
- $this->yystack[ $this->yyidx + -2 ]->minor .
- ' : ' .
- $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 681 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r79()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 702 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r80()
- {
- $this->_retvalue = '!' . $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 706 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r85()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 710 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r86()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.';
- }
-
- // line 715 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r87()
- {
- $this->_retvalue = '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 732 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r88()
- {
- if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) {
+// line 388 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r25(){
+ if (defined($this->yystack[$this->yyidx + 0]->minor)) {
if ($this->security) {
- $this->security->isTrustedConstant($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler);
+ $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
}
- $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + 0]->minor));
} else {
- $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\'';
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor,array());
}
}
-
- // line 736 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r90()
- {
- $this->_retvalue = '(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
- }
-
- // line 754 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r91()
- {
- $this->_retvalue =
- $this->yystack[ $this->yyidx + -2 ]->minor .
- $this->yystack[ $this->yyidx + -1 ]->minor .
- $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 765 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r95()
- {
- $prefixVar = $this->compiler->getNewPrefixVariable();
- if ($this->yystack[ $this->yyidx + -2 ]->minor[ 'var' ] === '\'smarty\'') {
- $this->compiler->appendPrefixCode("<?php {$prefixVar} = " .
- $this->compiler->compileTag('private_special_variable', array(),
- $this->yystack[ $this->yyidx +
- -2 ]->minor[ 'smarty_internal_index' ]) .
- ';?>');
- } else {
- $this->compiler->appendPrefixCode("<?php {$prefixVar} = " .
- $this->compiler->compileVariable($this->yystack[ $this->yyidx +
- -2 ]->minor[ 'var' ]) .
- $this->yystack[ $this->yyidx + -2 ]->minor[ 'smarty_internal_index' ] .
- ';?>');
- }
- $this->_retvalue =
- $prefixVar .
- '::' .
- $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
- $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
- }
-
- // line 772 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r96()
- {
- $prefixVar = $this->compiler->getNewPrefixVariable();
- $tmp = $this->compiler->appendCode('<?php ob_start();?>', $this->yystack[ $this->yyidx + 0 ]->minor);
- $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "<?php {$prefixVar} = ob_get_clean();?>"));
- $this->_retvalue = $prefixVar;
- }
-
- // line 785 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r97()
- {
- $this->_retvalue =
- $this->compiler->compileTag('private_modifier', array(), array(
- 'value' => $this->yystack[ $this->yyidx + -1 ]->minor,
- 'modifierlist' => $this->yystack[ $this->yyidx + 0 ]->minor
- ));
- }
-
- // line 804 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r100()
- {
- if (!in_array(strtolower($this->yystack[ $this->yyidx + -2 ]->minor), array('self', 'parent')) &&
- (!$this->security ||
- $this->security->isTrustedStaticClassAccess($this->yystack[ $this->yyidx + -2 ]->minor,
- $this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler))) {
- if (isset($this->smarty->registered_classes[ $this->yystack[ $this->yyidx + -2 ]->minor ])) {
- $this->_retvalue =
- $this->smarty->registered_classes[ $this->yystack[ $this->yyidx + -2 ]->minor ] .
- '::' .
- $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
- $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
- } else {
- $this->_retvalue =
- $this->yystack[ $this->yyidx + -2 ]->minor .
- '::' .
- $this->yystack[ $this->yyidx + 0 ]->minor[ 0 ] .
- $this->yystack[ $this->yyidx + 0 ]->minor[ 1 ];
+// line 401 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r26(){
+ if (defined($this->yystack[$this->yyidx + -2]->minor)) {
+ if ($this->security) {
+ $this->security->isTrustedConstant($this->yystack[$this->yyidx + -2]->minor, $this->compiler);
}
+ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -2]->minor, 'modifierlist'=>$this->yystack[$this->yyidx + -1]->minor));
} else {
- $this->compiler->trigger_template_error('static class \'' .
- $this->yystack[ $this->yyidx + -2 ]->minor .
- '\' is undefined or not allowed by security setting');
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + 0]->minor, array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor));
}
}
-
- // line 815 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r102()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
- }
-
- // line 818 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r103()
- {
- $this->_retvalue =
- $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'');
- }
-
- // line 831 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r104()
- {
- if ($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ] === '\'smarty\'') {
- $smarty_var =
- $this->compiler->compileTag('private_special_variable', array(),
- $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ]);
- $this->_retvalue = $smarty_var;
- } else {
- // used for array reset,next,prev,end,current
- $this->last_variable = $this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ];
- $this->last_index = $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ];
- $this->_retvalue =
- $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor[ 'var' ]) .
- $this->yystack[ $this->yyidx + 0 ]->minor[ 'smarty_internal_index' ];
+// line 413 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r27(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,$this->yystack[$this->yyidx + 0]->minor,array('object_method'=>$this->yystack[$this->yyidx + -1]->minor));
+ }
+// line 418 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r28(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + 0]->minor,array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor, 'object_method'=>$this->yystack[$this->yyidx + -2]->minor));
+ }
+// line 423 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r29(){
+ $this->_retvalue = $this->compiler->compileTag('make_nocache',array(array('var'=>'\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'')));
+ }
+// line 428 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r30(){
+ $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->compiler->getLdelLength()));
+ $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+// line 433 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r31(){
+ $tag = trim(substr($this->yystack[$this->yyidx + -2]->minor,$this->compiler->getLdelLength()));
+ $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,$this->yystack[$this->yyidx + 0]->minor,array('if condition'=>$this->yystack[$this->yyidx + -1]->minor));
+ }
+// line 438 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r32(){
+ $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->compiler->getLdelLength()));
+ $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+// line 449 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r34(){
+ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -6]->minor),array('ifexp'=>$this->yystack[$this->yyidx + -4]->minor),array('var'=>$this->yystack[$this->yyidx + -2]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),1);
+ }
+// line 453 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r35(){
+ $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor;
+ }
+// line 461 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r37(){
+ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -3]->minor),array('to'=>$this->yystack[$this->yyidx + -1]->minor))),0);
+ }
+// line 465 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r38(){
+ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -5]->minor),array('to'=>$this->yystack[$this->yyidx + -3]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),0);
+ }
+// line 470 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r39(){
+ $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -3]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor))));
+ }
+// line 474 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r40(){
+ $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor),array('key'=>$this->yystack[$this->yyidx + -3]->minor))));
+ }
+// line 477 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r41(){
+ $this->_retvalue = $this->compiler->compileTag('foreach',$this->yystack[$this->yyidx + 0]->minor);
+ }
+// line 482 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r42(){
+ $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array(array_merge(array($this->yystack[$this->yyidx + -1]->minor),$this->yystack[$this->yyidx + 0]->minor))));
+ }
+// line 486 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r43(){
+ $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array_merge(array(array_merge(array($this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)),$this->yystack[$this->yyidx + 0]->minor)));
+ }
+// line 492 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r44(){
+ $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' /');
+ if ($tag === 'strip') {
+ $this->strip = false;
+ $this->_retvalue = null;
+ } else {
+ $this->_retvalue = $this->compiler->compileTag($tag.'close',array());
+ }
+ }
+// line 501 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r45(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor.'close',array());
+ }
+// line 505 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r46(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array(),array('modifier_list'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+// line 510 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r47(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',array(),array('object_method'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+// line 514 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r48(){
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array(),array('object_method'=>$this->yystack[$this->yyidx + -1]->minor, 'modifier_list'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+// line 522 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r49(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
+ $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;
+ }
+// line 528 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r50(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
+ }
+// line 533 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r51(){
+ $this->_retvalue = array();
+ }
+// line 538 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r52(){
+ if (defined($this->yystack[$this->yyidx + 0]->minor)) {
+ if ($this->security) {
+ $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
}
+ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);
+ } else {
+ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'\''.$this->yystack[$this->yyidx + 0]->minor.'\'');
}
-
- // line 841 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r105()
- {
- $this->_retvalue =
- '$_smarty_tpl->tpl_vars[' .
- $this->yystack[ $this->yyidx + -2 ]->minor .
- ']->' .
- $this->yystack[ $this->yyidx + 0 ]->minor;
}
-
- // line 845 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r107()
- {
- $this->_retvalue =
- $this->compiler->compileConfigVariable('\'' . $this->yystack[ $this->yyidx + -1 ]->minor . '\'');
+// line 549 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r53(){
+ $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor," =\n\r\t")=>$this->yystack[$this->yyidx + 0]->minor);
}
-
- // line 849 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r108()
- {
- $this->_retvalue =
- '(is_array($tmp = ' .
- $this->compiler->compileConfigVariable('\'' . $this->yystack[ $this->yyidx + -2 ]->minor . '\'') .
- ') ? $tmp' .
- $this->yystack[ $this->yyidx + 0 ]->minor .
- ' :null)';
+// line 557 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r55(){
+ $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\'';
}
-
- // line 853 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r109()
- {
- $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -1 ]->minor);
+// line 569 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r58(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);
}
-
- // line 857 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r110()
- {
- $this->_retvalue =
- '(is_array($tmp = ' .
- $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -2 ]->minor) .
- ') ? $tmp' .
- $this->yystack[ $this->yyidx + 0 ]->minor .
- ' : null)';
+// line 582 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r60(){
+ $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor;
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor;
}
-
- // line 860 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r111()
- {
- $this->_retvalue =
- array(
- 'var' => '\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'',
- 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor
- );
+// line 587 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r61(){
+ $this->_retvalue = array('var' => '\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'\'', 'value'=>$this->yystack[$this->yyidx + 0]->minor);
}
-
- // line 873 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r112()
- {
- $this->_retvalue =
- array(
- 'var' => $this->yystack[ $this->yyidx + -1 ]->minor,
- 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor
- );
+// line 594 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r63(){
+ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor);
}
-
- // line 879 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r114()
- {
- return;
+// line 598 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r64(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
}
-
- // line 882 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r115()
- {
- $this->_retvalue =
- '[' .
- $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'') .
- ']';
+// line 618 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r67(){
+ $this->_retvalue = '$_smarty_tpl->getStreamVariable(\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'://' . $this->yystack[$this->yyidx + 0]->minor . '\')';
}
-
- // line 886 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r116()
- {
- $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor) . ']';
+// line 623 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r68(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 890 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r117()
- {
- $this->_retvalue =
- '[' .
- $this->compiler->compileVariable($this->yystack[ $this->yyidx + -2 ]->minor) .
- '->' .
- $this->yystack[ $this->yyidx + 0 ]->minor .
- ']';
+// line 633 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r70(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor['pre']. $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor['op'].$this->yystack[$this->yyidx + 0]->minor .')';
}
-
- // line 894 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r118()
- {
- $this->_retvalue = '[\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\']';
+// line 637 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r71(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 899 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r119()
- {
- $this->_retvalue = '[' . $this->yystack[ $this->yyidx + 0 ]->minor . ']';
- }
-
- // line 904 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r120()
- {
- $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']';
- }
-
- // line 908 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r121()
- {
- $this->_retvalue =
- '[' .
- $this->compiler->compileTag('private_special_variable', array(),
- '[\'section\'][\'' . $this->yystack[ $this->yyidx + -1 ]->minor . '\'][\'index\']') .
- ']';
- }
-
- // line 911 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r122()
- {
- $this->_retvalue =
- '[' .
- $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' .
- $this->yystack[ $this->yyidx +
- -3 ]->minor .
- '\'][\'' .
- $this->yystack[ $this->yyidx +
- -1 ]->minor .
- '\']') .
- ']';
- }
-
- // line 917 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r123()
- {
- $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']';
- }
-
- // line 933 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r125()
- {
- $this->_retvalue =
- '[' .
- $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'') .
- ']';
- }
-
- // line 943 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r129()
- {
- $this->_retvalue = '[]';
+// line 641 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r72(){
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor . $this->yystack[$this->yyidx + -1]->minor . ')';
}
-
- // line 947 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r130()
- {
- $this->_retvalue = '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'';
+// line 645 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r73(){
+ $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')';
}
-
- // line 952 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r131()
- {
- $this->_retvalue = '\'\'';
+// line 649 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r74(){
+ $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')';
}
-
- // line 960 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r132()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor;
+// line 657 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r75(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '. $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'\'') . ' : '.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 966 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r134()
- {
- $var =
- trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->compiler->getLdelLength(),
- -$this->compiler->getRdelLength()), ' $');
- $this->_retvalue = $this->compiler->compileVariable('\'' . $var . '\'');
+// line 661 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r76(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 973 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r135()
- {
- $this->_retvalue = '(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
+// line 671 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r78(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 982 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r136()
- {
- if ($this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ] === '\'smarty\'') {
- $this->_retvalue =
- $this->compiler->compileTag('private_special_variable', array(),
- $this->yystack[ $this->yyidx + -1 ]->minor[ 'smarty_internal_index' ]) .
- $this->yystack[ $this->yyidx + 0 ]->minor;
- } else {
- $this->_retvalue =
- $this->compiler->compileVariable($this->yystack[ $this->yyidx + -1 ]->minor[ 'var' ]) .
- $this->yystack[ $this->yyidx + -1 ]->minor[ 'smarty_internal_index' ] .
- $this->yystack[ $this->yyidx + 0 ]->minor;
- }
+// line 676 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r79(){
+ $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 987 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r137()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor;
+// line 697 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r84(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 992 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r138()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
+// line 701 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r85(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.';
}
-
- // line 999 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r139()
- {
- if ($this->security && substr($this->yystack[ $this->yyidx + -1 ]->minor, 0, 1) === '_') {
- $this->compiler->trigger_template_error(self::ERR1);
- }
- $this->_retvalue =
- '->' . $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor;
+// line 705 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r86(){
+ $this->_retvalue = '.'.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 1006 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r140()
- {
+// line 710 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r87(){
+ if (defined($this->yystack[$this->yyidx + 0]->minor)) {
if ($this->security) {
- $this->compiler->trigger_template_error(self::ERR2);
+ $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
}
- $this->_retvalue =
- '->{' .
- $this->compiler->compileVariable($this->yystack[ $this->yyidx + -1 ]->minor) .
- $this->yystack[ $this->yyidx + 0 ]->minor .
- '}';
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
+ } else {
+ $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\'';
}
-
- // line 1013 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r141()
- {
- if ($this->security) {
- $this->compiler->trigger_template_error(self::ERR2);
- }
- $this->_retvalue =
- '->{' . $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor . '}';
}
-
- // line 1021 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r142()
- {
- if ($this->security) {
- $this->compiler->trigger_template_error(self::ERR2);
- }
- $this->_retvalue =
- '->{\'' .
- $this->yystack[ $this->yyidx + -4 ]->minor .
- '\'.' .
- $this->yystack[ $this->yyidx + -2 ]->minor .
- $this->yystack[ $this->yyidx + 0 ]->minor .
- '}';
+// line 727 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r89(){
+ $this->_retvalue = '('. $this->yystack[$this->yyidx + -1]->minor .')';
}
-
- // line 1029 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r143()
- {
- $this->_retvalue = '->' . $this->yystack[ $this->yyidx + 0 ]->minor;
+// line 731 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r90(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 1037 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r144()
- {
- $this->_retvalue =
- $this->compiler->compilePHPFunctionCall($this->yystack[ $this->yyidx + -3 ]->minor,
- $this->yystack[ $this->yyidx + -1 ]->minor);
+// line 749 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r94(){
+ if ($this->security && $this->security->static_classes !== array()) {
+ $this->compiler->trigger_template_error('dynamic static class not allowed by security setting');
+ }
+ $prefixVar = $this->compiler->getNewPrefixVariable();
+ if ($this->yystack[$this->yyidx + -2]->minor['var'] === '\'smarty\'') {
+ $this->compiler->appendPrefixCode("<?php {$prefixVar} = ". $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).';?>');
+ } else {
+ $this->compiler->appendPrefixCode("<?php {$prefixVar} = ". $this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor['var']).$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].';?>');
+ }
+ $this->_retvalue = $prefixVar .'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
+ }
+// line 760 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r95(){
+ $prefixVar = $this->compiler->getNewPrefixVariable();
+ $tmp = $this->compiler->appendCode('<?php ob_start();?>', $this->yystack[$this->yyidx + 0]->minor);
+ $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "<?php {$prefixVar} = ob_get_clean();?>"));
+ $this->_retvalue = $prefixVar;
+ }
+// line 767 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r96(){
+ $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor));
+ }
+// line 780 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r99(){
+ if (!in_array(strtolower($this->yystack[$this->yyidx + -2]->minor), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->compiler))) {
+ if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) {
+ $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
+ } else {
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
+ }
+ } else {
+ $this->compiler->trigger_template_error ('static class \''.$this->yystack[$this->yyidx + -2]->minor.'\' is undefined or not allowed by security setting');
}
-
- // line 1044 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r145()
- {
- if ($this->security && substr($this->yystack[ $this->yyidx + -3 ]->minor, 0, 1) === '_') {
- $this->compiler->trigger_template_error(self::ERR1);
- }
- $this->_retvalue =
- $this->yystack[ $this->yyidx + -3 ]->minor .
- '(' .
- implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) .
- ')';
}
-
- // line 1055 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r146()
- {
- if ($this->security) {
- $this->compiler->trigger_template_error(self::ERR2);
+// line 799 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r101(){
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
}
- $prefixVar = $this->compiler->getNewPrefixVariable();
- $this->compiler->appendPrefixCode("<?php {$prefixVar} = " .
- $this->compiler->compileVariable('\'' .
- substr($this->yystack[ $this->yyidx +
- -3 ]->minor, 1) .
- '\'') .
- ';?>');
- $this->_retvalue = $prefixVar . '(' . implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) . ')';
- }
-
- // line 1072 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r147()
- {
- $this->_retvalue =
- array_merge($this->yystack[ $this->yyidx + -2 ]->minor, array($this->yystack[ $this->yyidx + 0 ]->minor));
+// line 810 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r102(){
+ $this->_retvalue = $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'');
+ }
+// line 813 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r103(){
+ if ($this->yystack[$this->yyidx + 0]->minor['var'] === '\'smarty\'') {
+ $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
+ $this->_retvalue = $smarty_var;
+ } else {
+ // used for array reset,next,prev,end,current
+ $this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var'];
+ $this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
+ $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']).$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
+ }
+ }
+// line 826 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r104(){
+ $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor;
+ }
+// line 836 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r106(){
+ $this->_retvalue = $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -1]->minor . '\'');
+ }
+// line 840 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r107(){
+ $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -2]->minor . '\'') . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' :null)';
+ }
+// line 844 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r108(){
+ $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -1]->minor);
+ }
+// line 848 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r109(){
+ $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -2]->minor) . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' : null)';
+ }
+// line 852 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r110(){
+ $this->_retvalue = array('var'=>'\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'', 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor);
+ }
+// line 855 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r111(){
+ $this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor);
+ }
+// line 868 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r113(){
+ return;
+ }
+// line 874 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r114(){
+ $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'').']';
+ }
+// line 877 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r115(){
+ $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor).']';
+ }
+// line 881 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r116(){
+ $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor).'->'.$this->yystack[$this->yyidx + 0]->minor.']';
+ }
+// line 885 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r117(){
+ $this->_retvalue = '[\''. $this->yystack[$this->yyidx + 0]->minor .'\']';
+ }
+// line 889 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r118(){
+ $this->_retvalue = '['. $this->yystack[$this->yyidx + 0]->minor .']';
+ }
+// line 894 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r119(){
+ $this->_retvalue = '['. $this->yystack[$this->yyidx + -1]->minor .']';
}
-
- // line 1076 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r150()
- {
- $this->_retvalue =
- array_merge($this->yystack[ $this->yyidx + -2 ]->minor, array(
- array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor)
- ));
+// line 899 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r120(){
+ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']';
+ }
+// line 903 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r121(){
+ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']';
+ }
+// line 906 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r122(){
+ $this->_retvalue = '['.$this->yystack[$this->yyidx + -1]->minor.']';
+ }
+// line 912 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r124(){
+ $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'').']';
+ }
+// line 928 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r128(){
+ $this->_retvalue = '[]';
+ }
+// line 938 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r129(){
+ $this->_retvalue = '\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'';
+ }
+// line 942 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r130(){
+ $this->_retvalue = '\'\'';
+ }
+// line 947 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r131(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 1084 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r151()
- {
- $this->_retvalue =
- array(array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor));
+// line 955 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r133(){
+ $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' $');
+ $this->_retvalue = $this->compiler->compileVariable('\''.$var.'\'');
}
-
- // line 1092 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r153()
- {
- $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor);
+// line 961 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r134(){
+ $this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')';
}
-
- // line 1105 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r154()
- {
- $this->_retvalue =
- array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor);
+// line 968 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r135(){
+ if ($this->yystack[$this->yyidx + -1]->minor['var'] === '\'smarty\'') {
+ $this->_retvalue = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor;
+ } else {
+ $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor['var']).$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 1114 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r157()
- {
- $this->_retvalue =
- array(trim($this->yystack[ $this->yyidx + -1 ]->minor) . $this->yystack[ $this->yyidx + 0 ]->minor);
}
-
- // line 1119 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r159()
- {
- $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '', 'method');
+// line 977 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r136(){
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 1124 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r160()
- {
- $this->_retvalue =
- array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'method');
- }
-
- // line 1129 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r161()
- {
- $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '');
- }
-
- // line 1134 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r162()
- {
- $this->_retvalue =
- array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'property');
- }
-
- // line 1140 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r163()
- {
- $this->_retvalue =
- array(
- $this->yystack[ $this->yyidx + -2 ]->minor,
- $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor, 'property'
- );
+// line 982 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r137(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 1144 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r164()
- {
- $this->_retvalue = ' ' . trim($this->yystack[ $this->yyidx + 0 ]->minor) . ' ';
+// line 987 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r138(){
+ if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) === '_') {
+ $this->compiler->trigger_template_error (self::ERR1);
}
-
- // line 1163 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r165()
- {
- static $lops = array(
- 'eq' => ' == ',
- 'ne' => ' != ',
- 'neq' => ' != ',
- 'gt' => ' > ',
- 'ge' => ' >= ',
- 'gte' => ' >= ',
- 'lt' => ' < ',
- 'le' => ' <= ',
- 'lte' => ' <= ',
- 'mod' => ' % ',
- 'and' => ' && ',
- 'or' => ' || ',
- 'xor' => ' xor ',
- );
- $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor));
- $this->_retvalue = $lops[ $op ];
- }
-
- // line 1176 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r166()
- {
- static $tlops = array(
- 'isdivby' => array('op' => ' % ', 'pre' => '!('),
- 'isnotdivby' => array('op' => ' % ', 'pre' => '('),
- 'isevenby' => array('op' => ' / ', 'pre' => '!(1 & '),
- 'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '),
- 'isoddby' => array('op' => ' / ', 'pre' => '(1 & '),
- 'isnotoddby' => array('op' => ' / ', 'pre' => '!(1 & '),
- );
- $op = strtolower(preg_replace('/\s*/', '', $this->yystack[ $this->yyidx + 0 ]->minor));
- $this->_retvalue = $tlops[ $op ];
+ $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 1190 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r167()
- {
- static $scond = array(
- 'iseven' => '!(1 & ',
+// line 994 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r139(){
+ if ($this->security) {
+ $this->compiler->trigger_template_error (self::ERR2);
+ }
+ $this->_retvalue = '->{'.$this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor.'}';
+ }
+// line 1001 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r140(){
+ if ($this->security) {
+ $this->compiler->trigger_template_error (self::ERR2);
+ }
+ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
+ }
+// line 1008 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r141(){
+ if ($this->security) {
+ $this->compiler->trigger_template_error (self::ERR2);
+ }
+ $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
+ }
+// line 1016 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r142(){
+ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor;
+ }
+// line 1024 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r143(){
+ $this->_retvalue = $this->compiler->compilePHPFunctionCall($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor);
+ }
+// line 1032 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r144(){
+ if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) === '_') {
+ $this->compiler->trigger_template_error (self::ERR1);
+ }
+ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . '('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')';
+ }
+// line 1039 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r145(){
+ if ($this->security) {
+ $this->compiler->trigger_template_error (self::ERR2);
+ }
+ $prefixVar = $this->compiler->getNewPrefixVariable();
+ $this->compiler->appendPrefixCode("<?php {$prefixVar} = ".$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -3]->minor,1).'\'').';?>');
+ $this->_retvalue = $prefixVar .'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')';
+ }
+// line 1050 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r146(){
+ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor));
+ }
+// line 1067 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r149(){
+ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor)));
+ }
+// line 1071 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r150(){
+ $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor));
+ }
+// line 1079 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r152(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
+ }
+// line 1087 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r153(){
+ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
+ }
+// line 1100 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r156(){
+ $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor);
+ }
+// line 1109 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r158(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '', 'method');
+ }
+// line 1114 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r159(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'method');
+ }
+// line 1119 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r160(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '');
+ }
+// line 1124 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r161(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'property');
+ }
+// line 1129 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r162(){
+ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor, 'property');
+ }
+// line 1135 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r163(){
+ $this->_retvalue = ' '. trim($this->yystack[$this->yyidx + 0]->minor) . ' ';
+ }
+// line 1139 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r164(){
+ static $lops = array(
+ 'eq' => ' == ',
+ 'ne' => ' != ',
+ 'neq' => ' != ',
+ 'gt' => ' > ',
+ 'ge' => ' >= ',
+ 'gte' => ' >= ',
+ 'lt' => ' < ',
+ 'le' => ' <= ',
+ 'lte' => ' <= ',
+ 'mod' => ' % ',
+ 'and' => ' && ',
+ 'or' => ' || ',
+ 'xor' => ' xor ',
+ );
+ $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor));
+ $this->_retvalue = $lops[$op];
+ }
+// line 1158 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r165(){
+ static $tlops = array(
+ 'isdivby' => array('op' => ' % ', 'pre' => '!('),
+ 'isnotdivby' => array('op' => ' % ', 'pre' => '('),
+ 'isevenby' => array('op' => ' / ', 'pre' => '!(1 & '),
+ 'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '),
+ 'isoddby' => array('op' => ' / ', 'pre' => '(1 & '),
+ 'isnotoddby' => array('op' => ' / ', 'pre' => '!(1 & '),
+ );
+ $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor));
+ $this->_retvalue = $tlops[$op];
+ }
+// line 1171 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r166(){
+ static $scond = array (
+ 'iseven' => '!(1 & ',
'isnoteven' => '(1 & ',
- 'isodd' => '(1 & ',
- 'isnotodd' => '!(1 & ',
+ 'isodd' => '(1 & ',
+ 'isnotodd' => '!(1 & ',
);
- $op = strtolower(str_replace(' ', '', $this->yystack[ $this->yyidx + 0 ]->minor));
- $this->_retvalue = $scond[ $op ];
+ $op = strtolower(str_replace(' ', '', $this->yystack[$this->yyidx + 0]->minor));
+ $this->_retvalue = $scond[$op];
}
-
- // line 1201 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r168()
- {
- $this->_retvalue = 'array(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')';
+// line 1185 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r167(){
+ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')';
}
-
- // line 1209 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r171()
- {
- $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . ',' . $this->yystack[ $this->yyidx + 0 ]->minor;
+// line 1196 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r170(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 1213 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r173()
- {
- $this->_retvalue =
- $this->yystack[ $this->yyidx + -2 ]->minor . '=>' . $this->yystack[ $this->yyidx + 0 ]->minor;
+// line 1204 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r172(){
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 1229 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r174()
- {
- $this->_retvalue =
- '\'' . $this->yystack[ $this->yyidx + -2 ]->minor . '\'=>' . $this->yystack[ $this->yyidx + 0 ]->minor;
+// line 1208 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r173(){
+ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor;
}
-
- // line 1235 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r177()
- {
- $this->compiler->leaveDoubleQuote();
- $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor->to_smarty_php($this);
+// line 1224 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r176(){
+ $this->compiler->leaveDoubleQuote();
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php($this);
}
-
- // line 1240 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r178()
- {
- $this->yystack[ $this->yyidx + -1 ]->minor->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor);
- $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor;
+// line 1230 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r177(){
+ $this->yystack[$this->yyidx + -1]->minor->append_subtree($this, $this->yystack[$this->yyidx + 0]->minor);
+ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
}
-
- // line 1244 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r179()
- {
- $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[ $this->yyidx + 0 ]->minor);
+// line 1235 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r178(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[$this->yyidx + 0]->minor);
}
-
- // line 1248 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r180()
- {
- $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)' . $this->yystack[ $this->yyidx + -1 ]->minor);
+// line 1239 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r179(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)'.$this->yystack[$this->yyidx + -1]->minor);
}
-
- // line 1252 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r181()
- {
- $this->_retvalue =
- new Smarty_Internal_ParseTree_Code('(string)(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')');
+// line 1243 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r180(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)('.$this->yystack[$this->yyidx + -1]->minor.')');
}
-
- // line 1264 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r182()
- {
- $this->_retvalue =
- new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\'' .
- substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) .
- '\']->value');
+// line 1247 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r181(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value');
}
-
- // line 1268 "../smarty/lexer/smarty_internal_templateparser.y"
- public function yy_r185()
- {
- $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[ $this->yyidx + 0 ]->minor);
+// line 1259 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r184(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[$this->yyidx + 0]->minor);
}
-
- public function yy_r186()
- {
- $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[ $this->yyidx + 0 ]->minor);
+// line 1263 "../smarty/lexer/smarty_internal_templateparser.y"
+ public function yy_r185(){
+ $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[$this->yyidx + 0]->minor);
}
+ private $_retvalue;
+
public function yy_reduce($yyruleno)
{
if ($this->yyTraceFILE && $yyruleno >= 0
- && $yyruleno < count(self::$yyRuleName)) {
+ && $yyruleno < count(self::$yyRuleName)) {
fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n",
$this->yyTracePrompt, $yyruleno,
- self::$yyRuleName[ $yyruleno ]);
+ self::$yyRuleName[$yyruleno]);
}
+
$this->_retvalue = $yy_lefthand_side = null;
- if (isset(self::$yyReduceMap[ $yyruleno ])) {
+ if (isset(self::$yyReduceMap[$yyruleno])) {
// call the action
$this->_retvalue = null;
- $this->{'yy_r' . self::$yyReduceMap[ $yyruleno ]}();
+ $this->{'yy_r' . self::$yyReduceMap[$yyruleno]}();
$yy_lefthand_side = $this->_retvalue;
}
- $yygoto = self::$yyRuleInfo[ $yyruleno ][ 0 ];
- $yysize = self::$yyRuleInfo[ $yyruleno ][ 1 ];
+ $yygoto = self::$yyRuleInfo[$yyruleno][0];
+ $yysize = self::$yyRuleInfo[$yyruleno][1];
$this->yyidx -= $yysize;
for ($i = $yysize; $i; $i--) {
// pop all of the right-hand side parameters
array_pop($this->yystack);
}
- $yyact = $this->yy_find_reduce_action($this->yystack[ $this->yyidx ]->stateno, $yygoto);
+ $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
if ($yyact < self::YYNSTATE) {
if (!$this->yyTraceFILE && $yysize) {
$this->yyidx++;
@@ -3492,7 +2792,7 @@ class Smarty_Internal_Templateparser
$x->stateno = $yyact;
$x->major = $yygoto;
$x->minor = $yy_lefthand_side;
- $this->yystack[ $this->yyidx ] = $x;
+ $this->yystack[$this->yyidx] = $x;
} else {
$this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
}
@@ -3505,37 +2805,38 @@ class Smarty_Internal_Templateparser
{
if ($this->yyTraceFILE) {
fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
- }
- while ($this->yyidx >= 0) {
+ } while ($this->yyidx >= 0) {
$this->yy_pop_parser_stack();
}
}
public function yy_syntax_error($yymajor, $TOKEN)
{
- // line 214 "../smarty/lexer/smarty_internal_templateparser.y"
- $this->internalError = true;
- $this->yymajor = $yymajor;
- $this->compiler->trigger_template_error();
+// line 213 "../smarty/lexer/smarty_internal_templateparser.y"
+
+ $this->internalError = true;
+ $this->yymajor = $yymajor;
+ $this->compiler->trigger_template_error();
}
public function yy_accept()
{
if ($this->yyTraceFILE) {
fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
- }
- while ($this->yyidx >= 0) {
+ } while ($this->yyidx >= 0) {
$this->yy_pop_parser_stack();
}
- // line 207 "../smarty/lexer/smarty_internal_templateparser.y"
- $this->successful = !$this->internalError;
- $this->internalError = false;
- $this->retvalue = $this->_retvalue;
+// line 206 "../smarty/lexer/smarty_internal_templateparser.y"
+
+ $this->successful = !$this->internalError;
+ $this->internalError = false;
+ $this->retvalue = $this->_retvalue;
}
public function doParse($yymajor, $yytokenvalue)
{
$yyerrorhit = 0; /* True if yymajor has invoked an error */
+
if ($this->yyidx === null || $this->yyidx < 0) {
$this->yyidx = 0;
$this->yyerrcnt = -1;
@@ -3545,15 +2846,17 @@ class Smarty_Internal_Templateparser
$this->yystack = array();
$this->yystack[] = $x;
}
- $yyendofinput = ($yymajor == 0);
+ $yyendofinput = ($yymajor==0);
+
if ($this->yyTraceFILE) {
fprintf($this->yyTraceFILE, "%sInput %s\n",
- $this->yyTracePrompt, $this->yyTokenName[ $yymajor ]);
+ $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
}
+
do {
$yyact = $this->yy_find_shift_action($yymajor);
if ($yymajor < self::YYERRORSYMBOL &&
- !$this->yy_is_expected_token($yymajor)) {
+ !$this->yy_is_expected_token($yymajor)) {
// force a syntax error
$yyact = self::YY_ERROR_ACTION;
}
@@ -3576,22 +2879,22 @@ class Smarty_Internal_Templateparser
if ($this->yyerrcnt < 0) {
$this->yy_syntax_error($yymajor, $yytokenvalue);
}
- $yymx = $this->yystack[ $this->yyidx ]->major;
+ $yymx = $this->yystack[$this->yyidx]->major;
if ($yymx === self::YYERRORSYMBOL || $yyerrorhit) {
if ($this->yyTraceFILE) {
fprintf($this->yyTraceFILE, "%sDiscard input token %s\n",
- $this->yyTracePrompt, $this->yyTokenName[ $yymajor ]);
+ $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
}
$this->yy_destructor($yymajor, $yytokenvalue);
$yymajor = self::YYNOCODE;
} else {
while ($this->yyidx >= 0 &&
- $yymx !== self::YYERRORSYMBOL &&
- ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
- ) {
+ $yymx !== self::YYERRORSYMBOL &&
+ ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
+ ){
$this->yy_pop_parser_stack();
}
- if ($this->yyidx < 0 || $yymajor == 0) {
+ if ($this->yyidx < 0 || $yymajor==0) {
$this->yy_destructor($yymajor, $yytokenvalue);
$this->yy_parse_failed();
$yymajor = self::YYNOCODE;
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_testinstall.php b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_testinstall.php
index 504a4582c..1fac79b74 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_internal_testinstall.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_internal_testinstall.php
@@ -362,7 +362,6 @@ class Smarty_Internal_TestInstall
'smarty_internal_compile_function.php' => true,
'smarty_internal_compile_if.php' => true,
'smarty_internal_compile_include.php' => true,
- 'smarty_internal_compile_include_php.php' => true,
'smarty_internal_compile_insert.php' => true,
'smarty_internal_compile_ldelim.php' => true,
'smarty_internal_compile_make_nocache.php' => true,
@@ -373,7 +372,6 @@ class Smarty_Internal_TestInstall
'smarty_internal_compile_private_modifier.php' => true,
'smarty_internal_compile_private_object_block_function.php' => true,
'smarty_internal_compile_private_object_function.php' => true,
- 'smarty_internal_compile_private_php.php' => true,
'smarty_internal_compile_private_print_expression.php' => true,
'smarty_internal_compile_private_registered_block.php' => true,
'smarty_internal_compile_private_registered_function.php' => true,
@@ -388,7 +386,6 @@ class Smarty_Internal_TestInstall
'smarty_internal_config_file_compiler.php' => true,
'smarty_internal_data.php' => true,
'smarty_internal_debug.php' => true,
- 'smarty_internal_errorhandler.php' => true,
'smarty_internal_extension_handler.php' => true,
'smarty_internal_method_addautoloadfilters.php' => true,
'smarty_internal_method_adddefaultmodifiers.php' => true,
@@ -450,7 +447,6 @@ class Smarty_Internal_TestInstall
'smarty_internal_resource_extends.php' => true,
'smarty_internal_resource_file.php' => true,
'smarty_internal_resource_php.php' => true,
- 'smarty_internal_resource_registered.php' => true,
'smarty_internal_resource_stream.php' => true,
'smarty_internal_resource_string.php' => true,
'smarty_internal_runtime_cachemodify.php' => true,
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_resource.php b/vendor/smarty/smarty/libs/sysplugins/smarty_resource.php
index aae7e42f7..7fe84536f 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_resource.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_resource.php
@@ -72,9 +72,7 @@ abstract class Smarty_Resource
}
// try registered resource
if (isset($smarty->registered_resources[ $type ])) {
- return $smarty->_cache[ 'resource_handlers' ][ $type ] =
- $smarty->registered_resources[ $type ] instanceof Smarty_Resource ?
- $smarty->registered_resources[ $type ] : new Smarty_Internal_Resource_Registered();
+ return $smarty->_cache[ 'resource_handlers' ][ $type ] = $smarty->registered_resources[ $type ];
}
// try sysplugins dir
if (isset(self::$sysplugins[ $type ])) {
diff --git a/vendor/smarty/smarty/libs/sysplugins/smarty_security.php b/vendor/smarty/smarty/libs/sysplugins/smarty_security.php
index 441a7e284..3c29c8132 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smarty_security.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smarty_security.php
@@ -21,19 +21,6 @@
*/
class Smarty_Security
{
- /**
- * This determines how Smarty handles "<?php ... ?>" tags in templates.
- * possible values:
- * <ul>
- * <li>Smarty::PHP_PASSTHRU -> echo PHP tags as they are</li>
- * <li>Smarty::PHP_QUOTE -> escape tags as entities</li>
- * <li>Smarty::PHP_REMOVE -> remove php tags</li>
- * <li>Smarty::PHP_ALLOW -> execute php tags</li>
- * </ul>
- *
- * @var integer
- */
- public $php_handling = Smarty::PHP_PASSTHRU;
/**
* This is the list of template directories that are considered secure.
diff --git a/vendor/smarty/smarty/libs/sysplugins/smartycompilerexception.php b/vendor/smarty/smarty/libs/sysplugins/smartycompilerexception.php
index f7ad39b93..8833aa52c 100644
--- a/vendor/smarty/smarty/libs/sysplugins/smartycompilerexception.php
+++ b/vendor/smarty/smarty/libs/sysplugins/smartycompilerexception.php
@@ -16,12 +16,12 @@ class SmartyCompilerException extends SmartyException
}
/**
- * The line number of the template error
- *
- * @type int|null
+ * @param int $line
*/
- public $line = null;
-
+ public function setLine($line)
+ {
+ $this->line = $line;
+ }
/**
* The template source snippet relating to the error
*