From c1a3437f9b2c4c279afd0ae601ef9a3cda1bb29c Mon Sep 17 00:00:00 2001 From: genuineparts Date: Mon, 2 Jun 2025 22:38:25 +0200 Subject: [PATCH] Massive upgrade --- .htaccess | 4 +- class_templates/ajax_module.template.php | 19 +- class_templates/page_module.template.php | 16 +- core/init_core.inc.php | 35 +- core/template/Autoloader.php | 110 - core/template/Smarty.class.php | 1377 ------- core/template/SmartyBC.class.php | 474 --- core/template/bootstrap.php | 17 - core/template/libs/Smarty.class.php | 45 + core/template/plugins/block.textformat.php | 117 - core/template/plugins/function.counter.php | 73 - core/template/plugins/function.cycle.php | 105 - core/template/plugins/function.fetch.php | 221 - .../plugins/function.html_checkboxes.php | 262 -- core/template/plugins/function.html_image.php | 165 - .../plugins/function.html_options.php | 225 - .../template/plugins/function.html_radios.php | 245 -- .../plugins/function.html_select_date.php | 393 -- .../plugins/function.html_select_time.php | 370 -- core/template/plugins/function.html_table.php | 182 - core/template/plugins/function.mailto.php | 153 - core/template/plugins/function.math.php | 109 - core/template/plugins/modifier.capitalize.php | 118 - .../template/plugins/modifier.date_format.php | 83 - .../plugins/modifier.debug_print_var.php | 112 - core/template/plugins/modifier.escape.php | 235 -- .../template/plugins/modifier.mb_wordwrap.php | 75 - .../plugins/modifier.regex_replace.php | 58 - core/template/plugins/modifier.replace.php | 39 - core/template/plugins/modifier.spacify.php | 27 - core/template/plugins/modifier.truncate.php | 66 - .../template/plugins/modifiercompiler.cat.php | 29 - .../modifiercompiler.count_characters.php | 32 - .../modifiercompiler.count_paragraphs.php | 27 - .../modifiercompiler.count_sentences.php | 27 - .../plugins/modifiercompiler.count_words.php | 32 - .../plugins/modifiercompiler.default.php | 35 - .../plugins/modifiercompiler.escape.php | 115 - .../plugins/modifiercompiler.from_charset.php | 33 - .../plugins/modifiercompiler.indent.php | 33 - .../plugins/modifiercompiler.lower.php | 31 - .../plugins/modifiercompiler.noprint.php | 21 - .../modifiercompiler.string_format.php | 25 - .../plugins/modifiercompiler.strip.php | 33 - .../plugins/modifiercompiler.strip_tags.php | 29 - .../plugins/modifiercompiler.to_charset.php | 33 - .../plugins/modifiercompiler.unescape.php | 50 - .../plugins/modifiercompiler.upper.php | 29 - .../plugins/modifiercompiler.wordwrap.php | 39 - .../plugins/outputfilter.trimwhitespace.php | 89 - .../plugins/shared.escape_special_chars.php | 34 - .../plugins/shared.literal_compiler_param.php | 36 - .../plugins/shared.make_timestamp.php | 45 - .../plugins/shared.mb_str_replace.php | 53 - core/template/plugins/shared.mb_unicode.php | 54 - core/template/plugins/shared.mb_wordwrap.php | 73 - .../variablefilter.htmlspecialchars.php | 19 - core/template/src/BlockHandler/Base.php | 19 + .../BlockHandler/BlockHandlerInterface.php | 10 + .../src/BlockHandler/BlockPluginWrapper.php | 19 + core/template/src/BlockHandler/TextFormat.php | 110 + core/template/src/Cacheresource/Base.php | 156 + core/template/src/Cacheresource/Custom.php | 303 ++ core/template/src/Cacheresource/File.php | 338 ++ .../Cacheresource/KeyValueStore.php} | 289 +- core/template/src/Compile/Base.php | 233 ++ core/template/src/Compile/BlockCompiler.php | 228 ++ .../src/Compile/CompilerInterface.php | 26 + .../Compile/DefaultHandlerBlockCompiler.php | 29 + .../DefaultHandlerFunctionCallCompiler.php | 47 + .../src/Compile/FunctionCallCompiler.php | 79 + .../src/Compile/Modifier/BCPluginWrapper.php | 19 + core/template/src/Compile/Modifier/Base.php | 49 + .../Compile/Modifier/CatModifierCompiler.php | 25 + .../CountCharactersModifierCompiler.php | 21 + .../CountParagraphsModifierCompiler.php | 19 + .../CountSentencesModifierCompiler.php | 19 + .../Modifier/CountWordsModifierCompiler.php | 20 + .../Modifier/DefaultModifierCompiler.php | 26 + .../Modifier/EmptyModifierCompiler.php | 19 + .../Modifier/EscapeModifierCompiler.php | 66 + .../Modifier/FromCharsetModifierCompiler.php | 21 + .../Modifier/IndentModifierCompiler.php | 24 + .../Modifier/IsArrayModifierCompiler.php | 19 + .../Modifier/IssetModifierCompiler.php | 25 + .../Modifier/JsonEncodeModifierCompiler.php | 14 + .../Modifier/LowerModifierCompiler.php | 19 + .../Modifier/ModifierCompilerInterface.php | 17 + .../Modifier/Nl2brModifierCompiler.php | 17 + .../Modifier/NoPrintModifierCompiler.php | 18 + .../Compile/Modifier/RawModifierCompiler.php | 21 + .../Modifier/RoundModifierCompiler.php | 18 + .../Modifier/StrRepeatModifierCompiler.php | 17 + .../Modifier/StringFormatModifierCompiler.php | 18 + .../Modifier/StripModifierCompiler.php | 24 + .../Modifier/StripTagsModifierCompiler.php | 22 + .../Modifier/StrlenModifierCompiler.php | 18 + .../Modifier/SubstrModifierCompiler.php | 15 + .../Modifier/ToCharsetModifierCompiler.php | 21 + .../Modifier/UnescapeModifierCompiler.php | 34 + .../Modifier/UpperModifierCompiler.php | 18 + .../Modifier/WordWrapModifierCompiler.php | 27 + .../template/src/Compile/ModifierCompiler.php | 95 + .../src/Compile/ObjectMethodBlockCompiler.php | 44 + .../src/Compile/ObjectMethodCallCompiler.php | 76 + .../src/Compile/PrintExpressionCompiler.php | 96 + .../src/Compile/SpecialVariableCompiler.php | 134 + .../Compile/Tag/Append.php} | 38 +- core/template/src/Compile/Tag/Assign.php | 95 + .../src/Compile/Tag/BCPluginWrapper.php | 31 + core/template/src/Compile/Tag/Block.php | 92 + core/template/src/Compile/Tag/BlockClose.php | 110 + core/template/src/Compile/Tag/BreakTag.php | 123 + core/template/src/Compile/Tag/Call.php | 81 + core/template/src/Compile/Tag/Capture.php | 72 + .../template/src/Compile/Tag/CaptureClose.php | 43 + core/template/src/Compile/Tag/ConfigLoad.php | 77 + core/template/src/Compile/Tag/ContinueTag.php | 27 + core/template/src/Compile/Tag/Debug.php | 45 + core/template/src/Compile/Tag/ElseIfTag.php | 86 + core/template/src/Compile/Tag/ElseTag.php | 29 + core/template/src/Compile/Tag/EvalTag.php | 74 + core/template/src/Compile/Tag/ExtendsTag.php | 87 + core/template/src/Compile/Tag/ForClose.php | 51 + core/template/src/Compile/Tag/ForElse.php | 30 + core/template/src/Compile/Tag/ForTag.php | 101 + .../template/src/Compile/Tag/ForeachClose.php | 55 + core/template/src/Compile/Tag/ForeachElse.php | 35 + .../src/Compile/Tag/ForeachSection.php | 206 + core/template/src/Compile/Tag/ForeachTag.php | 286 ++ .../src/Compile/Tag/FunctionClose.php | 164 + core/template/src/Compile/Tag/FunctionTag.php | 73 + core/template/src/Compile/Tag/IfClose.php | 48 + core/template/src/Compile/Tag/IfTag.php | 70 + core/template/src/Compile/Tag/IncludeTag.php | 189 + core/template/src/Compile/Tag/Inheritance.php | 54 + core/template/src/Compile/Tag/Ldelim.php | 41 + core/template/src/Compile/Tag/Nocache.php | 36 + .../template/src/Compile/Tag/NocacheClose.php | 37 + core/template/src/Compile/Tag/Rdelim.php | 36 + core/template/src/Compile/Tag/Section.php | 399 ++ .../template/src/Compile/Tag/SectionClose.php | 48 + core/template/src/Compile/Tag/SectionElse.php | 29 + core/template/src/Compile/Tag/Setfilter.php | 40 + .../src/Compile/Tag/SetfilterClose.php | 43 + core/template/src/Compile/Tag/WhileClose.php | 45 + core/template/src/Compile/Tag/WhileTag.php | 72 + core/template/src/Compiler/BaseCompiler.php | 23 + core/template/src/Compiler/CodeFrame.php | 126 + core/template/src/Compiler/Configfile.php | 173 + core/template/src/Compiler/Template.php | 1512 +++++++ core/template/src/CompilerException.php | 73 + core/template/src/Data.php | 521 +++ .../Debug.php} | 233 +- core/template/src/ErrorHandler.php | 97 + core/template/src/Exception.php | 16 + .../src/Extension/BCPluginsAdapter.php | 229 ++ core/template/src/Extension/Base.php | 41 + .../src/Extension/CallbackWrapper.php | 35 + core/template/src/Extension/CoreExtension.php | 49 + .../src/Extension/DefaultExtension.php | 757 ++++ .../src/Extension/ExtensionInterface.php | 83 + core/template/src/Filter/FilterInterface.php | 9 + .../src/Filter/FilterPluginWrapper.php | 15 + core/template/src/Filter/Output/Lang.php | 27 + .../src/Filter/Output/TrimWhitespace.php | 91 + .../Filter}/outputfilter.lang.php | 0 .../src/FunctionHandler/BCPluginWrapper.php | 21 + core/template/src/FunctionHandler/Base.php | 21 + core/template/src/FunctionHandler/Count.php | 36 + core/template/src/FunctionHandler/Counter.php | 61 + core/template/src/FunctionHandler/Cycle.php | 90 + core/template/src/FunctionHandler/Fetch.php | 203 + .../FunctionHandlerInterface.php | 10 + .../template/src/FunctionHandler/HtmlBase.php | 107 + .../src/FunctionHandler/HtmlCheckboxes.php | 189 + .../src/FunctionHandler/HtmlImage.php | 149 + .../src/FunctionHandler/HtmlOptions.php | 223 + .../src/FunctionHandler/HtmlRadios.php | 174 + .../src/FunctionHandler/HtmlSelectDate.php | 381 ++ .../src/FunctionHandler/HtmlSelectTime.php | 334 ++ .../src/FunctionHandler/HtmlTable.php | 161 + core/template/src/FunctionHandler/Mailto.php | 141 + core/template/src/FunctionHandler/Math.php | 140 + .../Lexer/ConfigfileLexer.php} | 622 +-- core/template/src/Lexer/ConfigfileLexer.plex | 321 ++ core/template/src/Lexer/TemplateLexer.php | 1083 +++++ core/template/src/Lexer/TemplateLexer.plex | 677 ++++ core/template/src/ParseTree/Base.php | 45 + .../ParseTree/Code.php} | 17 +- core/template/src/ParseTree/Dq.php | 97 + .../ParseTree/DqContent.php} | 20 +- .../ParseTree/Tag.php} | 31 +- core/template/src/ParseTree/Template.php | 172 + core/template/src/ParseTree/Text.php | 59 + core/template/src/Parser/ConfigfileParser.php | 972 +++++ core/template/src/Parser/ConfigfileParser.y | 352 ++ core/template/src/Parser/TemplateParser.php | 3178 +++++++++++++++ core/template/src/Parser/TemplateParser.y | 1394 +++++++ core/template/src/Resource/BasePlugin.php | 145 + core/template/src/Resource/CustomPlugin.php | 105 + .../Resource/ExtendsPlugin.php} | 78 +- core/template/src/Resource/FilePlugin.php | 183 + .../src/Resource/RecompiledPlugin.php | 50 + core/template/src/Resource/StreamPlugin.php | 71 + .../Resource/StringEval.php} | 52 +- core/template/src/Resource/StringPlugin.php | 94 + .../Runtime/Block.php} | 20 +- core/template/src/Runtime/CaptureRuntime.php | 163 + .../Runtime/DefaultPluginHandlerRuntime.php | 73 + core/template/src/Runtime/ForeachRuntime.php | 160 + .../src/Runtime/InheritanceRuntime.php | 243 ++ .../src/Runtime/TplFunctionRuntime.php | 144 + core/template/src/Security.php | 560 +++ core/template/src/Smarty.php | 2239 ++++++++++ core/template/src/Template.php | 732 ++++ core/template/src/Template/Cached.php | 428 ++ core/template/src/Template/Compiled.php | 305 ++ core/template/src/Template/Config.php | 36 + .../src/Template/GeneratedPhpFile.php | 159 + core/template/src/Template/Source.php | 285 ++ core/template/src/TemplateBase.php | 425 ++ core/template/src/TestInstall.php | 211 + core/template/src/UndefinedVariable.php | 19 + core/template/src/Variable.php | 118 + core/template/{ => src}/debug.tpl | 60 +- core/template/src/functions.php | 253 ++ .../sysplugins/smarty_cacheresource.php | 220 - .../smarty_cacheresource_custom.php | 276 -- core/template/sysplugins/smarty_data.php | 68 - .../smarty_internal_cacheresource_file.php | 229 -- .../smarty_internal_compile_assign.php | 94 - .../smarty_internal_compile_block.php | 176 - .../smarty_internal_compile_block_child.php | 24 - .../smarty_internal_compile_block_parent.php | 31 - .../smarty_internal_compile_break.php | 119 - .../smarty_internal_compile_call.php | 89 - .../smarty_internal_compile_capture.php | 112 - .../smarty_internal_compile_child.php | 77 - .../smarty_internal_compile_config_load.php | 98 - .../smarty_internal_compile_continue.php | 25 - .../smarty_internal_compile_debug.php | 42 - .../smarty_internal_compile_eval.php | 71 - .../smarty_internal_compile_extends.php | 151 - .../smarty_internal_compile_for.php | 170 - .../smarty_internal_compile_foreach.php | 343 -- .../smarty_internal_compile_function.php | 209 - .../sysplugins/smarty_internal_compile_if.php | 209 - .../smarty_internal_compile_include.php | 331 -- .../smarty_internal_compile_include_php.php | 106 - .../smarty_internal_compile_insert.php | 150 - .../smarty_internal_compile_ldelim.php | 37 - .../smarty_internal_compile_make_nocache.php | 62 - .../smarty_internal_compile_nocache.php | 75 - .../smarty_internal_compile_parent.php | 32 - ..._internal_compile_private_block_plugin.php | 119 - ...nternal_compile_private_foreachsection.php | 226 -- ...ternal_compile_private_function_plugin.php | 74 - ...arty_internal_compile_private_modifier.php | 152 - ..._compile_private_object_block_function.php | 42 - ...ternal_compile_private_object_function.php | 82 - .../smarty_internal_compile_private_php.php | 214 - ...ernal_compile_private_print_expression.php | 147 - ...ernal_compile_private_registered_block.php | 72 - ...al_compile_private_registered_function.php | 86 - ...ernal_compile_private_special_variable.php | 126 - .../smarty_internal_compile_rdelim.php | 34 - .../smarty_internal_compile_section.php | 461 --- .../smarty_internal_compile_setfilter.php | 70 - ...ty_internal_compile_shared_inheritance.php | 48 - .../smarty_internal_compile_while.php | 100 - .../smarty_internal_compilebase.php | 195 - .../smarty_internal_config_file_compiler.php | 202 - .../smarty_internal_configfileparser.php | 999 ----- .../sysplugins/smarty_internal_data.php | 286 -- .../smarty_internal_errorhandler.php | 112 - .../smarty_internal_extension_clear.php | 126 - .../smarty_internal_extension_handler.php | 196 - ...rty_internal_method_addautoloadfilters.php | 52 - ...ty_internal_method_adddefaultmodifiers.php | 42 - .../smarty_internal_method_append.php | 74 - .../smarty_internal_method_appendbyref.php | 50 - .../smarty_internal_method_assignbyref.php | 36 - .../smarty_internal_method_assignglobal.php | 43 - .../smarty_internal_method_clearallassign.php | 37 - .../smarty_internal_method_clearallcache.php | 41 - .../smarty_internal_method_clearassign.php | 44 - .../smarty_internal_method_clearcache.php | 45 - ..._internal_method_clearcompiledtemplate.php | 128 - .../smarty_internal_method_clearconfig.php | 41 - ...marty_internal_method_compileallconfig.php | 33 - ...ty_internal_method_compilealltemplates.php | 125 - .../smarty_internal_method_configload.php | 184 - .../smarty_internal_method_createdata.php | 44 - ...rty_internal_method_getautoloadfilters.php | 37 - ...arty_internal_method_getconfigvariable.php | 34 - .../smarty_internal_method_getconfigvars.php | 58 - ...marty_internal_method_getdebugtemplate.php | 35 - ...ty_internal_method_getdefaultmodifiers.php | 35 - .../smarty_internal_method_getglobal.php | 47 - ...ty_internal_method_getregisteredobject.php | 44 - ...arty_internal_method_getstreamvariable.php | 51 - .../smarty_internal_method_gettags.php | 63 - ...smarty_internal_method_gettemplatevars.php | 113 - .../smarty_internal_method_literals.php | 98 - .../smarty_internal_method_loadfilter.php | 77 - .../smarty_internal_method_loadplugin.php | 111 - .../smarty_internal_method_mustcompile.php | 51 - ..._internal_method_registercacheresource.php | 40 - .../smarty_internal_method_registerclass.php | 46 - ...al_method_registerdefaultconfighandler.php | 42 - ...al_method_registerdefaultpluginhandler.php | 43 - ..._method_registerdefaulttemplatehandler.php | 82 - .../smarty_internal_method_registerfilter.php | 88 - .../smarty_internal_method_registerobject.php | 72 - .../smarty_internal_method_registerplugin.php | 51 - ...marty_internal_method_registerresource.php | 44 - ...rty_internal_method_setautoloadfilters.php | 71 - ...marty_internal_method_setdebugtemplate.php | 41 - ...ty_internal_method_setdefaultmodifiers.php | 38 - .../smarty_internal_method_unloadfilter.php | 43 - ...nternal_method_unregistercacheresource.php | 40 - ...marty_internal_method_unregisterfilter.php | 43 - ...marty_internal_method_unregisterobject.php | 40 - ...marty_internal_method_unregisterplugin.php | 41 - ...rty_internal_method_unregisterresource.php | 40 - .../smarty_internal_nocache_insert.php | 52 - .../sysplugins/smarty_internal_parsetree.php | 54 - .../smarty_internal_parsetree_dq.php | 95 - .../smarty_internal_parsetree_template.php | 128 - .../smarty_internal_parsetree_text.php | 40 - .../smarty_internal_resource_file.php | 178 - .../smarty_internal_resource_php.php | 111 - .../smarty_internal_resource_registered.php | 99 - .../smarty_internal_resource_stream.php | 81 - .../smarty_internal_resource_string.php | 110 - .../smarty_internal_runtime_cachemodify.php | 71 - ...rty_internal_runtime_cacheresourcefile.php | 138 - .../smarty_internal_runtime_capture.php | 169 - .../smarty_internal_runtime_codeframe.php | 95 - .../smarty_internal_runtime_filterhandler.php | 69 - .../smarty_internal_runtime_foreach.php | 151 - ...smarty_internal_runtime_getincludepath.php | 175 - .../smarty_internal_runtime_hhvm.php | 30 - .../smarty_internal_runtime_inheritance.php | 250 -- .../smarty_internal_runtime_make_nocache.php | 56 - .../smarty_internal_runtime_subtemplate.php | 203 - .../smarty_internal_runtime_tplfunction.php | 169 - .../smarty_internal_runtime_updatecache.php | 177 - .../smarty_internal_runtime_updatescope.php | 115 - ...arty_internal_runtime_validatecompiled.php | 86 - .../smarty_internal_runtime_var.php | 33 - .../smarty_internal_runtime_writefile.php | 99 - ...smarty_internal_smartytemplatecompiler.php | 174 - .../sysplugins/smarty_internal_template.php | 719 ---- .../smarty_internal_templatebase.php | 379 -- .../smarty_internal_templatecompilerbase.php | 1631 -------- .../smarty_internal_templatelexer.php | 1046 ----- .../smarty_internal_templateparser.php | 3605 ----------------- .../smarty_internal_testinstall.php | 607 --- .../sysplugins/smarty_internal_undefined.php | 68 - core/template/sysplugins/smarty_resource.php | 252 -- .../sysplugins/smarty_resource_custom.php | 95 - .../sysplugins/smarty_resource_recompiled.php | 95 - .../sysplugins/smarty_resource_uncompiled.php | 49 - core/template/sysplugins/smarty_security.php | 733 ---- .../sysplugins/smarty_template_cached.php | 257 -- .../sysplugins/smarty_template_compiled.php | 258 -- .../sysplugins/smarty_template_config.php | 99 - .../smarty_template_resource_base.php | 153 - .../sysplugins/smarty_template_source.php | 212 - .../sysplugins/smarty_undefined_variable.php | 33 - core/template/sysplugins/smarty_variable.php | 48 - .../sysplugins/smartycompilerexception.php | 45 - core/template/sysplugins/smartyexception.php | 19 - forumplugins/forumsnav.php | 56 +- inc/ajax.class.php | 12 +- inc/cache.class.php | 2 +- inc/core.class.php | 8 +- inc/plugin.class.php | 8 +- inc/sessions.class.php | 9 +- modules/ajaxpm/ajaxpm.ajax.php | 16 +- modules/ajaxpm/ajaxpm.module.php | 6 +- modules/captcha/captcha.module.php | 92 - modules/chat/chat.module.php | 6 +- modules/chat/chat.output.php | 9 +- modules/chat/chat_ws.js | 10 +- modules/chat/chatfunctions.inc.php | 4 +- modules/chat/js/modernizr.js | 4 + modules/chat/templates/default/chat.tpl | 4 +- .../chat/templates/default/chat_full_ws.tpl | 4 +- .../chat/templates/default/chat_header.tpl | 6 +- modules/mybbnews/mybbnews.plugins.php | 18 +- modules/text/text.output.php | 1 + template_1.txt | 616 +-- themes/austria/footer.tpl | 20 +- 396 files changed, 29083 insertions(+), 31939 deletions(-) delete mode 100644 core/template/Autoloader.php delete mode 100644 core/template/Smarty.class.php delete mode 100644 core/template/SmartyBC.class.php delete mode 100644 core/template/bootstrap.php create mode 100644 core/template/libs/Smarty.class.php delete mode 100644 core/template/plugins/block.textformat.php delete mode 100644 core/template/plugins/function.counter.php delete mode 100644 core/template/plugins/function.cycle.php delete mode 100644 core/template/plugins/function.fetch.php delete mode 100644 core/template/plugins/function.html_checkboxes.php delete mode 100644 core/template/plugins/function.html_image.php delete mode 100644 core/template/plugins/function.html_options.php delete mode 100644 core/template/plugins/function.html_radios.php delete mode 100644 core/template/plugins/function.html_select_date.php delete mode 100644 core/template/plugins/function.html_select_time.php delete mode 100644 core/template/plugins/function.html_table.php delete mode 100644 core/template/plugins/function.mailto.php delete mode 100644 core/template/plugins/function.math.php delete mode 100644 core/template/plugins/modifier.capitalize.php delete mode 100644 core/template/plugins/modifier.date_format.php delete mode 100644 core/template/plugins/modifier.debug_print_var.php delete mode 100644 core/template/plugins/modifier.escape.php delete mode 100644 core/template/plugins/modifier.mb_wordwrap.php delete mode 100644 core/template/plugins/modifier.regex_replace.php delete mode 100644 core/template/plugins/modifier.replace.php delete mode 100644 core/template/plugins/modifier.spacify.php delete mode 100644 core/template/plugins/modifier.truncate.php delete mode 100644 core/template/plugins/modifiercompiler.cat.php delete mode 100644 core/template/plugins/modifiercompiler.count_characters.php delete mode 100644 core/template/plugins/modifiercompiler.count_paragraphs.php delete mode 100644 core/template/plugins/modifiercompiler.count_sentences.php delete mode 100644 core/template/plugins/modifiercompiler.count_words.php delete mode 100644 core/template/plugins/modifiercompiler.default.php delete mode 100644 core/template/plugins/modifiercompiler.escape.php delete mode 100644 core/template/plugins/modifiercompiler.from_charset.php delete mode 100644 core/template/plugins/modifiercompiler.indent.php delete mode 100644 core/template/plugins/modifiercompiler.lower.php delete mode 100644 core/template/plugins/modifiercompiler.noprint.php delete mode 100644 core/template/plugins/modifiercompiler.string_format.php delete mode 100644 core/template/plugins/modifiercompiler.strip.php delete mode 100644 core/template/plugins/modifiercompiler.strip_tags.php delete mode 100644 core/template/plugins/modifiercompiler.to_charset.php delete mode 100644 core/template/plugins/modifiercompiler.unescape.php delete mode 100644 core/template/plugins/modifiercompiler.upper.php delete mode 100644 core/template/plugins/modifiercompiler.wordwrap.php delete mode 100644 core/template/plugins/outputfilter.trimwhitespace.php delete mode 100644 core/template/plugins/shared.escape_special_chars.php delete mode 100644 core/template/plugins/shared.literal_compiler_param.php delete mode 100644 core/template/plugins/shared.make_timestamp.php delete mode 100644 core/template/plugins/shared.mb_str_replace.php delete mode 100644 core/template/plugins/shared.mb_unicode.php delete mode 100644 core/template/plugins/shared.mb_wordwrap.php delete mode 100644 core/template/plugins/variablefilter.htmlspecialchars.php create mode 100644 core/template/src/BlockHandler/Base.php create mode 100644 core/template/src/BlockHandler/BlockHandlerInterface.php create mode 100644 core/template/src/BlockHandler/BlockPluginWrapper.php create mode 100644 core/template/src/BlockHandler/TextFormat.php create mode 100644 core/template/src/Cacheresource/Base.php create mode 100644 core/template/src/Cacheresource/Custom.php create mode 100644 core/template/src/Cacheresource/File.php rename core/template/{sysplugins/smarty_cacheresource_keyvaluestore.php => src/Cacheresource/KeyValueStore.php} (61%) create mode 100644 core/template/src/Compile/Base.php create mode 100644 core/template/src/Compile/BlockCompiler.php create mode 100644 core/template/src/Compile/CompilerInterface.php create mode 100644 core/template/src/Compile/DefaultHandlerBlockCompiler.php create mode 100644 core/template/src/Compile/DefaultHandlerFunctionCallCompiler.php create mode 100644 core/template/src/Compile/FunctionCallCompiler.php create mode 100644 core/template/src/Compile/Modifier/BCPluginWrapper.php create mode 100644 core/template/src/Compile/Modifier/Base.php create mode 100644 core/template/src/Compile/Modifier/CatModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/CountCharactersModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/CountParagraphsModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/CountSentencesModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/CountWordsModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/DefaultModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/EmptyModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/EscapeModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/FromCharsetModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/IndentModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/IsArrayModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/IssetModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/JsonEncodeModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/LowerModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/ModifierCompilerInterface.php create mode 100644 core/template/src/Compile/Modifier/Nl2brModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/NoPrintModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/RawModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/RoundModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/StrRepeatModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/StringFormatModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/StripModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/StripTagsModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/StrlenModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/SubstrModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/ToCharsetModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/UnescapeModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/UpperModifierCompiler.php create mode 100644 core/template/src/Compile/Modifier/WordWrapModifierCompiler.php create mode 100644 core/template/src/Compile/ModifierCompiler.php create mode 100644 core/template/src/Compile/ObjectMethodBlockCompiler.php create mode 100644 core/template/src/Compile/ObjectMethodCallCompiler.php create mode 100644 core/template/src/Compile/PrintExpressionCompiler.php create mode 100644 core/template/src/Compile/SpecialVariableCompiler.php rename core/template/{sysplugins/smarty_internal_compile_append.php => src/Compile/Tag/Append.php} (53%) create mode 100644 core/template/src/Compile/Tag/Assign.php create mode 100644 core/template/src/Compile/Tag/BCPluginWrapper.php create mode 100644 core/template/src/Compile/Tag/Block.php create mode 100644 core/template/src/Compile/Tag/BlockClose.php create mode 100644 core/template/src/Compile/Tag/BreakTag.php create mode 100644 core/template/src/Compile/Tag/Call.php create mode 100644 core/template/src/Compile/Tag/Capture.php create mode 100644 core/template/src/Compile/Tag/CaptureClose.php create mode 100644 core/template/src/Compile/Tag/ConfigLoad.php create mode 100644 core/template/src/Compile/Tag/ContinueTag.php create mode 100644 core/template/src/Compile/Tag/Debug.php create mode 100644 core/template/src/Compile/Tag/ElseIfTag.php create mode 100644 core/template/src/Compile/Tag/ElseTag.php create mode 100644 core/template/src/Compile/Tag/EvalTag.php create mode 100644 core/template/src/Compile/Tag/ExtendsTag.php create mode 100644 core/template/src/Compile/Tag/ForClose.php create mode 100644 core/template/src/Compile/Tag/ForElse.php create mode 100644 core/template/src/Compile/Tag/ForTag.php create mode 100644 core/template/src/Compile/Tag/ForeachClose.php create mode 100644 core/template/src/Compile/Tag/ForeachElse.php create mode 100644 core/template/src/Compile/Tag/ForeachSection.php create mode 100644 core/template/src/Compile/Tag/ForeachTag.php create mode 100644 core/template/src/Compile/Tag/FunctionClose.php create mode 100644 core/template/src/Compile/Tag/FunctionTag.php create mode 100644 core/template/src/Compile/Tag/IfClose.php create mode 100644 core/template/src/Compile/Tag/IfTag.php create mode 100644 core/template/src/Compile/Tag/IncludeTag.php create mode 100644 core/template/src/Compile/Tag/Inheritance.php create mode 100644 core/template/src/Compile/Tag/Ldelim.php create mode 100644 core/template/src/Compile/Tag/Nocache.php create mode 100644 core/template/src/Compile/Tag/NocacheClose.php create mode 100644 core/template/src/Compile/Tag/Rdelim.php create mode 100644 core/template/src/Compile/Tag/Section.php create mode 100644 core/template/src/Compile/Tag/SectionClose.php create mode 100644 core/template/src/Compile/Tag/SectionElse.php create mode 100644 core/template/src/Compile/Tag/Setfilter.php create mode 100644 core/template/src/Compile/Tag/SetfilterClose.php create mode 100644 core/template/src/Compile/Tag/WhileClose.php create mode 100644 core/template/src/Compile/Tag/WhileTag.php create mode 100644 core/template/src/Compiler/BaseCompiler.php create mode 100644 core/template/src/Compiler/CodeFrame.php create mode 100644 core/template/src/Compiler/Configfile.php create mode 100644 core/template/src/Compiler/Template.php create mode 100644 core/template/src/CompilerException.php create mode 100644 core/template/src/Data.php rename core/template/{sysplugins/smarty_internal_debug.php => src/Debug.php} (52%) create mode 100644 core/template/src/ErrorHandler.php create mode 100644 core/template/src/Exception.php create mode 100644 core/template/src/Extension/BCPluginsAdapter.php create mode 100644 core/template/src/Extension/Base.php create mode 100644 core/template/src/Extension/CallbackWrapper.php create mode 100644 core/template/src/Extension/CoreExtension.php create mode 100644 core/template/src/Extension/DefaultExtension.php create mode 100644 core/template/src/Extension/ExtensionInterface.php create mode 100644 core/template/src/Filter/FilterInterface.php create mode 100644 core/template/src/Filter/FilterPluginWrapper.php create mode 100644 core/template/src/Filter/Output/Lang.php create mode 100644 core/template/src/Filter/Output/TrimWhitespace.php rename core/template/{plugins => src/Filter}/outputfilter.lang.php (100%) create mode 100644 core/template/src/FunctionHandler/BCPluginWrapper.php create mode 100644 core/template/src/FunctionHandler/Base.php create mode 100644 core/template/src/FunctionHandler/Count.php create mode 100644 core/template/src/FunctionHandler/Counter.php create mode 100644 core/template/src/FunctionHandler/Cycle.php create mode 100644 core/template/src/FunctionHandler/Fetch.php create mode 100644 core/template/src/FunctionHandler/FunctionHandlerInterface.php create mode 100644 core/template/src/FunctionHandler/HtmlBase.php create mode 100644 core/template/src/FunctionHandler/HtmlCheckboxes.php create mode 100644 core/template/src/FunctionHandler/HtmlImage.php create mode 100644 core/template/src/FunctionHandler/HtmlOptions.php create mode 100644 core/template/src/FunctionHandler/HtmlRadios.php create mode 100644 core/template/src/FunctionHandler/HtmlSelectDate.php create mode 100644 core/template/src/FunctionHandler/HtmlSelectTime.php create mode 100644 core/template/src/FunctionHandler/HtmlTable.php create mode 100644 core/template/src/FunctionHandler/Mailto.php create mode 100644 core/template/src/FunctionHandler/Math.php rename core/template/{sysplugins/smarty_internal_configfilelexer.php => src/Lexer/ConfigfileLexer.php} (52%) create mode 100644 core/template/src/Lexer/ConfigfileLexer.plex create mode 100644 core/template/src/Lexer/TemplateLexer.php create mode 100644 core/template/src/Lexer/TemplateLexer.plex create mode 100644 core/template/src/ParseTree/Base.php rename core/template/{sysplugins/smarty_internal_parsetree_code.php => src/ParseTree/Code.php} (67%) create mode 100644 core/template/src/ParseTree/Dq.php rename core/template/{sysplugins/smarty_internal_parsetree_dqcontent.php => src/ParseTree/DqContent.php} (58%) rename core/template/{sysplugins/smarty_internal_parsetree_tag.php => src/ParseTree/Tag.php} (63%) create mode 100644 core/template/src/ParseTree/Template.php create mode 100644 core/template/src/ParseTree/Text.php create mode 100644 core/template/src/Parser/ConfigfileParser.php create mode 100644 core/template/src/Parser/ConfigfileParser.y create mode 100644 core/template/src/Parser/TemplateParser.php create mode 100644 core/template/src/Parser/TemplateParser.y create mode 100644 core/template/src/Resource/BasePlugin.php create mode 100644 core/template/src/Resource/CustomPlugin.php rename core/template/{sysplugins/smarty_internal_resource_extends.php => src/Resource/ExtendsPlugin.php} (50%) create mode 100644 core/template/src/Resource/FilePlugin.php create mode 100644 core/template/src/Resource/RecompiledPlugin.php create mode 100644 core/template/src/Resource/StreamPlugin.php rename core/template/{sysplugins/smarty_internal_resource_eval.php => src/Resource/StringEval.php} (51%) create mode 100644 core/template/src/Resource/StringPlugin.php rename core/template/{sysplugins/smarty_internal_block.php => src/Runtime/Block.php} (81%) create mode 100644 core/template/src/Runtime/CaptureRuntime.php create mode 100644 core/template/src/Runtime/DefaultPluginHandlerRuntime.php create mode 100644 core/template/src/Runtime/ForeachRuntime.php create mode 100644 core/template/src/Runtime/InheritanceRuntime.php create mode 100644 core/template/src/Runtime/TplFunctionRuntime.php create mode 100644 core/template/src/Security.php create mode 100644 core/template/src/Smarty.php create mode 100644 core/template/src/Template.php create mode 100644 core/template/src/Template/Cached.php create mode 100644 core/template/src/Template/Compiled.php create mode 100644 core/template/src/Template/Config.php create mode 100644 core/template/src/Template/GeneratedPhpFile.php create mode 100644 core/template/src/Template/Source.php create mode 100644 core/template/src/TemplateBase.php create mode 100644 core/template/src/TestInstall.php create mode 100644 core/template/src/UndefinedVariable.php create mode 100644 core/template/src/Variable.php rename core/template/{ => src}/debug.tpl (70%) create mode 100644 core/template/src/functions.php delete mode 100644 core/template/sysplugins/smarty_cacheresource.php delete mode 100644 core/template/sysplugins/smarty_cacheresource_custom.php delete mode 100644 core/template/sysplugins/smarty_data.php delete mode 100644 core/template/sysplugins/smarty_internal_cacheresource_file.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_assign.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_block.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_block_child.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_block_parent.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_break.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_call.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_capture.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_child.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_config_load.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_continue.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_debug.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_eval.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_extends.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_for.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_foreach.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_function.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_if.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_include.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_include_php.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_insert.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_ldelim.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_make_nocache.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_nocache.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_parent.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_private_block_plugin.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_private_foreachsection.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_private_function_plugin.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_private_modifier.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_private_object_block_function.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_private_object_function.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_private_php.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_private_print_expression.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_private_registered_block.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_private_registered_function.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_private_special_variable.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_rdelim.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_section.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_setfilter.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_shared_inheritance.php delete mode 100644 core/template/sysplugins/smarty_internal_compile_while.php delete mode 100644 core/template/sysplugins/smarty_internal_compilebase.php delete mode 100644 core/template/sysplugins/smarty_internal_config_file_compiler.php delete mode 100644 core/template/sysplugins/smarty_internal_configfileparser.php delete mode 100644 core/template/sysplugins/smarty_internal_data.php delete mode 100644 core/template/sysplugins/smarty_internal_errorhandler.php delete mode 100644 core/template/sysplugins/smarty_internal_extension_clear.php delete mode 100644 core/template/sysplugins/smarty_internal_extension_handler.php delete mode 100644 core/template/sysplugins/smarty_internal_method_addautoloadfilters.php delete mode 100644 core/template/sysplugins/smarty_internal_method_adddefaultmodifiers.php delete mode 100644 core/template/sysplugins/smarty_internal_method_append.php delete mode 100644 core/template/sysplugins/smarty_internal_method_appendbyref.php delete mode 100644 core/template/sysplugins/smarty_internal_method_assignbyref.php delete mode 100644 core/template/sysplugins/smarty_internal_method_assignglobal.php delete mode 100644 core/template/sysplugins/smarty_internal_method_clearallassign.php delete mode 100644 core/template/sysplugins/smarty_internal_method_clearallcache.php delete mode 100644 core/template/sysplugins/smarty_internal_method_clearassign.php delete mode 100644 core/template/sysplugins/smarty_internal_method_clearcache.php delete mode 100644 core/template/sysplugins/smarty_internal_method_clearcompiledtemplate.php delete mode 100644 core/template/sysplugins/smarty_internal_method_clearconfig.php delete mode 100644 core/template/sysplugins/smarty_internal_method_compileallconfig.php delete mode 100644 core/template/sysplugins/smarty_internal_method_compilealltemplates.php delete mode 100644 core/template/sysplugins/smarty_internal_method_configload.php delete mode 100644 core/template/sysplugins/smarty_internal_method_createdata.php delete mode 100644 core/template/sysplugins/smarty_internal_method_getautoloadfilters.php delete mode 100644 core/template/sysplugins/smarty_internal_method_getconfigvariable.php delete mode 100644 core/template/sysplugins/smarty_internal_method_getconfigvars.php delete mode 100644 core/template/sysplugins/smarty_internal_method_getdebugtemplate.php delete mode 100644 core/template/sysplugins/smarty_internal_method_getdefaultmodifiers.php delete mode 100644 core/template/sysplugins/smarty_internal_method_getglobal.php delete mode 100644 core/template/sysplugins/smarty_internal_method_getregisteredobject.php delete mode 100644 core/template/sysplugins/smarty_internal_method_getstreamvariable.php delete mode 100644 core/template/sysplugins/smarty_internal_method_gettags.php delete mode 100644 core/template/sysplugins/smarty_internal_method_gettemplatevars.php delete mode 100644 core/template/sysplugins/smarty_internal_method_literals.php delete mode 100644 core/template/sysplugins/smarty_internal_method_loadfilter.php delete mode 100644 core/template/sysplugins/smarty_internal_method_loadplugin.php delete mode 100644 core/template/sysplugins/smarty_internal_method_mustcompile.php delete mode 100644 core/template/sysplugins/smarty_internal_method_registercacheresource.php delete mode 100644 core/template/sysplugins/smarty_internal_method_registerclass.php delete mode 100644 core/template/sysplugins/smarty_internal_method_registerdefaultconfighandler.php delete mode 100644 core/template/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php delete mode 100644 core/template/sysplugins/smarty_internal_method_registerdefaulttemplatehandler.php delete mode 100644 core/template/sysplugins/smarty_internal_method_registerfilter.php delete mode 100644 core/template/sysplugins/smarty_internal_method_registerobject.php delete mode 100644 core/template/sysplugins/smarty_internal_method_registerplugin.php delete mode 100644 core/template/sysplugins/smarty_internal_method_registerresource.php delete mode 100644 core/template/sysplugins/smarty_internal_method_setautoloadfilters.php delete mode 100644 core/template/sysplugins/smarty_internal_method_setdebugtemplate.php delete mode 100644 core/template/sysplugins/smarty_internal_method_setdefaultmodifiers.php delete mode 100644 core/template/sysplugins/smarty_internal_method_unloadfilter.php delete mode 100644 core/template/sysplugins/smarty_internal_method_unregistercacheresource.php delete mode 100644 core/template/sysplugins/smarty_internal_method_unregisterfilter.php delete mode 100644 core/template/sysplugins/smarty_internal_method_unregisterobject.php delete mode 100644 core/template/sysplugins/smarty_internal_method_unregisterplugin.php delete mode 100644 core/template/sysplugins/smarty_internal_method_unregisterresource.php delete mode 100644 core/template/sysplugins/smarty_internal_nocache_insert.php delete mode 100644 core/template/sysplugins/smarty_internal_parsetree.php delete mode 100644 core/template/sysplugins/smarty_internal_parsetree_dq.php delete mode 100644 core/template/sysplugins/smarty_internal_parsetree_template.php delete mode 100644 core/template/sysplugins/smarty_internal_parsetree_text.php delete mode 100644 core/template/sysplugins/smarty_internal_resource_file.php delete mode 100644 core/template/sysplugins/smarty_internal_resource_php.php delete mode 100644 core/template/sysplugins/smarty_internal_resource_registered.php delete mode 100644 core/template/sysplugins/smarty_internal_resource_stream.php delete mode 100644 core/template/sysplugins/smarty_internal_resource_string.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_cachemodify.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_cacheresourcefile.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_capture.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_codeframe.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_filterhandler.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_foreach.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_getincludepath.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_hhvm.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_inheritance.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_make_nocache.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_subtemplate.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_tplfunction.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_updatecache.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_updatescope.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_validatecompiled.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_var.php delete mode 100644 core/template/sysplugins/smarty_internal_runtime_writefile.php delete mode 100644 core/template/sysplugins/smarty_internal_smartytemplatecompiler.php delete mode 100644 core/template/sysplugins/smarty_internal_template.php delete mode 100644 core/template/sysplugins/smarty_internal_templatebase.php delete mode 100644 core/template/sysplugins/smarty_internal_templatecompilerbase.php delete mode 100644 core/template/sysplugins/smarty_internal_templatelexer.php delete mode 100644 core/template/sysplugins/smarty_internal_templateparser.php delete mode 100644 core/template/sysplugins/smarty_internal_testinstall.php delete mode 100644 core/template/sysplugins/smarty_internal_undefined.php delete mode 100644 core/template/sysplugins/smarty_resource.php delete mode 100644 core/template/sysplugins/smarty_resource_custom.php delete mode 100644 core/template/sysplugins/smarty_resource_recompiled.php delete mode 100644 core/template/sysplugins/smarty_resource_uncompiled.php delete mode 100644 core/template/sysplugins/smarty_security.php delete mode 100644 core/template/sysplugins/smarty_template_cached.php delete mode 100644 core/template/sysplugins/smarty_template_compiled.php delete mode 100644 core/template/sysplugins/smarty_template_config.php delete mode 100644 core/template/sysplugins/smarty_template_resource_base.php delete mode 100644 core/template/sysplugins/smarty_template_source.php delete mode 100644 core/template/sysplugins/smarty_undefined_variable.php delete mode 100644 core/template/sysplugins/smarty_variable.php delete mode 100644 core/template/sysplugins/smartycompilerexception.php delete mode 100644 core/template/sysplugins/smartyexception.php delete mode 100644 modules/captcha/captcha.module.php create mode 100644 modules/chat/js/modernizr.js diff --git a/.htaccess b/.htaccess index c195377..b7c8d30 100644 --- a/.htaccess +++ b/.htaccess @@ -16,6 +16,8 @@ RewriteRule error/(.*)\.html$ index.php?task=error&sub=$1 RewriteRule ^register/(.*)? register.php?regstring=$1 RewriteRule ^avatar/(.*)? index.php?task=rp&sum=avatar&id=$1 RewriteRule ^reports/(.*)? index.php?task=chat&sub=report&uid=$1 +RewriteRule ^chat/in? index.php?task=chat&sub=in +RewriteRule ^chat? index.php?task=chat RewriteRule create_char.html index.php?task=rp&sub=create RewriteRule chat.html index.php?task=chat RewriteRule my_chars.html index.php?task=rp&sub=chars [QSA,L] @@ -47,4 +49,4 @@ RewriteCond %{HTTP_HOST} ^logs\.coppertopia\.net$ RewriteRule ^user/(.*)$ ?task=chat&sub=privatelogs&user=$1 [QSA,L] RewriteCond %{HTTP_HOST} ^logs\.coppertopia\.net$ RewriteRule ^$ ?task=chat&sub=logs [QSA,L] - \ No newline at end of file + diff --git a/class_templates/ajax_module.template.php b/class_templates/ajax_module.template.php index d777a84..9c7c824 100644 --- a/class_templates/ajax_module.template.php +++ b/class_templates/ajax_module.template.php @@ -22,19 +22,24 @@ */ $module["module"]["name"]="AJAX Module Template"; -$module["module"]["ver"]="0.2"; +$module["module"]["ver"]="0.3.0"; +use Smarty\Smarty; + + class ajax_module { public $uses_default_templates=FALSE; function __construct() { - global $log,$config,$db,$task,$plugin; - $this->tpl= new Smarty(); + global $log,$config,$tpl,$db,$task,$plugin; $root = $_SERVER['DOCUMENT_ROOT'] . $config["path"]; - $this->tpl->compile_dir = $root . '/core/template/templates_c'; - $this->tpl->cache_dir = $root . '/core/template/cache'; - $this->tpl->config_dir = $root . '/core/template/config'; - $this->tpl->caching = $config["caching"]; + $this->tpl= new Smarty(); + $this->tpl->setCompileDir($root . '/core/template/templates_c'); + $this->tpl->setCacheDir($root . '/core/template/cache'); + $this->tpl->setConfigDir($root . '/core/template/config'); + If($config["caching"]==1){ + $this->tpl->setCaching(Smarty::CACHING_LIFETIME_SAVED); + } $this->tpl->assign("path",$config["path"]."/"); } diff --git a/class_templates/page_module.template.php b/class_templates/page_module.template.php index ba5c9c7..6d6538a 100644 --- a/class_templates/page_module.template.php +++ b/class_templates/page_module.template.php @@ -22,7 +22,9 @@ */ $module["module"]["name"]="Modul Class"; -$module["module"]["ver"]="0.2"; +$module["module"]["ver"]="0.3.0"; +use Smarty\Smarty; + class module { public $uses_default_templates=FALSE; @@ -37,13 +39,15 @@ class module { function __construct() { - global $log,$config,$db,$task,$plugin; + global $log,$config,$db,$tpl,$task,$plugin; $this->tpl= new Smarty(); $root = $_SERVER['DOCUMENT_ROOT'] . $config["path"]; - $this->tpl->compile_dir = $root . '/core/template/templates_c'; - $this->tpl->cache_dir = $root . '/core/template/cache'; - $this->tpl->config_dir = $root . '/core/template/config'; - $this->tpl->caching = $config["caching"]; + $this->tpl->setCompileDir($root . '/core/template/templates_c'); + $this->tpl->setCacheDir($root . '/core/template/cache'); + $this->tpl->setConfigDir($root . '/core/template/config'); + If($config["caching"]==1){ + $this->tpl->setCaching(Smarty::CACHING_LIFETIME_SAVED); + } $this->tpl->assign("path",$config["path"]."/"); } diff --git a/core/init_core.inc.php b/core/init_core.inc.php index 5f297b1..180e921 100644 --- a/core/init_core.inc.php +++ b/core/init_core.inc.php @@ -1,6 +1,6 @@ - * @package BeCast Webengine core + * @package astat core * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id: init_core.inc.php 148 2012-03-27 19:48:30Z genuineparts $ */ @@ -42,7 +42,8 @@ require dirname(dirname(__FILE__)).'/inc/config.inc.php'; /** * Smarty */ -require $basepath.'template/Smarty.class.php'; +require $basepath.'template/libs/Smarty.class.php'; +use Smarty\Smarty; /** * Database @@ -136,7 +137,6 @@ if(!isset($config['path'])){ * */ $log=new logger($config['logtype'],dirname(dirname(__FILE__)).'/logs/'.$config['logfile'],$config['loglevel']); - $tpl = new Smarty(); $error = new errorhandler(); $functions = new functions(); @@ -156,18 +156,19 @@ $lang=new lang(); * */ if(isset($config['theme']) && $config['theme']!='' && is_dir($root . '/themes/'.$config['theme'])){ - $tpl -> template_dir = $root . '/themes/'.$config['theme']; + $tpl->setTemplateDir($root . '/themes/'.$config['theme']); }else{ /** * Fallback */ - $tpl -> template_dir = $root . '/themes/default'; + $tpl->setTemplateDir($root . '/themes/default'); } -$tpl -> compile_dir = $root . '/core/template/templates_c'; -$tpl -> cache_dir = $root . '/core/template/cache'; -$tpl -> config_dir = $root . '/core/template/config'; -$tpl -> loadFilter('output','lang'); +$tpl->setCompileDir($root . '/core/template/templates_c'); +$tpl->setCacheDir($root . '/core/template/cache'); +$tpl->setConfigDir($root . '/core/template/config'); +$tpl->loadFilter(\Smarty\Smarty::FILTER_OUTPUT,'trimwhitespace'); +$tpl->registerFilter("output", "lang"); //var_dump($tpl -> getAutoloadFilters()); /** * Well... This should vanish with Thememanagement @@ -226,6 +227,18 @@ foreach($core->mod_ as $key=>$val){ $plugin->run_hook('init_core'); + +function lang($code, \Smarty\Template $template) { + $source = $code; + return preg_replace_callback ('/##(.+?)##/', 'langstr', $source); +} + +function langstr($treffer) +{ + global $lang; + return $lang->_($treffer[1]); +} + /** * This loads *.class.php files from the /core/modules dir. * Its useful but "undocumented". diff --git a/core/template/Autoloader.php b/core/template/Autoloader.php deleted file mode 100644 index 3a0da8f..0000000 --- a/core/template/Autoloader.php +++ /dev/null @@ -1,110 +0,0 @@ - 'Smarty.class.php', 'smartybc' => 'SmartyBC.class.php',); - - /** - * Registers Smarty_Autoloader backward compatible to older installations. - * - * @param bool $prepend Whether to prepend the autoloader or not. - */ - public static function registerBC($prepend = false) - { - /** - * register the class autoloader - */ - if (!defined('SMARTY_SPL_AUTOLOAD')) { - define('SMARTY_SPL_AUTOLOAD', 0); - } - if (SMARTY_SPL_AUTOLOAD && - set_include_path(get_include_path() . PATH_SEPARATOR . SMARTY_SYSPLUGINS_DIR) !== false - ) { - $registeredAutoLoadFunctions = spl_autoload_functions(); - if (!isset($registeredAutoLoadFunctions[ 'spl_autoload' ])) { - spl_autoload_register(); - } - } else { - self::register($prepend); - } - } - - /** - * Registers Smarty_Autoloader as an SPL autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not. - */ - public static function register($prepend = false) - { - 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')); - } - } - - /** - * Handles auto loading of classes. - * - * @param string $class A class name. - */ - public static function autoload($class) - { - if ($class[ 0 ] !== 'S' && strpos($class, 'Smarty') !== 0) { - return; - } - $_class = strtolower($class); - if (isset(self::$rootClasses[ $_class ])) { - $file = self::$SMARTY_DIR . self::$rootClasses[ $_class ]; - if (is_file($file)) { - include $file; - } - } else { - $file = self::$SMARTY_SYSPLUGINS_DIR . $_class . '.php'; - if (is_file($file)) { - include $file; - } - } - return; - } -} diff --git a/core/template/Smarty.class.php b/core/template/Smarty.class.php deleted file mode 100644 index 821284e..0000000 --- a/core/template/Smarty.class.php +++ /dev/null @@ -1,1377 +0,0 @@ - - * @author Uwe Tews - * @author Rodney Rehm - * @package Smarty - * @version 3.1.32 - */ -/** - * set SMARTY_DIR to absolute path to Smarty library files. - * Sets SMARTY_DIR only if user application has not already defined it. - */ - -$module["template"]["name"]="Smarty Template Engine"; -$module["template"]["ver"]="3.1.32"; - - -if (!defined('SMARTY_DIR')) { - /** - * - */ - define('SMARTY_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR); -} -/** - * set SMARTY_SYSPLUGINS_DIR to absolute path to Smarty internal plugins. - * Sets SMARTY_SYSPLUGINS_DIR only if user application has not already defined it. - */ -if (!defined('SMARTY_SYSPLUGINS_DIR')) { - /** - * - */ - define('SMARTY_SYSPLUGINS_DIR', SMARTY_DIR . 'sysplugins' . DIRECTORY_SEPARATOR); -} -if (!defined('SMARTY_PLUGINS_DIR')) { - /** - * - */ - define('SMARTY_PLUGINS_DIR', SMARTY_DIR . 'plugins' . DIRECTORY_SEPARATOR); -} -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 - */ -if (!class_exists('Smarty_Autoloader')) { - include dirname(__FILE__) . '/bootstrap.php'; -} -/** - * Load always needed external class files - */ -require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_data.php'; -require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_extension_handler.php'; -require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_templatebase.php'; -require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_template.php'; -require_once SMARTY_SYSPLUGINS_DIR . 'smarty_resource.php'; -require_once SMARTY_SYSPLUGINS_DIR . 'smarty_variable.php'; -require_once SMARTY_SYSPLUGINS_DIR . 'smarty_template_source.php'; -require_once SMARTY_SYSPLUGINS_DIR . 'smarty_template_resource_base.php'; -require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_resource_file.php'; - -/** - * This is the main Smarty class - * - * @package Smarty - * - * The following methods will be dynamically loaded by the extension handler when they are called. - * They are located in a corresponding Smarty_Internal_Method_xxxx class - * - * @method int clearAllCache(int $exp_time = null, string $type = null) - * @method int clearCache(string $template_name, string $cache_id = null, string $compile_id = null, int $exp_time = null, string $type = null) - * @method int compileAllTemplates(string $extension = '.tpl', bool $force_compile = false, int $time_limit = 0, $max_errors = null) - * @method int compileAllConfig(string $extension = '.conf', bool $force_compile = false, int $time_limit = 0, $max_errors = null) - * @method int clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null) - */ -class Smarty extends Smarty_Internal_TemplateBase -{ - /** - * smarty version - */ - const SMARTY_VERSION = '3.1.32'; - /** - * define variable scopes - */ - const SCOPE_LOCAL = 1; - const SCOPE_PARENT = 2; - const SCOPE_TPL_ROOT = 4; - const SCOPE_ROOT = 8; - const SCOPE_SMARTY = 16; - const SCOPE_GLOBAL = 32; - /** - * define caching modes - */ - const CACHING_OFF = 0; - const CACHING_LIFETIME_CURRENT = 1; - const CACHING_LIFETIME_SAVED = 2; - /** - * define constant for clearing cache files be saved expiration dates - */ - const CLEAR_EXPIRED = -1; - /** - * define compile check modes - */ - const COMPILECHECK_OFF = 0; - const COMPILECHECK_ON = 1; - const COMPILECHECK_CACHEMISS = 2; - /** - * define debug modes - */ - const DEBUG_OFF = 0; - const DEBUG_ON = 1; - const DEBUG_INDIVIDUAL = 2; - /** - * modes for handling of "" 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 - */ - const FILTER_POST = 'post'; - const FILTER_PRE = 'pre'; - const FILTER_OUTPUT = 'output'; - const FILTER_VARIABLE = 'variable'; - /** - * plugin types - */ - const PLUGIN_FUNCTION = 'function'; - const PLUGIN_BLOCK = 'block'; - const PLUGIN_COMPILER = 'compiler'; - const PLUGIN_MODIFIER = 'modifier'; - const PLUGIN_MODIFIERCOMPILER = 'modifiercompiler'; - /** - * assigned global tpl vars - */ - public static $global_tpl_vars = array(); - /** - * Flag denoting if Multibyte String functions are available - */ - public static $_MBSTRING = SMARTY_MBSTRING; - /** - * The character set to adhere to (e.g. "UTF-8") - */ - public static $_CHARSET = SMARTY_RESOURCE_CHAR_SET; - /** - * The date format to be used internally - * (accepts date() and strftime()) - */ - public static $_DATE_FORMAT = SMARTY_RESOURCE_DATE_FORMAT; - /** - * Flag denoting if PCRE should run in UTF-8 mode - */ - public static $_UTF8_MODIFIER = 'u'; - /** - * Flag denoting if operating system is windows - */ - public static $_IS_WINDOWS = false; - /** - * auto literal on delimiters with whitespace - * - * @var boolean - */ - public $auto_literal = true; - /** - * display error on not assigned variables - * - * @var boolean - */ - public $error_unassigned = false; - /** - * look up relative file path in include_path - * - * @var boolean - */ - public $use_include_path = false; - /** - * flag if template_dir is normalized - * - * @var bool - */ - public $_templateDirNormalized = false; - /** - * joined template directory string used in cache keys - * - * @var string - */ - public $_joined_template_dir = null; - /** - * flag if config_dir is normalized - * - * @var bool - */ - public $_configDirNormalized = false; - /** - * joined config directory string used in cache keys - * - * @var string - */ - public $_joined_config_dir = null; - /** - * default template handler - * - * @var callable - */ - public $default_template_handler_func = null; - /** - * default config handler - * - * @var callable - */ - public $default_config_handler_func = null; - /** - * default plugin handler - * - * @var callable - */ - public $default_plugin_handler_func = null; - /** - * flag if template_dir is normalized - * - * @var bool - */ - public $_compileDirNormalized = false; - /** - * flag if plugins_dir is normalized - * - * @var bool - */ - public $_pluginsDirNormalized = false; - /** - * flag if template_dir is normalized - * - * @var bool - */ - public $_cacheDirNormalized = false; - /** - * force template compiling? - * - * @var boolean - */ - public $force_compile = false; - /** - * use sub dirs for compiled/cached files? - * - * @var boolean - */ - public $use_sub_dirs = false; - /** - * allow ambiguous resources (that are made unique by the resource handler) - * - * @var boolean - */ - public $allow_ambiguous_resources = false; - /** - * merge compiled includes - * - * @var boolean - */ - public $merge_compiled_includes = false; - /* - * flag for behaviour when extends: resource and {extends} tag are used simultaneous - * if false disable execution of {extends} in templates called by extends resource. - * (behaviour as versions < 3.1.28) - * - * @var boolean - */ - public $extends_recursion = true; - /** - * force cache file creation - * - * @var boolean - */ - public $force_cache = false; - /** - * template left-delimiter - * - * @var string - */ - public $left_delimiter = "{"; - /** - * template right-delimiter - * - * @var string - */ - public $right_delimiter = "}"; - /** - * array of strings which shall be treated as literal by compiler - * - * @var array string - */ - public $literals = array(); - /** - * class name - * This should be instance of Smarty_Security. - * - * @var string - * @see Smarty_Security - */ - public $security_class = 'Smarty_Security'; - /** - * implementation of security class - * - * @var Smarty_Security - */ - 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 - */ - public $allow_php_templates = false; - /** - * debug mode - * Setting this to true enables the debug-console. - * - * @var boolean - */ - public $debugging = false; - /** - * This determines if debugging is enable-able from the browser. - * - * - * @var string - */ - public $debugging_ctrl = 'NONE'; - /** - * Name of debugging URL-param. - * Only used when $debugging_ctrl is set to 'URL'. - * The name of the URL-parameter that activates debugging. - * - * @var string - */ - public $smarty_debug_id = 'SMARTY_DEBUG'; - /** - * Path of debug template. - * - * @var string - */ - public $debug_tpl = null; - /** - * When set, smarty uses this value as error_reporting-level. - * - * @var int - */ - public $error_reporting = null; - /** - * Controls whether variables with the same name overwrite each other. - * - * @var boolean - */ - public $config_overwrite = true; - /** - * Controls whether config values of on/true/yes and off/false/no get converted to boolean. - * - * @var boolean - */ - public $config_booleanize = true; - /** - * Controls whether hidden config sections/vars are read from the file. - * - * @var boolean - */ - public $config_read_hidden = false; - /** - * locking concurrent compiles - * - * @var boolean - */ - public $compile_locking = true; - /** - * Controls whether cache resources should use locking mechanism - * - * @var boolean - */ - public $cache_locking = false; - /** - * seconds to wait for acquiring a lock before ignoring the write lock - * - * @var float - */ - public $locking_timeout = 10; - /** - * resource type used if none given - * Must be an valid key of $registered_resources. - * - * @var string - */ - public $default_resource_type = 'file'; - /** - * caching type - * Must be an element of $cache_resource_types. - * - * @var string - */ - public $caching_type = 'file'; - /** - * config type - * - * @var string - */ - public $default_config_type = 'file'; - /** - * check If-Modified-Since headers - * - * @var boolean - */ - public $cache_modified_check = false; - /** - * registered plugins - * - * @var array - */ - public $registered_plugins = array(); - /** - * registered objects - * - * @var array - */ - public $registered_objects = array(); - /** - * registered classes - * - * @var array - */ - public $registered_classes = array(); - /** - * registered filters - * - * @var array - */ - public $registered_filters = array(); - /** - * registered resources - * - * @var array - */ - public $registered_resources = array(); - /** - * registered cache resources - * - * @var array - */ - public $registered_cache_resources = array(); - /** - * autoload filter - * - * @var array - */ - public $autoload_filters = array(); - /** - * default modifier - * - * @var array - */ - public $default_modifiers = array(); - /** - * autoescape variable output - * - * @var boolean - */ - public $escape_html = false; - /** - * start time for execution time calculation - * - * @var int - */ - public $start_time = 0; - /** - * required by the compiler for BC - * - * @var string - */ - public $_current_file = null; - /** - * internal flag to enable parser debugging - * - * @var bool - */ - public $_parserdebug = false; - /** - * This object type (Smarty = 1, template = 2, data = 4) - * - * @var int - */ - public $_objType = 1; - /** - * Debug object - * - * @var Smarty_Internal_Debug - */ - public $_debug = null; - /** - * template directory - * - * @var array - */ - protected $template_dir = array('./templates/'); - /** - * flags for normalized template directory entries - * - * @var array - */ - protected $_processedTemplateDir = array(); - /** - * config directory - * - * @var array - */ - protected $config_dir = array('./configs/'); - /** - * flags for normalized template directory entries - * - * @var array - */ - protected $_processedConfigDir = array(); - /** - * compile directory - * - * @var string - */ - protected $compile_dir = './templates_c/'; - /** - * plugins directory - * - * @var array - */ - protected $plugins_dir = array(); - /** - * cache directory - * - * @var string - */ - protected $cache_dir = './cache/'; - /** - * removed properties - * - * @var string[] - */ - protected $obsoleteProperties = array('resource_caching', 'template_resource_caching', 'direct_access_security', - '_dir_perms', '_file_perms', 'plugin_search_order', - 'inheritance_merge_compiled_includes', 'resource_cache_mode',); - /** - * List of private properties which will call getter/setter on a direct access - * - * @var string[] - */ - protected $accessMap = array('template_dir' => 'TemplateDir', 'config_dir' => 'ConfigDir', - 'plugins_dir' => 'PluginsDir', 'compile_dir' => 'CompileDir', - 'cache_dir' => 'CacheDir',); - - /** - * Initialize new Smarty object - */ - public function __construct() - { - $this->_clearTemplateCache(); - parent::__construct(); - if (is_callable('mb_internal_encoding')) { - mb_internal_encoding(Smarty::$_CHARSET); - } - $this->start_time = microtime(true); - if (isset($_SERVER[ 'SCRIPT_NAME' ])) { - Smarty::$global_tpl_vars[ 'SCRIPT_NAME' ] = new Smarty_Variable($_SERVER[ 'SCRIPT_NAME' ]); - } - // Check if we're running on windows - Smarty::$_IS_WINDOWS = strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'; - // let PCRE (preg_*) treat strings as ISO-8859-1 if we're not dealing with UTF-8 - if (Smarty::$_CHARSET !== 'UTF-8') { - Smarty::$_UTF8_MODIFIER = ''; - } - } - - /** - * 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 - * - * @return bool status - * @throws \SmartyException - */ - public function templateExists($resource_name) - { - // create source object - $source = Smarty_Template_Source::load(null, $this, $resource_name); - return $source->exists; - } - - /** - * Loads security class and enables security - * - * @param string|Smarty_Security $security_class if a string is used, it must be class-name - * - * @return Smarty current Smarty instance for chaining - * @throws SmartyException when an invalid class name is provided - */ - public function enableSecurity($security_class = null) - { - Smarty_Security::enableSecurity($this, $security_class); - return $this; - } - - /** - * Disable security - * - * @return Smarty current Smarty instance for chaining - */ - public function disableSecurity() - { - $this->security_policy = null; - return $this; - } - - /** - * Add template directory(s) - * - * @param string|array $template_dir directory(s) of template sources - * @param string $key of the array element to assign the template dir to - * @param bool $isConfig true for config_dir - * - * @return Smarty current Smarty instance for chaining - */ - public function addTemplateDir($template_dir, $key = null, $isConfig = false) - { - if ($isConfig) { - $processed = &$this->_processedConfigDir; - $dir = &$this->config_dir; - $this->_configDirNormalized = false; - } else { - $processed = &$this->_processedTemplateDir; - $dir = &$this->template_dir; - $this->_templateDirNormalized = false; - } - if (is_array($template_dir)) { - foreach ($template_dir as $k => $v) { - if (is_int($k)) { - // indexes are not merged but appended - $dir[] = $v; - } else { - // string indexes are overridden - $dir[ $k ] = $v; - unset($processed[ $key ]); - } - } - } else { - if ($key !== null) { - // override directory at specified index - $dir[ $key ] = $template_dir; - unset($processed[ $key ]); - } else { - // append new directory - $dir[] = $template_dir; - } - } - return $this; - } - - /** - * Get template directories - * - * @param mixed $index index of directory to get, null to get all - * @param bool $isConfig true for config_dir - * - * @return array list of template directories, or directory of $index - */ - public function getTemplateDir($index = null, $isConfig = false) - { - if ($isConfig) { - $dir = &$this->config_dir; - } else { - $dir = &$this->template_dir; - } - if ($isConfig ? !$this->_configDirNormalized : !$this->_templateDirNormalized) { - $this->_normalizeTemplateConfig($isConfig); - } - if ($index !== null) { - return isset($dir[ $index ]) ? $dir[ $index ] : null; - } - return $dir; - } - - /** - * Set template directory - * - * @param string|array $template_dir directory(s) of template sources - * @param bool $isConfig true for config_dir - * - * @return \Smarty current Smarty instance for chaining - */ - public function setTemplateDir($template_dir, $isConfig = false) - { - if ($isConfig) { - $this->config_dir = array(); - $this->_processedConfigDir = array(); - } else { - $this->template_dir = array(); - $this->_processedTemplateDir = array(); - } - $this->addTemplateDir($template_dir, null, $isConfig); - return $this; - } - - /** - * Add config directory(s) - * - * @param string|array $config_dir directory(s) of config sources - * @param mixed $key key of the array element to assign the config dir to - * - * @return Smarty current Smarty instance for chaining - */ - public function addConfigDir($config_dir, $key = null) - { - return $this->addTemplateDir($config_dir, $key, true); - } - - /** - * Get config directory - * - * @param mixed $index index of directory to get, null to get all - * - * @return array configuration directory - */ - public function getConfigDir($index = null) - { - return $this->getTemplateDir($index, true); - } - - /** - * Set config directory - * - * @param $config_dir - * - * @return Smarty current Smarty instance for chaining - */ - public function setConfigDir($config_dir) - { - return $this->setTemplateDir($config_dir, true); - } - - /** - * Adds directory of plugin files - * - * @param null|array|string $plugins_dir - * - * @return Smarty current Smarty instance for chaining - */ - public function addPluginsDir($plugins_dir) - { - if (empty($this->plugins_dir)) { - $this->plugins_dir[] = SMARTY_PLUGINS_DIR; - } - $this->plugins_dir = array_merge($this->plugins_dir, (array)$plugins_dir); - $this->_pluginsDirNormalized = false; - return $this; - } - - /** - * Get plugin directories - * - * @return array list of plugin directories - */ - public function getPluginsDir() - { - if (empty($this->plugins_dir)) { - $this->plugins_dir[] = SMARTY_PLUGINS_DIR; - $this->_pluginsDirNormalized = false; - } - if (!$this->_pluginsDirNormalized) { - if (!is_array($this->plugins_dir)) { - $this->plugins_dir = (array)$this->plugins_dir; - } - foreach ($this->plugins_dir as $k => $v) { - $this->plugins_dir[ $k ] = $this->_realpath(rtrim($v, "/\\") . DIRECTORY_SEPARATOR, true); - } - $this->_cache[ 'plugin_files' ] = array(); - $this->_pluginsDirNormalized = true; - } - return $this->plugins_dir; - } - - /** - * Set plugins directory - * - * @param string|array $plugins_dir directory(s) of plugins - * - * @return Smarty current Smarty instance for chaining - */ - public function setPluginsDir($plugins_dir) - { - $this->plugins_dir = (array)$plugins_dir; - $this->_pluginsDirNormalized = false; - return $this; - } - - /** - * Get compiled directory - * - * @return string path to compiled templates - */ - public function getCompileDir() - { - if (!$this->_compileDirNormalized) { - $this->_normalizeDir('compile_dir', $this->compile_dir); - $this->_compileDirNormalized = true; - } - return $this->compile_dir; - } - - /** - * - * @param string $compile_dir directory to store compiled templates in - * - * @return Smarty current Smarty instance for chaining - */ - public function setCompileDir($compile_dir) - { - $this->_normalizeDir('compile_dir', $compile_dir); - $this->_compileDirNormalized = true; - return $this; - } - - /** - * Get cache directory - * - * @return string path of cache directory - */ - public function getCacheDir() - { - if (!$this->_cacheDirNormalized) { - $this->_normalizeDir('cache_dir', $this->cache_dir); - $this->_cacheDirNormalized = true; - } - return $this->cache_dir; - } - - /** - * Set cache directory - * - * @param string $cache_dir directory to store cached templates in - * - * @return Smarty current Smarty instance for chaining - */ - public function setCacheDir($cache_dir) - { - $this->_normalizeDir('cache_dir', $cache_dir); - $this->_cacheDirNormalized = true; - return $this; - } - - /** - * creates a template object - * - * @param string $template the resource handle of the template file - * @param mixed $cache_id cache id to be used with this template - * @param mixed $compile_id compile id to be used with this template - * @param object $parent next higher level of Smarty variables - * @param boolean $do_clone flag is Smarty object shall be cloned - * - * @return \Smarty_Internal_Template template object - * @throws \SmartyException - */ - public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null, $do_clone = true) - { - if ($cache_id !== null && (is_object($cache_id) || is_array($cache_id))) { - $parent = $cache_id; - $cache_id = null; - } - if ($parent !== null && is_array($parent)) { - $data = $parent; - $parent = null; - } else { - $data = null; - } - if (!$this->_templateDirNormalized) { - $this->_normalizeTemplateConfig(false); - } - $_templateId = $this->_getTemplateId($template, $cache_id, $compile_id); - $tpl = null; - if ($this->caching && isset(Smarty_Internal_Template::$isCacheTplObj[ $_templateId ])) { - $tpl = $do_clone ? clone Smarty_Internal_Template::$isCacheTplObj[ $_templateId ] : - Smarty_Internal_Template::$isCacheTplObj[ $_templateId ]; - $tpl->inheritance = null; - $tpl->tpl_vars = $tpl->config_vars = array(); - } else if (!$do_clone && isset(Smarty_Internal_Template::$tplObjCache[ $_templateId ])) { - $tpl = clone Smarty_Internal_Template::$tplObjCache[ $_templateId ]; - $tpl->inheritance = null; - $tpl->tpl_vars = $tpl->config_vars = array(); - } else { - /* @var Smarty_Internal_Template $tpl */ - $tpl = new $this->template_class($template, $this, null, $cache_id, $compile_id, null, null); - $tpl->templateId = $_templateId; - } - if ($do_clone) { - $tpl->smarty = clone $tpl->smarty; - } - $tpl->parent = $parent ? $parent : $this; - // fill data if present - if (!empty($data) && is_array($data)) { - // set up variable values - foreach ($data as $_key => $_val) { - $tpl->tpl_vars[ $_key ] = new Smarty_Variable($_val); - } - } - if ($this->debugging || $this->debugging_ctrl === 'URL') { - $tpl->smarty->_debug = new Smarty_Internal_Debug(); - // check URL debugging control - if (!$this->debugging && $this->debugging_ctrl === 'URL') { - $tpl->smarty->_debug->debugUrl($tpl->smarty); - } - } - return $tpl; - } - - /** - * Takes unknown classes and loads plugin files for them - * class name format: Smarty_PluginType_PluginName - * plugin filename format: plugintype.pluginname.php - * - * @param string $plugin_name class plugin name to load - * @param bool $check check if already loaded - * - * @throws SmartyException - * @return string |boolean filepath of loaded file or false - */ - public function loadPlugin($plugin_name, $check = true) - { - return $this->ext->loadPlugin->loadPlugin($this, $plugin_name, $check); - } - - /** - * Get unique template id - * - * @param string $template_name - * @param null|mixed $cache_id - * @param null|mixed $compile_id - * @param null $caching - * @param \Smarty_Internal_Template $template - * - * @return string - * @throws \SmartyException - */ - public function _getTemplateId($template_name, - $cache_id = null, - $compile_id = null, - $caching = null, - Smarty_Internal_Template $template = null) - { - $template_name = (strpos($template_name, ':') === false) ? "{$this->default_resource_type}:{$template_name}" : - $template_name; - $cache_id = $cache_id === null ? $this->cache_id : $cache_id; - $compile_id = $compile_id === null ? $this->compile_id : $compile_id; - $caching = (int)($caching === null ? $this->caching : $caching); - if ((isset($template) && strpos($template_name, ':.') !== false) || $this->allow_ambiguous_resources) { - $_templateId = - Smarty_Resource::getUniqueTemplateName((isset($template) ? $template : $this), $template_name) . - "#{$cache_id}#{$compile_id}#{$caching}"; - } else { - $_templateId = $this->_joined_template_dir . "#{$template_name}#{$cache_id}#{$compile_id}#{$caching}"; - } - if (isset($_templateId[ 150 ])) { - $_templateId = sha1($_templateId); - } - return $_templateId; - } - - /** - * Normalize path - * - remove /./ and /../ - * - make it absolute if required - * - * @param string $path file path - * @param bool $realpath if true - convert to absolute - * false - convert to relative - * null - keep as it is but remove /./ /../ - * - * @return string - */ - public function _realpath($path, $realpath = null) - { - static $nds = null; - static $sepDotsep = null; - static $sepDot = null; - static $sepSep =null; - if (!isset($nds)) { - $nds = array('/' => '\\', '\\' => '/'); - $sepDotsep = DIRECTORY_SEPARATOR . '.' . DIRECTORY_SEPARATOR; - $sepDot = DIRECTORY_SEPARATOR . '.'; - $sepSep = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR; - } - // normalize DIRECTORY_SEPARATOR - $path = str_replace(array($nds[DIRECTORY_SEPARATOR], $sepDotsep), DIRECTORY_SEPARATOR, $path); - if (strpos($path,$sepDot) === false && (($realpath === false && $path[0] === '.') || $realpath === null) && $path[0] !== '\\') { - return $path; - } - preg_match('%^(?(?:[[:alpha:]]:[\\\\]|/|[\\\\]{2}[[:alpha:]]+|[[:print:]]{2,}:[/]{2}|[\\\\])?)(?(.*))$%u', - $path, - $parts); - $path = $parts[ 'path' ]; - if ($parts[ 'root' ] === '\\') { - $parts[ 'root' ] = substr(getcwd(), 0, 2) . $parts[ 'root' ]; - } else { - if ($realpath !== null && !$parts[ 'root' ]) { - $path = getcwd() . DIRECTORY_SEPARATOR . $path; - } - } - // remove noop 'DIRECTORY_SEPARATOR DIRECTORY_SEPARATOR' and 'DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR' patterns - $path = str_replace(array($sepDotsep,$sepSep), DIRECTORY_SEPARATOR, $path); - // resolve '..DIRECTORY_SEPARATOR' pattern, smallest first - if (strpos($path, '..' . DIRECTORY_SEPARATOR) !== false && - preg_match_all('#[\\\\/]([.][.][\\\\/])+#u', $path, $match) - ) { - $counts = array(); - foreach ($match[ 0 ] as $m) { - $counts[] = (int)((strlen($m) - 1) / 3); - } - sort($counts); - foreach ($counts as $count) { - $path = preg_replace('#([\\\\/]+[^\\\\/]+){' . $count . - '}[\\\\/]+([.][.][\\\\/]+){' . $count . '}#u', - DIRECTORY_SEPARATOR, - $path); - } - } - return $realpath !== false ? $parts[ 'root' ] . $path : str_ireplace(getcwd(), '.', $parts[ 'root' ] . $path); - } - - /** - * Empty template objects cache - */ - public function _clearTemplateCache() - { - Smarty_Internal_Template::$isCacheTplObj = array(); - Smarty_Internal_Template::$tplObjCache = array(); - } - - /** - * @param boolean $use_sub_dirs - */ - public function setUseSubDirs($use_sub_dirs) - { - $this->use_sub_dirs = $use_sub_dirs; - } - - /** - * @param int $error_reporting - */ - public function setErrorReporting($error_reporting) - { - $this->error_reporting = $error_reporting; - } - - /** - * @param boolean $escape_html - */ - public function setEscapeHtml($escape_html) - { - $this->escape_html = $escape_html; - } - - /** - * Return auto_literal flag - * - * @return boolean - */ - public function getAutoLiteral() - { - return $this->auto_literal; - } - - /** - * Set auto_literal flag - * - * @param boolean $auto_literal - */ - public function setAutoLiteral($auto_literal = true) - { - $this->auto_literal = $auto_literal; - } - - /** - * @param boolean $force_compile - */ - public function setForceCompile($force_compile) - { - $this->force_compile = $force_compile; - } - - /** - * @param boolean $merge_compiled_includes - */ - public function setMergeCompiledIncludes($merge_compiled_includes) - { - $this->merge_compiled_includes = $merge_compiled_includes; - } - - /** - * Get left delimiter - * - * @return string - */ - public function getLeftDelimiter() - { - return $this->left_delimiter; - } - - /** - * Set left delimiter - * - * @param string $left_delimiter - */ - public function setLeftDelimiter($left_delimiter) - { - $this->left_delimiter = $left_delimiter; - } - - /** - * Get right delimiter - * - * @return string $right_delimiter - */ - public function getRightDelimiter() - { - return $this->right_delimiter; - } - - /** - * Set right delimiter - * - * @param string - */ - public function setRightDelimiter($right_delimiter) - { - $this->right_delimiter = $right_delimiter; - } - - /** - * @param boolean $debugging - */ - public function setDebugging($debugging) - { - $this->debugging = $debugging; - } - - /** - * @param boolean $config_overwrite - */ - public function setConfigOverwrite($config_overwrite) - { - $this->config_overwrite = $config_overwrite; - } - - /** - * @param boolean $config_booleanize - */ - public function setConfigBooleanize($config_booleanize) - { - $this->config_booleanize = $config_booleanize; - } - - /** - * @param boolean $config_read_hidden - */ - public function setConfigReadHidden($config_read_hidden) - { - $this->config_read_hidden = $config_read_hidden; - } - - /** - * @param boolean $compile_locking - */ - public function setCompileLocking($compile_locking) - { - $this->compile_locking = $compile_locking; - } - - /** - * @param string $default_resource_type - */ - public function setDefaultResourceType($default_resource_type) - { - $this->default_resource_type = $default_resource_type; - } - - /** - * @param string $caching_type - */ - public function setCachingType($caching_type) - { - $this->caching_type = $caching_type; - } - - /** - * Test install - * - * @param null $errors - */ - public function testInstall(&$errors = null) - { - Smarty_Internal_TestInstall::testInstall($this, $errors); - } - - /** - * Get Smarty object - * - * @return Smarty - */ - public function _getSmartyObj() - { - return $this; - } - - /** - * <> Generic getter. - * Calls the appropriate getter function. - * Issues an E_USER_NOTICE if no valid getter is found. - * - * @param string $name property name - * - * @return mixed - * @throws \SmartyException - */ - public function __get($name) - { - if (isset($this->accessMap[ $name ])) { - $method = 'get' . $this->accessMap[ $name ]; - return $this->{$method}(); - } else if (isset($this->_cache[ $name ])) { - return $this->_cache[ $name ]; - } else if (in_array($name, $this->obsoleteProperties)) { - return null; - } else { - trigger_error('Undefined property: ' . get_class($this) . '::$' . $name, E_USER_NOTICE); - } - return null; - } - - /** - * <> Generic setter. - * Calls the appropriate setter function. - * Issues an E_USER_NOTICE if no valid setter is found. - * - * @param string $name property name - * @param mixed $value parameter passed to setter - * - * @throws \SmartyException - */ - public function __set($name, $value) - { - if (isset($this->accessMap[ $name ])) { - $method = 'set' . $this->accessMap[ $name ]; - $this->{$method}($value); - } else if (in_array($name, $this->obsoleteProperties)) { - return; - } else { - if (is_object($value) && method_exists($value, $name)) { - $this->$name = $value; - } else { - trigger_error('Undefined property: ' . get_class($this) . '::$' . $name, E_USER_NOTICE); - } - } - } - - /** - * Normalize and set directory string - * - * @param string $dirName cache_dir or compile_dir - * @param string $dir filepath of folder - */ - 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; - } - } - } - - /** - * Normalize template_dir or config_dir - * - * @param bool $isConfig true for config_dir - * - */ - private function _normalizeTemplateConfig($isConfig) - { - if ($isConfig) { - $processed = &$this->_processedConfigDir; - $dir = &$this->config_dir; - } else { - $processed = &$this->_processedTemplateDir; - $dir = &$this->template_dir; - } - if (!is_array($dir)) { - $dir = (array)$dir; - } - foreach ($dir as $k => $v) { - if (!isset($processed[ $k ])) { - $dir[ $k ] = $v = $this->_realpath(rtrim($v, "/\\") . DIRECTORY_SEPARATOR, true); - $processed[ $k ] = true; - } - } - $isConfig ? $this->_configDirNormalized = true : $this->_templateDirNormalized = true; - $isConfig ? $this->_joined_config_dir = join('#', $this->config_dir) : - $this->_joined_template_dir = join('#', $this->template_dir); - } -} diff --git a/core/template/SmartyBC.class.php b/core/template/SmartyBC.class.php deleted file mode 100644 index f2230fc..0000000 --- a/core/template/SmartyBC.class.php +++ /dev/null @@ -1,474 +0,0 @@ - - * @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/core/template/bootstrap.php b/core/template/bootstrap.php deleted file mode 100644 index dad72fc..0000000 --- a/core/template/bootstrap.php +++ /dev/null @@ -1,17 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/* - * Load and register Smarty Autoloader - */ -if (!class_exists('Smarty_Autoloader')) { - require dirname(__FILE__) . '/Autoloader.php'; -} -Smarty_Autoloader::register(true); diff --git a/core/template/libs/Smarty.class.php b/core/template/libs/Smarty.class.php new file mode 100644 index 0000000..813f978 --- /dev/null +++ b/core/template/libs/Smarty.class.php @@ -0,0 +1,45 @@ +testInstall(); // +///////////////////////////////////////////////////////////////////// + +$module["template"]["name"]="Smarty Template Engine"; +$module["template"]["ver"]="5.5.1"; + +define('__SMARTY_DIR', __DIR__ . '/../src/'); + +// Global function declarations +require_once(__SMARTY_DIR . "/functions.php"); + +spl_autoload_register(function ($class) { + // Class prefix + $prefix = 'Smarty\\'; + + // Does the class use the namespace prefix? + $len = strlen($prefix); + if (strncmp($prefix, $class, $len) !== 0) { + // If not, move to the next registered autoloader + return; + } + + // Hack off the prefix part + $relative_class = substr($class, $len); + + // Build a path to the include file + $file = __SMARTY_DIR . str_replace('\\', '/', $relative_class) . '.php'; + + // If the file exists, require it + if (file_exists($file)) { + require_once($file); + } +}); diff --git a/core/template/plugins/block.textformat.php b/core/template/plugins/block.textformat.php deleted file mode 100644 index 310a420..0000000 --- a/core/template/plugins/block.textformat.php +++ /dev/null @@ -1,117 +0,0 @@ - - * @throws \SmartyException - */ -function smarty_block_textformat($params, $content, Smarty_Internal_Template $template, &$repeat) -{ - if (is_null($content)) { - return; - } - if (Smarty::$_MBSTRING) { - $template->_checkPlugins(array(array('function' => 'smarty_modifier_mb_wordwrap', - 'file' => SMARTY_PLUGINS_DIR . 'modifier.mb_wordwrap.php'))); - } - - $style = null; - $indent = 0; - $indent_first = 0; - $indent_char = ' '; - $wrap = 80; - $wrap_char = "\n"; - $wrap_cut = false; - $assign = null; - - foreach ($params as $_key => $_val) { - switch ($_key) { - case 'style': - case 'indent_char': - case 'wrap_char': - case 'assign': - $$_key = (string) $_val; - break; - - case 'indent': - case 'indent_first': - case 'wrap': - $$_key = (int) $_val; - break; - - case 'wrap_cut': - $$_key = (bool) $_val; - break; - - default: - trigger_error("textformat: unknown attribute '{$_key}'"); - } - } - - if ($style === 'email') { - $wrap = 72; - } - // split into paragraphs - $_paragraphs = preg_split('![\r\n]{2}!', $content); - - foreach ($_paragraphs as &$_paragraph) { - if (!$_paragraph) { - continue; - } - // convert mult. spaces & special chars to single space - $_paragraph = - preg_replace(array('!\s+!' . Smarty::$_UTF8_MODIFIER, - '!(^\s+)|(\s+$)!' . Smarty::$_UTF8_MODIFIER), - array(' ', - ''), $_paragraph); - // indent first line - if ($indent_first > 0) { - $_paragraph = str_repeat($indent_char, $indent_first) . $_paragraph; - } - // wordwrap sentences - if (Smarty::$_MBSTRING) { - $_paragraph = smarty_modifier_mb_wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut); - } else { - $_paragraph = wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut); - } - // indent lines - if ($indent > 0) { - $_paragraph = preg_replace('!^!m', str_repeat($indent_char, $indent), $_paragraph); - } - } - $_output = implode($wrap_char . $wrap_char, $_paragraphs); - - if ($assign) { - $template->assign($assign, $_output); - } else { - return $_output; - } -} diff --git a/core/template/plugins/function.counter.php b/core/template/plugins/function.counter.php deleted file mode 100644 index 9610362d..0000000 --- a/core/template/plugins/function.counter.php +++ /dev/null @@ -1,73 +0,0 @@ - - * @link http://www.smarty.net/manual/en/language.function.counter.php {counter} - * (Smarty online manual) - * - * @param array $params parameters - * @param Smarty_Internal_Template $template template object - * - * @return string|null - */ -function smarty_function_counter($params, $template) -{ - static $counters = array(); - - $name = (isset($params[ 'name' ])) ? $params[ 'name' ] : 'default'; - if (!isset($counters[ $name ])) { - $counters[ $name ] = array('start' => 1, 'skip' => 1, 'direction' => 'up', 'count' => 1); - } - $counter =& $counters[ $name ]; - - if (isset($params[ 'start' ])) { - $counter[ 'start' ] = $counter[ 'count' ] = (int) $params[ 'start' ]; - } - - if (!empty($params[ 'assign' ])) { - $counter[ 'assign' ] = $params[ 'assign' ]; - } - - if (isset($counter[ 'assign' ])) { - $template->assign($counter[ 'assign' ], $counter[ 'count' ]); - } - - if (isset($params[ 'print' ])) { - $print = (bool) $params[ 'print' ]; - } else { - $print = empty($counter[ 'assign' ]); - } - - if ($print) { - $retval = $counter[ 'count' ]; - } else { - $retval = null; - } - - if (isset($params[ 'skip' ])) { - $counter[ 'skip' ] = $params[ 'skip' ]; - } - - if (isset($params[ 'direction' ])) { - $counter[ 'direction' ] = $params[ 'direction' ]; - } - - if ($counter[ 'direction' ] === 'down') { - $counter[ 'count' ] -= $counter[ 'skip' ]; - } else { - $counter[ 'count' ] += $counter[ 'skip' ]; - } - - return $retval; -} diff --git a/core/template/plugins/function.cycle.php b/core/template/plugins/function.cycle.php deleted file mode 100644 index b871524..0000000 --- a/core/template/plugins/function.cycle.php +++ /dev/null @@ -1,105 +0,0 @@ - - * @author credit to Mark Priatel - * @author credit to Gerard - * @author credit to Jason Sweat - * @version 1.3 - * - * @param array $params parameters - * @param Smarty_Internal_Template $template template object - * - * @return string|null - */ - -function smarty_function_cycle($params, $template) -{ - static $cycle_vars; - - $name = (empty($params[ 'name' ])) ? 'default' : $params[ 'name' ]; - $print = (isset($params[ 'print' ])) ? (bool) $params[ 'print' ] : true; - $advance = (isset($params[ 'advance' ])) ? (bool) $params[ 'advance' ] : true; - $reset = (isset($params[ 'reset' ])) ? (bool) $params[ 'reset' ] : false; - - if (!isset($params[ 'values' ])) { - if (!isset($cycle_vars[ $name ][ 'values' ])) { - trigger_error('cycle: missing \'values\' parameter'); - - return; - } - } else { - if (isset($cycle_vars[ $name ][ 'values' ]) && $cycle_vars[ $name ][ 'values' ] !== $params[ 'values' ]) { - $cycle_vars[ $name ][ 'index' ] = 0; - } - $cycle_vars[ $name ][ 'values' ] = $params[ 'values' ]; - } - - if (isset($params[ 'delimiter' ])) { - $cycle_vars[ $name ][ 'delimiter' ] = $params[ 'delimiter' ]; - } elseif (!isset($cycle_vars[ $name ][ 'delimiter' ])) { - $cycle_vars[ $name ][ 'delimiter' ] = ','; - } - - if (is_array($cycle_vars[ $name ][ 'values' ])) { - $cycle_array = $cycle_vars[ $name ][ 'values' ]; - } else { - $cycle_array = explode($cycle_vars[ $name ][ 'delimiter' ], $cycle_vars[ $name ][ 'values' ]); - } - - if (!isset($cycle_vars[ $name ][ 'index' ]) || $reset) { - $cycle_vars[ $name ][ 'index' ] = 0; - } - - if (isset($params[ 'assign' ])) { - $print = false; - $template->assign($params[ 'assign' ], $cycle_array[ $cycle_vars[ $name ][ 'index' ] ]); - } - - if ($print) { - $retval = $cycle_array[ $cycle_vars[ $name ][ 'index' ] ]; - } else { - $retval = null; - } - - if ($advance) { - if ($cycle_vars[ $name ][ 'index' ] >= count($cycle_array) - 1) { - $cycle_vars[ $name ][ 'index' ] = 0; - } else { - $cycle_vars[ $name ][ 'index' ] ++; - } - } - - return $retval; -} diff --git a/core/template/plugins/function.fetch.php b/core/template/plugins/function.fetch.php deleted file mode 100644 index 9539e1f..0000000 --- a/core/template/plugins/function.fetch.php +++ /dev/null @@ -1,221 +0,0 @@ - - * - * @param array $params parameters - * @param Smarty_Internal_Template $template template object - * - * @throws SmartyException - * @return string|null if the assign parameter is passed, Smarty assigns the result to a template variable - */ -function smarty_function_fetch($params, $template) -{ - if (empty($params[ 'file' ])) { - trigger_error('[plugin] fetch parameter \'file\' cannot be empty', E_USER_NOTICE); - - return; - } - - // strip file protocol - if (stripos($params[ 'file' ], 'file://') === 0) { - $params[ 'file' ] = substr($params[ 'file' ], 7); - } - - $protocol = strpos($params[ 'file' ], '://'); - if ($protocol !== false) { - $protocol = strtolower(substr($params[ 'file' ], 0, $protocol)); - } - - if (isset($template->smarty->security_policy)) { - if ($protocol) { - // remote resource (or php stream, …) - if (!$template->smarty->security_policy->isTrustedUri($params[ 'file' ])) { - return; - } - } else { - // local file - if (!$template->smarty->security_policy->isTrustedResourceDir($params[ 'file' ])) { - return; - } - } - } - - $content = ''; - if ($protocol === 'http') { - // http fetch - if ($uri_parts = parse_url($params[ 'file' ])) { - // set defaults - $host = $server_name = $uri_parts[ 'host' ]; - $timeout = 30; - $accept = 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*'; - $agent = 'Smarty Template Engine ' . Smarty::SMARTY_VERSION; - $referer = ''; - $uri = !empty($uri_parts[ 'path' ]) ? $uri_parts[ 'path' ] : '/'; - $uri .= !empty($uri_parts[ 'query' ]) ? '?' . $uri_parts[ 'query' ] : ''; - $_is_proxy = false; - if (empty($uri_parts[ 'port' ])) { - $port = 80; - } else { - $port = $uri_parts[ 'port' ]; - } - if (!empty($uri_parts[ 'user' ])) { - $user = $uri_parts[ 'user' ]; - } - if (!empty($uri_parts[ 'pass' ])) { - $pass = $uri_parts[ 'pass' ]; - } - // loop through parameters, setup headers - foreach ($params as $param_key => $param_value) { - switch ($param_key) { - case 'file': - case 'assign': - case 'assign_headers': - break; - case 'user': - if (!empty($param_value)) { - $user = $param_value; - } - break; - case 'pass': - if (!empty($param_value)) { - $pass = $param_value; - } - break; - case 'accept': - if (!empty($param_value)) { - $accept = $param_value; - } - break; - case 'header': - if (!empty($param_value)) { - if (!preg_match('![\w\d-]+: .+!', $param_value)) { - trigger_error("[plugin] invalid header format '{$param_value}'", E_USER_NOTICE); - - return; - } else { - $extra_headers[] = $param_value; - } - } - break; - case 'proxy_host': - if (!empty($param_value)) { - $proxy_host = $param_value; - } - break; - case 'proxy_port': - if (!preg_match('!\D!', $param_value)) { - $proxy_port = (int) $param_value; - } else { - trigger_error("[plugin] invalid value for attribute '{$param_key }'", E_USER_NOTICE); - - return; - } - break; - case 'agent': - if (!empty($param_value)) { - $agent = $param_value; - } - break; - case 'referer': - if (!empty($param_value)) { - $referer = $param_value; - } - break; - case 'timeout': - if (!preg_match('!\D!', $param_value)) { - $timeout = (int) $param_value; - } else { - trigger_error("[plugin] invalid value for attribute '{$param_key}'", E_USER_NOTICE); - - return; - } - break; - default: - trigger_error("[plugin] unrecognized attribute '{$param_key}'", E_USER_NOTICE); - - return; - } - } - if (!empty($proxy_host) && !empty($proxy_port)) { - $_is_proxy = true; - $fp = fsockopen($proxy_host, $proxy_port, $errno, $errstr, $timeout); - } else { - $fp = fsockopen($server_name, $port, $errno, $errstr, $timeout); - } - - if (!$fp) { - trigger_error("[plugin] unable to fetch: $errstr ($errno)", E_USER_NOTICE); - - return; - } else { - if ($_is_proxy) { - fputs($fp, 'GET ' . $params[ 'file' ] . " HTTP/1.0\r\n"); - } else { - fputs($fp, "GET $uri HTTP/1.0\r\n"); - } - if (!empty($host)) { - fputs($fp, "Host: $host\r\n"); - } - if (!empty($accept)) { - fputs($fp, "Accept: $accept\r\n"); - } - if (!empty($agent)) { - fputs($fp, "User-Agent: $agent\r\n"); - } - if (!empty($referer)) { - fputs($fp, "Referer: $referer\r\n"); - } - if (isset($extra_headers) && is_array($extra_headers)) { - foreach ($extra_headers as $curr_header) { - fputs($fp, $curr_header . "\r\n"); - } - } - if (!empty($user) && !empty($pass)) { - fputs($fp, 'Authorization: BASIC ' . base64_encode("$user:$pass") . "\r\n"); - } - - fputs($fp, "\r\n"); - while (!feof($fp)) { - $content .= fgets($fp, 4096); - } - fclose($fp); - $csplit = preg_split("!\r\n\r\n!", $content, 2); - - $content = $csplit[ 1 ]; - - if (!empty($params[ 'assign_headers' ])) { - $template->assign($params[ 'assign_headers' ], preg_split("!\r\n!", $csplit[ 0 ])); - } - } - } else { - trigger_error("[plugin fetch] unable to parse URL, check syntax", E_USER_NOTICE); - - return; - } - } else { - $content = @file_get_contents($params[ 'file' ]); - if ($content === false) { - throw new SmartyException("{fetch} cannot read resource '" . $params[ 'file' ] . "'"); - } - } - - if (!empty($params[ 'assign' ])) { - $template->assign($params[ 'assign' ], $content); - } else { - return $content; - } -} diff --git a/core/template/plugins/function.html_checkboxes.php b/core/template/plugins/function.html_checkboxes.php deleted file mode 100644 index d654cab..0000000 --- a/core/template/plugins/function.html_checkboxes.php +++ /dev/null @@ -1,262 +0,0 @@ -' output=$names} - * {html_checkboxes values=$ids checked=$checked separator='
' output=$names} - * - * Params: - * - * - name (optional) - string default "checkbox" - * - values (required) - array - * - options (optional) - associative array - * - checked (optional) - array default not set - * - separator (optional) - ie
or   - * - output (optional) - the output next to each checkbox - * - 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} - * (Smarty online manual) - * @author Christopher Kvarme - * @author credits to Monte Ohrt - * @version 1.0 - * - * @param array $params parameters - * @param Smarty_Internal_Template $template template object - * - * @return string - * @uses smarty_function_escape_special_chars() - * @throws \SmartyException - */ -function smarty_function_html_checkboxes($params, Smarty_Internal_Template $template) -{ - $template->_checkPlugins(array(array('function' => 'smarty_function_escape_special_chars', - 'file' => SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php'))); - - $name = 'checkbox'; - $values = null; - $options = null; - $selected = array(); - $separator = ''; - $escape = true; - $labels = true; - $label_ids = false; - $output = null; - - $extra = ''; - - foreach ($params as $_key => $_val) { - switch ($_key) { - case 'name': - case 'separator': - $$_key = (string) $_val; - break; - - case 'escape': - case 'labels': - case 'label_ids': - $$_key = (bool) $_val; - break; - - case 'options': - $$_key = (array) $_val; - break; - - case 'values': - case 'output': - $$_key = array_values((array) $_val); - break; - - case 'checked': - case 'selected': - if (is_array($_val)) { - $selected = array(); - foreach ($_val as $_sel) { - if (is_object($_sel)) { - if (method_exists($_sel, '__toString')) { - $_sel = smarty_function_escape_special_chars((string) $_sel->__toString()); - } else { - trigger_error('html_checkboxes: selected attribute contains an object of class \'' . - get_class($_sel) . '\' without __toString() method', E_USER_NOTICE); - continue; - } - } else { - $_sel = smarty_function_escape_special_chars((string) $_sel); - } - $selected[ $_sel ] = true; - } - } elseif (is_object($_val)) { - if (method_exists($_val, '__toString')) { - $selected = smarty_function_escape_special_chars((string) $_val->__toString()); - } else { - trigger_error('html_checkboxes: selected attribute is an object of class \'' . get_class($_val) . - '\' without __toString() method', E_USER_NOTICE); - } - } else { - $selected = smarty_function_escape_special_chars((string) $_val); - } - break; - - case 'checkboxes': - trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead', - E_USER_WARNING); - $options = (array) $_val; - break; - - case 'assign': - break; - - case 'strict': - break; - - case 'disabled': - case 'readonly': - if (!empty($params[ 'strict' ])) { - if (!is_scalar($_val)) { - trigger_error("html_options: {$_key} attribute must be a scalar, only boolean true or string '{$_key}' will actually add the attribute", - E_USER_NOTICE); - } - - if ($_val === true || $_val === $_key) { - $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_key) . '"'; - } - - break; - } - // omit break; to fall through! - - default: - if (!is_array($_val)) { - $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"'; - } else { - trigger_error("html_checkboxes: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE); - } - break; - } - } - - if (!isset($options) && !isset($values)) { - return ''; - } /* raise error here? */ - - $_html_result = array(); - - if (isset($options)) { - foreach ($options as $_key => $_val) { - $_html_result[] = - smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels, - $label_ids, $escape); - } - } else { - foreach ($values as $_i => $_key) { - $_val = isset($output[ $_i ]) ? $output[ $_i ] : ''; - $_html_result[] = - smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels, - $label_ids, $escape); - } - } - - if (!empty($params[ 'assign' ])) { - $template->assign($params[ 'assign' ], $_html_result); - } else { - return implode("\n", $_html_result); - } -} -/** - * @param $name - * @param $value - * @param $output - * @param $selected - * @param $extra - * @param $separator - * @param $labels - * @param $label_ids - * @param bool $escape - * - * @return string - */ -function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels, - $label_ids, $escape = true) -{ - $_output = ''; - - if (is_object($value)) { - if (method_exists($value, '__toString')) { - $value = (string) $value->__toString(); - } else { - trigger_error('html_options: value is an object of class \'' . get_class($value) . - '\' without __toString() method', E_USER_NOTICE); - - return ''; - } - } else { - $value = (string) $value; - } - - if (is_object($output)) { - if (method_exists($output, '__toString')) { - $output = (string) $output->__toString(); - } else { - trigger_error('html_options: output is an object of class \'' . get_class($output) . - '\' without __toString() method', E_USER_NOTICE); - - return ''; - } - } else { - $output = (string) $output; - } - - if ($labels) { - if ($label_ids) { - $_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!' . Smarty::$_UTF8_MODIFIER, '_', - $name . '_' . $value)); - $_output .= '