From db5e01ab9b00e96c9e69023384494eae50a4ce68 Mon Sep 17 00:00:00 2001 From: Brian Evans Date: Thu, 11 Apr 2019 12:53:21 -0400 Subject: Update Widgets for 1.32 Signed-off-by: Brian Evans --- Widgets/.gitignore | 1 + Widgets/.gitmodules | 3 - Widgets/CODE_OF_CONDUCT.md | 2 +- Widgets/Makefile | 29 - Widgets/WidgetInitializer.php | 22 + Widgets/Widgets.php | 115 +- Widgets/composer.json | 19 + Widgets/extension.json | 81 + Widgets/gitinfo.json | 2 +- Widgets/i18n/ar.json | 7 +- Widgets/i18n/be-tarask.json | 7 +- Widgets/i18n/de.json | 9 +- Widgets/i18n/en.json | 4 +- Widgets/i18n/fr.json | 4 +- Widgets/i18n/mk.json | 4 +- Widgets/i18n/pt-br.json | 7 +- Widgets/i18n/pt.json | 6 +- Widgets/i18n/qqq.json | 4 +- Widgets/i18n/roa-tara.json | 4 +- Widgets/i18n/ru.json | 7 +- Widgets/i18n/tt-cyrl.json | 11 + Widgets/i18n/zh-hans.json | 7 +- Widgets/i18n/zh-hant.json | 9 +- Widgets/package.json | 2 +- Widgets/smarty/.gitattributes | 22 - Widgets/smarty/.gitignore | 221 -- Widgets/smarty/.travis.yml | 24 - Widgets/smarty/COMPOSER_RELEASE_NOTES.txt | 29 - Widgets/smarty/COPYING.lib | 165 -- Widgets/smarty/INHERITANCE_RELEASE_NOTES.txt | 67 - Widgets/smarty/NEW_FEATURES.txt | 133 - Widgets/smarty/README | 575 ---- Widgets/smarty/README.md | 65 - Widgets/smarty/SMARTY_2_BC_NOTES.txt | 109 - Widgets/smarty/SMARTY_3.0_BC_NOTES.txt | 24 - Widgets/smarty/SMARTY_3.1_NOTES.txt | 306 --- Widgets/smarty/change_log.txt | 2864 -------------------- Widgets/smarty/composer.json | 43 - Widgets/smarty/demo/configs/test.conf | 5 - Widgets/smarty/demo/index.php | 30 - Widgets/smarty/demo/plugins/cacheresource.apc.php | 83 - .../smarty/demo/plugins/cacheresource.memcache.php | 97 - .../smarty/demo/plugins/cacheresource.mysql.php | 162 -- Widgets/smarty/demo/plugins/cacheresource.pdo.php | 322 --- .../smarty/demo/plugins/cacheresource.pdo_gzip.php | 43 - .../smarty/demo/plugins/resource.extendsall.php | 65 - Widgets/smarty/demo/plugins/resource.mysql.php | 81 - Widgets/smarty/demo/plugins/resource.mysqls.php | 62 - Widgets/smarty/demo/templates/footer.tpl | 2 - Widgets/smarty/demo/templates/header.tpl | 5 - Widgets/smarty/demo/templates/index.tpl | 87 - .../lexer/smarty_internal_configfilelexer.plex | 318 --- .../lexer/smarty_internal_configfileparser.y | 362 --- .../lexer/smarty_internal_templatelexer.plex | 672 ----- .../smarty/lexer/smarty_internal_templateparser.y | 1352 --------- Widgets/smarty/libs/Autoloader.php | 124 - Widgets/smarty/libs/Smarty.class.php | 1482 ---------- Widgets/smarty/libs/SmartyBC.class.php | 455 ---- Widgets/smarty/libs/debug.tpl | 160 -- Widgets/smarty/libs/plugins/block.textformat.php | 110 - Widgets/smarty/libs/plugins/function.counter.php | 78 - Widgets/smarty/libs/plugins/function.cycle.php | 107 - Widgets/smarty/libs/plugins/function.fetch.php | 221 -- .../libs/plugins/function.html_checkboxes.php | 237 -- .../smarty/libs/plugins/function.html_image.php | 163 -- .../smarty/libs/plugins/function.html_options.php | 196 -- .../smarty/libs/plugins/function.html_radios.php | 221 -- .../libs/plugins/function.html_select_date.php | 387 --- .../libs/plugins/function.html_select_time.php | 364 --- .../smarty/libs/plugins/function.html_table.php | 176 -- Widgets/smarty/libs/plugins/function.mailto.php | 155 -- Widgets/smarty/libs/plugins/function.math.php | 91 - .../smarty/libs/plugins/modifier.capitalize.php | 90 - .../smarty/libs/plugins/modifier.date_format.php | 65 - .../libs/plugins/modifier.debug_print_var.php | 116 - Widgets/smarty/libs/plugins/modifier.escape.php | 198 -- .../smarty/libs/plugins/modifier.regex_replace.php | 58 - Widgets/smarty/libs/plugins/modifier.replace.php | 34 - Widgets/smarty/libs/plugins/modifier.spacify.php | 27 - Widgets/smarty/libs/plugins/modifier.truncate.php | 64 - .../smarty/libs/plugins/modifiercompiler.cat.php | 29 - .../plugins/modifiercompiler.count_characters.php | 32 - .../plugins/modifiercompiler.count_paragraphs.php | 27 - .../plugins/modifiercompiler.count_sentences.php | 27 - .../libs/plugins/modifiercompiler.count_words.php | 31 - .../libs/plugins/modifiercompiler.default.php | 35 - .../libs/plugins/modifiercompiler.escape.php | 126 - .../libs/plugins/modifiercompiler.from_charset.php | 33 - .../libs/plugins/modifiercompiler.indent.php | 33 - .../smarty/libs/plugins/modifiercompiler.lower.php | 31 - .../libs/plugins/modifiercompiler.noprint.php | 21 - .../plugins/modifiercompiler.string_format.php | 25 - .../smarty/libs/plugins/modifiercompiler.strip.php | 33 - .../libs/plugins/modifiercompiler.strip_tags.php | 29 - .../libs/plugins/modifiercompiler.to_charset.php | 33 - .../libs/plugins/modifiercompiler.unescape.php | 50 - .../smarty/libs/plugins/modifiercompiler.upper.php | 29 - .../libs/plugins/modifiercompiler.wordwrap.php | 47 - .../libs/plugins/outputfilter.trimwhitespace.php | 90 - .../libs/plugins/shared.escape_special_chars.php | 53 - .../libs/plugins/shared.literal_compiler_param.php | 35 - .../smarty/libs/plugins/shared.make_timestamp.php | 43 - .../smarty/libs/plugins/shared.mb_str_replace.php | 55 - Widgets/smarty/libs/plugins/shared.mb_unicode.php | 54 - Widgets/smarty/libs/plugins/shared.mb_wordwrap.php | 73 - .../plugins/variablefilter.htmlspecialchars.php | 19 - .../libs/sysplugins/smarty_cacheresource.php | 223 -- .../sysplugins/smarty_cacheresource_custom.php | 281 -- .../smarty_cacheresource_keyvaluestore.php | 513 ---- Widgets/smarty/libs/sysplugins/smarty_data.php | 68 - .../smarty_internal_cacheresource_file.php | 225 -- .../sysplugins/smarty_internal_compile_append.php | 50 - .../sysplugins/smarty_internal_compile_assign.php | 98 - .../sysplugins/smarty_internal_compile_block.php | 292 -- .../sysplugins/smarty_internal_compile_break.php | 77 - .../sysplugins/smarty_internal_compile_call.php | 89 - .../sysplugins/smarty_internal_compile_capture.php | 117 - .../smarty_internal_compile_config_load.php | 104 - .../smarty_internal_compile_continue.php | 77 - .../sysplugins/smarty_internal_compile_debug.php | 41 - .../sysplugins/smarty_internal_compile_eval.php | 71 - .../sysplugins/smarty_internal_compile_extends.php | 134 - .../sysplugins/smarty_internal_compile_for.php | 169 -- .../sysplugins/smarty_internal_compile_foreach.php | 347 --- .../smarty_internal_compile_function.php | 210 -- .../libs/sysplugins/smarty_internal_compile_if.php | 252 -- .../sysplugins/smarty_internal_compile_include.php | 366 --- .../smarty_internal_compile_include_php.php | 111 - .../sysplugins/smarty_internal_compile_insert.php | 151 -- .../sysplugins/smarty_internal_compile_ldelim.php | 40 - .../sysplugins/smarty_internal_compile_nocache.php | 75 - ...marty_internal_compile_private_block_plugin.php | 89 - ...rty_internal_compile_private_foreachsection.php | 220 -- ...ty_internal_compile_private_function_plugin.php | 72 - .../smarty_internal_compile_private_modifier.php | 155 -- ...ernal_compile_private_object_block_function.php | 91 - ...ty_internal_compile_private_object_function.php | 84 - .../smarty_internal_compile_private_php.php | 209 -- ...y_internal_compile_private_print_expression.php | 156 -- ...y_internal_compile_private_registered_block.php | 119 - ...nternal_compile_private_registered_function.php | 79 - ...y_internal_compile_private_special_variable.php | 126 - .../sysplugins/smarty_internal_compile_rdelim.php | 39 - .../sysplugins/smarty_internal_compile_section.php | 454 ---- .../smarty_internal_compile_setfilter.php | 70 - .../smarty_internal_compile_shared_inheritance.php | 46 - .../sysplugins/smarty_internal_compile_while.php | 108 - .../sysplugins/smarty_internal_compilebase.php | 178 -- .../smarty_internal_config_file_compiler.php | 194 -- .../sysplugins/smarty_internal_configfilelexer.php | 699 ----- .../smarty_internal_configfileparser.php | 1010 ------- .../libs/sysplugins/smarty_internal_data.php | 240 -- .../libs/sysplugins/smarty_internal_debug.php | 430 --- .../sysplugins/smarty_internal_extension_clear.php | 126 - .../smarty_internal_extension_handler.php | 157 -- .../smarty_internal_method_addautoloadfilters.php | 51 - .../smarty_internal_method_adddefaultmodifiers.php | 42 - .../sysplugins/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 | 40 - .../smarty_internal_method_clearassign.php | 44 - .../smarty_internal_method_clearcache.php | 43 - ...marty_internal_method_clearcompiledtemplate.php | 124 - .../smarty_internal_method_clearconfig.php | 41 - .../smarty_internal_method_compileallconfig.php | 32 - .../smarty_internal_method_compilealltemplates.php | 111 - .../smarty_internal_method_configload.php | 182 -- .../smarty_internal_method_createdata.php | 44 - .../smarty_internal_method_getautoloadfilters.php | 37 - .../smarty_internal_method_getconfigvars.php | 58 - .../smarty_internal_method_getdebugtemplate.php | 35 - .../smarty_internal_method_getdefaultmodifiers.php | 35 - .../smarty_internal_method_getregisteredobject.php | 44 - .../smarty_internal_method_getstreamvariable.php | 51 - .../sysplugins/smarty_internal_method_gettags.php | 62 - .../smarty_internal_method_gettemplatevars.php | 114 - .../smarty_internal_method_loadfilter.php | 77 - .../smarty_internal_method_loadplugin.php | 111 - .../smarty_internal_method_mustcompile.php | 49 - ...marty_internal_method_registercacheresource.php | 39 - .../smarty_internal_method_registerclass.php | 46 - ...nternal_method_registerdefaultconfighandler.php | 42 - ...nternal_method_registerdefaultpluginhandler.php | 43 - ...ernal_method_registerdefaulttemplatehandler.php | 72 - .../smarty_internal_method_registerfilter.php | 88 - .../smarty_internal_method_registerobject.php | 71 - .../smarty_internal_method_registerplugin.php | 50 - .../smarty_internal_method_registerresource.php | 44 - .../smarty_internal_method_setautoloadfilters.php | 70 - .../smarty_internal_method_setdebugtemplate.php | 41 - .../smarty_internal_method_setdefaultmodifiers.php | 38 - .../smarty_internal_method_unloadfilter.php | 42 - ...rty_internal_method_unregistercacheresource.php | 40 - .../smarty_internal_method_unregisterfilter.php | 42 - .../smarty_internal_method_unregisterobject.php | 40 - .../smarty_internal_method_unregisterplugin.php | 41 - .../smarty_internal_method_unregisterresource.php | 40 - .../sysplugins/smarty_internal_nocache_insert.php | 51 - .../libs/sysplugins/smarty_internal_parsetree.php | 54 - .../sysplugins/smarty_internal_parsetree_code.php | 42 - .../sysplugins/smarty_internal_parsetree_dq.php | 88 - .../smarty_internal_parsetree_dqcontent.php | 42 - .../sysplugins/smarty_internal_parsetree_tag.php | 69 - .../smarty_internal_parsetree_template.php | 128 - .../sysplugins/smarty_internal_parsetree_text.php | 40 - .../sysplugins/smarty_internal_resource_eval.php | 96 - .../smarty_internal_resource_extends.php | 124 - .../sysplugins/smarty_internal_resource_file.php | 179 -- .../sysplugins/smarty_internal_resource_php.php | 108 - .../smarty_internal_resource_registered.php | 99 - .../sysplugins/smarty_internal_resource_stream.php | 81 - .../sysplugins/smarty_internal_resource_string.php | 97 - .../smarty_internal_runtime_cachemodify.php | 67 - .../smarty_internal_runtime_codeframe.php | 94 - .../smarty_internal_runtime_filterhandler.php | 69 - .../sysplugins/smarty_internal_runtime_foreach.php | 47 - .../smarty_internal_runtime_getincludepath.php | 180 -- .../sysplugins/smarty_internal_runtime_hhvm.php | 30 - .../smarty_internal_runtime_inheritance.php | 233 -- .../smarty_internal_runtime_subtemplate.php | 203 -- .../smarty_internal_runtime_tplfunction.php | 97 - .../smarty_internal_runtime_updatecache.php | 170 -- .../smarty_internal_runtime_updatescope.php | 55 - .../smarty_internal_runtime_validatecompiled.php | 86 - .../sysplugins/smarty_internal_runtime_var.php | 33 - .../smarty_internal_runtime_writefile.php | 90 - .../smarty_internal_smartytemplatecompiler.php | 169 -- .../libs/sysplugins/smarty_internal_template.php | 376 --- .../sysplugins/smarty_internal_templatebase.php | 316 --- .../smarty_internal_templatecompilerbase.php | 1170 -------- .../sysplugins/smarty_internal_templatelexer.php | 1135 -------- .../sysplugins/smarty_internal_templateparser.php | 2833 ------------------- .../sysplugins/smarty_internal_testinstall.php | 604 ----- .../libs/sysplugins/smarty_internal_undefined.php | 48 - Widgets/smarty/libs/sysplugins/smarty_resource.php | 270 -- .../libs/sysplugins/smarty_resource_custom.php | 95 - .../libs/sysplugins/smarty_resource_recompiled.php | 47 - .../libs/sysplugins/smarty_resource_uncompiled.php | 79 - Widgets/smarty/libs/sysplugins/smarty_security.php | 715 ----- .../libs/sysplugins/smarty_template_cached.php | 246 -- .../libs/sysplugins/smarty_template_compiled.php | 297 -- .../libs/sysplugins/smarty_template_config.php | 97 - .../sysplugins/smarty_template_resource_base.php | 155 -- .../libs/sysplugins/smarty_template_source.php | 267 -- .../libs/sysplugins/smarty_undefined_variable.php | 37 - Widgets/smarty/libs/sysplugins/smarty_variable.php | 47 - .../libs/sysplugins/smartycompilerexception.php | 39 - Widgets/smarty/libs/sysplugins/smartyexception.php | 15 - Widgets/version | 6 +- 252 files changed, 205 insertions(+), 38731 deletions(-) delete mode 100644 Widgets/.gitmodules delete mode 100644 Widgets/Makefile create mode 100644 Widgets/WidgetInitializer.php create mode 100644 Widgets/composer.json create mode 100644 Widgets/extension.json create mode 100644 Widgets/i18n/tt-cyrl.json delete mode 100644 Widgets/smarty/.gitattributes delete mode 100644 Widgets/smarty/.gitignore delete mode 100644 Widgets/smarty/.travis.yml delete mode 100644 Widgets/smarty/COMPOSER_RELEASE_NOTES.txt delete mode 100644 Widgets/smarty/COPYING.lib delete mode 100644 Widgets/smarty/INHERITANCE_RELEASE_NOTES.txt delete mode 100644 Widgets/smarty/NEW_FEATURES.txt delete mode 100644 Widgets/smarty/README delete mode 100644 Widgets/smarty/README.md delete mode 100644 Widgets/smarty/SMARTY_2_BC_NOTES.txt delete mode 100644 Widgets/smarty/SMARTY_3.0_BC_NOTES.txt delete mode 100644 Widgets/smarty/SMARTY_3.1_NOTES.txt delete mode 100644 Widgets/smarty/change_log.txt delete mode 100644 Widgets/smarty/composer.json delete mode 100644 Widgets/smarty/demo/configs/test.conf delete mode 100644 Widgets/smarty/demo/index.php delete mode 100644 Widgets/smarty/demo/plugins/cacheresource.apc.php delete mode 100644 Widgets/smarty/demo/plugins/cacheresource.memcache.php delete mode 100644 Widgets/smarty/demo/plugins/cacheresource.mysql.php delete mode 100644 Widgets/smarty/demo/plugins/cacheresource.pdo.php delete mode 100644 Widgets/smarty/demo/plugins/cacheresource.pdo_gzip.php delete mode 100644 Widgets/smarty/demo/plugins/resource.extendsall.php delete mode 100644 Widgets/smarty/demo/plugins/resource.mysql.php delete mode 100644 Widgets/smarty/demo/plugins/resource.mysqls.php delete mode 100644 Widgets/smarty/demo/templates/footer.tpl delete mode 100644 Widgets/smarty/demo/templates/header.tpl delete mode 100644 Widgets/smarty/demo/templates/index.tpl delete mode 100644 Widgets/smarty/lexer/smarty_internal_configfilelexer.plex delete mode 100644 Widgets/smarty/lexer/smarty_internal_configfileparser.y delete mode 100644 Widgets/smarty/lexer/smarty_internal_templatelexer.plex delete mode 100644 Widgets/smarty/lexer/smarty_internal_templateparser.y delete mode 100644 Widgets/smarty/libs/Autoloader.php delete mode 100644 Widgets/smarty/libs/Smarty.class.php delete mode 100644 Widgets/smarty/libs/SmartyBC.class.php delete mode 100644 Widgets/smarty/libs/debug.tpl delete mode 100644 Widgets/smarty/libs/plugins/block.textformat.php delete mode 100644 Widgets/smarty/libs/plugins/function.counter.php delete mode 100644 Widgets/smarty/libs/plugins/function.cycle.php delete mode 100644 Widgets/smarty/libs/plugins/function.fetch.php delete mode 100644 Widgets/smarty/libs/plugins/function.html_checkboxes.php delete mode 100644 Widgets/smarty/libs/plugins/function.html_image.php delete mode 100644 Widgets/smarty/libs/plugins/function.html_options.php delete mode 100644 Widgets/smarty/libs/plugins/function.html_radios.php delete mode 100644 Widgets/smarty/libs/plugins/function.html_select_date.php delete mode 100644 Widgets/smarty/libs/plugins/function.html_select_time.php delete mode 100644 Widgets/smarty/libs/plugins/function.html_table.php delete mode 100644 Widgets/smarty/libs/plugins/function.mailto.php delete mode 100644 Widgets/smarty/libs/plugins/function.math.php delete mode 100644 Widgets/smarty/libs/plugins/modifier.capitalize.php delete mode 100644 Widgets/smarty/libs/plugins/modifier.date_format.php delete mode 100644 Widgets/smarty/libs/plugins/modifier.debug_print_var.php delete mode 100644 Widgets/smarty/libs/plugins/modifier.escape.php delete mode 100644 Widgets/smarty/libs/plugins/modifier.regex_replace.php delete mode 100644 Widgets/smarty/libs/plugins/modifier.replace.php delete mode 100644 Widgets/smarty/libs/plugins/modifier.spacify.php delete mode 100644 Widgets/smarty/libs/plugins/modifier.truncate.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.cat.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.count_characters.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.count_paragraphs.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.count_sentences.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.count_words.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.default.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.escape.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.from_charset.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.indent.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.lower.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.noprint.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.string_format.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.strip.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.strip_tags.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.to_charset.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.unescape.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.upper.php delete mode 100644 Widgets/smarty/libs/plugins/modifiercompiler.wordwrap.php delete mode 100644 Widgets/smarty/libs/plugins/outputfilter.trimwhitespace.php delete mode 100644 Widgets/smarty/libs/plugins/shared.escape_special_chars.php delete mode 100644 Widgets/smarty/libs/plugins/shared.literal_compiler_param.php delete mode 100644 Widgets/smarty/libs/plugins/shared.make_timestamp.php delete mode 100644 Widgets/smarty/libs/plugins/shared.mb_str_replace.php delete mode 100644 Widgets/smarty/libs/plugins/shared.mb_unicode.php delete mode 100644 Widgets/smarty/libs/plugins/shared.mb_wordwrap.php delete mode 100644 Widgets/smarty/libs/plugins/variablefilter.htmlspecialchars.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_cacheresource.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_cacheresource_custom.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_cacheresource_keyvaluestore.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_data.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_cacheresource_file.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_append.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_assign.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_block.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_break.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_call.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_capture.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_config_load.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_continue.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_debug.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_eval.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_extends.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_for.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_foreach.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_function.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_if.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_include.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_include_php.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_insert.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_ldelim.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_nocache.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_private_block_plugin.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_private_foreachsection.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_private_function_plugin.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_private_object_block_function.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_private_php.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_private_registered_block.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_private_special_variable.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_rdelim.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_section.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_setfilter.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_shared_inheritance.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compile_while.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_compilebase.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_config_file_compiler.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_configfilelexer.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_configfileparser.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_data.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_debug.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_extension_clear.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_extension_handler.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_addautoloadfilters.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_adddefaultmodifiers.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_append.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_appendbyref.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_assignbyref.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_assignglobal.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_clearallassign.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_clearallcache.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_clearassign.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_clearcache.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_clearcompiledtemplate.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_clearconfig.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_compileallconfig.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_compilealltemplates.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_configload.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_createdata.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_getautoloadfilters.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_getconfigvars.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_getdebugtemplate.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_getdefaultmodifiers.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_getregisteredobject.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_getstreamvariable.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_gettags.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_gettemplatevars.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_loadfilter.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_loadplugin.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_mustcompile.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_registercacheresource.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_registerclass.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_registerdefaultconfighandler.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_registerdefaulttemplatehandler.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_registerfilter.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_registerobject.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_registerplugin.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_registerresource.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_setautoloadfilters.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_setdebugtemplate.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_setdefaultmodifiers.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_unloadfilter.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_unregistercacheresource.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_unregisterfilter.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_unregisterobject.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_unregisterplugin.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_method_unregisterresource.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_nocache_insert.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_parsetree.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_parsetree_code.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_parsetree_dq.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_parsetree_dqcontent.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_parsetree_tag.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_parsetree_template.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_parsetree_text.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_resource_eval.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_resource_extends.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_resource_file.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_resource_php.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_resource_registered.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_resource_stream.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_resource_string.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_cachemodify.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_codeframe.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_filterhandler.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_foreach.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_getincludepath.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_hhvm.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_inheritance.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_subtemplate.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_tplfunction.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_updatecache.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_validatecompiled.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_var.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_runtime_writefile.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_template.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_templatebase.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_templatelexer.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_templateparser.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_testinstall.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_internal_undefined.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_resource.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_resource_custom.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_resource_recompiled.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_resource_uncompiled.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_security.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_template_cached.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_template_compiled.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_template_config.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_template_resource_base.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_template_source.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_undefined_variable.php delete mode 100644 Widgets/smarty/libs/sysplugins/smarty_variable.php delete mode 100644 Widgets/smarty/libs/sysplugins/smartycompilerexception.php delete mode 100644 Widgets/smarty/libs/sysplugins/smartyexception.php diff --git a/Widgets/.gitignore b/Widgets/.gitignore index e870f9db..aded86d2 100644 --- a/Widgets/.gitignore +++ b/Widgets/.gitignore @@ -1,5 +1,6 @@ node_modules/ vendor/ +composer.lock .svn *~ diff --git a/Widgets/.gitmodules b/Widgets/.gitmodules deleted file mode 100644 index d1d2db6a..00000000 --- a/Widgets/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "smarty"] - path = smarty - url = https://github.com/smarty-php/smarty.git diff --git a/Widgets/CODE_OF_CONDUCT.md b/Widgets/CODE_OF_CONDUCT.md index d8e5d087..498acf76 100644 --- a/Widgets/CODE_OF_CONDUCT.md +++ b/Widgets/CODE_OF_CONDUCT.md @@ -1 +1 @@ -The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Code_of_Conduct). +The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct). diff --git a/Widgets/Makefile b/Widgets/Makefile deleted file mode 100644 index 45b91925..00000000 --- a/Widgets/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -all: - -rel: release -release: -ifndef v - # Must specify version as 'v' param - # - # make rel v=1.1.1 - # -else - # - # Tagging it with release tag - # - svn copy . svn+ssh://sergeychernyshev@svn.wikimedia.org/svnroot/mediawiki/tags/extensions/Widgets/REL_${subst .,_,${v}}/ - # - # Creating release tarball and zip - # - svn export http://svn.wikimedia.org/svnroot/mediawiki/tags/extensions/Widgets/REL_${subst .,_,${v}}/ Widgets - # Not including Makefile into the package since it's not doing anything but release packaging - rm Widgets/Makefile - tar -c Widgets |gzip > Widgets_${v}.tgz - zip -r Widgets_${v}.zip Widgets - rm -rf Widgets - - # upload to Google Code repository (need account with enough permissions) - googlecode/googlecode_upload.py -s "MediaWiki Widgets Extension v${v} (tarball)" -p mediawiki-widgets -l "Featured,Type-Archive,OpSys-All" Widgets_${v}.tgz - googlecode/googlecode_upload.py -s "MediaWiki Widgets Extension v${v} (zip)" -p mediawiki-widgets -l "Featured,Type-Archive,OpSys-All" Widgets_${v}.zip - rm Widgets_${v}.tgz Widgets_${v}.zip -endif diff --git a/Widgets/WidgetInitializer.php b/Widgets/WidgetInitializer.php new file mode 100644 index 00000000..233e6ef8 --- /dev/null +++ b/Widgets/WidgetInitializer.php @@ -0,0 +1,22 @@ +setFunctionHook( 'widget', 'WidgetRenderer::renderWidget' ); + + return true; + } + +} diff --git a/Widgets/Widgets.php b/Widgets/Widgets.php index aeed6f4b..545c12a0 100644 --- a/Widgets/Widgets.php +++ b/Widgets/Widgets.php @@ -1,108 +1,11 @@ __FILE__, - 'name' => 'Widgets', - 'descriptionmsg' => 'widgets-desc', - 'version' => '1.3.0', - 'author' => array( - '[https://www.sergeychernyshev.com Sergey Chernyshev]', - 'Yaron Koren', - '...' - ), - 'url' => 'https://www.mediawiki.org/wiki/Extension:Widgets', - 'license-name' => 'GPL-2.0+' -); - -/** - * Set this to the index of the Widget namespace - */ -if ( !defined( 'NS_WIDGET' ) ) { - define( 'NS_WIDGET', 274 ); -} -if ( !defined( 'NS_WIDGET_TALK' ) ) { - define( 'NS_WIDGET_TALK', NS_WIDGET + 1 ); -} elseif ( NS_WIDGET_TALK != NS_WIDGET + 1 ) { - throw new MWException( 'Configuration error. Do not define NS_WIDGET_TALK, it is automatically set based on NS_WIDGET.' ); -} - -// Support subpages only for talk pages by default -$wgNamespacesWithSubpages[NS_WIDGET_TALK] = true; - -// Define new right -$wgAvailableRights[] = 'editwidgets'; - -// Assign editing to widgeteditor and sysop groups only (widgets can be dangerous so we do it here, not in LocalSettings) -$wgGroupPermissions['*']['editwidgets'] = false; -$wgGroupPermissions['widgeteditor']['editwidgets'] = true; -$wgGroupPermissions['sysop']['editwidgets'] = true; - -// Set this to true to use FlaggedRevs extension's stable version for widget security -$wgWidgetsUseFlaggedRevs = false; - -// Set a default directory for storage of compiled templates -$wgWidgetsCompileDir = "$IP/extensions/Widgets/compiled_templates/"; - -// Initialize Smarty -require_once( __DIR__ . '/smarty/libs/Smarty.class.php' ); - -// Load extension's classes. -$wgAutoloadClasses['WidgetRenderer'] = __DIR__ . '/WidgetRenderer.php'; - -// Register extension messages and other localisation. -$wgMessagesDirs['Widgets'] = __DIR__ . '/i18n'; -$wgExtensionMessagesFiles['WidgetsMagic'] = __DIR__ . '/Widgets.i18n.magic.php'; -$wgExtensionMessagesFiles['WidgetsNamespaces'] = __DIR__ . '/Widgets.i18n.namespaces.php'; - -// Parser function registration -$wgExtensionFunctions[] = 'widgetNamespacesInit'; -$wgExtensionFunctions[] = 'WidgetRenderer::initRandomString'; - -// Register extension hooks. -$wgHooks['ParserFirstCallInit'][] = 'widgetParserFunctions'; -$wgHooks['ParserAfterTidy'][] = 'WidgetRenderer::outputCompiledWidget'; -$wgHooks['CanonicalNamespaces'][] = 'widgetsAddNamespaces'; - -/** - * @param $parser Parser - * @return bool - */ -function widgetParserFunctions( &$parser ) { - $parser->setFunctionHook( 'widget', 'WidgetRenderer::renderWidget' ); - - return true; -} - -// Define new namespaces -function widgetsAddNamespaces( &$list ) { - $list[NS_WIDGET] = 'Widget'; - $list[NS_WIDGET_TALK] = 'Widget_talk'; - return true; -} - -function widgetNamespacesInit() { - global $wgNamespaceProtection, $wgWidgetsUseFlaggedRevs; - - if ( !$wgWidgetsUseFlaggedRevs ) { - // Setting required namespace permission rights - $wgNamespaceProtection[NS_WIDGET] = array( 'editwidgets' ); - } +if ( version_compare( $wgVersion, '1.30', '>=' ) ) { + wfLoadExtension( 'Widgets' ); + // Keep i18n globals so mergeMessageFileList.php doesn't break + $wgMessagesDirs['Widgets'] = __DIR__ . '/i18n'; + $wgExtensionMessagesFiles['WidgetsMagic'] = __DIR__ . '/Widgets.i18n.magic.php'; + $wgExtensionMessagesFiles['WidgetsNamespaces'] = __DIR__ . '/Widgets.i18n.namespaces.php'; + return; +} else { + die( 'This version of the Widgets extension requires MediaWiki 1.30+' ); } diff --git a/Widgets/composer.json b/Widgets/composer.json new file mode 100644 index 00000000..bf2527b0 --- /dev/null +++ b/Widgets/composer.json @@ -0,0 +1,19 @@ +{ + "require": { + "smarty/smarty": "~3.1" + }, + "require-dev": { + "jakub-onderka/php-parallel-lint": "1.0.0", + "jakub-onderka/php-console-highlighter": "0.3.2", + "mediawiki/minus-x": "0.3.1" + }, + "scripts": { + "test": [ + "parallel-lint . --exclude vendor --exclude node_modules", + "minus-x check ." + ], + "fix": [ + "minus-x fix ." + ] + } +} diff --git a/Widgets/extension.json b/Widgets/extension.json new file mode 100644 index 00000000..e979b06d --- /dev/null +++ b/Widgets/extension.json @@ -0,0 +1,81 @@ +{ + "name": "Widgets", + "version": "1.4.0", + "author": [ + "[https://www.sergeychernyshev.com Sergey Chernyshev]", + "Yaron Koren", + "..." + ], + "url": "https://www.mediawiki.org/wiki/Extension:Widgets", + "descriptionmsg": "widgets-desc", + "license-name": "GPL-2.0-or-later", + "type": "parserhook", + "requires": { + "MediaWiki": ">= 1.30.0" + }, + "config": { + "WidgetsUseFlaggedRevs": { + "value": false, + "path": false, + "descriptionmsg": "widgets-config-useflaggedrevs", + "public": true + }, + "WidgetsCompileDir": { + "value": "compiled_templates/", + "path": true, + "descriptionmsg": "widgets-config-compiledir", + "public": false + } + }, + "namespaces": [ + { + "id": 274, + "constant": "NS_WIDGET", + "name": "Widget", + "protection": "editwidgets" + }, + { + "id": 275, + "constant": "NS_WIDGET_TALK", + "name": "Widget_talk", + "subpages": true + } + ], + "Hooks": { + "ParserFirstCallInit": "WidgetInitializer::initParserFunctions", + "ParserAfterTidy": "WidgetRenderer::outputCompiledWidget" + }, + "ExtensionFunctions": [ + "WidgetRenderer::initRandomString" + ], + "AvailableRights": [ + "editwidgets" + ], + "GroupPermissions": { + "*": { + "editwidgets": false + }, + "widgeteditor": { + "editwidgets": true + }, + "sysop": { + "editwidgets": true + } + }, + "MessagesDirs": { + "Widgets": [ + "i18n" + ] + }, + "ExtensionMessagesFiles": { + "WidgetsMagic": "Widgets.i18n.magic.php", + "WidgetsNamespaces": "Widgets.i18n.namespaces.php" + }, + "AutoloadClasses": { + "WidgetInitializer": "WidgetInitializer.php", + "WidgetRenderer": "WidgetRenderer.php" + }, + "callback": "WidgetInitializer::init", + "load_composer_autoloader": true, + "manifest_version": 2 +} diff --git a/Widgets/gitinfo.json b/Widgets/gitinfo.json index c62b6951..8b6fc107 100644 --- a/Widgets/gitinfo.json +++ b/Widgets/gitinfo.json @@ -1 +1 @@ -{"headSHA1": "fce5acc6f36efc728cab098d973b7b10ba9f29ed\n", "head": "fce5acc6f36efc728cab098d973b7b10ba9f29ed\n", "remoteURL": "https://gerrit.wikimedia.org/r/mediawiki/extensions/Widgets", "branch": "fce5acc6f36efc728cab098d973b7b10ba9f29ed\n", "headCommitDate": "1501749548"} \ No newline at end of file +{"headSHA1": "3241ea9501f65bec997f7deb9d96941b82565007\n", "head": "3241ea9501f65bec997f7deb9d96941b82565007\n", "remoteURL": "https://gerrit.wikimedia.org/r/mediawiki/extensions/Widgets", "branch": "3241ea9501f65bec997f7deb9d96941b82565007\n", "headCommitDate": "1539548747"} \ No newline at end of file diff --git a/Widgets/i18n/ar.json b/Widgets/i18n/ar.json index fe8bbfd4..4863ad74 100644 --- a/Widgets/i18n/ar.json +++ b/Widgets/i18n/ar.json @@ -4,7 +4,8 @@ ";Hiba;1", "DRIHEM", "OsamaK", - "زكريا" + "زكريا", + "Meno25" ] }, "widgets-desc": "يتيح لإداريي الويكي إضافة ودجات حرة الشكل إلى الويكي عن طريق تعديل صفحات نطاق {{ns:widget}}.\nالودجات التي يساهم بها المجتمع توجد في [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]", @@ -12,5 +13,7 @@ "group-widgeteditor": "محررو الودجات", "group-widgeteditor-member": "{{GENDER:$1|محرر ودجات}}", "grouppage-widgeteditor": "{{ns:project}}:محررو الودجات", - "right-editwidgets": "إنشاء وتحرير [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets widgets] في الــ {{ns:widget}} مكان الاسم" + "right-editwidgets": "إنشاء وتحرير [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets widgets] في الــ {{ns:widget}} مكان الاسم", + "widgets-config-useflaggedrevs": "اضبط هذا كtrue لاستخدام نسخة امتداد المراجعات المعلمة المستقرة لتأمين ودجت", + "widgets-config-compiledir": "ضبط مجلدا افتراضيا لتخزين القوالب الجاهزة" } diff --git a/Widgets/i18n/be-tarask.json b/Widgets/i18n/be-tarask.json index 05a98e28..170a27a9 100644 --- a/Widgets/i18n/be-tarask.json +++ b/Widgets/i18n/be-tarask.json @@ -3,7 +3,8 @@ "authors": [ "EugeneZelenko", "Jim-by", - "Wizardist" + "Wizardist", + "Red Winged Duck" ] }, "widgets-desc": "Дазваляе адміністратарам {{GRAMMAR:родны|{{SITENAME}}}} дадаваць віджэты вольных формаў у {{GRAMMAR:вінавальны|{{SITENAME}}}} праз рэдагаваньне старонак у прасторы назваў {{ns:widget}}. \nВіджэты, якія падтрымліваюцца супольнасьцю, можна знайсьці на [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]", @@ -11,5 +12,7 @@ "group-widgeteditor": "Рэдактар віджэтаў", "group-widgeteditor-member": "{{GENDER:$1|Рэдактар|Рэдактарка}} віджэтаў", "grouppage-widgeteditor": "{{ns:project}}:Рэдактары віджэтаў", - "right-editwidgets": "стварэньне і рэдагаваньне [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets дапаўненьняў] у прасторы назваў {{ns:widget}}" + "right-editwidgets": "стварэньне і рэдагаваньне [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets дапаўненьняў] у прасторы назваў {{ns:widget}}", + "widgets-config-useflaggedrevs": "Пазначце гэта як «true», каб ужываць стабільную вэрсію пашырэньня FlaggedRevs для бясьпекі віджэту", + "widgets-config-compiledir": "Пазначце тэчку па змоўчаньні для захаваньня скампіляваных шаблёнаў" } diff --git a/Widgets/i18n/de.json b/Widgets/i18n/de.json index 5023180d..f57aedb2 100644 --- a/Widgets/i18n/de.json +++ b/Widgets/i18n/de.json @@ -6,13 +6,16 @@ "Pill", "Sebastian Wallroth", "The Evil IP address", - "Umherirrender" + "Umherirrender", + "Metalhead64" ] }, - "widgets-desc": "Ermöglicht das Hinzufügen von Widgets. Vorhandene Widgets werden auf der Website [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] gesammelt", + "widgets-desc": "Ermöglicht das Hinzufügen von Widgets, wobei vorhandene Widgets auf der Website [https://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] veröffentlicht werden", "widgets-error": "Fehler beim [[{{ns:widget}}:$1|Widget $1]]", "group-widgeteditor": "Widget-Bearbeiter", "group-widgeteditor-member": "{{GENDER:$1|Widget-Bearbeiter|Widget-Bearbeiterin}}", "grouppage-widgeteditor": "{{ns:project}}:Widget-Bearbeiter", - "right-editwidgets": "[https://www.mediawiki.org/wiki/Extension:Widgets Widgets] im Namensraum „{{ns:widget}}“ bearbeiten und erstellen" + "right-editwidgets": "[https://www.mediawiki.org/wiki/Extension:Widgets Widgets] im Namensraum „{{ns:widget}}“ bearbeiten und erstellen", + "widgets-config-useflaggedrevs": "Dies auf true festlegen, um die stabile Version der Erweiterung „FlaggedRevs“ für die Widget-Sicherheit zu verwenden.", + "widgets-config-compiledir": "Legt ein Standardverzeichnis zur Speicherung von kompilierten Vorlagen fest" } diff --git a/Widgets/i18n/en.json b/Widgets/i18n/en.json index d0670816..47cb79c9 100644 --- a/Widgets/i18n/en.json +++ b/Widgets/i18n/en.json @@ -9,5 +9,7 @@ "grouppage-widgeteditor": "{{ns:project}}:Widget editors", "right-editwidgets": "Create and edit [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets widgets] in the {{ns:widget}} namespace", "group-widgeteditor.css": "/* CSS placed here will affect widget editors only */", - "group-widgeteditor.js": "/* JS placed here will affect widget editors only */" + "group-widgeteditor.js": "/* JS placed here will affect widget editors only */", + "widgets-config-useflaggedrevs": "Set this to true to use FlaggedRevs extension's stable version for widget security", + "widgets-config-compiledir": "Seta a default directory for storage of compiled templates" } diff --git a/Widgets/i18n/fr.json b/Widgets/i18n/fr.json index 5be7a5ee..cdfe45b1 100644 --- a/Widgets/i18n/fr.json +++ b/Widgets/i18n/fr.json @@ -15,5 +15,7 @@ "grouppage-widgeteditor": "{{ns:project}}:Modificateurs de widgets", "right-editwidgets": "Créer et modifier les [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets widgets] dans l’espace de noms « {{ns:widget}} »", "group-widgeteditor.css": "/* Le CSS placé ici n’affectera que les éditeurs de widgets */", - "group-widgeteditor.js": "/* Le Javascript placé ici n’affectera que les éditeurs de widgets */" + "group-widgeteditor.js": "/* Le Javascript placé ici n’affectera que les éditeurs de widgets */", + "widgets-config-useflaggedrevs": "Le mettre à vrai pour utiliser la version stable de FlaggedRev pour la sécurité des widgets", + "widgets-config-compiledir": "Définir un répertoire par défaut pour le stockage des modèles compilés" } diff --git a/Widgets/i18n/mk.json b/Widgets/i18n/mk.json index ac63f103..a4b4e8d1 100644 --- a/Widgets/i18n/mk.json +++ b/Widgets/i18n/mk.json @@ -11,5 +11,7 @@ "grouppage-widgeteditor": "{{ns:project}}:Уредници на посреднички елементи", "right-editwidgets": "Создавање и уредување на [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets направи] во именскиот простор {{ns:widget}}", "group-widgeteditor.css": "/* Тука поставениот CSS ќе се применува само врз уредниците на посреднички елементи (помагала) */", - "group-widgeteditor.js": "/* Тука поставениот JS ќе се применува само врз уредниците на посреднички елементи (помагала) */" + "group-widgeteditor.js": "/* Тука поставениот JS ќе се применува само врз уредниците на посреднички елементи (помагала) */", + "widgets-config-useflaggedrevs": "Задајте true (точно) стабилната верзија за безбедност на посредничките елементи на додатокот „Означени преработки“", + "widgets-config-compiledir": "Задајте стандардна категорија за складирање на присобрани шаблони" } diff --git a/Widgets/i18n/pt-br.json b/Widgets/i18n/pt-br.json index ff1d726b..cb0ff4cc 100644 --- a/Widgets/i18n/pt-br.json +++ b/Widgets/i18n/pt-br.json @@ -5,7 +5,8 @@ "Eduardo.mps", "Giro720", "Helder.wiki", - "He7d3r" + "He7d3r", + "Eduardo Addad de Oliveira" ] }, "widgets-desc": "Permite que os administradores da wiki adicionem ''widgets free-form'' à wiki, editando páginas no espaço nominal {{ns:widget}}.\nWidgets fornecidos pela comunidade podem ser encontrados na [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]", @@ -13,5 +14,7 @@ "group-widgeteditor": "Editores de widget", "group-widgeteditor-member": "{{GENDER:$1|Editor|Editora}} de widget", "grouppage-widgeteditor": "{{ns:project}}:Editores de widget", - "right-editwidgets": "Criar e editar [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets widgets] no espaço nominal {{ns:widget}}" + "right-editwidgets": "Criar e editar [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets widgets] no espaço nominal {{ns:widget}}", + "widgets-config-useflaggedrevs": "Defina isto como verdadeiro (''true'') para usar a versão estável da extensão Revisão de Edições para a segurança de widgets", + "widgets-config-compiledir": "Definir um diretório padrão para o armazenamento das predefinições compiladas" } diff --git a/Widgets/i18n/pt.json b/Widgets/i18n/pt.json index 97facda5..985c68df 100644 --- a/Widgets/i18n/pt.json +++ b/Widgets/i18n/pt.json @@ -5,10 +5,12 @@ "SandroHc" ] }, - "widgets-desc": "Permite que os administradores da wiki adicionem ''widgets free-form'' à wiki, editando páginas no espaço nominal {{ns:widget}}.\nWidgets fornecidos pela comunidade podem ser encontrados na [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]", + "widgets-desc": "Permite que os administradores da wiki adicionem ''widgets free-form'' à wiki, editando páginas no espaço nominal {{ns:widget}}.\nOs widgets fornecidos pela comunidade podem ser encontrados em [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]", "widgets-error": "Erro no [[{{ns:widget}}:$1|''widget'' $1]]", "group-widgeteditor": "Editores de ''widgets''", "group-widgeteditor-member": "{{GENDER:$1|editor|editora}} de ''widgets''", "grouppage-widgeteditor": "{{ns:project}}:Editores de ''widgets''", - "right-editwidgets": "Criar e editar [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets widgets] no espaço nominal {{ns:widget}}" + "right-editwidgets": "Criar e editar [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets widgets] no espaço nominal/domínio {{ns:widget}}", + "widgets-config-useflaggedrevs": "Defina isto como verdadeiro (''true'') para usar a versão estável da extensão Revisão de Edições para a segurança de widgets", + "widgets-config-compiledir": "Definir um diretório padrão para o armazenamento das predefinições compiladas" } diff --git a/Widgets/i18n/qqq.json b/Widgets/i18n/qqq.json index 057e00ab..111b7d3c 100644 --- a/Widgets/i18n/qqq.json +++ b/Widgets/i18n/qqq.json @@ -17,5 +17,7 @@ "grouppage-widgeteditor": "{{doc-group|widgeteditor|page}}", "right-editwidgets": "{{doc-right|editwidgets}}", "group-widgeteditor.css": "{{doc-group|widgeteditor|css}}", - "group-widgeteditor.js": "{{doc-group|widgeteditor|js}}" + "group-widgeteditor.js": "{{doc-group|widgeteditor|js}}", + "widgets-config-useflaggedrevs": "configuration setting description of $wgWidgetsUseFlaggedRevs", + "widgets-config-compiledir": "configuration setting description of $wgWidgetsCompileDir" } diff --git a/Widgets/i18n/roa-tara.json b/Widgets/i18n/roa-tara.json index 21d9b5f2..ff39381f 100644 --- a/Widgets/i18n/roa-tara.json +++ b/Widgets/i18n/roa-tara.json @@ -9,5 +9,7 @@ "group-widgeteditor": "Cangiature d'u ggegge", "group-widgeteditor-member": "{{GENDER:$1|cangiatore d'u ggegge}}", "grouppage-widgeteditor": "{{ns:project}}:Cangiature d'u ggegge", - "right-editwidgets": "Ccreje e cange [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets le ggegge] jndr'à 'u namespace {{ns:widget}}" + "right-editwidgets": "Ccreje e cange [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets le ggegge] jndr'à 'u namespace {{ns:widget}}", + "widgets-config-useflaggedrevs": "Mitte quiste a true pe ausà 'na versiona stabbile de l'estenzione FlaggedRevs pu widget de securezze", + "widgets-config-compiledir": "Mitte 'na cartelle predefinite pe memorizzà le template combilate" } diff --git a/Widgets/i18n/ru.json b/Widgets/i18n/ru.json index 42b7385f..ecd9b98b 100644 --- a/Widgets/i18n/ru.json +++ b/Widgets/i18n/ru.json @@ -3,7 +3,8 @@ "authors": [ "G0rn", "Okras", - "Александр Сигачёв" + "Александр Сигачёв", + "Vlad5250" ] }, "widgets-desc": "Позволяет администраторам вики добавлять различные виджеты, посредством редактирования страниц пространства имён {{ns:widget}}. Поддерживаемые сообществом виджеты можно найти на [http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org].", @@ -11,5 +12,7 @@ "group-widgeteditor": "Редакторы виджетов", "group-widgeteditor-member": "{{GENDER:$1|Редактор виджетов}}", "grouppage-widgeteditor": "{{ns:project}}:Редакторы виджетов", - "right-editwidgets": "создавать и редактировать [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets виджеты] страницы в пространстве имён {{ns:widget}}" + "right-editwidgets": "создание и редактирование [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets виджетов] в пространстве имён {{ns:widget}}", + "widgets-config-useflaggedrevs": "Задайте true (истина) стабильной версии для безопасности виджетов расширения Flagged Revs", + "widgets-config-compiledir": "Задайте стандартную категорию для хранения компилированных шаблонов" } diff --git a/Widgets/i18n/tt-cyrl.json b/Widgets/i18n/tt-cyrl.json new file mode 100644 index 00000000..05fa8782 --- /dev/null +++ b/Widgets/i18n/tt-cyrl.json @@ -0,0 +1,11 @@ +{ + "@metadata": { + "authors": [ + "Ильнар" + ] + }, + "widgets-error": "[[{{ns:widget}}:$1|$1 виджетында]] хата", + "group-widgeteditor": "Виджет мөхәррире", + "group-widgeteditor-member": "{{GENDER:$1|Виджет мөхәррире}}", + "grouppage-widgeteditor": "{{ns:project}}:Виджет мөхәррире" +} diff --git a/Widgets/i18n/zh-hans.json b/Widgets/i18n/zh-hans.json index 80bf4540..e0076dd6 100644 --- a/Widgets/i18n/zh-hans.json +++ b/Widgets/i18n/zh-hans.json @@ -5,7 +5,8 @@ "PhiLiP", "Xiaomingyan", "Yfdyh000", - "Liuxinyu970226" + "Liuxinyu970226", + "A Chinese Wikipedian" ] }, "widgets-desc": "允许wiki管理员编辑{{ns:widget}}名字空间页面以添加各种形式的小部件。您可以在[http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org]中找到社区贡献的小部件", @@ -15,5 +16,7 @@ "grouppage-widgeteditor": "{{ns:project}}:小部件编辑者", "right-editwidgets": "在{{ns:widget}}名字空间中创建和编辑[https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets 小部件]", "group-widgeteditor.css": "/* 这里放置的CSS将只影响小部件编辑者 */", - "group-widgeteditor.js": "/* 这里放置的CSS将只影响小部件编辑者 */" + "group-widgeteditor.js": "/* 这里放置的CSS将只影响小部件编辑者 */", + "widgets-config-useflaggedrevs": "将此设置为true,使用FlaggedRevs扩展的稳定版本用于控件安全性", + "widgets-config-compiledir": "用于编译模板存储的默认目录" } diff --git a/Widgets/i18n/zh-hant.json b/Widgets/i18n/zh-hant.json index f97d01da..99bafeec 100644 --- a/Widgets/i18n/zh-hant.json +++ b/Widgets/i18n/zh-hant.json @@ -3,13 +3,16 @@ "authors": [ "Anakmalaysia", "Mark85296341", - "Yfdyh000" + "Yfdyh000", + "Kly" ] }, - "widgets-desc": "容許 wiki 管理員通過編輯 {{ns:widget}} 名子空間中加入自由形式的 widget 至 wiki 中。\n[http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] 提供社群貢獻的 widget", + "widgets-desc": "容許 wiki 管理員通過編輯 {{ns:widget}} 命名空間中加入自由形式的小工具至 wiki 中。\n[http://www.mediawikiwidgets.org/Main_Page MediaWikiWidgets.org] 提供社群貢獻的小工具", "widgets-error": "在 [[{{ns:widget}}:$1|widget $1]] 發生錯誤", "group-widgeteditor": "Widget 編輯者", "group-widgeteditor-member": "{{GENDER:$1|Widget 編輯者}}", "grouppage-widgeteditor": "{{ns:project}}:Widget 編輯者", - "right-editwidgets": "建立並編輯 {{ns:widget}} 名子空間中的 [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets Widgets]" + "right-editwidgets": "建立並編輯 {{ns:widget}} 名子空間中的 [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Widgets Widgets]", + "widgets-config-useflaggedrevs": "設定此為 true 來使用用於小工具安全的 FlaggedRevs 擴充功能穩定版本", + "widgets-config-compiledir": "設定用於編譯模板儲存的預設目錄" } diff --git a/Widgets/package.json b/Widgets/package.json index e87548ca..fcaf6a17 100644 --- a/Widgets/package.json +++ b/Widgets/package.json @@ -4,7 +4,7 @@ "test": "grunt test" }, "devDependencies": { - "grunt": "1.0.1", + "grunt": "1.0.3", "grunt-banana-checker": "0.5.0", "grunt-contrib-jshint": "1.1.0", "grunt-jsonlint": "1.1.0" diff --git a/Widgets/smarty/.gitattributes b/Widgets/smarty/.gitattributes deleted file mode 100644 index 412eeda7..00000000 --- a/Widgets/smarty/.gitattributes +++ /dev/null @@ -1,22 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto - -# Custom for Visual Studio -*.cs diff=csharp -*.sln merge=union -*.csproj merge=union -*.vbproj merge=union -*.fsproj merge=union -*.dbproj merge=union - -# Standard to msysgit -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain diff --git a/Widgets/smarty/.gitignore b/Widgets/smarty/.gitignore deleted file mode 100644 index 0ff15aa4..00000000 --- a/Widgets/smarty/.gitignore +++ /dev/null @@ -1,221 +0,0 @@ -################# -## Eclipse -################# - -*.pydevproject -.project -.metadata -bin/ -tmp/ -*.tmp -*.bak -*.swp -*~.nib -local.properties -.classpath -.settings/ -.loadpath - -# External tool builders -.externalToolBuilders/ - -# Locally stored "Eclipse launch configurations" -*.launch - -# CDT-specific -.cproject - -# PDT-specific -.buildpath - - -################# -## Visual Studio -################# - -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.sln.docstates - -# Build results - -[Dd]ebug/ -[Rr]elease/ -x64/ -build/ -[Bb]in/ -[Oo]bj/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -*_i.c -*_p.c -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.log -*.scc - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opensdf -*.sdf -*.cachefile - -# Visual Studio profiler -*.psess -*.vsp -*.vspx - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -*.ncrunch* -.*crunch*.local.xml - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.Publish.xml -*.pubxml - -# NuGet Packages Directory -## TODO: If you have NuGet Package Restore enabled, uncomment the next line -#packages/ - -# Windows Azure Build Output -csx -*.build.csdef - -# Windows Store app package directory -AppPackages/ - -# Others -sql/ -*.Cache -ClientBin/ -[Ss]tyle[Cc]op.* -~$* -*~ -*.dbmdl -*.[Pp]ublish.xml -*.pfx -*.publishsettings - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file to a newer -# Visual Studio version. Backup files are not needed, because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -App_Data/*.mdf -App_Data/*.ldf - -############# -## Windows detritus -############# - -# Windows image file caches -Thumbs.db -ehthumbs.db - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Mac crap -.DS_Store - - -############# -## Python -############# - -*.py[co] - -# Packages -*.egg -*.egg-info -dist/ -build/ -eggs/ -parts/ -var/ -sdist/ -develop-eggs/ -.installed.cfg - -# Installer logs -pip-log.txt - -# Unit test / coverage reports -.coverage -.tox - -#Translations -*.mo - -#Mr Developer -.mr.developer.cfg - -.idea/ - -# Smarty -lexer/*.php -lexer/*.out diff --git a/Widgets/smarty/.travis.yml b/Widgets/smarty/.travis.yml deleted file mode 100644 index 421ed9e8..00000000 --- a/Widgets/smarty/.travis.yml +++ /dev/null @@ -1,24 +0,0 @@ -language: php - -php: - - 5.3 - - 5.4 - - 5.5 - - 5.6 - - 7.0 - - hhvm - -matrix: - allow_failures: - - php: hhvm - -before_script: - - travis_retry composer --prefer-source --dev install - -install: - - git clone --depth=50 --branch=master git://github.com/smarty-php/smarty-phpunit.git - -script: - - cd smarty-phpunit - - phpunit ./ - diff --git a/Widgets/smarty/COMPOSER_RELEASE_NOTES.txt b/Widgets/smarty/COMPOSER_RELEASE_NOTES.txt deleted file mode 100644 index c943d9f2..00000000 --- a/Widgets/smarty/COMPOSER_RELEASE_NOTES.txt +++ /dev/null @@ -1,29 +0,0 @@ - - -Starting with Smarty 3.1.21 Composer has been configured to load the packages from github. - -******************************************************************************* -* * -* NOTE: Because of this change you must clear your local composer cache with * -* the "composer clearcache" command * -* * -******************************************************************************* - -To get the latest stable version use - "require": { - "smarty/smarty": "~3.1" - } -in your composer.json file. - -To get the trunk version use - "require": { - "smarty/smarty": "~3.1@dev" - } - -The "smarty/smarty" package will start at libs/.... subfolder. - -To retrieve the development and documentation folders add - "require-dev": { - "smarty/smarty-dev": "~3.1@dev" - } - diff --git a/Widgets/smarty/COPYING.lib b/Widgets/smarty/COPYING.lib deleted file mode 100644 index 02bbb60b..00000000 --- a/Widgets/smarty/COPYING.lib +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. \ No newline at end of file diff --git a/Widgets/smarty/INHERITANCE_RELEASE_NOTES.txt b/Widgets/smarty/INHERITANCE_RELEASE_NOTES.txt deleted file mode 100644 index 8b2c64a1..00000000 --- a/Widgets/smarty/INHERITANCE_RELEASE_NOTES.txt +++ /dev/null @@ -1,67 +0,0 @@ -Starting with version 3.1.28 template inheritance is no longer a compile time process. -All {block} tag parent/child relations are resolved at run time. -This does resolve all known existing restrictions (see below). - -The $smarty::$inheritance_merge_compiled_includes property has been removed. -Any access to it is ignored. - -This does enable some new features: - -Any code outside root {block} tags in child templates is now executed but any output will be ignored. - - {extends 'foo.tpl'} - {$bar = 'on'} // assigns variable $bar seen in parent templates - {block 'buh'}{/block} - - {extends 'foo.tpl'} - {$bar} // the output of variable bar is ignored - {block 'buh'}{/block} - -{block} tags can be dynamically en/disabled by conditions. - - {block 'root'} - {if $foo} - {block 'v1'} - .... - {/block} - {else} - {block 'v1'} - .... - {/block} - {/if} - {/block} - - - -THE FOLLOWING RESTRICTIONS ARE NO LONGER EXISTING: -In Smarty 3.1 template inheritance is a compile time process. All the extending of {block} tags -is done at compile time and the parent and child templates are compiled in a single compiled template. -{include} subtemplate could also {block} tags. Such subtemplate could not compiled by it's own because -it could be used in other context where the {block} extended with a different result. For that reasion -the compiled code of {include} subtemplates gets also merged in compiled inheritance template. - -Merging the code into a single compile template has some drawbacks. -1. You could not use variable file names in {include} Smarty would use the {include} of compilation time. -2. You could not use individual compile_id in {include} -3. Seperate caching of subtemplate was not possible -4. Any change of the template directory structure between calls was not necessarily seen. - -Starting with 3.1.15 some of the above conditions got checked and resulted in an exception. It turned out -that a couple of users did use some of above and now got exceptions. - -To resolve this starting with 3.1.16 there is a new configuration parameter $inheritance_merge_compiled_includes. -For most backward compatibility its default setting is true. -With this setting all {include} subtemplate will be merge into the compiled inheritance template, but the above cases -could be rejected by exception. - - -If $smarty->inheritance_merge_compiled_includes = false; {include} subtemplate will not be merged. -You must now manually merge all {include} subtemplate which do contain {block} tags. This is done by setting the "inline" option. -{include file='foo.bar' inline} - -1. In case of a variable file name like {include file=$foo inline} you must use the variable in a compile_id $smarty->compile_id = $foo; -2. If you use individual compile_id in {include file='foo.tpl' compile_id=$bar inline} it must be used in the - global compile_id as well $smarty->compile_id = $bar; -3. If call templates with different template_dir configurations and a parent could same named child template from different folders - you must make the folder name part of the compile_id. - diff --git a/Widgets/smarty/NEW_FEATURES.txt b/Widgets/smarty/NEW_FEATURES.txt deleted file mode 100644 index 1a51c71d..00000000 --- a/Widgets/smarty/NEW_FEATURES.txt +++ /dev/null @@ -1,133 +0,0 @@ - - -This file contains a brief description of new features which have been added to Smarty 3.1 - -Smarty 3.1.28 - - OPCACHE - ======= - Smarty does now invalidate automatically updated and cleared compiled or cached template files in OPCACHE. - Correct operation is no longer dependent on OPCACHE configuration settings. - - Template inheritance - ==================== - Template inheritance is now processed in run time. - See the INHERITANCE_RELEASE_NOTES - - Modifier regex_replace - ====================== - An optional limit parameter was added - - fetch() and display() - ===================== - The fetch() and display() methods of the template object accept now optionally the same parameter - as the corresponding Smarty methods to get the content of another template. - Example: - $template->display(); Does display template of template object - $template->display('foo.tpl'); Does display template 'foo.bar' - - File: resource - ============== - Multiple template_dir entries can now be selected by a comma separated list of indices. - The template_dir array is searched in the order of the indices. (Could be used to change the default search order) - Example: - $smarty->display('[1],[0]foo.bar'); - - Filter support - ============== - Optional filter names - An optional filter name was added to $smarty->registerFilter(). It can be used to unregister a filter by name. - - $smarty->registerFilter('output', $callback, 'name'); - $smarty->unregister('output', 'name'); - - Closures - $smarty->registerFilter() does now accept closures. - - $smarty->registerFilter('pre', function($source) {return $source;}); - If no optional filter name was specified it gets the default name 'closure'. - If you register multiple closures register each with a unique filter name. - - $smarty->registerFilter('pre', function($source) {return $source;}, 'closure_1'); - - $smarty->registerFilter('pre', function($source) {return $source;}, 'closure_2'); - - -Smarty 3.1.22 - - Namespace support within templates - ================================== - Within templates you can now use namespace specifications on: - - Constants like foo\bar\FOO - - Class names like foo\bar\Baz::FOO, foo\bar\Baz::$foo, foo\bar\Baz::foo() - - PHP function names like foo\bar\baz() - - Security - ======== - - disable special $smarty variable - - The Smarty_Security class has the new property $disabled_special_smarty_vars. - It's an array which can be loaded with the $smarty special variable names like - 'template_object', 'template', 'current_dir' and others which will be disabled. - Note: That this security check is performed at compile time. - - - limit template nesting - - Property $max_template_nesting of Smarty_Security does set the maximum template nesting level. - The main template is level 1. The nesting level is checked at run time. When the maximum will be exceeded - an Exception will be thrown. The default setting is 0 which does disable this check. - - - trusted static methods - - The Smarty_Security class has the new property $trusted_static_methods to restrict access to static methods. - It's an nested array of trusted class and method names. - Format: - array ( - 'class_1' => array('method_1', 'method_2'), // allowed methods - 'class_2' => array(), // all methods of class allowed - ) - To disable access for all methods of all classes set $trusted_static_methods = null; - The default value is an empty array() which does enables all methods of all classes, but for backward compatibility - the setting of $static_classes will be checked. - Note: That this security check is performed at compile time. - - - trusted static properties - - The Smarty_Security class has the new property $trusted_static_properties to restrict access to static properties. - It's an nested array of trusted class and property names. - Format: - array ( - 'class_1' => array('prop_1', 'prop_2'), // allowed properties listed - 'class_2' => array(), // all properties of class allowed - } - To disable access for all properties of all classes set $trusted_static_properties = null; - The default value is an empty array() which does enables all properties of all classes, but for backward compatibility - the setting of $static_classes will be checked. - Note: That this security check is performed at compile time. - - - trusted constants . - The Smarty_Security class has the new property $trusted_constants to restrict access to constants. - It's an array of trusted constant names. - Format: - array ( - 'SMARTY_DIR' , // allowed constant - } - If the array is empty (default) the usage of constants can be controlled with the - Smarty_Security::$allow_constants property (default true) - - - - Compiled Templates - ================== - Smarty does now automatically detects a change of the $merge_compiled_includes and $escape_html - property and creates different compiled templates files depending on the setting. - - Same applies to config files and the $config_overwrite, $config_booleanize and - $config_read_hidden properties. - - Debugging - ========= - The layout of the debug window has been changed for better readability - - New class constants - Smarty::DEBUG_OFF - Smarty::DEBUG_ON - Smarty::DEBUG_INDIVIDUAL - have been introduced for setting the $debugging property. - - Smarty::DEBUG_INDIVIDUAL will create for each display() and fetch() call an individual debug window. - - . - diff --git a/Widgets/smarty/README b/Widgets/smarty/README deleted file mode 100644 index 08b397c3..00000000 --- a/Widgets/smarty/README +++ /dev/null @@ -1,575 +0,0 @@ -Smarty 3.x - -Author: Monte Ohrt -Author: Uwe Tews - -AN INTRODUCTION TO SMARTY 3 - -NOTICE FOR 3.1 release: - -Please see the SMARTY_3.1_NOTES.txt file that comes with the distribution. - -NOTICE for 3.0.5 release: - -Smarty now follows the PHP error_reporting level by default. If PHP does not mask E_NOTICE and you try to access an unset template variable, you will now get an E_NOTICE warning. To revert to the old behavior: - -$smarty->error_reporting = E_ALL & ~E_NOTICE; - -NOTICE for 3.0 release: - -IMPORTANT: Some API adjustments have been made between the RC4 and 3.0 release. -We felt it is better to make these now instead of after a 3.0 release, then have to -immediately deprecate APIs in 3.1. Online documentation has been updated -to reflect these changes. Specifically: - ----- API CHANGES RC4 -> 3.0 ---- - -$smarty->register->* -$smarty->unregister->* -$smarty->utility->* -$samrty->cache->* - -Have all been changed to local method calls such as: - -$smarty->clearAllCache() -$smarty->registerFoo() -$smarty->unregisterFoo() -$smarty->testInstall() -etc. - -Registration of function, block, compiler, and modifier plugins have been -consolidated under two API calls: - -$smarty->registerPlugin(...) -$smarty->unregisterPlugin(...) - -Registration of pre, post, output and variable filters have been -consolidated under two API calls: - -$smarty->registerFilter(...) -$smarty->unregisterFilter(...) - -Please refer to the online documentation for all specific changes: - -http://www.smarty.net/documentation - ----- - -The Smarty 3 API has been refactored to a syntax geared -for consistency and modularity. The Smarty 2 API syntax is still supported, but -will throw a deprecation notice. You can disable the notices, but it is highly -recommended to adjust your syntax to Smarty 3, as the Smarty 2 syntax must run -through an extra rerouting wrapper. - -Basically, all Smarty methods now follow the "fooBarBaz" camel case syntax. Also, -all Smarty properties now have getters and setters. So for example, the property -$smarty->cache_dir can be set with $smarty->setCacheDir('foo/') and can be -retrieved with $smarty->getCacheDir(). - -Some of the Smarty 3 APIs have been revoked such as the "is*" methods that were -just duplicate functions of the now available "get*" methods. - -Here is a rundown of the Smarty 3 API: - -$smarty->fetch($template, $cache_id = null, $compile_id = null, $parent = null) -$smarty->display($template, $cache_id = null, $compile_id = null, $parent = null) -$smarty->isCached($template, $cache_id = null, $compile_id = null) -$smarty->createData($parent = null) -$smarty->createTemplate($template, $cache_id = null, $compile_id = null, $parent = null) -$smarty->enableSecurity() -$smarty->disableSecurity() -$smarty->setTemplateDir($template_dir) -$smarty->addTemplateDir($template_dir) -$smarty->templateExists($resource_name) -$smarty->loadPlugin($plugin_name, $check = true) -$smarty->loadFilter($type, $name) -$smarty->setExceptionHandler($handler) -$smarty->addPluginsDir($plugins_dir) -$smarty->getGlobal($varname = null) -$smarty->getRegisteredObject($name) -$smarty->getDebugTemplate() -$smarty->setDebugTemplate($tpl_name) -$smarty->assign($tpl_var, $value = null, $nocache = false) -$smarty->assignGlobal($varname, $value = null, $nocache = false) -$smarty->assignByRef($tpl_var, &$value, $nocache = false) -$smarty->append($tpl_var, $value = null, $merge = false, $nocache = false) -$smarty->appendByRef($tpl_var, &$value, $merge = false) -$smarty->clearAssign($tpl_var) -$smarty->clearAllAssign() -$smarty->configLoad($config_file, $sections = null) -$smarty->getVariable($variable, $_ptr = null, $search_parents = true, $error_enable = true) -$smarty->getConfigVariable($variable) -$smarty->getStreamVariable($variable) -$smarty->getConfigVars($varname = null) -$smarty->clearConfig($varname = null) -$smarty->getTemplateVars($varname = null, $_ptr = null, $search_parents = true) -$smarty->clearAllCache($exp_time = null, $type = null) -$smarty->clearCache($template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null) - -$smarty->registerPlugin($type, $tag, $callback, $cacheable = true, $cache_attr = array()) - -$smarty->registerObject($object_name, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array()) - -$smarty->registerFilter($type, $function_name) -$smarty->registerResource($resource_type, $function_names) -$smarty->registerDefaultPluginHandler($function_name) -$smarty->registerDefaultTemplateHandler($function_name) - -$smarty->unregisterPlugin($type, $tag) -$smarty->unregisterObject($object_name) -$smarty->unregisterFilter($type, $function_name) -$smarty->unregisterResource($resource_type) - -$smarty->compileAllTemplates($extension = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null) -$smarty->clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null) -$smarty->testInstall() - -// then all the getters/setters, available for all properties. Here are a few: - -$caching = $smarty->getCaching(); // get $smarty->caching -$smarty->setCaching(true); // set $smarty->caching -$smarty->setDeprecationNotices(false); // set $smarty->deprecation_notices -$smarty->setCacheId($id); // set $smarty->cache_id -$debugging = $smarty->getDebugging(); // get $smarty->debugging - - -FILE STRUCTURE - -The Smarty 3 file structure is similar to Smarty 2: - -/libs/ - Smarty.class.php -/libs/sysplugins/ - internal.* -/libs/plugins/ - function.mailto.php - modifier.escape.php - ... - -A lot of Smarty 3 core functionality lies in the sysplugins directory; you do -not need to change any files here. The /libs/plugins/ folder is where Smarty -plugins are located. You can add your own here, or create a separate plugin -directory, just the same as Smarty 2. You will still need to create your own -/cache/, /templates/, /templates_c/, /configs/ folders. Be sure /cache/ and -/templates_c/ are writable. - -The typical way to use Smarty 3 should also look familiar: - -require('Smarty.class.php'); -$smarty = new Smarty; -$smarty->assign('foo','bar'); -$smarty->display('index.tpl'); - - -However, Smarty 3 works completely different on the inside. Smarty 3 is mostly -backward compatible with Smarty 2, except for the following items: - -*) Smarty 3 is PHP 5 only. It will not work with PHP 4. -*) The {php} tag is disabled by default. Enable with $smarty->allow_php_tag=true. -*) Delimiters surrounded by whitespace are no longer treated as Smarty tags. - Therefore, { foo } will not compile as a tag, you must use {foo}. This change - Makes Javascript/CSS easier to work with, eliminating the need for {literal}. - This can be disabled by setting $smarty->auto_literal = false; -*) The Smarty 3 API is a bit different. Many Smarty 2 API calls are deprecated - but still work. You will want to update your calls to Smarty 3 for maximum - efficiency. - - -There are many things that are new to Smarty 3. Here are the notable items: - -LEXER/PARSER -============ - -Smarty 3 now uses a lexing tokenizer for its parser/compiler. Basically, this -means Smarty has some syntax additions that make life easier such as in-template -math, shorter/intuitive function parameter options, infinite function recursion, -more accurate error handling, etc. - - -WHAT IS NEW IN SMARTY TEMPLATE SYNTAX -===================================== - -Smarty 3 allows expressions almost anywhere. Expressions can include PHP -functions as long as they are not disabled by the security policy, object -methods and properties, etc. The {math} plugin is no longer necessary but -is still supported for BC. - -Examples: -{$x+$y} will output the sum of x and y. -{$foo = strlen($bar)} function in assignment -{assign var=foo value= $x+$y} in attributes -{$foo = myfunct( ($x+$y)*3 )} as function parameter -{$foo[$x+3]} as array index - -Smarty tags can be used as values within other tags. -Example: {$foo={counter}+3} - -Smarty tags can also be used inside double quoted strings. -Example: {$foo="this is message {counter}"} - -You can define arrays within templates. -Examples: -{assign var=foo value=[1,2,3]} -{assign var=foo value=['y'=>'yellow','b'=>'blue']} -Arrays can be nested. -{assign var=foo value=[1,[9,8],3]} - -There is a new short syntax supported for assigning variables. -Example: {$foo=$bar+2} - -You can assign a value to a specific array element. If the variable exists but -is not an array, it is converted to an array before the new values are assigned. -Examples: -{$foo['bar']=1} -{$foo['bar']['blar']=1} - -You can append values to an array. If the variable exists but is not an array, -it is converted to an array before the new values are assigned. -Example: {$foo[]=1} - -You can use a PHP-like syntax for accessing array elements, as well as the -original "dot" notation. -Examples: -{$foo[1]} normal access -{$foo['bar']} -{$foo['bar'][1]} -{$foo[$x+$x]} index may contain any expression -{$foo[$bar[1]]} nested index -{$foo[section_name]} smarty section access, not array access! - -The original "dot" notation stays, and with improvements. -Examples: -{$foo.a.b.c} => $foo['a']['b']['c'] -{$foo.a.$b.c} => $foo['a'][$b]['c'] with variable index -{$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c'] with expression as index -{$foo.a.{$b.c}} => $foo['a'][$b['c']] with nested index - -note that { and } are used to address ambiguties when nesting the dot syntax. - -Variable names themselves can be variable and contain expressions. -Examples: -$foo normal variable -$foo_{$bar} variable name containing other variable -$foo_{$x+$y} variable name containing expressions -$foo_{$bar}_buh_{$blar} variable name with multiple segments -{$foo_{$x}} will output the variable $foo_1 if $x has a value of 1. - -Object method chaining is implemented. -Example: {$object->method1($x)->method2($y)} - -{for} tag added for looping (replacement for {section} tag): -{for $x=0, $y=count($foo); $x<$y; $x++} .... {/for} -Any number of statements can be used separated by comma as the first -inital expression at {for}. - -{for $x = $start to $end step $step} ... {/for}is in the SVN now . -You can use also -{for $x = $start to $end} ... {/for} -In this case the step value will be automaticall 1 or -1 depending on the start and end values. -Instead of $start and $end you can use any valid expression. -Inside the loop the following special vars can be accessed: -$x@iteration = number of iteration -$x@total = total number of iterations -$x@first = true on first iteration -$x@last = true on last iteration - - -The Smarty 2 {section} syntax is still supported. - -New shorter {foreach} syntax to loop over an array. -Example: {foreach $myarray as $var}...{/foreach} - -Within the foreach loop, properties are access via: - -$var@key foreach $var array key -$var@iteration foreach current iteration count (1,2,3...) -$var@index foreach current index count (0,1,2...) -$var@total foreach $var array total -$var@first true on first iteration -$var@last true on last iteration - -The Smarty 2 {foreach} tag syntax is still supported. - -NOTE: {$bar[foo]} still indicates a variable inside of a {section} named foo. -If you want to access an array element with index foo, you must use quotes -such as {$bar['foo']}, or use the dot syntax {$bar.foo}. - -while block tag is now implemented: -{while $foo}...{/while} -{while $x lt 10}...{/while} - -Direct access to PHP functions: -Just as you can use PHP functions as modifiers directly, you can now access -PHP functions directly, provided they are permitted by security settings: -{time()} - -There is a new {function}...{/function} block tag to implement a template function. -This enables reuse of code sequences like a plugin function. It can call itself recursively. -Template function must be called with the new {call name=foo...} tag. - -Example: - -Template file: -{function name=menu level=0} -
    - {foreach $data as $entry} - {if is_array($entry)} -
  • {$entry@key}
  • - {call name=menu data=$entry level=$level+1} - {else} -
  • {$entry}
  • - {/if} - {/foreach} -
-{/function} - -{$menu = ['item1','item2','item3' => ['item3-1','item3-2','item3-3' => - ['item3-3-1','item3-3-2']],'item4']} - -{call name=menu data=$menu} - - -Generated output: - * item1 - * item2 - * item3 - o item3-1 - o item3-2 - o item3-3 - + item3-3-1 - + item3-3-2 - * item4 - -The function tag itself must have the "name" attribute. This name is the tag -name when calling the function. The function tag may have any number of -additional attributes. These will be default settings for local variables. - -New {nocache} block function: -{nocache}...{/nocache} will declare a section of the template to be non-cached -when template caching is enabled. - -New nocache attribute: -You can declare variable/function output as non-cached with the nocache attribute. -Examples: - -{$foo nocache=true} -{$foo nocache} /* same */ - -{foo bar="baz" nocache=true} -{foo bar="baz" nocache} /* same */ - -{time() nocache=true} -{time() nocache} /* same */ - -Or you can also assign the variable in your script as nocache: -$smarty->assign('foo',$something,true); // third param is nocache setting -{$foo} /* non-cached */ - -$smarty.current_dir returns the directory name of the current template. - -You can use strings directly as templates with the "string" resource type. -Examples: -$smarty->display('string:This is my template, {$foo}!'); // php -{include file="string:This is my template, {$foo}!"} // template - - - -VARIABLE SCOPE / VARIABLE STORAGE -================================= - -In Smarty 2, all assigned variables were stored within the Smarty object. -Therefore, all variables assigned in PHP were accessible by all subsequent -fetch and display template calls. - -In Smarty 3, we have the choice to assign variables to the main Smarty object, -to user-created data objects, and to user-created template objects. -These objects can be chained. The object at the end of a chain can access all -variables belonging to that template and all variables within the parent objects. -The Smarty object can only be the root of a chain, but a chain can be isolated -from the Smarty object. - -All known Smarty assignment interfaces will work on the data and template objects. - -Besides the above mentioned objects, there is also a special storage area for -global variables. - -A Smarty data object can be created as follows: -$data = $smarty->createData(); // create root data object -$data->assign('foo','bar'); // assign variables as usual -$data->config_load('my.conf'); // load config file - -$data= $smarty->createData($smarty); // create data object having a parent link to -the Smarty object - -$data2= $smarty->createData($data); // create data object having a parent link to -the $data data object - -A template object can be created by using the createTemplate method. It has the -same parameter assignments as the fetch() or display() method. -Function definition: -function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null) - -The first parameter can be a template name, a smarty object or a data object. - -Examples: -$tpl = $smarty->createTemplate('mytpl.tpl'); // create template object not linked to any parent -$tpl->assign('foo','bar'); // directly assign variables -$tpl->config_load('my.conf'); // load config file - -$tpl = $smarty->createTemplate('mytpl.tpl',$smarty); // create template having a parent link to the Smarty object -$tpl = $smarty->createTemplate('mytpl.tpl',$data); // create template having a parent link to the $data object - -The standard fetch() and display() methods will implicitly create a template object. -If the $parent parameter is not specified in these method calls, the template object -is will link back to the Smarty object as it's parent. - -If a template is called by an {include...} tag from another template, the -subtemplate links back to the calling template as it's parent. - -All variables assigned locally or from a parent template are accessible. If the -template creates or modifies a variable by using the {assign var=foo...} or -{$foo=...} tags, these new values are only known locally (local scope). When the -template exits, none of the new variables or modifications can be seen in the -parent template(s). This is same behavior as in Smarty 2. - -With Smarty 3, we can assign variables with a scope attribute which allows the -availablility of these new variables or modifications globally (ie in the parent -templates.) - -Possible scopes are local, parent, root and global. -Examples: -{assign var=foo value='bar'} // no scope is specified, the default 'local' -{$foo='bar'} // same, local scope -{assign var=foo value='bar' scope='local'} // same, local scope - -{assign var=foo value='bar' scope='parent'} // Values will be available to the parent object -{$foo='bar' scope='parent'} // (normally the calling template) - -{assign var=foo value='bar' scope='root'} // Values will be exported up to the root object, so they can -{$foo='bar' scope='root'} // be seen from all templates using the same root. - -{assign var=foo value='bar' scope='global'} // Values will be exported to global variable storage, -{$foo='bar' scope='global'} // they are available to any and all templates. - - -The scope attribute can also be attached to the {include...} tag. In this case, -the specified scope will be the default scope for all assignments within the -included template. - - -PLUGINS -======= - -Smarty 3 plugins follow the same coding rules as in Smarty 2. -The main difference is that the template object is now passed in place of the smarty object. -The smarty object can be still be accessed through $template->smarty. - -smarty_plugintype_name (array $params, Smarty_Internal_Template $template) - -The Smarty 2 plugins are still compatible as long as they do not make use of specific Smarty 2 internals. - - -TEMPLATE INHERITANCE: -===================== - -With template inheritance you can define blocks, which are areas that can be -overriden by child templates, so your templates could look like this: - -parent.tpl: - - - {block name='title'}My site name{/block} - - -

{block name='page-title'}Default page title{/block}

-
- {block name='content'} - Default content - {/block} -
- - - -child.tpl: -{extends file='parent.tpl'} -{block name='title'} -Child title -{/block} - -grandchild.tpl: -{extends file='child.tpl'} -{block name='title'}Home - {$smarty.block.parent}{/block} -{block name='page-title'}My home{/block} -{block name='content'} - {foreach $images as $img} - {$img.description} - {/foreach} -{/block} - -We redefined all the blocks here, however in the title block we used {$smarty.block.parent}, -which tells Smarty to insert the default content from the parent template in its place. -The content block was overriden to display the image files, and page-title has also be -overriden to display a completely different title. - -If we render grandchild.tpl we will get this: - - - Home - Child title - - -

My home

-
- image - image - image -
- - - -NOTE: In the child templates everything outside the {extends} or {block} tag sections -is ignored. - -The inheritance tree can be as big as you want (meaning you can extend a file that -extends another one that extends another one and so on..), but be aware that all files -have to be checked for modifications at runtime so the more inheritance the more overhead you add. - -Instead of defining the parent/child relationships with the {extends} tag in the child template you -can use the resource as follow: - -$smarty->display('extends:parent.tpl|child.tpl|grandchild.tpl'); - -Child {block} tags may optionally have a append or prepend attribute. In this case the parent block content -is appended or prepended to the child block content. - -{block name='title' append} My title {/block} - - -PHP STREAMS: -============ - -(see online documentation) - -VARIBLE FILTERS: -================ - -(see online documentation) - - -STATIC CLASS ACCESS AND NAMESPACE SUPPORT -========================================= - -You can register a class with optional namespace for the use in the template like: - -$smarty->register->templateClass('foo','name\name2\myclass'); - -In the template you can use it like this: -{foo::method()} etc. - - -======================= - -Please look through it and send any questions/suggestions/etc to the forums. - -http://www.phpinsider.com/smarty-forum/viewtopic.php?t=14168 - -Monte and Uwe diff --git a/Widgets/smarty/README.md b/Widgets/smarty/README.md deleted file mode 100644 index 5783eb3e..00000000 --- a/Widgets/smarty/README.md +++ /dev/null @@ -1,65 +0,0 @@ -#Smarty 3 template engine -##Distribution repository - -> Smarty 3.1.28 introduces run time template inheritance - -> Read the NEW_FEATURES and INHERITANCE_RELEASE_NOTES file for recent extensions to Smarty 3.1 functionality - -Smarty versions 3.1.11 or later are now on github and can be installed with Composer. - - -The "smarty/smarty" package will start at libs/.... subfolder. - -To get the latest stable version of Smarty 3.1 use - -```json -"require": { - "smarty/smarty": "~3.1" -} -``` - -in your composer.json file. - -To get the trunk version use - -```json -"require": { - "smarty/smarty": "~3.1@dev" -} -``` - -For a specific version use something like - -```json -"require": { - "smarty/smarty": "3.1.19" -} -``` - -PHPUnit test can be installed by corresponding composer entries like - -```json -"require": { - "smarty/smarty-phpunit": "3.1.19" -} -``` - -Similar applies for the lexer/parser generator - -```json -"require": { - "smarty/smarty-lexer": "3.1.19" -} -``` - -Or you could use - -```json -"require": { - "smarty/smarty-dev": "3.1.19" -} -``` - -Which is a wrapper to install all 3 packages - -Composer can also be used for Smarty2 versions 2.6.24 to 2.6.28 diff --git a/Widgets/smarty/SMARTY_2_BC_NOTES.txt b/Widgets/smarty/SMARTY_2_BC_NOTES.txt deleted file mode 100644 index 79a2cb1b..00000000 --- a/Widgets/smarty/SMARTY_2_BC_NOTES.txt +++ /dev/null @@ -1,109 +0,0 @@ -= Known incompatibilities with Smarty 2 = - -== Syntax == - -Smarty 3 API has a new syntax. Much of the Smarty 2 syntax is supported -by a wrapper but deprecated. See the README that comes with Smarty 3 for more -information. - -The {$array|@mod} syntax has always been a bit confusing, where an "@" is required -to apply a modifier to an array instead of the individual elements. Normally you -always want the modifier to apply to the variable regardless of its type. In Smarty 3, -{$array|mod} and {$array|@mod} behave identical. It is safe to drop the "@" and the -modifier will still apply to the array. If you really want the modifier to apply to -each array element, you must loop the array in-template, or use a custom modifier that -supports array iteration. Most smarty functions already escape values where necessary -such as {html_options} - -== PHP Version == -Smarty 3 is PHP 5 only. It will not work with PHP 4. - -== {php} Tag == -The {php} tag is disabled by default. The use of {php} tags is -deprecated. It can be enabled with $smarty->allow_php_tag=true. - -But if you scatter PHP code which belongs together into several -{php} tags it may not work any longer. - -== Delimiters and whitespace == -Delimiters surrounded by whitespace are no longer treated as Smarty tags. -Therefore, { foo } will not compile as a tag, you must use {foo}. This change -Makes Javascript/CSS easier to work with, eliminating the need for {literal}. -This can be disabled by setting $smarty->auto_literal = false; - -== Unquoted Strings == -Smarty 2 was a bit more forgiving (and ambiguous) when it comes to unquoted strings -in parameters. Smarty3 is more restrictive. You can still pass strings without quotes -so long as they contain no special characters. (anything outside of A-Za-z0-9_) - -For example filename strings must be quoted - -{include file='path/foo.tpl'} - - -== Extending the Smarty class == -Smarty 3 makes use of the __construct method for initialization. If you are extending -the Smarty class, its constructor is not called implicitly if the your child class defines -its own constructor. In order to run Smarty's constructor, a call to parent::__construct() -within your child constructor is required. - - -class MySmarty extends Smarty { - function __construct() { - parent::__construct(); - - // your initialization code goes here - - } -} - - -== Autoloader == -Smarty 3 does register its own autoloader with spl_autoload_register. If your code has -an existing __autoload function then this function must be explicitly registered on -the __autoload stack. See http://us3.php.net/manual/en/function.spl-autoload-register.php -for further details. - -== Plugin Filenames == -Smarty 3 optionally supports the PHP spl_autoloader. The autoloader requires filenames -to be lower case. Because of this, Smarty plugin file names must also be lowercase. -In Smarty 2, mixed case file names did work. - -== Scope of Special Smarty Variables == -In Smarty 2 the special Smarty variables $smarty.section... and $smarty.foreach... -had global scope. If you had loops with the same name in subtemplates you could accidentally -overwrite values of parent template. - -In Smarty 3 these special Smarty variable have only local scope in the template which -is defining the loop. If you need their value in a subtemplate you have to pass them -as parameter. - -{include file='path/foo.tpl' index=$smarty.section.foo.index} - - -== SMARTY_RESOURCE_CHAR_SET == -Smarty 3 sets the constant SMARTY_RESOURCE_CHAR_SET to utf-8 as default template charset. -This is now used also on modifiers like escape as default charset. If your templates use -other charsets make sure that you define the constant accordingly. Otherwise you may not -get any output. - -== newline at {if} tags == -A \n was added to the compiled code of the {if},{else},{elseif},{/if} tags to get output of newlines as expected by the template source. -If one of the {if} tags is at the line end you will now get a newline in the HTML output. - -== trigger_error() == -The API function trigger_error() has been removed because it did just map to PHP trigger_error. -However it's still included in the Smarty2 API wrapper. - -== Smarty constants == -The constants -SMARTY_PHP_PASSTHRU -SMARTY_PHP_QUOTE -SMARTY_PHP_REMOVE -SMARTY_PHP_ALLOW -have been replaced with class constants -Smarty::PHP_PASSTHRU -Smarty::PHP_QUOTE -Smarty::PHP_REMOVE -Smarty::PHP_ALLOW - diff --git a/Widgets/smarty/SMARTY_3.0_BC_NOTES.txt b/Widgets/smarty/SMARTY_3.0_BC_NOTES.txt deleted file mode 100644 index fd8b540c..00000000 --- a/Widgets/smarty/SMARTY_3.0_BC_NOTES.txt +++ /dev/null @@ -1,24 +0,0 @@ -== Smarty2 backward compatibility == -All Smarty2 specific API functions and deprecated functionallity has been moved -to the SmartyBC class. - -== {php} Tag == -The {php} tag is no longer available in the standard Smarty calls. -The use of {php} tags is deprecated and only available in the SmartyBC class. - -== {include_php} Tag == -The {include_php} tag is no longer available in the standard Smarty calls. -The use of {include_php} tags is deprecated and only available in the SmartyBC class. - -== php template resource == -The support of the php template resource is removed. - -== $cache_dir, $compile_dir, $config_dir, $template_dir access == -The mentioned properties can't be accessed directly any longer. You must use -corresponding getter/setters like addConfigDir(), setConfigDir(), getConfigDir() - -== obsolete Smarty class properties == -The following no longer used properties are removed: -$allow_php_tag -$allow_php_template -$deprecation_notices \ No newline at end of file diff --git a/Widgets/smarty/SMARTY_3.1_NOTES.txt b/Widgets/smarty/SMARTY_3.1_NOTES.txt deleted file mode 100644 index 57709f0d..00000000 --- a/Widgets/smarty/SMARTY_3.1_NOTES.txt +++ /dev/null @@ -1,306 +0,0 @@ -Smarty 3.1 Notes -================ - -Smarty 3.1 is a departure from 2.0 compatibility. Most notably, all -backward compatibility has been moved to a separate class file named -SmartyBC.class.php. If you require compatibility with 2.0, you will -need to use this class. - -Some differences from 3.0 are also present. 3.1 begins the journey of -requiring setters/getters for property access. So far this is only -implemented on the five directory properties: template_dir, -plugins_dir, configs_dir, compile_dir and cache_dir. These properties -are now protected, it is required to use the setters/getters instead. -That said, direct property access will still work, however slightly -slower since they will now fall through __set() and __get() and in -turn passed through the setter/getter methods. 3.2 will exhibit a full -list of setter/getter methods for all (currently) public properties, -so code-completion in your IDE will work as expected. - -There is absolutely no PHP allowed in templates any more. All -deprecated features of Smarty 2.0 are gone. Again, use the SmartyBC -class if you need any backward compatibility. - -Internal Changes - - Full UTF-8 Compatibility - -The plugins shipped with Smarty 3.1 have been rewritten to fully -support UTF-8 strings if Multibyte String is available. Without -MBString UTF-8 cannot be handled properly. For those rare cases where -templates themselves have to juggle encodings, the new modifiers -to_charset and from_charset may come in handy. - - Plugin API and Performance - -All Plugins (modifiers, functions, blocks, resources, -default_template_handlers, etc) are now receiving the -Smarty_Internal_Template instance, where they were supplied with the -Smarty instance in Smarty 3.0. *. As The Smarty_Internal_Template -mimics the behavior of Smarty, this API simplification should not -require any changes to custom plugins. - -The plugins shipped with Smarty 3.1 have been rewritten for better -performance. Most notably {html_select_date} and {html_select_time} -have been improved vastly. Performance aside, plugins have also been -reviewed and generalized in their API. {html_select_date} and -{html_select_time} now share almost all available options. - -The escape modifier now knows the $double_encode option, which will -prevent entities from being encoded again. - -The capitalize modifier now know the $lc_rest option, which makes sure -all letters following a captial letter are lower-cased. - -The count_sentences modifier now accepts (.?!) as -legitimate endings of a sentence - previously only (.) was -accepted - -The new unescape modifier is there to reverse the effects of the -escape modifier. This applies to the escape formats html, htmlall and -entity. - - default_template_handler_func - -The invocation of $smarty->$default_template_handler_func had to be -altered. Instead of a Smarty_Internal_Template, the fifth argument is -now provided with the Smarty instance. New footprint: - - -/** - * Default Template Handler - * - * called when Smarty's file: resource is unable to load a requested file - * - * @param string $type resource type (e.g. "file", "string", "eval", "resource") - * @param string $name resource name (e.g. "foo/bar.tpl") - * @param string &$content template's content - * @param integer &$modified template's modification time - * @param Smarty $smarty Smarty instance - * @return string|boolean path to file or boolean true if $content and $modified - * have been filled, boolean false if no default template - * could be loaded - */ -function default_template_handler_func($type, $name, &$content, &$modified, Smarty $smarty) { - if (false) { - // return corrected filepath - return "/tmp/some/foobar.tpl"; - } elseif (false) { - // return a template directly - $content = "the template source"; - $modified = time(); - return true; - } else { - // tell smarty that we failed - return false; - } -} - - Stuff done to the compiler - -Many performance improvements have happened internally. One notable -improvement is that all compiled templates are now handled as PHP -functions. This speeds up repeated templates tremendously, as each one -calls an (in-memory) PHP function instead of performing another file -include/scan. - -New Features - - Template syntax - - {block}..{/block} - -The {block} tag has a new hide option flag. It does suppress the block -content if no corresponding child block exists. -EXAMPLE: -parent.tpl -{block name=body hide} child content "{$smarty.block.child}" was -inserted {block} -In the above example the whole block will be suppressed if no child -block "body" is existing. - - {setfilter}..{/setfilter} - -The new {setfilter} block tag allows the definition of filters which -run on variable output. -SYNTAX: -{setfilter filter1|filter2|filter3....} -Smarty3 will lookup up matching filters in the following search order: -1. varibale filter plugin in plugins_dir. -2. a valid modifier. A modifier specification will also accept -additional parameter like filter2:'foo' -3. a PHP function -{/setfilter} will turn previous filter setting off again. -{setfilter} tags can be nested. -EXAMPLE: -{setfilter filter1} - {$foo} - {setfilter filter2} - {$bar} - {/setfilter} - {$buh} -{/setfilter} -{$blar} -In the above example filter1 will run on the output of $foo, filter2 -on $bar, filter1 again on $buh and no filter on $blar. -NOTES: -- {$foo nofilter} will suppress the filters -- These filters will run in addition to filters defined by -registerFilter('variable',...), autoLoadFilter('variable',...) and -defined default modifier. -- {setfilter} will effect only the current template, not included -subtemplates. - - Resource API - -Smarty 3.1 features a new approach to resource management. The -Smarty_Resource API allows simple, yet powerful integration of custom -resources for templates and configuration files. It offers simple -functions for loading data from a custom resource (e.g. database) as -well as define new template types adhering to the special -non-compiling (e,g, plain php) and non-compile-caching (e.g. eval: -resource type) resources. - -See demo/plugins/resource.mysql.php for an example custom database -resource. - -Note that old-fashioned registration of callbacks for resource -management has been deprecated but is still possible with SmartyBC. - - CacheResource API - -In line with the Resource API, the CacheResource API offers a more -comfortable handling of output-cache data. With the -Smarty_CacheResource_Custom accessing databases is made simple. With -the introduction of Smarty_CacheResource_KeyValueStore the -implementation of resources like memcache or APC became a no-brainer; -simple hash-based storage systems are now supporting hierarchical -output-caches. - -See demo/plugins/cacheresource.mysql.php for an example custom -database CacheResource. -See demo/plugins/cacheresource.memcache.php for an example custom -memcache CacheResource using the KeyValueStore helper. - -Note that old-fashioned registration of $cache_handler is not possible -anymore. As the functionality had not been ported to Smarty 3.0.x -properly, it has been dropped from 3.1 completely. - -Locking facilities have been implemented to avoid concurrent cache -generation. Enable cache locking by setting -$smarty->cache_locking = true; - - Relative Paths in Templates (File-Resource) - -As of Smarty 3.1 {include file="../foo.tpl"} and {include -file="./foo.tpl"} will resolve relative to the template they're in. -Relative paths are available with {include file="..."} and -{extends file="..."}. As $smarty->fetch('../foo.tpl') and -$smarty->fetch('./foo.tpl') cannot be relative to a template, an -exception is thrown. - - Addressing a specific $template_dir - -Smarty 3.1 introduces the $template_dir index notation. -$smarty->fetch('[foo]bar.tpl') and {include file="[foo]bar.tpl"} -require the template bar.tpl to be loaded from $template_dir['foo']; -Smarty::setTemplateDir() and Smarty::addTemplateDir() offer ways to -define indexes along with the actual directories. - - Mixing Resources in extends-Resource - -Taking the php extends: template resource one step further, it is now -possible to mix resources within an extends: call like -$smarty->fetch("extends:file:foo.tpl|db:bar.tpl"); - -To make eval: and string: resources available to the inheritance -chain, eval:base64:TPL_STRING and eval:urlencode:TPL_STRING have been -introduced. Supplying the base64 or urlencode flags will trigger -decoding the TPL_STRING in with either base64_decode() or urldecode(). - - extends-Resource in template inheritance - -Template based inheritance may now inherit from php's extends: -resource like {extends file="extends:foo.tpl|db:bar.tpl"}. - - New Smarty property escape_html - -$smarty->escape_html = true will autoescape all template variable -output by calling htmlspecialchars({$output}, ENT_QUOTES, -SMARTY_RESOURCE_CHAR_SET). -NOTE: -This is a compile time option. If you change the setting you must make -sure that the templates get recompiled. - - New option at Smarty property compile_check - -The automatic recompilation of modified templates can now be -controlled by the following settings: -$smarty->compile_check = COMPILECHECK_OFF (false) - template files -will not be checked -$smarty->compile_check = COMPILECHECK_ON (true) - template files will -always be checked -$smarty->compile_check = COMPILECHECK_CACHEMISS - template files will -be checked if caching is enabled and there is no existing cache file -or it has expired - - Automatic recompilation on Smarty version change - -Templates will now be automatically recompiled on Smarty version -changes to avoide incompatibillities in the compiled code. Compiled -template checked against the current setting of the SMARTY_VERSION -constant. - - default_config_handler_func() - -Analogous to the default_template_handler_func() -default_config_handler_func() has been introduced. - - default_plugin_handler_func() - -An optional default_plugin_handler_func() can be defined which gets called -by the compiler on tags which can't be resolved internally or by plugins. -The default_plugin_handler() can map tags to plugins on the fly. - -New getters/setters - -The following setters/getters will be part of the official -documentation, and will be strongly recommended. Direct property -access will still work for the foreseeable future... it will be -transparently routed through the setters/getters, and consequently a -bit slower. - -array|string getTemplateDir( [string $index] ) -replaces $smarty->template_dir; and $smarty->template_dir[$index]; -Smarty setTemplateDir( array|string $path ) -replaces $smarty->template_dir = "foo"; and $smarty->template_dir = -array("foo", "bar"); -Smarty addTemplateDir( array|string $path, [string $index]) -replaces $smarty->template_dir[] = "bar"; and -$smarty->template_dir[$index] = "bar"; - -array|string getConfigDir( [string $index] ) -replaces $smarty->config_dir; and $smarty->config_dir[$index]; -Smarty setConfigDir( array|string $path ) -replaces $smarty->config_dir = "foo"; and $smarty->config_dir = -array("foo", "bar"); -Smarty addConfigDir( array|string $path, [string $index]) -replaces $smarty->config_dir[] = "bar"; and -$smarty->config_dir[$index] = "bar"; - -array getPluginsDir() -replaces $smarty->plugins_dir; -Smarty setPluginsDir( array|string $path ) -replaces $smarty->plugins_dir = "foo"; -Smarty addPluginsDir( array|string $path ) -replaces $smarty->plugins_dir[] = "bar"; - -string getCompileDir() -replaces $smarty->compile_dir; -Smarty setCompileDir( string $path ) -replaces $smarty->compile_dir = "foo"; - -string getCacheDir() -replaces $smarty->cache_dir; -Smarty setCacheDir( string $path ) -replaces $smarty->cache_dir; diff --git a/Widgets/smarty/change_log.txt b/Widgets/smarty/change_log.txt deleted file mode 100644 index dadc5d17..00000000 --- a/Widgets/smarty/change_log.txt +++ /dev/null @@ -1,2864 +0,0 @@ - ===== 3.1.29 ===== (21.12.2015) - 21.12.2015 - - optimization improve speed of filetime checks on extends and extendsall resource - - 20.12.2015 - - bugfix failure when the default resource type was set to 'extendsall' https://github.com/smarty-php/smarty/issues/123 - - update compilation of Smarty special variables - - bugfix add addition check for OS type on normalizaition of file path https://github.com/smarty-php/smarty/issues/134 - - bugfix the source uid of the extendsall resource must contain $template_dir settings https://github.com/smarty-php/smarty/issues/123 - - 19.12.2015 - - bugfix using $smarty.capture.foo in expressions could fail https://github.com/smarty-php/smarty/pull/138 - - bugfix broken PHP 5.2 compatibility https://github.com/smarty-php/smarty/issues/139 - - remove no longer used code - - improvement make sure that compiled and cache templates never can contain a trailing '?>? - - 18.12.2015 - - bugfix regression when modifier parameter was follow by math https://github.com/smarty-php/smarty/issues/132 - - 17.12.2015 - - bugfix {$smarty.capture.nameFail} did lowercase capture name https://github.com/smarty-php/smarty/issues/135 - - bugfix using {block append/prepend} on same block in multiple levels of inheritance templates could fail (forum topic 25827) - - bugfix text content consisting of just a single '0' like in {if true}0{/if} was suppressed (forum topic 25834) - - 16.12.2015 - - bugfix {foreach} did fail if from atrribute is a Generator class https://github.com/smarty-php/smarty/issues/128 - - bugfix direct access $smarty->template_dir = 'foo'; should call Smarty::setTemplateDir() https://github.com/smarty-php/smarty/issues/121 - - 15.12.2015 - - bugfix {$smarty.cookies.foo} did return the $_COOKIE array not the 'foo' value https://github.com/smarty-php/smarty/issues/122 - - bugfix a call to clearAllCache() and other should clear all internal template object caches (forum topic 25828) - - 14.12.2015 - - bugfix {$smarty.config.foo} broken in 3.1.28 https://github.com/smarty-php/smarty/issues/120 - - bugfix multiple calls of {section} with same name droped E_NOTICE error https://github.com/smarty-php/smarty/issues/118 - - ===== 3.1.28 ===== (13.12.2015) - 13.12.2015 - - bugfix {foreach} and {section} with uppercase characters in name attribute did not work (forum topic 25819) - - bugfix $smarty->debugging_ctrl = 'URL' did not work (forum topic 25811) - - bugfix Debug Console could display incorrect data when using subtemplates - - 09.12.2015 - - bugfix Smarty did fail under PHP 7.0.0 with use_include_path = true; - - 09.12.2015 - - bugfix {strip} should exclude some html tags from stripping, related to fix for https://github.com/smarty-php/smarty/issues/111 - - 08.12.2015 - - bugfix internal template function data got stored in wrong compiled file https://github.com/smarty-php/smarty/issues/114 - - 05.12.2015 - -bugfix {strip} should insert a single space https://github.com/smarty-php/smarty/issues/111 - - 25.11.2015 - -bugfix a left delimter like '[%' did fail on [%$var_[%$variable%]%] (forum topic 25798) - - 02.11.2015 - - bugfix {include} with variable file name like {include file="foo_`$bar`.tpl"} did fail in 3.1.28-dev https://github.com/smarty-php/smarty/issues/102 - - 01.11.2015 - - update config file processing - - 31.10.2015 - - bugfix add missing $trusted_dir property to SmartyBC class (forum topic 25751) - - 29.10.2015 - - improve template scope handling - - 24.10.2015 - - more optimizations of template processing - - bugfix Error when using {include} within {capture} https://github.com/smarty-php/smarty/issues/100 - - 21.10.2015 - - move some code into runtime extensions - - 18.10.2015 - - optimize filepath normalization - - rework of template inheritance - - speed and size optimizations - - bugfix under HHVM temporary cache file must only be created when caches template was updated - - fix compiled code for new {block} assign attribute - - update code generated by template function call handler - - 18.09.2015 - - bugfix {if $foo instanceof $bar} failed to compile if 2nd value is a variable https://github.com/smarty-php/smarty/issues/92 - - 17.09.2015 - - bugfix {foreach} first attribute was not correctly reset since commit 05a8fa2 of 02.08.2015 https://github.com/smarty-php/smarty/issues/90 - - 16.09.2015 - - update compiler by moving no longer needed properties, code optimizations and other - - 14.09.2015 - - optimize autoloader - - optimize subtemplate handling - - update template inheritance processing - - move code of {call} processing back into Smarty_Internal_Template class - - improvement invalidate OPCACHE for cleared compiled and cached template files (forum topic 25557) - - bugfix unintended multiple debug windows (forum topic 25699) - - 30.08.2015 - - size optimization move some runtime functions into extension - - optimize inline template processing - - optimization merge inheritance child and parent templates into one compiled template file - - 29.08.2015 - - improvement convert template inheritance into runtime processing - - bugfix {$smarty.block.parent} did always reference the root parent block https://github.com/smarty-php/smarty/issues/68 - - 23.08.2015 - - introduce Smarty::$resource_cache_mode and cache template object of {include} inside loop - - load seldom used Smarty API methods dynamically to reduce memory footprint - - cache template object of {include} if same template is included several times - - convert debug console processing to object - - use output buffers for better performance and less memory usage - - optimize nocache hash processing - - remove not really needed properties - - optimize rendering - - move caching to Smarty::_cache - - remove properties with redundant content - - optimize Smarty::templateExists() - - optimize use_include_path processing - - relocate properties for size optimization - - remove redundant code - - bugfix compiling super globals like {$smarty.get.foo} did fail in the master branch https://github.com/smarty-php/smarty/issues/77 - - 06.08.2015 - - avoid possible circular object references caused by parser/lexer objects - - rewrite compileAll... utility methods - - commit several internal improvements - - bugfix Smarty failed when compile_id did contain "|" - - 03.08.2015 - - rework clear cache methods - - bugfix compileAllConfig() was broken since 3.1.22 because of the changes in config file processing - - improve getIncludePath() to return directory if no file was given - - 02.08.2015 - - optimization and code cleanup of {foreach} and {section} compiler - - rework {capture} compiler - - 01.08.2015 - - update DateTime object can be instance of DateTimeImmutable since PHP5.5 https://github.com/smarty-php/smarty/pull/75 - - improvement show resource type and start of template source instead of uid on eval: and string: resource (forum topic 25630) - - 31.07.2015 - - optimize {foreach} and {section} compiler - - 29.07.2015 - - optimize {section} compiler for speed and size of compiled code - - 28.07.2015 - - update for PHP 7 compatibility - - 26.07.2015 - - improvement impement workaround for HHVM PHP incompatibillity https://github.com/facebook/hhvm/issues/4797 - - 25.07.2015 - - bugfix parser did hang on text starting fetch('foo.tpl') https://github.com/smarty-php/smarty/issues/70 - - improvement Added $limit parameter to regex_replace modifier #71 - - new feature multiple indices on file: resource - - 06.07.2015 - - optimize {block} compilation - - optimization get rid of __get and __set in source object - - 01.07.2015 - - optimize compile check handling - - update {foreach} compiler - - bugfix debugging console did not display string values containing \n, \r or \t correctly https://github.com/smarty-php/smarty/issues/66 - - optimize source resources - - 28.06.2015 - - move $smarty->enableSecurity() into Smarty_Security class - - optimize security isTrustedResourceDir() - - move auto load filter methods into extension - - move $smarty->getTemplateVars() into extension - - move getStreamVariable() into extension - - move $smarty->append() and $smarty->appendByRef() into extension - - optimize autoloader - - optimize file path normalization - - bugfix PATH_SEPARATOR was replaced by mistake in autoloader - - remove redundant code - - 27.06.2015 - - bugfix resolve naming conflict between custom Smarty delimiter '<%' and PHP ASP tags https://github.com/smarty-php/smarty/issues/64 - - update $smarty->_realpath for relative path not starting with './' - - update Smarty security with new realpath handling - - update {include_php} with new realpath handling - - move $smarty->loadPlugin() into extension - - minor compiler optimizations - - bugfix allow function plugins with name ending with 'close' https://github.com/smarty-php/smarty/issues/52 - - rework of $smarty->clearCompiledTemplate() and move it to its own extension - - 19.06.2015 - - improvement allow closures as callback at $smarty->registerFilter() https://github.com/smarty-php/smarty/issues/59 - - ===== 3.1.27===== (18.06.2015) - 18.06.2015 - - bugfix another update on file path normalization failed on path containing something like "/.foo/" https://github.com/smarty-php/smarty/issues/56 - - ===== 3.1.26===== (18.06.2015) - 18.06.2015 - - bugfix file path normalization failed on path containing something like "/.foo/" https://github.com/smarty-php/smarty/issues/56 - - 17.06.2015 - - bugfix calling a plugin with nocache option but no other attributes like {foo nocache} caused call to undefined function https://github.com/smarty-php/smarty/issues/55 - - ===== 3.1.25===== (15.06.2015) - 15.06.2015 - - optimization of smarty_cachereource_keyvaluestore.php code - - 14.06.2015 - - bugfix a relative sub template path could fail if template_dir path did contain /../ https://github.com/smarty-php/smarty/issues/50 - - optimization rework of path normalization - - bugfix an output tag with variable, modifier followed by an operator like {$foo|modifier+1} did fail https://github.com/smarty-php/smarty/issues/53 - - 13.06.2015 - - bugfix a custom cache resource using smarty_cachereource_keyvaluestore.php did fail if php.ini mbstring.func_overload = 2 (forum topic 25568) - - 11.06.2015 - - bugfix the lexer could hang on very large quoted strings (forum topic 25570) - - 08.06.2015 - - bugfix using {$foo} as array index like $bar.{$foo} or in double quoted string like "some {$foo} thing" failed https://github.com/smarty-php/smarty/issues/49 - - 04.06.2015 - - bugfix possible error message on unset() while compiling {block} tags https://github.com/smarty-php/smarty/issues/46 - - 01.06.2015 - - bugfix including template variables broken since 3.1.22 https://github.com/smarty-php/smarty/issues/47 - - 27.05.2015 - - bugfix {include} with variable file name must not create by default individual cache file (since 3.1.22) https://github.com/smarty-php/smarty/issues/43 - - 24.05.2015 - - bugfix if condition string 'neq' broken due to a typo https://github.com/smarty-php/smarty/issues/42 - - ===== 3.1.24===== (23.05.2015) - 23.05.2015 - - improvement on php_handling to allow very large PHP sections, better error handling - - improvement allow extreme large comment sections (forum 25538) - - 21.05.2015 - - bugfix broken PHP 5.2 compatibility when compiling 1 did compile into wrong code https://github.com/smarty-php/smarty/issues/41 - - 19.05.2015 - - bugfix compiler did overwrite existing variable value when setting the nocache attribute https://github.com/smarty-php/smarty/issues/39 - - bugfix output filter trimwhitespace could run into the pcre.backtrack_limit on large output (code.google issue 220) - - bugfix compiler could run into the pcre.backtrack_limit on larger comment or {php} tag sections (forum 25538) - - 18.05.2015 - - improvement introduce shortcuts in lexer/parser rules for most frequent terms for higher - compilation speed - - 16.05.2015 - - bugfix {php}{/php} did work just for single lines https://github.com/smarty-php/smarty/issues/33 - - improvement remove not needed ?> handling from parser to new compiler module - - 05.05.2015 - - bugfix code could be messed up when {tags} are used in multiple attributes https://github.com/smarty-php/smarty/issues/23 - - 04.05.2015 - - bugfix Smarty_Resource::parseResourceName incompatible with Google AppEngine (https://github.com/smarty-php/smarty/issues/22) - - improvement use is_file() checks to avoid errors suppressed by @ which could still cause problems (https://github.com/smarty-php/smarty/issues/24) - - 28.04.2015 - - bugfix plugins of merged subtemplates not loaded in 3.1.22-dev (forum topic 25508) 2nd fix - - 28.04.2015 - - bugfix plugins of merged subtemplates not loaded in 3.1.22-dev (forum topic 25508) - - 23.04.2015 - - bugfix a nocache template variable used as parameter at {insert} was by mistake cached - - 20.04.2015 - - bugfix at a template function containing nocache code a parmeter could overwrite a template variable of same name - - 27.03.2015 - - bugfix Smarty_Security->allow_constants=false; did also disable true, false and null (change of 16.03.2015) - - improvement added a whitelist for trusted constants to security Smarty_Security::$trusted_constants (forum topic 25471) - - 20.03.2015 - - bugfix make sure that function properties get saved only in compiled files containing the fuction definition {forum topic 25452} - - bugfix correct update of global variable values on exit of template functions. (reported under Smarty Developers) - - 16.03.2015 - - bugfix problems with {function}{/function} and {call} tags in different subtemplate cache files {forum topic 25452} - - bugfix Smarty_Security->allow_constants=false; did not disallow direct usage of defined constants like {SMARTY_DIR} {forum topic 25457} - - bugfix {block}{/block} tags did not work inside double quoted strings https://github.com/smarty-php/smarty/issues/18 - - - 15.03.2015 - - bugfix $smarty->compile_check must be restored before rendering of a just updated cache file {forum 25452} - - 14.03.2015 - - bugfix {nocache} {/nocache} tags corrupted code when used within a nocache section caused by a nocache template variable. - - - bugfix template functions defined with {function} in an included subtemplate could not be called in nocache - mode with {call... nocache} if the subtemplate had it's own cache file {forum 25452} - - 10.03.2015 - - bugfix {include ... nocache} whith variable file or compile_id attribute was not executed in nocache mode. - - 12.02.2015 - - bugfix multiple Smarty::fetch() of same template when $smarty->merge_compiled_includes = true; could cause function already defined error - - 11.02.2015 - - bugfix recursive {includes} did create E_NOTICE message when $smarty->merge_compiled_includes = true; (github issue #16) - - 22.01.2015 - - new feature security can now control access to static methods and properties - see also NEW_FEATURES.txt - - 21.01.2015 - - bugfix clearCompiledTemplates(), clearAll() and clear() could try to delete whole drive at wrong path permissions because realpath() fail (forum 25397) - - bugfix 'self::' and 'parent::' was interpreted in template syntax as static class - - 04.01.2015 - - push last weeks changes to github - - - different optimizations - - improvement automatically create different versions of compiled templates and config files depending - on property settings. - - optimization restructure template processing by moving code into classes it better belongs to - - optimization restructure config file processing - - 31.12.2014 - - bugfix use function_exists('mb_get_info') for setting Smarty::$_MBSTRING. - Function mb_split could be overloaded depending on php.ini mbstring.func_overload - - - 29.12.2014 - - new feature security can now limit the template nesting level by property $max_template_nesting - see also NEW_FEATURES.txt (forum 25370) - - 29.12.2014 - - new feature security can now disable special $smarty variables listed in property $disabled_special_smarty_vars - see also NEW_FEATURES.txt (forum 25370) - - 27.12.2014 - - bugfix clear internal _is_file_cache when plugins_dir was modified - - 13.12.2014 - - improvement optimization of lexer and parser resulting in a up to 30% higher compiling speed - - 11.12.2014 - - bugfix resolve parser ambiguity between constant print tag {CONST} and other smarty tags after change of 09.12.2014 - - 09.12.2014 - - bugfix variables $null, $true and $false did not work after the change of 12.11.2014 (forum 25342) - - bugfix call of template function by a variable name did not work after latest changes (forum 25342) - - 23.11.2014 - - bugfix a plugin with attached modifier could fail if the tag was immediately followed by another Smarty tag (since 3.1.21) (forum 25326) - - 13.11.2014 - - improvement move autoload code into Autoloader.php. Use Composer autoloader when possible - - 12.11.2014 - - new feature added support of namespaces to template code - - 08.11.2014 - 10.11.2014 - - bugfix subtemplate called in nocache mode could be called with wrong compile_id when it did change on one of the calling templates - - improvement add code of template functions called in nocache mode dynamically to cache file (related to bugfix of 01.11.2014) - - bugfix Debug Console did not include all data from merged compiled subtemplates - - 04.11.2014 - - new feature $smarty->debugging = true; => overwrite existing Debug Console window (old behaviour) - $smarty->debugging = 2; => individual Debug Console window by template name - - 03.11.2014 - - bugfix Debug Console did not show included subtemplates since 3.1.17 (forum 25301) - - bugfix Modifier debug_print_var did not limit recursion or prevent recursive object display at Debug Console - (ATTENTION: parameter order has changed to be able to specify maximum recursion) - - bugfix Debug consol did not include subtemplate information with $smarty->merge_compiled_includes = true - - improvement The template variables are no longer displayed as objects on the Debug Console - - improvement $smarty->createData($parent = null, $name = null) new optional name parameter for display at Debug Console - - addition of some hooks for future extension of Debug Console - - 01.11.2014 - - bugfix and enhancement on subtemplate {include} and template {function} tags. - * Calling a template which has a nocache section could fail if it was called from a cached and a not cached subtemplate. - * Calling the same subtemplate cached and not cached with the $smarty->merge_compiled_includes enabled could cause problems - * Many smaller related changes - - 30.10.2014 - - bugfix access to class constant by object like {$object::CONST} or variable class name {$class::CONST} did not work (forum 25301) - - 26.10.2014 - - bugfix E_NOTICE message was created during compilation when ASP tags '<%' or '%>' are in template source text - - bugfix merge_compiled_includes option failed when caching enables and same subtemplate was included cached and not cached - - ===== 3.1.21 ===== (18.10.2014) - 18.10.2014 - - composer moved to github - - 17.10.2014 - - bugfix on $php_handling security and optimization of smarty_internal_parsetree (Thue Kristensen) - - 16.10.2014 - - bugfix composer.json update - - 15.10.2014 - - bugfix calling a new created cache file with fetch() and Smarty::CACHING_LIFETIME_SAVED multiple times did fail (forum 22350) - - 14.10.2014 - - bugfix any tag placed within " diff --git a/Widgets/smarty/libs/plugins/block.textformat.php b/Widgets/smarty/libs/plugins/block.textformat.php deleted file mode 100644 index abf54493..00000000 --- a/Widgets/smarty/libs/plugins/block.textformat.php +++ /dev/null @@ -1,110 +0,0 @@ - - * Name: textformat
- * Purpose: format text a certain way with preset styles - * or custom wrap/indent settings
- * Params: - *
- * - style         - string (email)
- * - indent        - integer (0)
- * - wrap          - integer (80)
- * - wrap_char     - string ("\n")
- * - indent_char   - string (" ")
- * - wrap_boundary - boolean (true)
- * 
- * - * @link http://www.smarty.net/manual/en/language.function.textformat.php {textformat} - * (Smarty online manual) - * - * @param array $params parameters - * @param string $content contents of the block - * @param Smarty_Internal_Template $template template object - * @param boolean &$repeat repeat flag - * - * @return string content re-formatted - * @author Monte Ohrt - */ -function smarty_block_textformat($params, $content, $template, &$repeat) -{ - if (is_null($content)) { - return; - } - - $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) { - require_once(SMARTY_PLUGINS_DIR . 'shared.mb_wordwrap.php'); - $_paragraph = smarty_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/Widgets/smarty/libs/plugins/function.counter.php b/Widgets/smarty/libs/plugins/function.counter.php deleted file mode 100644 index 4da85a14..00000000 --- a/Widgets/smarty/libs/plugins/function.counter.php +++ /dev/null @@ -1,78 +0,0 @@ - - * Name: counter
- * Purpose: print out a counter value - * - * @author Monte Ohrt - * @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/Widgets/smarty/libs/plugins/function.cycle.php b/Widgets/smarty/libs/plugins/function.cycle.php deleted file mode 100644 index 8dc5cd9d..00000000 --- a/Widgets/smarty/libs/plugins/function.cycle.php +++ /dev/null @@ -1,107 +0,0 @@ - - * Name: cycle
- * Date: May 3, 2002
- * Purpose: cycle through given values
- * Params: - *
- * - name      - name of cycle (optional)
- * - values    - comma separated list of values to cycle, or an array of values to cycle
- *               (this can be left out for subsequent calls)
- * - reset     - boolean - resets given var to true
- * - print     - boolean - print var or not. default is true
- * - advance   - boolean - whether or not to advance the cycle
- * - delimiter - the value delimiter, default is ","
- * - assign    - boolean, assigns to template var instead of printed.
- * 
- * Examples:
- *
- * {cycle values="#eeeeee,#d0d0d0d"}
- * {cycle name=row values="one,two,three" reset=true}
- * {cycle name=row}
- * 
- * - * @link http://www.smarty.net/manual/en/language.function.cycle.php {cycle} - * (Smarty online manual) - * @author Monte Ohrt - * @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/Widgets/smarty/libs/plugins/function.fetch.php b/Widgets/smarty/libs/plugins/function.fetch.php deleted file mode 100644 index 3506d4a8..00000000 --- a/Widgets/smarty/libs/plugins/function.fetch.php +++ /dev/null @@ -1,221 +0,0 @@ - - * Name: fetch
- * Purpose: fetch file, web or ftp data and display results - * - * @link http://www.smarty.net/manual/en/language.function.fetch.php {fetch} - * (Smarty online manual) - * @author Monte Ohrt - * - * @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/Widgets/smarty/libs/plugins/function.html_checkboxes.php b/Widgets/smarty/libs/plugins/function.html_checkboxes.php deleted file mode 100644 index d7868036..00000000 --- a/Widgets/smarty/libs/plugins/function.html_checkboxes.php +++ /dev/null @@ -1,237 +0,0 @@ - - * Type: function
- * Name: html_checkboxes
- * Date: 24.Feb.2003
- * Purpose: Prints out a list of checkbox input types
- * Examples: - *
- * {html_checkboxes values=$ids output=$names}
- * {html_checkboxes values=$ids name='box' separator='
' 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 object $template template object - * - * @return string - * @uses smarty_function_escape_special_chars() - */ -function smarty_function_html_checkboxes($params, $template) -{ - require_once(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); - } -} - -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 .= '