From 8c29cc08f0020c265d19aade4c277e77edd0482f Mon Sep 17 00:00:00 2001 From: mohrt Date: Thu, 7 Oct 2004 18:50:52 +0000 Subject: [PATCH] spanish docs initial commit --- docs/es/appendixes/bugs.xml | 29 + docs/es/appendixes/resources.xml | 32 + docs/es/appendixes/tips.xml | 386 ++++++++++++ docs/es/appendixes/troubleshooting.xml | 78 +++ docs/es/bookinfo.xml | 43 ++ .../designers/chapter-debugging-console.xml | 61 ++ docs/es/designers/config-files.xml | 99 +++ docs/es/designers/language-basic-syntax.xml | 45 ++ .../language-escaping.xml | 83 +++ .../language-basic-syntax/language-math.xml | 49 ++ .../language-syntax-attributes.xml | 58 ++ .../language-syntax-comments.xml | 52 ++ .../language-syntax-functions.xml | 62 ++ .../language-syntax-quotes.xml | 49 ++ .../designers/language-builtin-functions.xml | 45 ++ .../language-function-capture.xml | 110 ++++ .../language-function-config-load.xml | 148 +++++ .../language-function-foreach.xml | 195 ++++++ .../language-function-if.xml | 219 +++++++ .../language-function-include-php.xml | 142 +++++ .../language-function-include.xml | 123 ++++ .../language-function-insert.xml | 142 +++++ .../language-function-ldelim.xml | 52 ++ .../language-function-literal.xml | 71 +++ .../language-function-php.xml | 40 ++ .../language-function-section.xml | 571 ++++++++++++++++++ .../language-function-strip.xml | 78 +++ .../language-combining-modifiers.xml | 64 ++ .../designers/language-custom-functions.xml | 49 ++ .../language-function-assign.xml | 74 +++ .../language-function-counter.xml | 123 ++++ .../language-function-cycle.xml | 138 +++++ .../language-function-debug.xml | 61 ++ .../language-function-eval.xml | 120 ++++ .../language-function-fetch.xml | 109 ++++ .../language-function-html-checkboxes.xml | 166 +++++ .../language-function-html-image.xml | 160 +++++ .../language-function-html-options.xml | 151 +++++ .../language-function-html-radios.xml | 143 +++++ .../language-function-html-select-date.xml | 366 +++++++++++ .../language-function-html-select-time.xml | 341 +++++++++++ .../language-function-html-table.xml | 158 +++++ .../language-function-mailto.xml | 155 +++++ .../language-function-math.xml | 149 +++++ .../language-function-popup-init.xml | 49 ++ .../language-function-popup.xml | 435 +++++++++++++ .../language-function-textformat.xml | 255 ++++++++ docs/es/designers/language-modifiers.xml | 106 ++++ .../language-modifier-capitalize.xml | 91 +++ .../language-modifier-cat.xml | 83 +++ .../language-modifier-count-characters.xml | 90 +++ .../language-modifier-count-paragraphs.xml | 61 ++ .../language-modifier-count-sentences.xml | 60 ++ .../language-modifier-count-words.xml | 60 ++ .../language-modifier-date-format.xml | 248 ++++++++ .../language-modifier-default.xml | 90 +++ .../language-modifier-escape.xml | 102 ++++ .../language-modifier-indent.xml | 118 ++++ .../language-modifier-lower.xml | 60 ++ .../language-modifier-nl2br.xml | 59 ++ .../language-modifier-regex-replace.xml | 98 +++ .../language-modifier-replace.xml | 96 +++ .../language-modifier-spacify.xml | 88 +++ .../language-modifier-string-format.xml | 90 +++ .../language-modifier-strip-tags.xml | 91 +++ .../language-modifier-strip.xml | 71 +++ .../language-modifier-truncate.xml | 119 ++++ .../language-modifier-upper.xml | 60 ++ .../language-modifier-wordwrap.xml | 132 ++++ docs/es/designers/language-variables.xml | 51 ++ .../language-assigned-variables.xml | 175 ++++++ .../language-config-variables.xml | 114 ++++ .../language-variables-smarty.xml | 165 +++++ docs/es/getting-started.xml | 546 +++++++++++++++++ docs/es/preface.xml | 103 ++++ docs/es/programmers/advanced-features.xml | 35 ++ .../advanced-features-objects.xml | 117 ++++ .../advanced-features-outputfilters.xml | 69 +++ .../advanced-features-postfilters.xml | 59 ++ .../advanced-features-prefilters.xml | 61 ++ .../section-template-cache-handler-func.xml | 158 +++++ .../advanced-features/template-resources.xml | 239 ++++++++ docs/es/programmers/api-functions.xml | 72 +++ .../api-functions/api-append-by-ref.xml | 59 ++ .../programmers/api-functions/api-append.xml | 66 ++ .../api-functions/api-assign-by-ref.xml | 64 ++ .../programmers/api-functions/api-assign.xml | 60 ++ .../api-functions/api-clear-all-assign.xml | 49 ++ .../api-functions/api-clear-all-cache.xml | 51 ++ .../api-functions/api-clear-assign.xml | 53 ++ .../api-functions/api-clear-cache.xml | 64 ++ .../api-functions/api-clear-compiled-tpl.xml | 60 ++ .../api-functions/api-clear-config.xml | 54 ++ .../api-functions/api-config-load.xml | 68 +++ .../programmers/api-functions/api-display.xml | 102 ++++ .../programmers/api-functions/api-fetch.xml | 86 +++ .../api-functions/api-get-config-vars.xml | 57 ++ .../api-get-registered-object.xml | 57 ++ .../api-functions/api-get-template-vars.xml | 57 ++ .../api-functions/api-is-cached.xml | 107 ++++ .../api-functions/api-load-filter.xml | 55 ++ .../api-functions/api-register-block.xml | 91 +++ .../api-register-compiler-function.xml | 61 ++ .../api-functions/api-register-function.xml | 84 +++ .../api-functions/api-register-modifier.xml | 68 +++ .../api-functions/api-register-object.xml | 44 ++ .../api-register-outputfilter.xml | 56 ++ .../api-functions/api-register-postfilter.xml | 56 ++ .../api-functions/api-register-prefilter.xml | 55 ++ .../api-functions/api-register-resource.xml | 74 +++ .../api-functions/api-template-exists.xml | 40 ++ .../api-functions/api-trigger-error.xml | 43 ++ .../api-functions/api-unregister-block.xml | 40 ++ .../api-unregister-compiler-function.xml | 39 ++ .../api-functions/api-unregister-function.xml | 52 ++ .../api-functions/api-unregister-modifier.xml | 52 ++ .../api-functions/api-unregister-object.xml | 38 ++ .../api-unregister-outputfilter.xml | 38 ++ .../api-unregister-postfilter.xml | 38 ++ .../api-unregister-prefilter.xml | 38 ++ .../api-functions/api-unregister-resource.xml | 49 ++ docs/es/programmers/api-variables.xml | 61 ++ .../variable-autoload-filters.xml | 44 ++ .../api-variables/variable-cache-dir.xml | 48 ++ .../variable-cache-handler-func.xml | 33 + .../api-variables/variable-cache-lifetime.xml | 54 ++ .../variable-cache-modified-check.xml | 35 ++ .../api-variables/variable-caching.xml | 45 ++ .../api-variables/variable-compile-check.xml | 43 ++ .../api-variables/variable-compile-dir.xml | 45 ++ .../api-variables/variable-compile-id.xml | 31 + .../api-variables/variable-compiler-class.xml | 30 + .../variable-config-booleanize.xml | 32 + .../api-variables/variable-config-dir.xml | 39 ++ .../variable-config-fix-newlines.xml | 30 + .../variable-config-overwrite.xml | 32 + .../variable-config-read-hidden.xml | 33 + .../api-variables/variable-debug-tpl.xml | 30 + .../api-variables/variable-debugging-ctrl.xml | 33 + .../api-variables/variable-debugging.xml | 32 + .../variable-default-modifiers.xml | 33 + .../variable-default-resource-type.xml | 33 + ...variable-default-template-handler-func.xml | 29 + .../variable-error-reporting.xml | 31 + .../api-variables/variable-force-compile.xml | 32 + .../api-variables/variable-left-delimiter.xml | 29 + .../api-variables/variable-php-handling.xml | 48 ++ .../api-variables/variable-plugins-dir.xml | 40 ++ .../variable-request-use-auto-globals.xml | 35 ++ .../variable-request-vars-order.xml | 29 + .../variable-right-delimiter.xml | 29 + .../api-variables/variable-secure-dir.xml | 30 + .../variable-security-settings.xml | 43 ++ .../api-variables/variable-security.xml | 47 ++ .../api-variables/variable-template-dir.xml | 39 ++ .../api-variables/variable-trusted-dir.xml | 32 + .../api-variables/variable-use-sub-dirs.xml | 36 ++ docs/es/programmers/caching.xml | 51 ++ .../programmers/caching/caching-cacheable.xml | 143 +++++ .../es/programmers/caching/caching-groups.xml | 86 +++ .../caching/caching-multiple-caches.xml | 129 ++++ .../caching/caching-setting-up.xml | 199 ++++++ docs/es/programmers/plugins.xml | 69 +++ .../plugins/plugins-block-functions.xml | 119 ++++ .../plugins/plugins-compiler-functions.xml | 91 +++ .../programmers/plugins/plugins-functions.xml | 127 ++++ docs/es/programmers/plugins/plugins-howto.xml | 47 ++ .../programmers/plugins/plugins-inserts.xml | 74 +++ .../programmers/plugins/plugins-modifiers.xml | 115 ++++ .../plugins/plugins-naming-conventions.xml | 81 +++ .../plugins/plugins-outputfilters.xml | 67 ++ .../plugins-prefilters-postfilters.xml | 108 ++++ .../programmers/plugins/plugins-resources.xml | 162 +++++ .../programmers/plugins/plugins-writing.xml | 57 ++ docs/es/programmers/smarty-constants.xml | 49 ++ 175 files changed, 15689 insertions(+) create mode 100644 docs/es/appendixes/bugs.xml create mode 100644 docs/es/appendixes/resources.xml create mode 100644 docs/es/appendixes/tips.xml create mode 100644 docs/es/appendixes/troubleshooting.xml create mode 100755 docs/es/bookinfo.xml create mode 100644 docs/es/designers/chapter-debugging-console.xml create mode 100644 docs/es/designers/config-files.xml create mode 100644 docs/es/designers/language-basic-syntax.xml create mode 100644 docs/es/designers/language-basic-syntax/language-escaping.xml create mode 100644 docs/es/designers/language-basic-syntax/language-math.xml create mode 100644 docs/es/designers/language-basic-syntax/language-syntax-attributes.xml create mode 100644 docs/es/designers/language-basic-syntax/language-syntax-comments.xml create mode 100644 docs/es/designers/language-basic-syntax/language-syntax-functions.xml create mode 100644 docs/es/designers/language-basic-syntax/language-syntax-quotes.xml create mode 100644 docs/es/designers/language-builtin-functions.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-capture.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-config-load.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-foreach.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-if.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-include-php.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-include.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-insert.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-ldelim.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-literal.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-php.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-section.xml create mode 100644 docs/es/designers/language-builtin-functions/language-function-strip.xml create mode 100644 docs/es/designers/language-combining-modifiers.xml create mode 100644 docs/es/designers/language-custom-functions.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-assign.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-counter.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-cycle.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-debug.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-eval.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-fetch.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-html-checkboxes.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-html-image.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-html-options.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-html-radios.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-html-select-date.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-html-select-time.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-html-table.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-mailto.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-math.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-popup-init.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-popup.xml create mode 100644 docs/es/designers/language-custom-functions/language-function-textformat.xml create mode 100644 docs/es/designers/language-modifiers.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-capitalize.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-cat.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-count-characters.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-count-paragraphs.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-count-sentences.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-count-words.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-date-format.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-default.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-escape.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-indent.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-lower.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-nl2br.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-regex-replace.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-replace.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-spacify.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-string-format.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-strip-tags.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-strip.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-truncate.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-upper.xml create mode 100644 docs/es/designers/language-modifiers/language-modifier-wordwrap.xml create mode 100644 docs/es/designers/language-variables.xml create mode 100644 docs/es/designers/language-variables/language-assigned-variables.xml create mode 100644 docs/es/designers/language-variables/language-config-variables.xml create mode 100644 docs/es/designers/language-variables/language-variables-smarty.xml create mode 100644 docs/es/getting-started.xml create mode 100644 docs/es/preface.xml create mode 100644 docs/es/programmers/advanced-features.xml create mode 100644 docs/es/programmers/advanced-features/advanced-features-objects.xml create mode 100644 docs/es/programmers/advanced-features/advanced-features-outputfilters.xml create mode 100644 docs/es/programmers/advanced-features/advanced-features-postfilters.xml create mode 100644 docs/es/programmers/advanced-features/advanced-features-prefilters.xml create mode 100644 docs/es/programmers/advanced-features/section-template-cache-handler-func.xml create mode 100644 docs/es/programmers/advanced-features/template-resources.xml create mode 100644 docs/es/programmers/api-functions.xml create mode 100644 docs/es/programmers/api-functions/api-append-by-ref.xml create mode 100644 docs/es/programmers/api-functions/api-append.xml create mode 100644 docs/es/programmers/api-functions/api-assign-by-ref.xml create mode 100644 docs/es/programmers/api-functions/api-assign.xml create mode 100644 docs/es/programmers/api-functions/api-clear-all-assign.xml create mode 100644 docs/es/programmers/api-functions/api-clear-all-cache.xml create mode 100644 docs/es/programmers/api-functions/api-clear-assign.xml create mode 100644 docs/es/programmers/api-functions/api-clear-cache.xml create mode 100644 docs/es/programmers/api-functions/api-clear-compiled-tpl.xml create mode 100644 docs/es/programmers/api-functions/api-clear-config.xml create mode 100644 docs/es/programmers/api-functions/api-config-load.xml create mode 100644 docs/es/programmers/api-functions/api-display.xml create mode 100644 docs/es/programmers/api-functions/api-fetch.xml create mode 100644 docs/es/programmers/api-functions/api-get-config-vars.xml create mode 100644 docs/es/programmers/api-functions/api-get-registered-object.xml create mode 100644 docs/es/programmers/api-functions/api-get-template-vars.xml create mode 100644 docs/es/programmers/api-functions/api-is-cached.xml create mode 100644 docs/es/programmers/api-functions/api-load-filter.xml create mode 100644 docs/es/programmers/api-functions/api-register-block.xml create mode 100644 docs/es/programmers/api-functions/api-register-compiler-function.xml create mode 100644 docs/es/programmers/api-functions/api-register-function.xml create mode 100644 docs/es/programmers/api-functions/api-register-modifier.xml create mode 100644 docs/es/programmers/api-functions/api-register-object.xml create mode 100644 docs/es/programmers/api-functions/api-register-outputfilter.xml create mode 100644 docs/es/programmers/api-functions/api-register-postfilter.xml create mode 100644 docs/es/programmers/api-functions/api-register-prefilter.xml create mode 100644 docs/es/programmers/api-functions/api-register-resource.xml create mode 100644 docs/es/programmers/api-functions/api-template-exists.xml create mode 100644 docs/es/programmers/api-functions/api-trigger-error.xml create mode 100644 docs/es/programmers/api-functions/api-unregister-block.xml create mode 100644 docs/es/programmers/api-functions/api-unregister-compiler-function.xml create mode 100644 docs/es/programmers/api-functions/api-unregister-function.xml create mode 100644 docs/es/programmers/api-functions/api-unregister-modifier.xml create mode 100644 docs/es/programmers/api-functions/api-unregister-object.xml create mode 100644 docs/es/programmers/api-functions/api-unregister-outputfilter.xml create mode 100644 docs/es/programmers/api-functions/api-unregister-postfilter.xml create mode 100644 docs/es/programmers/api-functions/api-unregister-prefilter.xml create mode 100644 docs/es/programmers/api-functions/api-unregister-resource.xml create mode 100644 docs/es/programmers/api-variables.xml create mode 100644 docs/es/programmers/api-variables/variable-autoload-filters.xml create mode 100644 docs/es/programmers/api-variables/variable-cache-dir.xml create mode 100644 docs/es/programmers/api-variables/variable-cache-handler-func.xml create mode 100644 docs/es/programmers/api-variables/variable-cache-lifetime.xml create mode 100644 docs/es/programmers/api-variables/variable-cache-modified-check.xml create mode 100644 docs/es/programmers/api-variables/variable-caching.xml create mode 100644 docs/es/programmers/api-variables/variable-compile-check.xml create mode 100644 docs/es/programmers/api-variables/variable-compile-dir.xml create mode 100644 docs/es/programmers/api-variables/variable-compile-id.xml create mode 100644 docs/es/programmers/api-variables/variable-compiler-class.xml create mode 100644 docs/es/programmers/api-variables/variable-config-booleanize.xml create mode 100644 docs/es/programmers/api-variables/variable-config-dir.xml create mode 100644 docs/es/programmers/api-variables/variable-config-fix-newlines.xml create mode 100644 docs/es/programmers/api-variables/variable-config-overwrite.xml create mode 100644 docs/es/programmers/api-variables/variable-config-read-hidden.xml create mode 100644 docs/es/programmers/api-variables/variable-debug-tpl.xml create mode 100644 docs/es/programmers/api-variables/variable-debugging-ctrl.xml create mode 100644 docs/es/programmers/api-variables/variable-debugging.xml create mode 100644 docs/es/programmers/api-variables/variable-default-modifiers.xml create mode 100644 docs/es/programmers/api-variables/variable-default-resource-type.xml create mode 100644 docs/es/programmers/api-variables/variable-default-template-handler-func.xml create mode 100644 docs/es/programmers/api-variables/variable-error-reporting.xml create mode 100644 docs/es/programmers/api-variables/variable-force-compile.xml create mode 100644 docs/es/programmers/api-variables/variable-left-delimiter.xml create mode 100644 docs/es/programmers/api-variables/variable-php-handling.xml create mode 100644 docs/es/programmers/api-variables/variable-plugins-dir.xml create mode 100644 docs/es/programmers/api-variables/variable-request-use-auto-globals.xml create mode 100644 docs/es/programmers/api-variables/variable-request-vars-order.xml create mode 100644 docs/es/programmers/api-variables/variable-right-delimiter.xml create mode 100644 docs/es/programmers/api-variables/variable-secure-dir.xml create mode 100644 docs/es/programmers/api-variables/variable-security-settings.xml create mode 100644 docs/es/programmers/api-variables/variable-security.xml create mode 100644 docs/es/programmers/api-variables/variable-template-dir.xml create mode 100644 docs/es/programmers/api-variables/variable-trusted-dir.xml create mode 100644 docs/es/programmers/api-variables/variable-use-sub-dirs.xml create mode 100644 docs/es/programmers/caching.xml create mode 100644 docs/es/programmers/caching/caching-cacheable.xml create mode 100644 docs/es/programmers/caching/caching-groups.xml create mode 100644 docs/es/programmers/caching/caching-multiple-caches.xml create mode 100644 docs/es/programmers/caching/caching-setting-up.xml create mode 100644 docs/es/programmers/plugins.xml create mode 100644 docs/es/programmers/plugins/plugins-block-functions.xml create mode 100644 docs/es/programmers/plugins/plugins-compiler-functions.xml create mode 100644 docs/es/programmers/plugins/plugins-functions.xml create mode 100644 docs/es/programmers/plugins/plugins-howto.xml create mode 100644 docs/es/programmers/plugins/plugins-inserts.xml create mode 100644 docs/es/programmers/plugins/plugins-modifiers.xml create mode 100644 docs/es/programmers/plugins/plugins-naming-conventions.xml create mode 100644 docs/es/programmers/plugins/plugins-outputfilters.xml create mode 100644 docs/es/programmers/plugins/plugins-prefilters-postfilters.xml create mode 100644 docs/es/programmers/plugins/plugins-resources.xml create mode 100644 docs/es/programmers/plugins/plugins-writing.xml create mode 100644 docs/es/programmers/smarty-constants.xml diff --git a/docs/es/appendixes/bugs.xml b/docs/es/appendixes/bugs.xml new file mode 100644 index 00000000..76b8479c --- /dev/null +++ b/docs/es/appendixes/bugs.xml @@ -0,0 +1,29 @@ + + + + ERRORES + + Revise el archivo de BUGS que viene con + la ultima distribución del Smarty, o Revise el website. + + + diff --git a/docs/es/appendixes/resources.xml b/docs/es/appendixes/resources.xml new file mode 100644 index 00000000..c46e30f8 --- /dev/null +++ b/docs/es/appendixes/resources.xml @@ -0,0 +1,32 @@ + + + + Fuentes + + La pagina principal del Smarty está localizada en + &url.smarty;. + Usted puede ingresar a la lista de email enviando un e-mail a + &ml.general.sub;. El archivo de la lista de e-mail puede ser + visto en &url.ml.archive;. + + + diff --git a/docs/es/appendixes/tips.xml b/docs/es/appendixes/tips.xml new file mode 100644 index 00000000..df112580 --- /dev/null +++ b/docs/es/appendixes/tips.xml @@ -0,0 +1,386 @@ + + + + Consejos y Trucos + + + + Manipulación de Variables Vacias + + Cuando usted en algunas ocaciones quiere imprimir un valor que + usted defíne a una variable vacia en vez de imprimir nada, tal + como imprimir " " a fin de que el plano del fondo de + la tabla funcione correctamente. Muchos usarian una sentencia + {if} para manejar esto, mas existe otra forma con Smarty, usando + el modificador de la variable default. + + + Imprimiendo   cuando una variable esta vacia + + + + + + + + Manipulación del valor default de una variable + + Si una variable es usada frecuentemente en sus templates, + aplicando el modificador default toda vez que este es + mencionado puede evitar un bit desagradable. Usted puede + remediar esto con la atribución de un valor por default a + la variable con la función + assign. + + + Atribuyendo el valor por default a una variable en el template + + + + + + + Pasando la variable titulo a la cabecera del template + + Cuando la mayoria de sus templates usan los mismo encabezados y + los mismos pies de pagina, es común dividirlos uno en cada template + y entonces incluirlos. Que pasara si el encabezado necesita tener + un titulo diferente, dependiendo de que pagina estas viniendo? + usted puede pasar el titulo en el encabezado cuando este es incluido. + + + Pasando la variable titulo al encabezado del template + + + +{$title|default:"BC News"} + + + + +footer.tpl +---------- + + +]]> + + + + Cuando la pagina principal es mostrada, el titulo de la "Página + Principal" es pasado al template header.tpl, y será posteriormente + usado como el titulo. Cuando la pagina de archivo es mostrada, el + titulo sera "Archivos". Observelo en el ejemplo de archivo, nosotros + estamos usando una variable del archivo archives_page.conf en vez de + una variable codificada rigida. Tambien note que "BC news" es mostrada + si la variable $titulo no esta definida, usando el modificador de la + variable default. + + + + Fechas + + Como una regla basica, siempre pase fechas al Smarty como timestamps. + Esto permite al diseñador de template utilizar + date_format + para el control completo sobre el formato de fechas, y también + facilita la comparación de fechas si es necesario. + + + + En el Smarty 1.4.0, usted puede parsar fechas al Smarty como + timestamps unix,mysql, o cualquier otra fecha interpretable + por strtotime(). + + + + Usando date_format + + + + + Esta es la salida: + + + + + + + + + Esta es la Salida: + + + + + + + + + + Cuando usa {html_select_date} en un template, el programador + normalmente va a querer convertir la salida de un formulario + de vuelta al formato timestamp. Aquí esta una función para + ayudar con esto. + + + Convirtiendo elementos en forma de fecha de vuelta a un timestamp + + +]]> + + + + + WAP/WML + + Los templates WAP/WML requieren de un encabezado de Content-Type de + PHP para ser pasado junto con el template. La forma mas fácil de + hacer esto seria escribir una función de manera habitual que imprima + el encabezado. Si usted esta usando el sistema de cache, este no + funcionara, entonces nosotros haremos esto usando una etiqueta de + insert (recuerde que las etiquetas insert no son "cacheadas!"). + Asegurarse que no exista ninguna salida al navegador antes del template, + de otro modo el encabezado fallara. + + + Usando insert para escribir un encabezado WML Content-Type + + +]]> + + + Su template de Smarty debe comenzar con la etiqueta + insert, como en el ejemplo: + + + + + + + + + + + + +

+Welcome to WAP with Smarty! +Press OK to continue... +

+
+ + +

+Pretty easy isn't it? +

+
+
+]]> +
+
+
+ + Templates con Componetes + + Tradicionalmente, programar templates en sus aplicaciones sigue + esta forma: Primero, usted acumula sus variables dentro de su + aplicación PHP, (talvez como requisiciones de una base de datos). + Entonces, usted instancia su objeto Smarty, atribuye valores a + las variables y muestra el template. Por ejemplo nosotros tenemos + un registrador de existencias en nuestro template. Nosotros + recolectaremos los datos de las existencias en nuestra aplicación, + entonces damos valor a estas variables en el template y lo mostramos. + Ahora esto seria genial si usted adicionara este registrador de + almacenamiento (stock ticker) a cualquier aplicación simplemente + incluyendolo en el template, y no preocuparse hacerca de como ir + a traer los datos al frente? + + + Usted puede escribir este plugin haciendo que traiga un + contenido y asignarlo a la variable del template. + + + Templates con Componetes + +assign($params['assign'], $ticker_info); +} +?> +]]> + + + + + + + + Ofuscando direcciones de E-mail + + Usted desea saber como su direccion de E-mail consigue entrar en + tantas listas de e-mail de spam? Una direccion unica spammers + recolecta direcciones de E-mail y de paginas web. Para ayudar a + combatir este problema, usted puede hacer que su direccion de + E-mail aparesca en javascript mostrado en el codigo HTML, este + mismo aparecera y funcionara correctamente en el navegador. + Esto se puede hacer con el plugin mailto. + + + Ejemplo de ofuscamiento de una direccion de E-mail + + + + + + Nota Técnica + + Este metodo no es 100% a pueba de fallas. Un spammer podría crear + un programa para recolectar el e-mail y para decodificar estos + valores, mas no es muy común. + + + +
+ diff --git a/docs/es/appendixes/troubleshooting.xml b/docs/es/appendixes/troubleshooting.xml new file mode 100644 index 00000000..a30930c6 --- /dev/null +++ b/docs/es/appendixes/troubleshooting.xml @@ -0,0 +1,78 @@ + + + + Localización de Errores + + + Errores Smarty/PHP + + El Smarty puede obtener muchos errores tales como, atributos de + etiquetas perdidos o nombres de variables mal formadas. Si este + ocurre, Usted vera un error similar al siguiente: + + + Errores de Smarty + + + + + + Smarty te mostra el nombre del template, el número de la linea y + el error. Después de esto, el error consiste en el número de la + linea de la clase Smarty donde ocurrio el error. + + + + Existen ciertos errores que el Smarty no puede entender, + tales como un etiqueta de cierre errado. Estos tipos de + erros normalmente termina en una interpretacion de error + del tiempo de compilacion de PHP. + + + + Errores de analisis gramatical de PHP + + + + + + + Cuando usted encuentra un error de analisis de PHP, el número de la + linea de error corresponde al script PHP compilado, no al template + en si. Normalmente usted puede en el template localizar el error de + sinxis. Algunas cosas que usted puede buscar: falta de cierre de + etiquetas para {if}{/if} o {section}{/section}, o sintaxis de la + lógica dentro de una etiqueta {if}. Si usted no encuentra el error, + usted tendra que abrir el archivo PHP compilado y dirigirse al número + de linea mostrado, donde el correspondiente error esta en el template. + + + + diff --git a/docs/es/bookinfo.xml b/docs/es/bookinfo.xml new file mode 100755 index 00000000..e2f7d80b --- /dev/null +++ b/docs/es/bookinfo.xml @@ -0,0 +1,43 @@ + + + + Smarty - El motor compilador de Plantillas para PHP + + + MonteOhrt <monte@ispi.net> + + + AndreiZmievski <andrei@php.net> + + + MarioRamírez + <mario_ramirez@fjcorona.com.mx> + + + &build-date; + + 2001-2004 + ispi of Lincoln, Inc. + + + + diff --git a/docs/es/designers/chapter-debugging-console.xml b/docs/es/designers/chapter-debugging-console.xml new file mode 100644 index 00000000..89f757d3 --- /dev/null +++ b/docs/es/designers/chapter-debugging-console.xml @@ -0,0 +1,61 @@ + + + + Debugging Console + + Incluso en Smarty existe una consola para debug. La consola informa + a usted de todos los templates incluidos, las variables definidas y + las variables de archivos de configuración de la llamada actual del + template. Incluso un template llamado "debug.tpl" viene con la + distribución de Smarty el cual controla el formateo de la consola. + Defina $debugging en true en el Smarty, y si es necesario defina + $debug_tpl para la ruta del recurso debug.tpl (Esto es SMARTY_DIR por + default). Cuando usted carga una pagina, una consola en javascript + abrira una ventana popup y dara a usted el nombre de todos los templates + incluidos y las variables definidas en la pagina actual. Para ver las + variables disponibles para un template en particular, vea la función + {debug}. Para desabilitar + la consola del debug, defina $debugging en false. Usted puede activar + temporalmente la consola del debug colocando SMARTY_DEBUG en la URL si + usted activo esta opción con + $debugging_ctrl. + + + Nota Técnica + + La consola de debug no funciona cuando usted usa la API fetch(), solo + cuando estuviera usando display(). Es un conjunto de comandos javascript + adicionados al final del template generado. Si a usted no le gusta el + javascript, usted puede editar el template debug.tpl para formatear la + salida como usted quiera. Los datos del debug no son guardados en cache + y los datos del debug.tpl no son incluidos en la consola debug. + + + + + Los tiempos de carga de cada template y de archivos de configuración + son en segundos, o en fracciones de segundo. + + + + + diff --git a/docs/es/designers/config-files.xml b/docs/es/designers/config-files.xml new file mode 100644 index 00000000..2481943d --- /dev/null +++ b/docs/es/designers/config-files.xml @@ -0,0 +1,99 @@ + + + + Config Files + + Los archivos de configuración son utiles para diseñar y administrar + variables globales para los templates a partir de un archivo. + Un ejemplo son los colores del template. Normalmente si usted quiere + cambiar el esquema de colores de una aplicación, usted debe ir a cada + uno de los archivos del template y cambiar los colores. + Con un archivo de configuración, los colores pueden estar mantenidos + en un lugar y solo necesita actualizar este para cambiar los colores. + + + Ejemplo de sintaxis de un archivo de configuración + + + + + + Los valores de las variables pueden estar entre comillas, mas no es + necesario. Usted puede usar comillas simples o dobles. Si usted + tuviera un valor que ocupe mas de una linea, coloque todo el valor + entre tres comillas ("""). Usted puede colocar comentarios en un + archivo de configuración con cualquier sintaxis que no sea valida + en un archivo de configuración. Nosotros recomendamos usar un + # en el princio de cada linea. + + + Este archivo de configuración tiene dos secciones. Los nombres de + secciones debe estar entre corchetes []. Los nombres de sección + pueden ser cadenas arbitrarias que no contengan los simbolos + [ or ]. Las cuatro variables + en la cabecera son variables globales, o no son variables de sección. + Estas variables son siempre cargadas del archivo de configuración. Si + una sección en particular fuera cargada, entonces las variables + globales y las variables de esta sección son cargadas. Si una variable + existe como global y dentro de una sección, la variable de sección + será utilizada. Si usted tuviera dos variables en la misma sección con + el mismo nombre, la ultima será utilizada. + + + Los archivos de configuración son cargados en el template con una + función incrustada config_load. + + + Usted puede esconder variables o secciones enteras colocando un punto + antes del nombre de la variable. Esto es útil si su aplicación lee los + archivos de configuración y los datos sensibles a partir de ellos que + la herramienta del template no lo necesita. Si usted tiene a otras + personas realizando la edición de templates, usted tendra la certesa + que ellos no leeran datos sensibles del archivo de configuración + cargando estos en el template. + + + + diff --git a/docs/es/designers/language-basic-syntax.xml b/docs/es/designers/language-basic-syntax.xml new file mode 100644 index 00000000..94bdf3fc --- /dev/null +++ b/docs/es/designers/language-basic-syntax.xml @@ -0,0 +1,45 @@ + + + + Basic Syntax + + Todas las etiquetas del template deben estar marcadas por delimitadores. + Por default , estos delimitadores son { + y }, sino estos pueden cambiar. + + + Para estos ejemplos, nosotros asumiremos que usted está usando los + delimitadores por default. En Smarty, todo el contenido fuera de los + delimitadores es mostrado como contenido estatico, o igual(sin cambios). + Cuando Smarty encuentra etiquetas en el template, trata de interpretarlos, + e intenta mostrar la salida apropiada en su lugar. + + + &designers.language-basic-syntax.language-syntax-comments; + &designers.language-basic-syntax.language-syntax-functions; + &designers.language-basic-syntax.language-syntax-attributes; + &designers.language-basic-syntax.language-syntax-quotes; + &designers.language-basic-syntax.language-math; + &designers.language-basic-syntax.language-escaping; + + + diff --git a/docs/es/designers/language-basic-syntax/language-escaping.xml b/docs/es/designers/language-basic-syntax/language-escaping.xml new file mode 100644 index 00000000..ec40a473 --- /dev/null +++ b/docs/es/designers/language-basic-syntax/language-escaping.xml @@ -0,0 +1,83 @@ + + + + Escaping Smarty Parsing + + It is sometimes desirable or even necessary to have Smarty ignore sections it + would otherwise parse. A classic example is embedding Javascript or CSS code in + a template. The problem arises as those languages use the { and } characters + which are also the default delimiters for Smarty. + + + + The simplest thing is to avoid the situation altogether by separating your Javascript + and CSS code into their own files and then using standard HTML methods to access them. + + + + Including literal content is possible using {literal} .. {/literal} blocks. + Similar to HTML entity usage, you can use {ldelim},{rdelim} or {$smarty.ldelim},{$smarty.rdelim} + to display the current delimiters. + + + + It is often convenient to simply change Smarty's $left_delimiter and + $right_delimiter. + + + changing delimiters example + +left_delimiter = ''; +$smarty->assign('foo', 'bar'); +$smarty->display('example.tpl'); + +?> +]]> + + + Where example.tpl is: + + + +var foo = ; +function dosomething() { + alert("foo is " + foo); +} +dosomething(); + +]]> + + + + diff --git a/docs/es/designers/language-basic-syntax/language-math.xml b/docs/es/designers/language-basic-syntax/language-math.xml new file mode 100644 index 00000000..f805a1de --- /dev/null +++ b/docs/es/designers/language-basic-syntax/language-math.xml @@ -0,0 +1,49 @@ + + + + Matemáticas + + Las matemáticas pueden ser aplicadas directamente al los valores de + las variables. + + + Ejemplos de matemáticas + +bar-$bar[1]*$baz->foo->bar()-3*7} + +{if ($foo+$bar.test%$baz*134232+10+$b+10)} + +{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"} + +{assign var="foo" value="`$foo+$bar`"} +]]> + + + + diff --git a/docs/es/designers/language-basic-syntax/language-syntax-attributes.xml b/docs/es/designers/language-basic-syntax/language-syntax-attributes.xml new file mode 100644 index 00000000..a851a32b --- /dev/null +++ b/docs/es/designers/language-basic-syntax/language-syntax-attributes.xml @@ -0,0 +1,58 @@ + + + + Atributos + + La mayoria de las funciones llevan atributos que especifican o + cambian su funcionamiento. Los atributos para las funciones de + Smarty son muy parecidos a los atributos de HTML. Los valores + estaticos no necesitan estar entre comillas, pero si es recomendado + para cadenas y literales. Las variables también pueden ser usadas + y no precisamente estando entre comillas. + + + Algunos atributos requieren valores boleanos(true o false). + Estos pueden ser especificados como cualquier otro valor sin comillas + true, on, y + yes, o false, + off, y no. + + + Sintaxis de atributos de Funciones + + +{html_options values=$vals selected=$selected output=$output} + +]]> + + + + diff --git a/docs/es/designers/language-basic-syntax/language-syntax-comments.xml b/docs/es/designers/language-basic-syntax/language-syntax-comments.xml new file mode 100644 index 00000000..5d646167 --- /dev/null +++ b/docs/es/designers/language-basic-syntax/language-syntax-comments.xml @@ -0,0 +1,52 @@ + + + + Comentarios + + Los comentarios en los templates son cercados por asteriscos, y por + los delimitadores, así:
{* este es un comentario *}. + Los comentarios en Smarty no son mostrados en la salida final del + template. + Estos son usados para hacer notas internas dentro del template. +
+ + Comentarios + + +{html_options values=$vals selected=$selected output=$output} + +]]> + + +
+ diff --git a/docs/es/designers/language-basic-syntax/language-syntax-functions.xml b/docs/es/designers/language-basic-syntax/language-syntax-functions.xml new file mode 100644 index 00000000..dab796df --- /dev/null +++ b/docs/es/designers/language-basic-syntax/language-syntax-functions.xml @@ -0,0 +1,62 @@ + + + + Funciones + + Cada etiqueta Smarty muestra una + variable o utiliza algún + tipo de función. Las funciones son procesadas y mostradas colocando + los atributos de la función entre delimitadores, así: + {funcname attr1="val" attr2="val"}. + + + Sintaxis de Funciones + +{$name}! +{else} + Welcome, {$name}! +{/if} + +{include file="footer.tpl"} +]]> + + + + Las funciones internas y las funciones habituales, ambas deben tener + la misma sintaxis dentro del template. Las funciones internas que + funcionan en Smarty, son: if, + section y strip. + Estas no pueden ser modificadas. Las funciones habituales son + funciones adicionales implementadas por plugins. Estas si pueden + ser modificadas como usted quiera, o usted también puede + adicionar nuevas. + html_options y html_select_date + son ejemplos de funciones habituales. + + + diff --git a/docs/es/designers/language-basic-syntax/language-syntax-quotes.xml b/docs/es/designers/language-basic-syntax/language-syntax-quotes.xml new file mode 100644 index 00000000..fdedcaef --- /dev/null +++ b/docs/es/designers/language-basic-syntax/language-syntax-quotes.xml @@ -0,0 +1,49 @@ + + + + Colocando variables entre comillas dobles + + Smarty puede reconocer variables asignadas entre comillas aunque estas + solo tengan números, letras, guiones bajos y corchetes[]. + Con cualquier otro carácter(puntos, referencia de objetos, etc.) las + variables deben estar entre apostrofos. + + + Sintaxis entre comillas + + + + + + diff --git a/docs/es/designers/language-builtin-functions.xml b/docs/es/designers/language-builtin-functions.xml new file mode 100644 index 00000000..a75e0fdd --- /dev/null +++ b/docs/es/designers/language-builtin-functions.xml @@ -0,0 +1,45 @@ + + + + Funciones Integradas + + Smarty cuenta con varias funciones integradas. Las funciones Integradas + forman parte del lenguaje del template. Usted no puede crear funciones + personalizadas con el mismo nombre, ni puede modificar las funciones + integradas. + + + &designers.language-builtin-functions.language-function-capture; + &designers.language-builtin-functions.language-function-config-load; + &designers.language-builtin-functions.language-function-foreach; + &designers.language-builtin-functions.language-function-include; + &designers.language-builtin-functions.language-function-include-php; + &designers.language-builtin-functions.language-function-insert; + &designers.language-builtin-functions.language-function-if; + &designers.language-builtin-functions.language-function-ldelim; + &designers.language-builtin-functions.language-function-literal; + &designers.language-builtin-functions.language-function-php; + &designers.language-builtin-functions.language-function-section; + &designers.language-builtin-functions.language-function-strip; + + + diff --git a/docs/es/designers/language-builtin-functions/language-function-capture.xml b/docs/es/designers/language-builtin-functions/language-function-capture.xml new file mode 100644 index 00000000..5be79f81 --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-capture.xml @@ -0,0 +1,110 @@ + + + + capture + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + name + string + no + default + El nombre del bloque capturado + + + assign + string + No + n/a + El nombre de la variable para dar valor a la salida + capturada + + + + + + capture es usado para recolectar toda la salida del template en una + variable en lugar de mostrarla. + Cualquier contenido entre {capture name="foo"} y {/capture} es + recoletado en una variable especificada y el atributo name. El + contenido capturado puede ser usado en el template a partir de la + variable especial $smarty.capture.foo en donde foo es el valor + pasado para el atributo name. Si usted no pasa un atributo name, + entonces será usado "default". Todos lo comandos {capture} deben + estar entre {/capture}. Usted puede anidar(colocar uno dentro de + otro) comandos capture. + + + Nota Tecnica + + Smarty 1.4.0 - 1.4.4 coloca el contenido capturado dentro de la + variable llamada $return. A partir de 1.4.5, este funcionamento fue + cambiado para usar el atributo name, entonces en consecuencia actualice + sus templates. + + + + + Tenga cuidado cuando capture la salida del comando + insert. Si tuviera activo el cache y tuviera + comandos insert y usted espera que funcione + con contenido de cache, no se capturara este contenido. + + + + + capturando contenido de template + + + + {$smarty.capture.banner} + + +{/if} +]]> + + + + + diff --git a/docs/es/designers/language-builtin-functions/language-function-config-load.xml b/docs/es/designers/language-builtin-functions/language-function-config-load.xml new file mode 100644 index 00000000..a2b4b43f --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-config-load.xml @@ -0,0 +1,148 @@ + + + + config_load + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + file + string + Si + n/a + El nombre del archivo de configuración a incluir + + + section + string + No + n/a + El nombre de la sección a cargar + + + scope + string + no + local + + Como el scope carga las variables debe ser tratado de + manera local, como padre y no como global. local indica + que las variables son cargadas en el contexto del template + local. parent indica que las variables son cargadas en el + contexto actual y en el template que llamo. global indica + que las variables estan disponibles para todos los templates. + + + + global + boolean + No + No + + Cuando las variables no son vistas en el template + padre (al que llamo este), lo mismo que scope=parent. + NOTA: este atributo esta obsoleto pero el atributo scope, + puede dar el soporte. Si scope es el indicado, este valor + es ignorado. + + + + + + + Esta función es usada para cargar las variables de un archivo de + configuración dentro de un template. + Vea Config Files para mayor + información. + + + función config_load + + +{#pageTitle#} + + + + + + + +
FirstLastAddress
+ + +]]> +
+
+ + Los archivos de configuración pueden contener secciones también. + Usted puede cargar variables de una sección adicionando el atributo + section. + + + + Config file sections es la función integrada + de template section no tiene nada que ver + uno con el otro, ellos justamente por casualidad tiene en común el + convensionalismo del nombre. + + + + Función config_load con section + + +{#pageTitle#} + + + + + + + +
FirstLastAddress
+ + +]]> +
+
+
+ + diff --git a/docs/es/designers/language-builtin-functions/language-function-foreach.xml b/docs/es/designers/language-builtin-functions/language-function-foreach.xml new file mode 100644 index 00000000..1b829907 --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-foreach.xml @@ -0,0 +1,195 @@ + + + + foreach,foreachelse + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + from + array + Si + n/a + El nombre de la matriz a la que usted estara pegando + los elementos + + + item + string + Si + n/a + El nombre de la variable que es el elemento + actual + + + key + string + No + n/a + El nombre de la variable que es la llave actual + + + name + string + No + n/a + El nombre del ciclo foreach para acessar a las propiedades del foreach + + + + + + Los ciclos(loop) foreach son una alternativa para loop + section. foreach es usado para pegar + cada elemento de una matriz asociativa simple. + La sintaxis para foreach es mucho mas simple que + section, pero tiene una desventaja de que solo puede ser + usada en una única matriz. + La etiqueta foreach debe tener su par + /foreach. + Los parámetros requeridos son from e + item. El nombre del ciclo(loop) foreach puede ser + cualquier cosa que usted quiera, hecho de letras, números y subrayados. + Los ciclos(loop) foreach pueden ser anidados, + y el nombre de los ciclos(loop) anidados debe ser diferente uno de + otro. La variable from (normalmente una matriz de valores) + determina el número de veces del ciclo(loop) foreach. + foreachelse y ejecutando cuando no hubieren mas valores + en la variable from. + + +foreach + + +{* este ejemplo muestra todos los valores de la matriz $custid *} +{foreach from=$custid item=curr_id} + id: {$curr_id}<br> +{/foreach} + +SALIDA: + +id: 1000<br> +id: 1001<br> +id: 1002<br> + + + +foreach key + +{* La llave contiene la llave para cada valor del ciclo(loop) + +asignacion fisica de esta manera: + +$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"), + array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234"))); + +*} + +{foreach name=outer item=contact from=$contacts} + {foreach key=key item=item from=$contact} + {$key}: {$item}<br> + {/foreach} +{/foreach} + +SALIDA: + +phone: 1<br> +fax: 2<br> +cell: 3<br> +phone: 555-4444<br> +fax: 555-3333<br> +cell: 760-1234<br> + + + + El ciclo(Loop) foreach también tiene sus propias variables para + manipular las propiedades del foreach. + Estas son indicadas así: {$smarty.foreach.foreachname.varname} con + foreachname siendo el nombre especificado del atributo + name del foreach. + + + + + iteration + + iteration es usado para mostrar la interación actual del ciclo(loop). + + + iteration siempre comienza en 1 incrementado uno a uno en cada interaciónn. + + + + + first + + first Toma el valor true si la interación actual del + foreach es la primera. + + + + + last + + last Toma el valor de true si la interación actual + del foreach es la ultima. + + + + + show + + show Es usado como parámetro para el foreach. + show Es un valor booleano, true o false. + Si es false, el foreach no será mostrado. Si tuviera un + foreachelse presente, este será alternativamente mostrado. + + + + + total + + total Es usado para mostrar el número de interaciones + del foreach. Este puede ser usado dentro o después de el. + + + + + + + + + diff --git a/docs/es/designers/language-builtin-functions/language-function-if.xml b/docs/es/designers/language-builtin-functions/language-function-if.xml new file mode 100644 index 00000000..67fbc5ad --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-if.xml @@ -0,0 +1,219 @@ + + + + if,elseif,else + + Los comandos if del Smarty tiene mucho de la flexibilidad del comando + if de php, con algunas adiciones para la herramienta de template. + Todo {if} debe tener su {/if}. + {else} y {elseif} tambien son + permitidos. + Toda las condicionales de PHP son reconcidas, tal como + ||, or, + &&, and, etc. + + + + La siguiente es una lista de calificadores reconocidos, los cuales + deberan estar separados los dos elementos por espacios. + Nota loas articulos pueden listarse [entre corchetes] es opcional. + Equivalentes al lugar donde se apliquen en PHP. + + + + + + + + + + + + Calificador + Alternativa + Ejemplo de Sintaxis + Significado + Equivalente en PHP + + + + + == + eq + $a eq $b + Iguales + == + + + != + ne, neq + $a neq $b + Diferentes + != + + + > + gt + $a gt $b + Mayor que + > + + + < + lt + $a lt $b + menor que + < + + + >= + gte, ge + $a ge $b + mayor que o igual + >= + + + <= + lte, le + $a le $b + menor que o igual + <= + + + ! + not + not $a + negación (unary) + ! + + + % + mod + $a mod $b + modulo + % + + + is [not] div by + + $a is not div by 4 + divisible por + $a % $b == 0 + + + is [not] even + + $a is not even + [not] es numero par (unary) + $a % 2 == 0 + + + is [not] even by + + $a is not even by $b + agrupar niveles pares [not] + ($a / $b) % 2 == 0 + + + is [not] odd + + $a is not odd + [not] el numero es impar (unary) + $a % 2 != 0 + + + is [not] odd by + + $a is not odd by $b + [not] agrupa los niveles impares + ($a / $b) % 2 != 0 + + + + + +sentencia if + +{if $name eq "Fred"} + Welcome Sir. +{elseif $name eq "Wilma"} + Welcome Ma'am. +{else} + Welcome, whatever you are. +{/if} + +{* Un ejemplo con "or" logico *} +{if $name eq "Fred" or $name eq "Wilma"} + ... +{/if} + +{* El mismo que arriba *} +{if $name == "Fred" || $name == "Wilma"} + ... +{/if} + +{* La siguiente sintaxis no funcionara, el calificador de condición + deben estar separados entre ellos por espacios *} +{if $name=="Fred" || $name=="Wilma"} + ... +{/if} + + +{* los parentesis son permitidos *} +{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#} + ... +{/if} + +{* Usted también puede colocar funciones de PHP *} +{if count($var) gt 0} + ... +{/if} + +{* checa si el valor es par o impar *} +{if $var is even} + ... +{/if} +{if $var is odd} + ... +{/if} +{if $var is not odd} + ... +{/if} + +{* checa si la variable var es divisible por 4 *} +{if $var is div by 4} + ... +{/if} + +{* Checa si la variable var es igual, agrupandola por dos. i.e., +0=even, 1=even, 2=odd, 3=odd, 4=even, 5=even, etc. *} +{if $var is even by 2} + ... +{/if} + +{* 0=even, 1=even, 2=even, 3=odd, 4=odd, 5=odd, etc. *} +{if $var is even by 3} + ... +{/if} + + + diff --git a/docs/es/designers/language-builtin-functions/language-function-include-php.xml b/docs/es/designers/language-builtin-functions/language-function-include-php.xml new file mode 100644 index 00000000..fef084c0 --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-include-php.xml @@ -0,0 +1,142 @@ + + + + include_php + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + file + string + Si + n/a + El nombre del archivo php a incluir + + + once + boolean + No + true + Cuando incluir o no el archivo php mas de una vez, + ser incluido varias veces + + + assign + string + No + n/a + El nombre de la variable que recibirá la + salida del archivo php + + + + + + Nota técnica + + include_php es muy desaprovechado desde Smarty, usted puede + lograr la misma funcionalidad por medio de las funciones de + costumbre del template. + La unica razón para usar include_php es si usted en realidad tiene + la necesidad de poner en cuarentna la funcion de php fuera del + directorio de plugin y su codigo de la aplicación. + Vea un ejemplo + de templates componentizados para detalles. + + + + Las etiquetas include_php son usadas para incluir un script PHP + dentro de su template. Si la seguridad estuviera activada, entonces + el script PHP debe estar localizado en la ruta $trusted_dir. + La etiqueta include_php debe tener el atributo "file", el cual + contiene la ruta del archivo PHP a ser incluido, o el relativo + al $trusted_dir, o una ruta absoluta. + + + include_php es un buen medio para manipular templates con componentes, + y mantiene el código PHP separado de los archivos del template. + Vamos adecir que usted tenga un template que muestre la navegación de + su sitio, el cual es tirado automáticamente a partir de una base de + datos. Usted puede mantener su lógica de PHP que obtiene los datos en + un directorio separado, e incluirla arriba del template. Ahora usted + puede incluir este template en cualquier lugar sin preocuparse si la + información de la base de datos fue obtenida por la aplicación antes + de usarla. + + + Por default, los archivos son incluidos solo una vez a un cuando son + incluidos varias veces en el template. Usted puede especificar que este + sea incluido todas la veces con un atributo once. + Definindo como false incluira el script php cada vez que este sea + incluido en el template. + + + Usted puede opcionalmente pasar el atributo assign, + el cual especificara una variable del template la cual contendra toda la + salida del include_php en vez de mostrarla. + + + El objeto smarty esta disponible como $this dentro del script php que usted + incluyo. + + +funcion include_php + +load_nav.php +------------- + +<?php + + // carga variables de una base de datos mysql y defíne esta para el template + require_once("MySQL.class.php"); + $sql = new MySQL; + $sql->query("select * from site_nav_sections order by name",SQL_ALL); + $this->assign('sections',$sql->record); + +?> + + +index.tpl +--------- +{* ruta absoluta o relativa del $trusted_dir *} +{include_php file="/path/to/load_nav.php"} + +{foreach item="curr_section" from=$sections} + <a href="{$curr_section.url}">{$curr_section.name}</a><br> +{/foreach} + + + diff --git a/docs/es/designers/language-builtin-functions/language-function-include.xml b/docs/es/designers/language-builtin-functions/language-function-include.xml new file mode 100644 index 00000000..df0457a1 --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-include.xml @@ -0,0 +1,123 @@ + + + + include + + + + + + + + + + Nombre del Atributo + Tipo + requerido + Default + Descripción + + + + + file + string + Si + n/a + El nombre del archivo de template a Incluir. + + + assign + string + No + n/a + El nombre de una variable que contendra toda la + salida del template. + + + [var ...] + [var type] + No + n/a + Variable para pasar localmente a el template + + + + + + Las etiquetas include son usadas para incluir otros templates en + el template actual. Cualquier variable disponible en el template + actual, también esta disponible dentro del template incluido. + La etiqueta include debe tener el atributo "file", el cual contiene + la ruta del archivo a incluir. + + + Usted puede opcionalmente pasar el atributo assign, + el cual especificara el nombre de una variable de template para el cual + contendra toda la salida de include en vez de mostrarla. + + +funcion include + +{include file="header.tpl"} + +{* el cuerpo del template va aqui *} + +{include file="footer.tpl"} + + + Usted también puede pasar variables al template incluidas como + atributos. Cualquier variable pasada al template incluidas como + atributos estan disponibles solamente dentro el espacio del template. + Las variables pasadas como atributos sobreescriben a las variables + del template actual, en el caso en el que estas tengan el mismo nombre. + + +Función include pasando variables + +{include file="header.tpl" title="Main Menu" table_bgcolor="#c0c0c0"} + +{* el cuerpo del template va aqui *} + +{include file="footer.tpl" logo="http://my.domain.com/logo.gif"} + + + Use la sintaxis de template resources + para incluir archivos fuera del directorio $template_dir. + + +Ejemplos de recursos para la función include + +{* ruta absoluta *} +{include file="/usr/local/include/templates/header.tpl"} + +{* ruta absoluta (lo mismo) *} +{include file="file:/usr/local/include/templates/header.tpl"} + +{* ruta absoluta de windows (DEBE usar el prefijo "file:") *} +{include file="file:C:/www/pub/templates/header.tpl"} + +{* incluir a partir del recurso de template denominado "db" *} +{include file="db:header.tpl"} + + + diff --git a/docs/es/designers/language-builtin-functions/language-function-insert.xml b/docs/es/designers/language-builtin-functions/language-function-insert.xml new file mode 100644 index 00000000..e596dcf3 --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-insert.xml @@ -0,0 +1,142 @@ + + + + insert + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + name + string + Si + n/a + El nombre de la función insert(insert_name) + + + assign + string + No + n/a + El nombre de la variable del template que recibirá la + salida + + + script + string + No + n/a + El nombre de un php que será incluido antes que la + función insert sea llamada + + + [var ...] + [var type] + No + n/a + Variable para pasar a la función insert + + + + + + La etiqueta funciona parecido a las etiquetas include, excepto + que las etiquetas insert no van para el cache cuando + caching esta activado. + Esta sera executada a cada invocación del template. + + + Digamos que usted tiene un template con un banner en la parte de arriba + de la pagina. El banner puede contener cualquier mezcla de HTML, imagenes, + flash, etc. Así nosotros no podemos usar una liga(link) estatica aquí, + y nosotros no queremos que este el contenido oculto con la pagina. + Aquí vemos la etiqueta insert: el template conoce los valores + #banner_location_id# y #site_id# (obtenidos de un archivo de configuración), + y necesita llamar una función para obtener el contenido del banner. + + +función insert + +{* ejemplo de traer un banner *} +{insert name="getBanner" lid=#banner_location_id# sid=#site_id#} + + + En este ejemplo, nosotros estamos usando el nombre "getBanner" + y pasando los parámetros #banner_location_id# y #site_id#. + El Smarty lo buscara en la función llamada insert_getBanner() + en su aplicación PHP, pasando los valores de #banner_location_id# + y #site_id# como primer argumento en una matriz asociativa. + Todos los nombres de las funciones insert en su aplicación deben + ser precedidas por "insert_" para prevenir posibles problemas con + nombres de funciones repetidos. Su función insert_getBanner() debe + hacer algo con los valores pasados y retornar los resultados. + Estos resultados son mostrados en el template en lugar de la + etiqueta insert. En este ejemplo, el Smarty llamara esta función: + insert_getBanner(array("lid" => "12345","sid" => "67890")); y + mostrara el resultado retornado en el lugar de la etiqueta insert. + + + Si usted proporciona el atributo "assign", la salida de la etiqueta + insert será dada a esta variable en vez de ser una salida en el template. + Nota: definir la salida a una variable no es util cuando el cache esta + activo. + + + Si usted proporciona el atributo "script", este script php será + incluido (solo una vez) antes de la ejecución de la función insert. + Este es el caso donde la función insert no exista todavia, y el + script php debe ser incluido antes para que pueda funcionar. + La ruta puede ser absuluta o relativa a $trusted_dir. + Cuando la seguridad esta activada, el script debe estar en $trusted_dir. + + + El objeto Smarty es pasado como segundo argumento. De este modo + puede referenciar y modificar información del objeto Smarty dentro + de la función. + + + Nota Tecnica + + Es posible tener partes del template fuera de la cache. + Si usted tuviera caching + activado, la etiqueta insert no podra heredar por la cache. + Esta sera ejecutada dinámicamente cada vez que la pagina + sea creada, igual con paginas en cache. Esto funciona bien + para cosas como banners, encuestas, clima, busqueda de + resultados, areas de opinión de usuario, etc. + + + + diff --git a/docs/es/designers/language-builtin-functions/language-function-ldelim.xml b/docs/es/designers/language-builtin-functions/language-function-ldelim.xml new file mode 100644 index 00000000..2a286bf6 --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-ldelim.xml @@ -0,0 +1,52 @@ + + + + ldelim,rdelim + + ldelim y rdelim son usados para escapar delimitadores en el template, + en nuestro caso "{" or "}". Usted puede usar solo + {literal}{/literal} para + escapar bloques de texto. + Vea tambien {$smarty.ldelim} + y {$smarty.rdelim} + + + ldelim, rdelim + + + + + La salida del ejemplo de arriba: + + + + + + + + diff --git a/docs/es/designers/language-builtin-functions/language-function-literal.xml b/docs/es/designers/language-builtin-functions/language-function-literal.xml new file mode 100644 index 00000000..e2c72669 --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-literal.xml @@ -0,0 +1,71 @@ + + + + literal + + Las etiquetas literal permiten que un block de datos sea tomado literalmente, + no siendo interpretado por el smarty. + Esto es util para cosas como secciones de javascript, en donde pueden + haber llaves ("{}") + y cosas asi que puedan confundir al interpretador del template. + Cualquier cosa dentro las {literal}{/literal} no será + interpretado, y sera mostrado tal como esta. + + + + Las etiquetas literal permiten que un bloque de datos sea tomado + literalmente, este es tipicamente usado en ambiente javascript o + stylesheet bloques donde las llaves interfieren con los delimitadores + de sintaxis de Samrty. + Cualquer cosa dentro de las etiquetas {literal}{/literal} no es + interpretado, si no desplegado tal como esta. Si usted necesita en su + template etiquetas empotradas en su bloque de literal, considere usar + {ldelim}{rdelim} para + escapar delimitadores individuales en lugar de eso. + + + Etiqueta literal + + + + + + +{/literal} +]]> + + + + + diff --git a/docs/es/designers/language-builtin-functions/language-function-php.xml b/docs/es/designers/language-builtin-functions/language-function-php.xml new file mode 100644 index 00000000..1009e12e --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-php.xml @@ -0,0 +1,40 @@ + + + + php + + Las etiquetas php permiten que usted adicione código php directamente + en el template. No será escapado, no importando la definición de + $php_handling. + Esto es solo para usuario avanzados y normalmente no es necesario. + + +Etiqueta php + +{php} + // incluyendo un script php + // directamente en el template. + include("/path/to/display_weather.php"); +{/php} + + + diff --git a/docs/es/designers/language-builtin-functions/language-function-section.xml b/docs/es/designers/language-builtin-functions/language-function-section.xml new file mode 100644 index 00000000..55047719 --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-section.xml @@ -0,0 +1,571 @@ + + + + section,sectionelse + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + name + string + Si + n/a + El nombre de la section + + + loop + [$variable_name] + Si + n/a + El nombre de la variable para determinar el número de + iteracciones + + + start + integer + No + 0 + La posición del índice de la section donde va a comenzar. + Si el valor es negativo, la posición del inicio se calculara + a partir del final de la matriz. Por ejemplo, si hubieran 7 valores + en la matriz y comienza por -2, el índice inicial es 5. + Valores inválidos (valores fuera del tamaño de la matriz) son + automáticamente truncados para el valor valido mas próximo. + + + + step + integer + No + 1 + El valor del step que sera usado para el loop de la matriz. + Por ejemplo, step=2 realizara el loop con los índices 0,2,4, etc. + Si step es negativo, este avanzara en la matriz de atras para adelante. + + + + max + integer + No + n/a + Defíne el número máximo de ciclos(loops) para la section. + + + show + boolean + No + true + Determina cuando mostrar o no esta sección + + + + + + Las section del template son usada para realizar un ciclo(loop) de + un arreglo de datos. Todas las etiquetas section + deben tener su par /section. Los parámetros + requeridos son name y loop. + El nombre de la section puede ser el que usted quiera, formado por + letras, números y subrayados. Las sections pueden ser anidadas, y los + nombres de la section anidadas deben ser diferentes unos de otros. + Las variables del loop (normalmente una matriz de valores) determina + el número de veces del loop de la section. Cuando estuviera mostrando + una variable dentro de una section, el nombre de la section debe estar + al lado de la variable dentro de corchetes []. + sectionelse es ejecutado cuando no hubiera valores + para la variable del loop(ciclo). + + +section + + +{* este ejemplo muestra todos los valores del arreglo $custid *} +{section name=customer loop=$custid} + id: {$custid[customer]}<br> +{/section} + +SALIDA: + +id: 1000<br> +id: 1001<br> +id: 1002<br> + + + +loop(ciclo) de la variable section + +{* la variable del loop solo determina el número de veces del ciclo. + Usted puede accesar a cualquier variable del template dentro de la section. + Este ejemplo asume que $custid, $name y $address son todas matrizes + conteniendo el mismo número de valores *} +{section name=customer loop=$custid} + id: {$custid[customer]}<br> + name: {$name[customer]}<br> + address: {$address[customer]}<br> + <p> +{/section} + + +SALIDA: + +id: 1000<br> +name: John Smith<br> +address: 253 N 45th<br> +<p> +id: 1001<br> +name: Jack Jones<br> +address: 417 Mulberry ln<br> +<p> +id: 1002<br> +name: Jane Munson<br> +address: 5605 apple st<br> +<p> + + + +Nombres de section + +{* El nombre de la section puede ser el que usted quiera, + y es usado para referenciar los datos dentro de una section *} +{section name=mydata loop=$custid} + id: {$custid[mydata]}<br> + name: {$name[mydata]}<br> + address: {$address[mydata]}<br> + <p> +{/section} + + + +sections anidadas + +{* Las sections pueden ser anidados tan profundamente como usted quiera. + Con las sections anidadas, usted puede accesar a estructuras complejas, + como una matriz multi-dimensional. En este ejemplo, $contact_type[customer] + es una matriz de tipos de contacto para el cliente actual. *} +{section name=customer loop=$custid} + id: {$custid[customer]}<br> + name: {$name[customer]}<br> + address: {$address[customer]}<br> + {section name=contact loop=$contact_type[customer]} + {$contact_type[customer][contact]}: {$contact_info[customer][contact]}<br> + {/section} + <p> +{/section} + + +SALIDA: + +id: 1000<br> +name: John Smith<br> +address: 253 N 45th<br> +home phone: 555-555-5555<br> +cell phone: 555-555-5555<br> +e-mail: john@mydomain.com<br> +<p> +id: 1001<br> +name: Jack Jones<br> +address: 417 Mulberry ln<br> +home phone: 555-555-5555<br> +cell phone: 555-555-5555<br> +e-mail: jack@mydomain.com<br> +<p> +id: 1002<br> +name: Jane Munson<br> +address: 5605 apple st<br> +home phone: 555-555-5555<br> +cell phone: 555-555-5555<br> +e-mail: jane@mydomain.com<br> +<p> + + + +sections y matrices asociativas + +{* Este es un ejemplo que muestra los datos de una matriz asociativa + dentro de una section *} +{section name=customer loop=$contacts} + name: {$contacts[customer].name}<br> + home: {$contacts[customer].home}<br> + cell: {$contacts[customer].cell}<br> + e-mail: {$contacts[customer].email}<p> +{/section} + + +SALIDA: + +name: John Smith<br> +home: 555-555-5555<br> +cell: 555-555-5555<br> +e-mail: john@mydomain.com<p> +name: Jack Jones<br> +home phone: 555-555-5555<br> +cell phone: 555-555-5555<br> +e-mail: jack@mydomain.com<p> +name: Jane Munson<br> +home phone: 555-555-5555<br> +cell phone: 555-555-5555<br> +e-mail: jane@mydomain.com<p> + + + + + +sectionelse + +{* sectionelse se ejecutara si no hubieran valores en $custid *} +{section name=customer loop=$custid} + id: {$custid[customer]}<br> +{sectionelse} + there are no values in $custid. +{/section} + + + Las sections también tiene sus propias variables que manipulan las + propiedades de section. Estas son indicadas asi: + {$smarty.section.sectionname.varname} + + + + NOTA: a partir de Smarty 1.5.0, la sintaxis de las variables de las + propiedades de section ha sido cambiadas de {%sectionname.varname%} a + {$smarty.section.sectionname.varname}. La sintaxis antigua es aun + soportada, pero usted puede ver la referencia de la sintaxis nueva + en los ejemplos del manual. + + + + index + + index es usado para mostrar el índice actual del cliclo(loop), comenzando + en cero (o comienza con el atributo dado), e incrementando por uno (o por + un atributo de paso dado). + + + Nota Tecnica + + Si las propiedades de paso y comienzo del section son modificadas, + entonces estas funcionan igual a las propiedades de iteration de la + section, exepto que comienzan en 0 en vez de 1. + + + + section propiedades del index + + {section name=customer loop=$custid} + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {/section} + + + SALIDA: + + 0 id: 1000<br> + 1 id: 1001<br> + 2 id: 1002<br> + + + + + index_prev + + El index_prev es usado para mostrar el índice anterior del loop(ciclo). + del primer loop(ciclo) esto es definido como -1. + + + section propiedades del index_prev + + {section name=customer loop=$custid} + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {* FYI, $custid[customer.index] and $custid[customer] are identical in meaning *} + {if $custid[customer.index_prev] ne $custid[customer.index]} + The customer id changed<br> + {/if} + {/section} + + + SALIDA: + + 0 id: 1000<br> + The customer id changed<br> + 1 id: 1001<br> + The customer id changed<br> + 2 id: 1002<br> + The customer id changed<br> + + + + + index_next + + El index_next es usado para mostrar el próximo indice del loop. + del último loop, esto es uno mas que el índice actual( respetando + la definición del atributo step que se a dado.) + + + section propiedades del index_next + + {section name=customer loop=$custid} + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {* FYI, $custid[customer.index] and $custid[customer] are identical in meaning *} + {if $custid[customer.index_next] ne $custid[customer.index]} + The customer id will change<br> + {/if} + {/section} + + + SALIDA: + + 0 id: 1000<br> + The customer id will change<br> + 1 id: 1001<br> + The customer id will change<br> + 2 id: 1002<br> + The customer id will change<br> + + + + + iteration + + iteration es usado para mostrar la iteración actual del loop(ciclo). + + + + Esto no es afectado por las propiedades del section start, step y max, + distinto de las propriedades del index. Iteration también comineza con + 1 en vez de 0 como index. rownum es un alias de iteration, estas funcionan + de manera identica. + + + + section propiedades de iteration + + {section name=customer loop=$custid start=5 step=2} + current loop iteration: {$smarty.section.customer.iteration}<br> + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {* FYI, $custid[customer.index] and $custid[customer] are identical in meaning *} + {if $custid[customer.index_next] ne $custid[customer.index]} + The customer id will change<br> + {/if} + {/section} + + + SALIDA: + + current loop iteration: 1 + 5 id: 1000<br> + The customer id will change<br> + current loop iteration: 2 + 7 id: 1001<br> + The customer id will change<br> + current loop iteration: 3 + 9 id: 1002<br> + The customer id will change<br> + + + + + first + + first es definido como true se la iteración actual de la section es la primera. + + + section propiedades de first + + {section name=customer loop=$custid} + {if $smarty.section.customer.first} + <table> + {/if} + + <tr><td>{$smarty.section.customer.index} id: + {$custid[customer]}</td></tr> + + {if $smarty.section.customer.last} + </table> + {/if} + {/section} + + + SALIDA: + + <table> + <tr><td>0 id: 1000</td></tr> + <tr><td>1 id: 1001</td></tr> + <tr><td>2 id: 1002</td></tr> + </table> + + + + + last + + last es definido como true si la iteración actual del section es la ultima. + + + section propiedades de last + + {section name=customer loop=$custid} + {if $smarty.section.customer.first} + <table> + {/if} + + <tr><td>{$smarty.section.customer.index} id: + {$custid[customer]}</td></tr> + + {if $smarty.section.customer.last} + </table> + {/if} + {/section} + + + SALIDA: + + <table> + <tr><td>0 id: 1000</td></tr> + <tr><td>1 id: 1001</td></tr> + <tr><td>2 id: 1002</td></tr> + </table> + + + + + rownum + + rownum es usado para mostrar la interación actual del loop(ciclo), + comenzando con 1. Es un alias para iteration, estas funcionan de + modo identico. + + + section propiedades de rownum + + {section name=customer loop=$custid} + {$smarty.section.customer.rownum} id: {$custid[customer]}<br> + {/section} + + + SALIDA: + + 1 id: 1000<br> + 2 id: 1001<br> + 3 id: 1002<br> + + + + + loop + + loop es usado para mostrar el ultimo número del índice del + loop(ciclo) de esta section. Esto puede ser usado dentro o fuera del section. + + + section propiedades de index + + {section name=customer loop=$custid} + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {/section} + + There were {$smarty.section.customer.loop} customers shown above. + + SALIDA: + + 0 id: 1000<br> + 1 id: 1001<br> + 2 id: 1002<br> + + There were 3 customers shown above. + + + + + show + + showEs usado como parámetro para section. + show Es un valor booleano, true o false. + Si es false, la section no será mostrada. Si existiera un + sectionelse presente, este será alternativamente mostrado. + + + section atributos de show + + {* $show_customer_info debe ser pasado de la aplicacion PHP, + para regular cuando mostrar o no esta section shows*} + {section name=customer loop=$custid show=$show_customer_info} + {$smarty.section.customer.rownum} id: {$custid[customer]}<br> + {/section} + + {if $smarty.section.customer.show} + the section was shown. + {else} + the section was not shown. + {/if} + + + SALIDA: + + 1 id: 1000<br> + 2 id: 1001<br> + 3 id: 1002<br> + + the section was shown. + + + + + total + + total es usado para mostrar el número de iteraciones que está + section tendra. Este puede ser usado dentro o fuera del section. + + + section propiedades de total + + {section name=customer loop=$custid step=2} + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {/section} + + There were {$smarty.section.customer.total} customers shown above. + + SALIDA: + + 0 id: 1000<br> + 2 id: 1001<br> + 4 id: 1002<br> + + There were 3 customers shown above. + + + + + diff --git a/docs/es/designers/language-builtin-functions/language-function-strip.xml b/docs/es/designers/language-builtin-functions/language-function-strip.xml new file mode 100644 index 00000000..a4b8d436 --- /dev/null +++ b/docs/es/designers/language-builtin-functions/language-function-strip.xml @@ -0,0 +1,78 @@ + + + + strip + + Muchas veces el diseñador de web tiene problemas con los espacios en + blanco y retornos de carro que afectan la salida del HTML + (browser "features"), si usted tiene que colocar todas sus etiquetas + juntas para tener los resultados deseados. Esto normalmente termina + en un template ilegible o que no se puede leer. + + + A cualquier cosa dentro de las etiquetas{strip}{/strip} en Smarty le + son retirados los espacios en blanco y retornos de carro al inicio y + al final de las lineas antes que sean mostrados. + De este modo usted puede manter su template legible, y no se peocupara + de que los espacios en blanco extras le causen problemas. + + + Nota Técnica + + {strip}{/strip} no afeta el contenido de las variables del template. + Vea strip modifier function. + + + +strip tags + + + + + + This is a test + + + + +{/strip} + + +SALIDA: + +
This is a test
+]]> +
+
+ + Note que en el ejemplo de arriba, todas las lineas comienzan y termina + con etiquetas HTML. Tenga cuidado en que todas las lineas corran + conjuntamente. Si usted tuviera textos planos simples en el inicio + o en el final de una linea, este estaria junto, y puede no ser el + resultado deseado. + +
+ + diff --git a/docs/es/designers/language-combining-modifiers.xml b/docs/es/designers/language-combining-modifiers.xml new file mode 100644 index 00000000..8e174177 --- /dev/null +++ b/docs/es/designers/language-combining-modifiers.xml @@ -0,0 +1,64 @@ + + + + Combinando Modificadores + + Usted puede aplicar cualquier cantidad de modificadores para una variable. + Estos seran aplicados en el orden en el que fueron combinados, de izquierda + a derecha. Estos deben ser separados con el carácter |(pipe). + + + Combinando Modificadores + +assign('articleTitle', 'Smokers are Productive, but Death Cuts Efficiency.'); +$smarty->display('index.tpl'); +?> + +index.tpl: + +{$articleTitle} +{$articleTitle|upper|spacify} +{$articleTitle|lower|spacify|truncate} +{$articleTitle|lower|truncate:30|spacify} +{$articleTitle|lower|spacify|truncate:30:". . ."} +]]> + + + La salida del ejemplode arriba: + + + + + + + + diff --git a/docs/es/designers/language-custom-functions.xml b/docs/es/designers/language-custom-functions.xml new file mode 100644 index 00000000..d98b274c --- /dev/null +++ b/docs/es/designers/language-custom-functions.xml @@ -0,0 +1,49 @@ + + + + Custom Functions + + Smarty viene con varias funciones personalizadas que usted + puede usar en sus templates. + + + &designers.language-custom-functions.language-function-assign; + &designers.language-custom-functions.language-function-counter; + &designers.language-custom-functions.language-function-cycle; + &designers.language-custom-functions.language-function-debug; + &designers.language-custom-functions.language-function-eval; + &designers.language-custom-functions.language-function-fetch; + &designers.language-custom-functions.language-function-html-checkboxes; + &designers.language-custom-functions.language-function-html-image; + &designers.language-custom-functions.language-function-html-options; + &designers.language-custom-functions.language-function-html-radios; + &designers.language-custom-functions.language-function-html-select-date; + &designers.language-custom-functions.language-function-html-select-time; + &designers.language-custom-functions.language-function-html-table; + &designers.language-custom-functions.language-function-math; + &designers.language-custom-functions.language-function-mailto; + &designers.language-custom-functions.language-function-popup-init; + &designers.language-custom-functions.language-function-popup; + &designers.language-custom-functions.language-function-textformat; + + + diff --git a/docs/es/designers/language-custom-functions/language-function-assign.xml b/docs/es/designers/language-custom-functions/language-function-assign.xml new file mode 100644 index 00000000..635f476c --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-assign.xml @@ -0,0 +1,74 @@ + + + + assign + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + var + string + Si + n/a + El nombre de la variable que esta ganando el valor + + + value + string + Si + n/a + El valor que esta siendo dado + + + + + + assign es usado para definir valores a las variables de template + durante la ejecución del template. + + +assign + +{assign var="name" value="Bob"} + +The value of $name is {$name}. + +SALIDA: + +The value of $name is Bob. + + + diff --git a/docs/es/designers/language-custom-functions/language-function-counter.xml b/docs/es/designers/language-custom-functions/language-function-counter.xml new file mode 100644 index 00000000..9274680c --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-counter.xml @@ -0,0 +1,123 @@ + + + + counter + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + name + string + No + default + El nombre del contador + + + start + number + No + 1 + El número inicial para contar a partir de + + + skip + number + No + 1 + El intervalo para contar + + + direction + string + No + up + La dirección para contar (up/down) + + + print + boolean + No + true + Cuando mostrar o no el valor + + + assign + string + No + n/a + La variable del template que va a recibir la salida + + + + + + counter es usada para mostrar un conteo. counter va a depender del + conteo en cada iteración. Usted puede ajustar el número, el intervalo + y la dirección del conteo, asi como determinar cuando mostrar o no el + conteo. Usted puede tener varios contadores al mismo tiempo, dando un + nombre único para cada uno. Si usted no da un nombre, sera usado + 'default' como nombre. + + + Si usted indica el atributo especial "assign", la salida de la función + counter se ira para esa variable del template en vez de ser mostrada en + el template. + + + counter + + +{counter}
+{counter}
+{counter}
+]]> +
+ + Esta es la salida: + + + +2
+4
+6
+]]> +
+
+
+ diff --git a/docs/es/designers/language-custom-functions/language-function-cycle.xml b/docs/es/designers/language-custom-functions/language-function-cycle.xml new file mode 100644 index 00000000..1fafbfec --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-cycle.xml @@ -0,0 +1,138 @@ + + + + cycle + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + name + string + No + default + El nombre del ciclo + + + values + mixed + Si + N/A + Los valores del ciclo, o una lista delimitada por + coma (vea el atributo delimiter), o una matriz de valores. + + + + print + boolean + No + true + Cuando mostrar o no el valor + + + advance + boolean + No + true + Cuando avanzar o no hacia el siguiente valor + + + delimiter + string + No + , + El delimitador para usar el valor del atributo. + + + assign + string + No + n/a + La variable del template que recibirá la salida + + + + + + Cycle es usado para hacer un ciclo a través de un conjunto + de valores. Esto hace mas fácil alternar entre dos o mas colores + en una tabla, o ciclos a travéz de una matriz de valores. + + + Usted puede usar el cycle en mas de un conjunto de valores en su + template supliendo el atributo name. De cada uno de los conjuntos + de valores. + + + Usted puede forzar que el valor actual no sea mostrado definiendo + el atributo print en false. Esto es útil para saltarse un valor. + + + El atributo advance es usado para repetir un valor. cuando se + definido en false, la próxima llamada para cycle mostrara el + mismo valor. + + + Si usted indica el atributo especial "assign", la saida de la + función cycle ira a la variable del template en vez de ser mostrado + ditectamente en el template. + + + cycle + + + {$data[rows]} + +{/section} +]]> + + + + 1 + + + 2 + + + 3 + +]]> + + + + diff --git a/docs/es/designers/language-custom-functions/language-function-debug.xml b/docs/es/designers/language-custom-functions/language-function-debug.xml new file mode 100644 index 00000000..f7696f8e --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-debug.xml @@ -0,0 +1,61 @@ + + + + debug + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + output + string + No + html + Tipo de salida, html o javascript + + + + + + {debug} Muestra el debug de la consola en la pagina. + Esto funciona independente de la definición de + debug. + Ya que este es ejecutado en tiempo de ejecución, este solo + puede mostrar las variables definidas, no en el template, es + decir en uso. Usted puede ver todas las variables disponibles + del template con scope. + + + diff --git a/docs/es/designers/language-custom-functions/language-function-eval.xml b/docs/es/designers/language-custom-functions/language-function-eval.xml new file mode 100644 index 00000000..05508d3d --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-eval.xml @@ -0,0 +1,120 @@ + + + + eval + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + var + mixed + Si + n/a + variable (o cadena) para evaluar + + + assign + string + No + n/a + La variable del template que recibirá la salida + + + + + + eval es usado para evaluar una variable como de template. Esto puede + ser usado para cosas como incrustar tags(etiquetas)/variables del + template dentro de las variables o tags(etiquetas)/variables dentro + de las variables de un archivo de configuración. + + + Si usted indica el atributo especial "assign", la salida de la + función eval se ira para esta variable de template en vez de + aparecer en el template. + + + Nota Técnica + + Al evaluar las variables son tratas igual que el template. + Ellas sigen el mismo funcionamiento para escape y seguridad tal + como si ellas fueran templates. + + + + Nota Técnica + + Las variables evaluadas son compiladas en cada invocación, las + vesiones compiladas no son salvas. Sin embargo, si usted tiene + activado el cache, la salida se va a fijar en la cache junto con + el resto del template. + + + +eval + +setup.conf +---------- + +emphstart = <b> +emphend = </b> +title = Welcome to {$company}'s home page! +ErrorCity = You must supply a {#emphstart#}city{#emphend#}. +ErrorState = You must supply a {#emphstart#}state{#emphend#}. + + +index.tpl +--------- + +{config_load file="setup.conf"} + +{eval var=$foo} +{eval var=#title#} +{eval var=#ErrorCity#} +{eval var=#ErrorState# assign="state_error"} +{$state_error} + +SALIDA: + +This is the contents of foo. +Welcome to Foobar Pub & Grill's home page! +You must supply a <b>city</b>. +You must supply a <b>state</b>. + + + + + diff --git a/docs/es/designers/language-custom-functions/language-function-fetch.xml b/docs/es/designers/language-custom-functions/language-function-fetch.xml new file mode 100644 index 00000000..bbb1d91e --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-fetch.xml @@ -0,0 +1,109 @@ + + + + fetch + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + file + string + Si + n/a + El archivo, sitio http o ftp para mandar llamar + + + assign + string + No + n/a + La variable del template que va a recibir la salida + + + + + + fetch es usado para obtener archivos de sistema local, http o ftp, y + mostrar el contenido. Si el nombre del archivo comienza con "http://", + la página del web site sera traida y mostrada. Si el nombre del archivo + comienza con "ftp://", el archivo será obtenido del servidor ftp y + mostrado. Para archivos locales, debe ser dada la ruta completa del + sistema de archivos, o una ruta relativa de el script php a ejecutar. + + + Si usted indica el atributo especial "assign", la salida de la función + fetch se ira a una variable de template en vez de ser mostrada en el + template. (nuevo en Smarty 1.5.0) + + + Nota Técnica + + Esto no soporta redirecionamento http, tenga la certeza de incluir + en la barra el seguimiento para ir a buscar donde sea necesario. + + + + Nota Técnica + + Si tiene activada la seguridad en su template y usted estuviera + recibiendo un archivo del sistema de archivos local, esto permitira + que solo archivos de uno de los directorios estuviera definido como + seguro. ($secure_dir) + + + + fetch + +{$weather} +{/if} +]]> + + + + diff --git a/docs/es/designers/language-custom-functions/language-function-html-checkboxes.xml b/docs/es/designers/language-custom-functions/language-function-html-checkboxes.xml new file mode 100644 index 00000000..02f86a29 --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-html-checkboxes.xml @@ -0,0 +1,166 @@ + + + + html_checkboxes + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + name + string + No + checkbox + Nombre de la lista checkbox + + + values + array + Si, a menos que se este utilizando el atributo options + n/a + Una matriz de valores para los botones checkbox + + + output + array + Si, a menos que estuviera usando el atributo options + n/a + una matriz de salida para los botones checkbox + + + selected/checked + string/array + No + empty + El(s) elemento(s) checkbox marcado(s) + + + options + arreglo asociativo + Si, a menos que este usando values y output + n/a + Una matriz asociativa de valores y salida + + + separator + string + No + empty + Cadena de texto para separar cada checkbox + + + labels + boolean + No + true + Adicionar la etiqueta <label> para la salida + + + + + + html_checkboxes es una función personalizada que crea un grupo + de checkbox con datos privistos. Este cuida cuales items(s) + estan selecionados por default. Los atributos requeridos son + values y output, a menos que usted use options. + Toda la salida es compatible con XHTML. + + + Todos los parámetros que no esten en la lista de arriba + son mostrados como nombre/valor dentro de cada etiqueta + <input> creada. + + + html_checkboxes + +assign('cust_ids', array(1000,1001,1002,1003)); +$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane Johnson','Charlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); + +?> +]] + + + where index.tpl is: + + +"} +]] + + +assign('cust_checkboxes', array( + 1000 => 'Joe Schmoe', + 1001 => 'Jack Smith', + 1002 => 'Jane Johnson', + 1003 => 'Charlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); +?> +]]> + + + Donde index.tpl es: + + + + + + Salida (los dos ejemplos): + + +Joe Schmoe
+
+
+
+]]> +
+
+
+ diff --git a/docs/es/designers/language-custom-functions/language-function-html-image.xml b/docs/es/designers/language-custom-functions/language-function-html-image.xml new file mode 100644 index 00000000..626f2a63 --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-html-image.xml @@ -0,0 +1,160 @@ + + + + html_image + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + file + string + Si + n/a + nombre/ruta de la imagen + + + border + string + No + 0 + Tamaño del borde del contorno de la imagen + + + height + string + No + Altura actual de la imagen + altura con la cual la imagen debe ser mostrada + + + width + string + No + Largo actual de la imagen + largo con el cual la imagen debe ser mostrada + + + basedir + string + no + document root del servidor web + ruta relativa para la base del directorio + + + alt + string + no + "" + descripción alternativa de la imagen + + + href + string + no + n/a + valor href a donde la imagen será ligada + + + + + + html_image es una función habitual que genera una etiqueta + HTML para una imagen. La altura y lo largo son automáticamente + calculadas a partir del archivo de la imagen si ningún valor + suplido. + + + basedir es el directorio base en el cual las rutas relativas de las + imagenes estan basados. Si no lo proporciona, el document root del + servidor (variable de ambiente DOCUMENT_ROOT) es usada como el + directorio base. Si la seguridad esta habilitada, la ruta para la + imagen debe estar dentro de un directorio seguro. + + + href es el valor href a donde la imagen + sera ligada. Si un link es proporcionado, una etiqueta <a + href="LINKVALUE"><a> es puesta alrededor de la imagen. + + + Todos los parametros que no esten dentro de la lista de arriba + son mostrados como pares de nombre/valor dentro de la etiqueta + creada <img>. + + + Nota Técnica + + html_image requiere un acceso a disco para leer la imagen y + calcular la altura y el largo. Si usted no usa cache en el + template, generalmente es mejor evitar html_image y utilizar + las etiquetas de imagem estáticas para un optimo funcionamiento. + + + + html_image example + +display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + SALIDA (posible): + + + + + +]]> + + + + diff --git a/docs/es/designers/language-custom-functions/language-function-html-options.xml b/docs/es/designers/language-custom-functions/language-function-html-options.xml new file mode 100644 index 00000000..93490562 --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-html-options.xml @@ -0,0 +1,151 @@ + + + + html_options + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + values + array + Si, a menos que use el atributo options + n/a + una matriz de valores para el menu dropdown + + + output + array + Si, a menos que use el atributo options + n/a + una matriz de salida para el menu dropdown + + + selected + string/array + No + empty + los elemento(s) de la option selecionado(s) + + + options + arreglo asociativo + Si, a menos que utilize valores y salida + n/a + una matriz asociativa de valores y salida + + + name + string + No + empty + nombre del grupo seleccionado + + + + + + html_options es una función customizada que crea un grupo + html option con los datos proporcionados. Este se encarga de + cuidar cuales datos han sido selecionado por default. + Los atributos son valores y salidas, a menos que usted utilice + options en lugar de eso. + + + Si un valor es una matriz, este será tratado como un OPTGROUP html, + y mostrara los grupos. La recursión es soportada por OPTGROUP. + Todas las salidas son compatibles con XHTML. + + + Si el atributo opcional name es dado, las + etiquetas <select name="groupname"></select> + encapsularan la lista de opciones. + De otra manera solo es generada la lista de opciones. + + + Todos los parámetros que no estan en la lista de arriba son + exibidos como name/value-pairs dentro de las etiquetas <select>. + Estas son ignoradas si la opcion name no es dada. + + +html_options + +index.php: + +require('Smarty.class.php'); +$smarty = new Smarty; +$smarty->assign('cust_ids', array(1000,1001,1002,1003)); +$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane +Johnson','Carlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); + +index.tpl: + +<select name=customer_id> + {html_options values=$cust_ids selected=$customer_id output=$cust_names} +</select> + + +index.php: + +require('Smarty.class.php'); +$smarty = new Smarty; +$smarty->assign('cust_options', array( + 1001 => 'Joe Schmoe', + 1002 => 'Jack Smith', + 1003 => 'Jane Johnson', + 1004 => 'Charlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); + +index.tpl: + +<select name=customer_id> + {html_options options=$cust_options selected=$customer_id} +</select> + + +SALIDA: (Ambos ejemplos) + +<select name=customer_id> + <option value="1000">Joe Schmoe</option> + <option value="1001" selected="selected">Jack Smith</option> + <option value="1002">Jane Johnson</option> + <option value="1003">Charlie Brown</option> +</select> + + + diff --git a/docs/es/designers/language-custom-functions/language-function-html-radios.xml b/docs/es/designers/language-custom-functions/language-function-html-radios.xml new file mode 100644 index 00000000..a0e16bd3 --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-html-radios.xml @@ -0,0 +1,143 @@ + + + + html_radios + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + name + string + No + radio + Nombre de la lista del radio + + + values + array + Si, a menos que utilice el atributo options + n/a + una matriz de valores para radio buttons + + + output + array + Si, a menos que utilice el atributo options + n/a + una matriz de salida para radio buttons + + + selected + string + No + empty + El elemento del radio selccionado + + + options + arreglo asociativo + Si, a menos qie utilice valores y salida + n/a + una matriz asociativa de valores y salida + + + separator + string + No + empty + cadena de texto para separar cada objeto de radio + + + + + + html_radios es una función customizada que crea grupos de + botones de radio html con los datos proporcionados. Este esta + atento para saber cual objeto esta selccionado por default. + Los atributos requeridos son valores y salidas, a menos que usted + use option en lugar de eso. Toda salida es compatible con XHTML. + + + Todos los parámetros que no estan en la lista de arriba son impresos + como pares de name/value dentro de cada etiqueta <input> creada. + + + +html_radios + +index.php: + +require('Smarty.class.php'); +$smarty = new Smarty; +$smarty->assign('cust_ids', array(1000,1001,1002,1003)); +$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane +Johnson','Charlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); + + +index.tpl: + +{html_radios name="id" values=$cust_ids selected=$customer_id output=$cust_names separator="<br />"} + + +index.php: + +require('Smarty.class.php'); +$smarty = new Smarty; +$smarty->assign('cust_radios', array( + 1000 => 'Joe Schmoe', + 1001 => 'Jack Smith', + 1002 => 'Jane Johnson', + 1003 => 'Charlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); + + +index.tpl: + +{html_radios name="id" options=$cust_radios selected=$customer_id separator="<br />"} + + +SALIDA: (Ambos ejemplos) + +<input type="radio" name="id" value="1000">Joe Schmoe<br /> +<input type="radio" name="id" value="1001" checked="checked">Jack Smith<br /> +<input type="radio" name="id" value="1002">Jane Johnson<br /> +<input type="radio" name="id" value="1003">Charlie Brown<br /> + + + diff --git a/docs/es/designers/language-custom-functions/language-function-html-select-date.xml b/docs/es/designers/language-custom-functions/language-function-html-select-date.xml new file mode 100644 index 00000000..5d8318ce --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-html-select-date.xml @@ -0,0 +1,366 @@ + + + + html_select_date + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + prefix + string + No + Date_ + Con el prefijo el nombre de la variable + + + time + timestamp/YYYY-MM-DD + No + Tiempo actual en el timestamp de unix o el + formato YYYY-MM-DD + Cual date/time a usar + + + start_year + string + No + Año actual + El primer año primero en el menu dropdown, o + el número de año, o el relativo al año actual (+/- N) + + + + end_year + string + No + de la misma forma que start_year + El ultimo año en el menu dropdown, o el + número de año, o el relativo al año actual (+/- N) + + + + display_days + boolean + No + true + Muestra los dias o no + + + display_months + boolean + No + true + Muestra los meses o no + + + display_years + boolean + No + true + Muestra los años o no + + + month_format + string + No + %B + Cual debe ser el formato de salida del mes + dentro de (strftime) + + + day_format + string + No + %02d + Cual debe ser el formato de salida del dia + dentro de (sprintf) + + + day_value_format + string + No + %d + Cual debe ser el formato de salida del valor + del dia dentro de (sprintf) + + + year_as_text + boolean + No + false + Se mostrara o no el año como texto + + + reverse_years + boolean + No + false + Muestra los años en orden inverso + + + field_array + string + No + null + + si un nombre es dado, las cajas de seleción + seran exibidas semejantes a los resultados + que estaran retornando al PHP en la forma. + name[Day], name[Year], name[Month]. + + + + day_size + string + No + null + adiciona el tamaño al atributo para la + etiqueta select si fue dada + + + month_size + string + No + null + adiciona el tamaño del atributo para la + etiqueta select si fue dada + + + year_size + string + No + null + adiciona el tamaño del atributo para la + etiqueta select si fue dada + + + all_extra + string + No + null + adiciona atributos extras para todas las + etiquetas select/input si fueron dadas + + + day_extra + string + No + null + adiciona atributos extras para todas las + etiquetas select/input si fueron dadas + + + month_extra + string + No + null + adiciona atributos extras para todas las + etiquetas select/input si fueron dadas + + + year_extra + string + No + null + adiciona atributos extras para todas las + etiquetas select/input si fueron dadas + + + field_order + string + No + MDY + El orden para ser mostrados los campos + + + field_separator + string + No + \n + Cadena a mostrar entre los diferentes campos + + + month_value_format + string + No + %m + formato strftime de los valores del mes, + el default es %m para el número del mes. + + + + year_empty + string + No + null + Si es proporcionado entonces el primer elemento + es el año select-box tiene este valor como etiqueta y + "" como valor. + Esto es util para hacer una lectura en el select-box + por ejemplo "por favor seccione el año". + Note que este puede usar valores como "-MM-DD" como + atributos de time indicando que el año sea desmarcado. + + + + month_empty + string + No + null + Si es proporcinado entonces el mes es el primer + elemento select-box tiene este valor como etiqueta y + "" como valor. + Note que usted puede usar valores como "YYYY--DD" como + atributos de time indicando que el mes sea desmarcado. + + + + day_empty + string + No + null + Si es proporcinado entonces es dias es el + primer elemento select-box tiene este valor como + etiqueta y "" como valor. + Note que usted puede usar valores como "YYYY-MM--" + como atributos de time indicando que el dia sea + desmarcado. + + + + + + + html_select_date es una función customizada que crea menus dropdowns + de fechas para usted. Este puede mostrar algunos o todos por año, + mes y dia. + + +html_select_date + +{html_select_date} + + +SALIDA: + +<select name="Date_Month"> +<option value="1">January</option> +<option value="2">February</option> +<option value="3">March</option> +<option value="4">April</option> +<option value="5">May</option> +<option value="6">June</option> +<option value="7">July</option> +<option value="8">August</option> +<option value="9">September</option> +<option value="10">October</option> +<option value="11">November</option> +<option value="12" selected>December</option> +</select> +<select name="Date_Day"> +<option value="1">01</option> +<option value="2">02</option> +<option value="3">03</option> +<option value="4">04</option> +<option value="5">05</option> +<option value="6">06</option> +<option value="7">07</option> +<option value="8">08</option> +<option value="9">09</option> +<option value="10">10</option> +<option value="11">11</option> +<option value="12">12</option> +<option value="13" selected>13</option> +<option value="14">14</option> +<option value="15">15</option> +<option value="16">16</option> +<option value="17">17</option> +<option value="18">18</option> +<option value="19">19</option> +<option value="20">20</option> +<option value="21">21</option> +<option value="22">22</option> +<option value="23">23</option> +<option value="24">24</option> +<option value="25">25</option> +<option value="26">26</option> +<option value="27">27</option> +<option value="28">28</option> +<option value="29">29</option> +<option value="30">30</option> +<option value="31">31</option> +</select> +<select name="Date_Year"> +<option value="2001" selected>2001</option> +</select> + + + + +html_select_date + + +{* el año de comienzo y fin puede ser relativo al año actual *} +{html_select_date prefix="StartDate" time=$time start_year="-5" end_year="+1" display_days=false} + +SALIDA: (El año actual es 2000) + +<select name="StartDateMonth"> +<option value="1">January</option> +<option value="2">February</option> +<option value="3">March</option> +<option value="4">April</option> +<option value="5">May</option> +<option value="6">June</option> +<option value="7">July</option> +<option value="8">August</option> +<option value="9">September</option> +<option value="10">October</option> +<option value="11">November</option> +<option value="12" selected>December</option> +</select> +<select name="StartDateYear"> +<option value="1999">1995</option> +<option value="1999">1996</option> +<option value="1999">1997</option> +<option value="1999">1998</option> +<option value="1999">1999</option> +<option value="2000" selected>2000</option> +<option value="2001">2001</option> +</select> + + + diff --git a/docs/es/designers/language-custom-functions/language-function-html-select-time.xml b/docs/es/designers/language-custom-functions/language-function-html-select-time.xml new file mode 100644 index 00000000..e443ee11 --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-html-select-time.xml @@ -0,0 +1,341 @@ + + + + html_select_time + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + prefix + string + No + Time_ + con el prefijo el nombre de la variable + + + time + timestamp + No + current time + cual date/time va a usar + + + display_hours + boolean + No + true + Mostrar o no las horas + + + display_minutes + boolean + No + true + Mostrar o no los minutos + + + display_seconds + boolean + No + true + Mostrar o no los segundos + + + display_meridian + boolean + No + true + Mostrar o no el meridiano (am/pm) + + + use_24_hours + boolean + No + true + Usar o no reloj de 24 horas + + + minute_interval + integer + No + 1 + número de los intervalos de los minutos del menu dropdown + + + second_interval + integer + No + 1 + número de los intervalos de los segundos del menu dropdown + + + field_array + string + No + n/a + muestra los valores del arreglo con este nombre + + + all_extra + string + No + null + adiciona atributos extras a las etiquetas select/input + si fueron proporcionados + + + hour_extra + string + No + null + adiciona atributos extras a las etiquetas select/input + si fueron proporcionados + + + minute_extra + string + No + null + adiciona atributos extras a las etiquetas select/input + si fueron proporcionados + + + second_extra + string + No + null + adiciona atributos extras a las etiquetas select/input + si fueron proporcionados + + + meridian_extra + string + No + null + adiciona atributos extras a las etiquetas select/input + si fueron proporcionados + + + + + + html_select_time es una función customizada + que crea menus dropdowns de tiempo para usted. + Esta puede mostrar algunos valores, o + todo en hora, minuto, segundo y am/pm. + + + Los atributos de time pueden tener diferentes + formatos. el puede ser un unico timestamp o + una cadena conteniendo Y-M-D. YYYY-MM-DD puede + ser lo mas común. exepto meses y dias con menos + de dos digitos también son reconocidos; + Si uno de los 3 valores (Y,M,D) es una cadena + vacia, que segun el select-box no es pre-seleccionada + del todo. este es especialmente usado con los + atributos empty_teay-, -month- y -day-. + + + html_select_time + + + + + Esta es la salidat: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + diff --git a/docs/es/designers/language-custom-functions/language-function-html-table.xml b/docs/es/designers/language-custom-functions/language-function-html-table.xml new file mode 100644 index 00000000..47b9fbe9 --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-html-table.xml @@ -0,0 +1,158 @@ + + + + html_table + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + loop + array + Yes + n/a + matriz de datos para el ciclo(loop) + + + cols + integer + No + 3 + número de columnas para la tabla + + + table_attr + string + No + border="1" + atributos para la etiqueta table + + + tr_attr + string + No + empty + atributos para la etiqueta tr (arreglos del ciclo) + + + td_attr + string + No + empty + atributos para la etiqueta td (arreglos del ciclo) + + + trailpad + string + No + &nbsp; + valor de relleno de las celdas para el ultimo + renglon con (si hay alguno) + + + + hdir + string + No + right + dirección de una linea para ser representada. + posibles valores: left/right + + + + vdir + string + No + down + Dirección de las columnas para ser representadas. + posibles valores: up/down + + + + + + + html_table Es una función customizada que + transforma un arreglo de datos en una tabla HTML. + El atributo cols determina el número de + columnas que tendra la tabla. + Los valores table_attr, + tr_attr y td_attr + determinan los atributos dados para las etiquetas tabla, tr y td. + Si tr_attr o td_attr + son arreglos, ellos entraran en un ciclo. + trailpad y el valor depositado dentro de + trailing cells en la ultima linea de la tabla si existe alguna + presente. + + +html_table + +assign('data',array(1,2,3,4,5,6,7,8,9)); +$smarty->assign('tr',array('bgcolor="#eeeeee"','bgcolor="#dddddd"')); +$smarty->display('index.tpl'); + +index.tpl: + +{html_table loop=$data} +{html_table loop=$data cols=4 table_attr='border="0"'} +{html_table loop=$data cols=4 tr_attr=$tr} + +SALIDA: + + + + + +
123
456
789
+ + + + +
1234
5678
9   
+ + + + +
1234
5678
9   
+]]>
+
+
+ diff --git a/docs/es/designers/language-custom-functions/language-function-mailto.xml b/docs/es/designers/language-custom-functions/language-function-mailto.xml new file mode 100644 index 00000000..08394b42 --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-mailto.xml @@ -0,0 +1,155 @@ + + + + mailto + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + address + string + Yes + n/a + La dirección de correo electronico(e-mail) + + + text + string + No + n/a + El texto para mostrar, el default es la + dirección de correo (e-mail) + + + encode + string + No + none + Como codificar el e-mail. Puede ser none, hex o javascript. + + + + cc + string + No + n/a + La dirección de correo(e-mail) para mandar una + copia el carbon(cc). Separados por una coma. + + + + bcc + string + No + n/a + Dirección de correo electronico(e-mail) para mandar + una copia al carbon ofuscada(bcc). Separando las direcciones por comas. + + + + subject + string + No + n/a + Asunto del correo electronico(e-mail). + + + newsgroups + string + No + n/a + newsgroup para enviar. separando las direcciones por comas. + + + + followupto + string + No + n/a + Direcciones para acompañar. Separe las direcciones con comas. + + + + extra + string + No + n/a + Cualquier otra información que usted quiera pasar + por el link, tal como plantillas de estilo + + + + + + + mailto automatiza el proceso de creación de links de correo + electronico(e-mail) y opcionalmente los codifica. + Codificar el correo electronico(e-mail) hace mas difícil que + las web spiders tomen las direciones de nuestro sitio. + + + Nota Técnica + + javascript es probablemente el codificador mas utilizado, aunque + usted puede utilizar también codificación hexadecimal. + + + +mailto + +{mailto address="me@domain.com"} +{mailto address="me@domain.com" text="send me some mail"} +{mailto address="me@domain.com" encode="javascript"} +{mailto address="me@domain.com" encode="hex"} +{mailto address="me@domain.com" subject="Hello to you!"} +{mailto address="me@domain.com" cc="you@domain.com,they@domain.com"} +{mailto address="me@domain.com" extra='class="email"'} + +SALIDA: + +<a href="mailto:me@domain.com" >me@domain.com</a> +<a href="mailto:me@domain.com" >send me some mail</a> +<script type="text/javascript" language="javascript">eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%6 +9%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d% +61%69%6e%2e%63%6f%6d%22%20%3e%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%3c%2f%61%3e +%27%29%3b'))</script> +<a href="mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d" >me@domain.com</a> +<a href="mailto:me@domain.com?subject=Hello%20to%20you%21" >me@domain.com</a> +<a href="mailto:me@domain.com?cc=you@domain.com%2Cthey@domain.com" >me@domain.com</a> +<a href="mailto:me@domain.com" class="email">me@domain.com</a> + + + diff --git a/docs/es/designers/language-custom-functions/language-function-math.xml b/docs/es/designers/language-custom-functions/language-function-math.xml new file mode 100644 index 00000000..5b1116f8 --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-math.xml @@ -0,0 +1,149 @@ + + + + math + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + equation + string + Si + n/a + La ecuación a ejecutar + + + format + string + No + n/a + El formato del resultado (sprintf) + + + var + numeric + Si + n/a + Valor de la variable de la ecuación + + + assign + string + No + n/a + Variable de template cuya salida sera asignada + + + [var ...] + numeric + Si + n/a + Valor de la variable de la ecuación + + + + + + math permite diseñar ecuaciones matemáticas dentro del template. + Cualquier variable numérica del template puede ser usada en + ecuaciones, y el resultado es mostrado en lugar de la etiqueta. + Las variables usadas en ecuaciones son pasadas como parámetros, + que pueden ser variables de template o valores estáticos. + +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, + pi, pow, rand, round, sin, sqrt, srans y tan son todos los + operadores validos. Verifique la documentación de PHP para mas + información acerca de estas funciones matemáticas. + + + Si usted proporciona el atributo especial "assign", la salida de la + función matemática será atribuido a esta variable de template en + vez de ser mostrada en el template. + + + Nota Técnica + + math es una función de muy alto rendimiento debido a que se + puede usar con la función eval() de PHP. + Hacer las matemáticas en PHP es mucho mas eficiente, asi en + cualquier momento es posible hacer calculos matemáticos en PHP + asignarlos a una variable y lanzar los resultados al template. + Defínitivamente evite llamadas repetitivas de funciones + matemáticas, dentro de los ciclos section. + + + +math + +{* $height=4, $width=5 *} + +{math equation="x + y" x=$height y=$width} + +SALIDA: + +9 + + +{* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *} + +{math equation="height * width / division" + height=$row_height + width=$row_width + division=#col_div#} + +SALIDA: + +100 + + +{* Usted puede usar parentesis *} + +{math equation="(( x + y ) / z )" x=2 y=10 z=2} + +SALIDA: + +6 + + +{* Usted puede asignar un parámetro de formato en sprintf *} + +{math equation="x + y" x=4.4444 y=5.0000 format="%.2f"} + +SALIDA: + +9.44 + + + diff --git a/docs/es/designers/language-custom-functions/language-function-popup-init.xml b/docs/es/designers/language-custom-functions/language-function-popup-init.xml new file mode 100644 index 00000000..e5d7a0a0 --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-popup-init.xml @@ -0,0 +1,49 @@ + + + + popup_init + + popup es una integración de overLib, una biblioteca usada para + ventanas popup. Esta es usada como contexto de infomación sensitiva, + como ventanas de ayuda o herramientas. popup_init debe ser usada una + vez hasta arriba de cada pagina donde usted planea usar la función + popup. + overLib fue escrita por Erik Bosrup, y la pagina esta localizada en + http://www.bosrup.com/web/overlib/. + + + A partir da versión 2.1.2 de Smarty, overLib NO viene con la + distribución. Descargar el overLib, coloque el archivo overlib.js + dentro de su document root e indique la ruta relativa en el parámetro + "src" de popup_init. + + + popup_init + + + + + + diff --git a/docs/es/designers/language-custom-functions/language-function-popup.xml b/docs/es/designers/language-custom-functions/language-function-popup.xml new file mode 100644 index 00000000..db395c77 --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-popup.xml @@ -0,0 +1,435 @@ + + + + popup + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + text + string + Si + n/a + El text/html para mostrar en la ventana popup + + + trigger + string + No + onMouseOver + El que va a ser usado para que aparezca la + ventana. Puede ser onMouseOver u onClick + + + sticky + boolean + No + false + Hace que el poppup se quede cerca hasta que se cierre + + + caption + string + No + n/a + Defíne el texto para el título + + + fgcolor + string + No + n/a + El color que va a ser usado dentro de la caja popup + + + bgcolor + string + No + n/a + El color del borde de la caja popup + + + textcolor + string + No + n/a + Defíne el color del texto dentro de la caja popup + + + capcolor + string + No + n/a + Defíne el color del título de la caja + + + closecolor + string + No + n/a + Defíne el color del texto para cerrar + + + textfont + string + No + n/a + Defíne el color del texto para ser usado + en el texto principal + + + captionfont + string + No + n/a + Defíne el tipo de letra para ser usado en el Título + + + closefont + string + No + n/a + Defíne el tipo de letra para el texto "Close" + + + textsize + string + No + n/a + Defíne el tipo de letra del texto principal + + + captionsize + string + No + n/a + Defíne el tamaño del tipo de letra del título + + + closesize + string + No + n/a + Defíne el tamaño del tipo de letra del texto "Close" + + + width + integer + No + n/a + Defíne el ancho de la caja + + + height + integer + No + n/a + Defíne la altura de la caja + + + left + boolean + No + false + Hace que el popups vaya para la izquierda del ratón + + + right + boolean + No + false + Hace que el popups vaya para la derecha del ratón + + + center + boolean + No + false + Hace que el popups vaya al centro del ratón + + + above + boolean + No + false + Hace que el popups vaya por encima del + rató. NOTA:solamente es posible si el height fue definido + + + + below + boolean + No + false + Hace que el popups vaya por abajo del ratón + + + border + integer + No + n/a + Torna en gruesos o finos los bordes del popups + + + offsetx + integer + No + n/a + A que distancia del ratón aparecera el popup, horizontalmente + + + + offsety + integer + No + n/a + A que distancia del ratón aparecera el popup, verticalmente + + + + fgbackground + url to image + No + n/a + Defíne una imagen para usar en vez del color del popup. + + + + bgbackground + url to image + No + n/a + defíne una imagen para ser usada como borde en + vez de un color para el popup. + NOTA:Usted debe definir bgcolor como "" o el color aparecera también. + NOTA: Cuando tuviera un link "Close", el Netscape rediseñara las + celdas de la tabla, haciendo que las cosas aparezcan incorrectamente + + + + closetext + string + No + n/a + Defíne el texto "Close" a otra cosa + + + noclose + boolean + No + n/a + No muestra el texto "Close" pegado con el título + + + status + string + No + n/a + Defíne el texto en la barra de estado del navegador + + + autostatus + boolean + No + n/a + Defíne el texto en la barra de estado para el texto del popup. + NOTA: sobreescribe la definición del status. + + + autostatuscap + string + No + n/a + Defíne el texto de la barra de estado como el texto del título + NOTA: sobreescribe el status y autostatus + + + + inarray + integer + No + n/a + + Indica al overLib desde que índice de la + matriz ol_text debe leer el texto, localizada en overlib.js. + Este parámetro puede ser usado en vez del texto + + + + caparray + integer + No + n/a + Indica al overLib a partir de que índice de la + matriz ol_caps leer el título + + + capicon + url + No + n/a + Muestra la imagen antes del título + + + snapx + integer + No + n/a + Instantanea el popup a una posición + constante en una cuadricula horizontal + + + snapy + integer + No + n/a + Instantanea el popup a una posición + constante en una cuadricula vertical + + + fixx + integer + No + n/a + Cierra el popups en una posición horizontal + Nota: pasa por encima de otros colocados horizontal + + + fixy + integer + No + n/a + Cierra popups en posición vertical + Note: pasa por encima de otros colocados vertical + + + background + url + No + n/a + Defíne una imagen para ser usada como fondo en + vez de la tabla + + + padx + integer,integer + No + n/a + Rellena el fondo de la imagen con espacios en blanco + horizontal para colocar el texto. + Nota: este es un comando de dos parámetros + + + pady + integer,integer + No + n/a + Rellena el fondo de la imagen con espacios en blanco + vertical para colocar el texto. + Nota: este es un comando de dos parámetros + + + fullhtml + boolean + No + n/a + Permite a usted controlar completamente el html sobre + la figura de fondo. + El código HTML es esperado en el atributo "text" + + + frame + string + No + n/a + Controla popups en frames diferentes. Para mayores informes + sobre esta función vea la pagina de overlib + + + timeout + string + No + n/a + LLama especificamente a una función javascript + y toma el valor que retorna, como el texto que se + va a mostrar en la ventana popup + + + delay + integer + No + n/a + Hace que el popup funcione como un tooltip. + Este aparecera solo con un retraso en milesimas de segundo + + + hauto + boolean + No + n/a + Determina automáticamente si el popup debe + aparecer a la izquierda o a la derecha del ratón. + + + vauto + boolean + No + n/a + Determina automáticamente si el popup debe + aparecer abajo o arriba del ratón. + + + + + + popup es usado para crear ventanas popup con javascript. + + +popup + +{* popup_init debe ser llamado una vez hasta arriba de la pagina *} +{popup_init src="/javascripts/overlib.js"} + +{* crea un link con una ventana popup que aparece cuando se pasa el mouse +sobre este *} +<A href="mypage.html" {popup text="This link takes you to my page!"}>mypage</A> + +{* usted puede usar html, links, etc en el texto del popup *} +<A href="mypage.html" {popup sticky=true caption="mypage contents" +text="<UL><LI>links<LI>pages<LI>images</UL>" snapx=10 snapy=10}>mypage</A> + + + diff --git a/docs/es/designers/language-custom-functions/language-function-textformat.xml b/docs/es/designers/language-custom-functions/language-function-textformat.xml new file mode 100644 index 00000000..2e078bd4 --- /dev/null +++ b/docs/es/designers/language-custom-functions/language-function-textformat.xml @@ -0,0 +1,255 @@ + + + + textformat + + + + + + + + + + Nombre del Atributo + Tipo + Requerido + Default + Descripción + + + + + style + string + No + n/a + estilo pre-definido + + + indent + number + No + 0 + Número de caracteres para endentar cada linea. + + + indent_first + number + No + 0 + Número de caracteres para endentar la primera linea + + + indent_char + string + No + (single space) + El carácter (o cadena de caracteres) para endentar + + + wrap + number + No + 80 + Cuantos caracteres tendra cada linea + + + wrap_char + string + No + \n + Caracter (o cadena de caracteres) a usar para saltar cada linea + + + + wrap_cut + boolean + No + false + Si es true, wrap saltara la linea en el carácter exacto + en vez de saltar al final de la palabra. + + + assign + string + No + n/a + La variable del template que recibirá la salida + + + + + + textformat es una función de bloque usada para formatear texto. + Básicamente limpa espacios y caracteres especiales, y formatea + los párrafos cortando el texto al final de la palabra y endentando + lineas. + + + Usted puede definir los parámetros explícitamente, o usar un + estilo pre-definido. + Actualmente el único estilo disponible es "email". + + +textformat + +{textformat wrap=40} + +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. + +This is bar. + +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. + +{/textformat} + +SALIDA: + +This is foo. This is foo. This is foo. +This is foo. This is foo. This is foo. + +This is bar. + +bar foo bar foo foo. bar foo bar foo +foo. bar foo bar foo foo. bar foo bar +foo foo. bar foo bar foo foo. bar foo +bar foo foo. bar foo bar foo foo. + + +{textformat wrap=40 indent=4} + +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. + +This is bar. + +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. + +{/textformat} + +SALIDA: + + This is foo. This is foo. This is + foo. This is foo. This is foo. This + is foo. + + This is bar. + + bar foo bar foo foo. bar foo bar foo + foo. bar foo bar foo foo. bar foo + bar foo foo. bar foo bar foo foo. + bar foo bar foo foo. bar foo bar + foo foo. + +{textformat wrap=40 indent=4 indent_first=4} + +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. + +This is bar. + +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. + +{/textformat} + +SALIDA: + + This is foo. This is foo. This + is foo. This is foo. This is foo. + This is foo. + + This is bar. + + bar foo bar foo foo. bar foo bar + foo foo. bar foo bar foo foo. bar + foo bar foo foo. bar foo bar foo + foo. bar foo bar foo foo. bar foo + bar foo foo. + +{textformat style="email"} + +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. + +This is bar. + +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. + +{/textformat} + +SALIDA: + +This is foo. This is foo. This is foo. This is foo. This is foo. This is +foo. + +This is bar. + +bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo +bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo +foo. + + + + + diff --git a/docs/es/designers/language-modifiers.xml b/docs/es/designers/language-modifiers.xml new file mode 100644 index 00000000..3eff1289 --- /dev/null +++ b/docs/es/designers/language-modifiers.xml @@ -0,0 +1,106 @@ + + + + Modificadores de variables + + Los modificadores de variables pueden ser aplicados a variables, + funciones habituales o cadenas. Para aplicar un modificador, especifique + el valor seguido por |(pipe) y el nombre del modificador. + Un modificador necesita parámetros adicionales que afetan en su funcionamento. + Estos parámetros siguen al nombre del modificador y son separados por + : (dos puntos). + + + Ejemplo de modificador + +{$title|upper} + +{* Truncate the topic to 40 characters use ... at the end *} +Topic: {$topic|truncate:40:"..."} + +{* format a literal string *} +{"now"|date_format:"%Y/%m/%d"} + +{* apply modifier to a custom function *} +{mailto|upper address="me@domain.dom"} +]]> + + + + Si usted aplica un modificador a una matriz en lugar del valor de + una variable, el modificador va a ser aplicado en cada uno de los + valores de la matriz. Si usted realmente quisiera que el modificador + funcionara en una matriz entera, debe colocar el simbolo + @ antes del nombre del modificador, así como: + {$articleTitle|@count} (esto mostrara el número de + elementos de la matriz $articleTitle.) + + + Los modificadores pueden ser cargados automáticamente a partir de su + $plugins_dir (vea también: + Naming Conventions) + o pueden ser registrados explicitamente (vea: + register_modifier). + Adicionalmente, todas las funciones de php pueden ser + utilizadas como modificadores implicitamente. + (El ejemplo @count de arriba usa actualmente la + función count de php y no un modificador de Smarty). + Usar funciones de php como modificadores tiene dos pequeños problemas: + Primero, algunas veces al ordenar los parámetros de una función + esto no es aconsejable ({"%2.f"|sprintf:$float} + actualmente funciona, pero existe algo mas intuitivo + Por ejemplo: {$float|string_format:"%2.f"} + que es proporcionado con la distribución de Smarty). + Segundo: con $security activado, + todas las funciones de php que sean utilizadas como modificadores deben + ser declaradas como variables de una matriz + $security_settings['MODIFIER_FUNCS'] + . + + + &designers.language-modifiers.language-modifier-capitalize; + &designers.language-modifiers.language-modifier-count-characters; + &designers.language-modifiers.language-modifier-cat; + &designers.language-modifiers.language-modifier-count-paragraphs; + &designers.language-modifiers.language-modifier-count-sentences; + &designers.language-modifiers.language-modifier-count-words; + &designers.language-modifiers.language-modifier-date-format; + &designers.language-modifiers.language-modifier-default; + &designers.language-modifiers.language-modifier-escape; + &designers.language-modifiers.language-modifier-indent; + &designers.language-modifiers.language-modifier-lower; + &designers.language-modifiers.language-modifier-nl2br; + &designers.language-modifiers.language-modifier-regex-replace; + &designers.language-modifiers.language-modifier-replace; + &designers.language-modifiers.language-modifier-spacify; + &designers.language-modifiers.language-modifier-string-format; + &designers.language-modifiers.language-modifier-strip; + &designers.language-modifiers.language-modifier-strip-tags; + &designers.language-modifiers.language-modifier-truncate; + &designers.language-modifiers.language-modifier-upper; + &designers.language-modifiers.language-modifier-wordwrap; + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-capitalize.xml b/docs/es/designers/language-modifiers/language-modifier-capitalize.xml new file mode 100644 index 00000000..a93ec6a1 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-capitalize.xml @@ -0,0 +1,91 @@ + + + + capitalize + + + + + + + + + + Posicion del Parametro + Tipo + Requerido + Default + Descripción + + + + + 1 + boolean + No + false + Este determina que palabra con digitos no debe ser convertida + + + + + + Este es usado para convertir a mayuscula la primera letra de todas la + palabras de una variable. + + + + capitalize + +assign('articleTitle', 'next x-men film, x3, delayed.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-cat.xml b/docs/es/designers/language-modifiers/language-modifier-cat.xml new file mode 100644 index 00000000..8f54b2c2 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-cat.xml @@ -0,0 +1,83 @@ + + + + cat + + + + + + + + + + Parameter Position + Type + Required + cat + Description + + + + + 1 + string + No + empty + Este es el valor para concatenar con la variable dada. + + + + + + Este valor es concatenado con la variable dada. + + + cat + +assign('articleTitle', "Psychics predict world didn't end"); +$smarty->display('index.tpl'); +?> +]]> + + + Donde index.tpl es: + + + + + + Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-count-characters.xml b/docs/es/designers/language-modifiers/language-modifier-count-characters.xml new file mode 100644 index 00000000..7f9c4ce6 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-count-characters.xml @@ -0,0 +1,90 @@ + + + + count_characters + + + + + + + + + + Posición del Parametro + Tipo + Requerido + Default + Descripción + + + + + 1 + boolean + No + false + Este determina cuando incluir o no los espacios + en blanco al contar. + + + + + + Este es usado para contar el número de carácteres en una variable. + + + count_characters + +assign('articleTitle', 'Cold Wave Linked to Temperatures.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-count-paragraphs.xml b/docs/es/designers/language-modifiers/language-modifier-count-paragraphs.xml new file mode 100644 index 00000000..ceea7f3d --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-count-paragraphs.xml @@ -0,0 +1,61 @@ + + + + count_paragraphs + + Este es usado para contar el número de parrafos en la variable. + + + count_paragraphs + +assign('articleTitle', "War Dims Hope for Peace. Child's Death Ruins +Couple's Holiday.\n\nMan is Fatally Slain. Death Causes Loneliness, Feeling of Isolation."); +$smarty->display('index.tpl'); +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-count-sentences.xml b/docs/es/designers/language-modifiers/language-modifier-count-sentences.xml new file mode 100644 index 00000000..cf061c47 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-count-sentences.xml @@ -0,0 +1,60 @@ + + + + count_sentences + + Este es usado para contar el número de frases en la variable. + + + count_sentences + +assign('articleTitle', 'Two Soviet Ships Collide - One Dies. Enraged Cow Injures Farmer with Axe.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-count-words.xml b/docs/es/designers/language-modifiers/language-modifier-count-words.xml new file mode 100644 index 00000000..cc41cd96 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-count-words.xml @@ -0,0 +1,60 @@ + + + + count_words + + Este es usado para contar el número de palabras en la variable. + + + count_words + +assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-date-format.xml b/docs/es/designers/language-modifiers/language-modifier-date-format.xml new file mode 100644 index 00000000..c3ee6761 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-date-format.xml @@ -0,0 +1,248 @@ + + + + date_format + + + + + + + + + + Posición del Parametro + Tipo + Requerido + Default + Descripción + + + + + 1 + string + No + %b %e, %Y + Este es el formato para la fecha mostrada. + + + 2 + string + No + n/a + Este es el default de la fecha si el valor de entrada + es vacio. + + + + + + Estos formatos de fecha y hora estan dentro del formato determinado + strftime(). Las fechas pueden ser pasadas a Smarty como timestamps + unix, timestamps mysql, o como cualquier cadena compuesta de mes dia + año (pasada por strtotime). El diseñador puede usar entonces date_format + para tener un control completo del formateo de la fecha. Si la fecha + pasada para date_format estuviera vacia y un segundo parámetro fuera + pasado, este será usado como la fecha a formatear. + + + date_format + +assign('yesterday', strtotime('-1 day')); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + date_format especificadores de conversión: + + + %a - nombre del día de la semana abreviado de acuerdo al local actual + + + %A - nombre del día de la semana anterior de acuerdo al local actual + + + %b - nombre del mes abreviado de acuerdo al local actual + + + %B - nombre del mes anterior de acuerdo al local actual + + + %c - Representación preferencial de la fecha y hora local actual + + + %C - año con dos dígitos (o año dividido por 100 y truncadopara un entero, + intervalo de 00 a 99) + + + %d - día del mes como un número decimal (intervalo de 00 a 31) + + + %D - Lo mismo que %m/%d/%y + + + %e - Día del mes como un número decimal, un único dígito y precedido por un + espacio (intervalo de 1 a 31) + + + %g - Año basado en la semana, sin el siglo [00,99] + + + %G - Año basado en la semana, incluyendo el siglo [0000,9999] + + + %h - Lo mismo que %b + + + %H - Hora como un número decimal usando un relój de 24 horas (intervalo + de 00 a 23) + + + %I - Hora como un número decimal usando un relój de 12 horas (intervalo + de 01 a 12) + + + %j - Día del año como um número decimal (intervalo de 001 a 366) + + + %k - Hora (relój de 24 horas) digítos únicos que son precedidos por um + espacio en blanco (intervalo de 0 a 23) + + + %l - Hora como un número decimal usando un relój de 12 horas, digítos + únicos son precedidos por un espacio en blanco (intervalo de 1 a 12) + + + %m - Mes como número decimal (intervalo de 01 a 12) + + + %M - Minuto como un número decimal + + + %n - Caracter de nueva linea + + + %p - Cualquiera `am' o `pm' de acuerdo con el valor de la hora dado, + o la cadena correspondiente a la local actual + + + %r - Hora con notación a.m. y p.m. + + + %R - Hora con notación de 24 horas + + + %S - Segundo como número decimal + + + %t - Caracter tab + + + %T - Hora actual, igual a %H:%M:%S + + + %u - Día de la semana como un número decimal [1,7], representando + con 1 el lunes + + + %U - Número de la semana del año actual como un número decimal, + comenzando con el primer domingo como primer dia de la primera semana + + + %V - Número de la semana del año actual como número decimal de acuerdo + con el ISO 8601:1988, intervalo de 01 a 53, en donde 1 es la primera + semana que tenga por lo menos cuatro dias en el año actual, siendo + domingo el primer dia de la semana. + + + %w - Día de la semana como decimal, siendo domingo 0 + + + %W - Número de la semana del año actual como número decimal, + comenzando con el primer lunes como primer dia de la primera semana + + + %x - Representación preferida para la fecha local actual sin la hora + + + %X - Representación preferida de la hora local actual sin la fecha + + + %y - Año como número decimal sin el siglo(intervalo de 00 a 99) + + + %Y - Año como número decimal incluyendo el siglo + + + %Z - Zona horaria, o nombre, o abreviación + + + %% - Un carácter `%' + + + + NOTA PARA PROGRAMADORES: + + date_format es escencialmente una envoltura para la función strftime() + de PHP. Usted debera tener mas o menos especificadores de conversiones + disponibles de acuerdo con la función strftime() del sistema operacional + en donde PHP fue compilado. Cheque en la pagina del manual de su sistema + una lista completa de especificadores validos. + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-default.xml b/docs/es/designers/language-modifiers/language-modifier-default.xml new file mode 100644 index 00000000..8c51e649 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-default.xml @@ -0,0 +1,90 @@ + + + + default + + + + + + + + + + Pocisión del Parametro + Tipo + Requerido + Default + Descripción + + + + + 1 + string + No + empty + Este es el valor por defecto para mostrar una variable + que estuviera vacia. + + + + + + Este es usado para definir un valor por defecto para una variable. + Si esta variable estuviera vacia o no estuviera definida, el valor por + defecto es mostrado. El valor por defecto es usado como argumento. + + + default + +assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-escape.xml b/docs/es/designers/language-modifiers/language-modifier-escape.xml new file mode 100644 index 00000000..22e38011 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-escape.xml @@ -0,0 +1,102 @@ + + + + escape + + + + + + + + + + + Posición del Parametro + Tipo + Requerido + Posibles Valores + Default + Description + + + + + 1 + string + No + html,htmlall,url,quotes,hex,hexentity,javascript + html + Este es el formato de escape a utilizar. + + + + + + Este es usado para escapar html, url, comillas simples para escapar una + variable que no este escapada, escapar hex, hexentity o javascript. + Por default, la variable html es escapada. + + + escape + +assign('articleTitle', "'Stiff Opposition Expected to Casketless Funeral Plan'"); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + *} +{$articleTitle|escape:"htmlall"} {* escapes ALL html entities *} +{$articleTitle|escape:"url"} +{$articleTitle|escape:"quotes"} +{$EmailAddress|escape:"hexentity"} +]]> + + + Esta es la Salida: + + +bob@me.net +]]> + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-indent.xml b/docs/es/designers/language-modifiers/language-modifier-indent.xml new file mode 100644 index 00000000..8e2da55d --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-indent.xml @@ -0,0 +1,118 @@ + + + + indent + + + + + + + + + + Posición del Parametro + Tipo + requerido + Default + Descripción + + + + + 1 + integer + No + 4 + Este defíne con cuantos carácteres endentar. + + + 2 + string + No + (un espacio) + Este defíne cual carácter va a ser usado para endentar. + + + + + + Esta endenta una cadena en cada linea, el default es 4. + Como parámetro opcional, usted puede especificar el número de + carácteres para endentar. Como segundo parámetro opcional, + usted puede especificar el carácter que desea usar para endentar. + (Use "\t" para tabs.) + + + indent + +assign('articleTitle', 'NJ judge to rule on nude beach. +Sun or rain expected today, dark tonight. +Statistics show that teen pregnancy drops off significantly after 25.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-lower.xml b/docs/es/designers/language-modifiers/language-modifier-lower.xml new file mode 100644 index 00000000..516f6edb --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-lower.xml @@ -0,0 +1,60 @@ + + + + lower + + Esta es usada para convertir a minúsculas una variable. + + + lower + +assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-nl2br.xml b/docs/es/designers/language-modifiers/language-modifier-nl2br.xml new file mode 100644 index 00000000..5e1de275 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-nl2br.xml @@ -0,0 +1,59 @@ + + + + nl2br + + Todos los saltos de linea seran convertidos a etiquetas <br /> como + datos de la variable. Esto equivale a la función nl2br() de PHP. + + + nl2br + +assign('articleTitle', "Sun or rain expected\ntoday, dark tonight"); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + +today, dark tonight +]]> + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-regex-replace.xml b/docs/es/designers/language-modifiers/language-modifier-regex-replace.xml new file mode 100644 index 00000000..3671b7ef --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-regex-replace.xml @@ -0,0 +1,98 @@ + + + + regex_replace + + + + + + + + + + Posición del Parametro + Tipo + requerido + Default + Descripción + + + + + 1 + string + Si + n/a + Esta es la expresión regular a ser substituida. + + + 2 + string + Si + n/a + Esta es la cadena que sustituira a la expresión regular. + + + + + + Localiza una expresión regular y la remplaza en la variable. + Use la sintaxis para preg_replace() del manual de PHP. + + + regex_replace + +assign('articleTitle', "Infertility unlikely to\nbe passed on, experts say."); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-replace.xml b/docs/es/designers/language-modifiers/language-modifier-replace.xml new file mode 100644 index 00000000..7a6c9fbb --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-replace.xml @@ -0,0 +1,96 @@ + + + + replace + + + + + + + + + + Posición del Parametro + Tipo + Requerido + Default + Descripción + + + + + 1 + string + Si + n/a + Esta es la cadena a ser substituida. + + + 2 + string + Si + n/a + Esta es la cadena que ira a substituir. + + + + + + Una simple busqueda y substituir en la variable. + + + replace + +assign('articleTitle', "Child's Stool Great for Use in Garden."); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-spacify.xml b/docs/es/designers/language-modifiers/language-modifier-spacify.xml new file mode 100644 index 00000000..bffb77dc --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-spacify.xml @@ -0,0 +1,88 @@ + + + + spacify + + + + + + + + + + Posición del Parametro + Tipo + Requerido + Default + Descripción + + + + + 1 + string + No + one space + Este se inserta entre cada carácter de la variable. + + + + + + Inserta un espacio entre cada carácter de una variable. Usted puede + opcionalmente pasar un carácter (o una cadena) diferente para insertar. + + + spacify + +assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say.'); +$smarty->display('index.tpl'); +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-string-format.xml b/docs/es/designers/language-modifiers/language-modifier-string-format.xml new file mode 100644 index 00000000..5f6df089 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-string-format.xml @@ -0,0 +1,90 @@ + + + + string_format + + + + + + + + + + Posición del Parametro + Tipo + Requerido + Default + Descripción + + + + + 1 + string + Si + n/a + Este es el formato que debera usar. (sprintf) + + + + + + Esta es una manera de formatear cadenas, como números decimales y otros. + Use la sintaxis de sprintf para formatearlo. + + + string_format + +assign('number', 23.5787446); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-strip-tags.xml b/docs/es/designers/language-modifiers/language-modifier-strip-tags.xml new file mode 100644 index 00000000..51768eef --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-strip-tags.xml @@ -0,0 +1,91 @@ + + + + strip_tags + + + + + + + + + + Posición del Parametro + Tipo + Requerido + Default + descripción + + + + + 1 + bool + No + true + Este determina cuando las etiquetas seran remplazadas por ' ' + o por '' + + + + + + Este retira las etiquetas de marcación, basicamente todo entre < y >. + + + strip_tags + +assign('articleTitle', "Blind Woman Gets New +Kidney from Dad she Hasn't Seen in years."); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + +New Kidney from Dad she Hasn't Seen in years. +Blind Woman Gets New Kidney from Dad she Hasn't Seen in years . +Blind Woman Gets New Kidney from Dad she Hasn't Seen in years. +]]> + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-strip.xml b/docs/es/designers/language-modifiers/language-modifier-strip.xml new file mode 100644 index 00000000..24191dc6 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-strip.xml @@ -0,0 +1,71 @@ + + + + strip + + Este substituye todos los espacios repetidos, nuevas lineas y tabs + por un unico espacio u otra cadena indicada. + + + Nota + + Si usted quiere substituir bloques de texto de un template use la + función strip. + + + + strip + +assign('articleTitle', "Grandmother of\neight makes\t hole in one."); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-truncate.xml b/docs/es/designers/language-modifiers/language-modifier-truncate.xml new file mode 100644 index 00000000..14ebb6bd --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-truncate.xml @@ -0,0 +1,119 @@ + + + + truncate + + + + + + + + + + Posición del Parametro + Tipo + Requerido + Default + Desdcripción + + + + + 1 + integer + No + 80 + Este determina para cuantos carácteres truncar. + + + 2 + string + No + ... + Este es el texto para adicionar si el truncamiento ocurre. + + + 3 + boolean + No + false + Este determina cuando truncar o no o al final de una + palabra(false), o un carácter exacto(true). + + + + + + + Este trunca la variable en una cantidad de cacarteres, el default es 80. + Como segundo parámetro opcional, usted puede especificar una cadena + para mostrar al final si la variable fue truncada. Los carácteres en la + cadena son incluidos tamando el original para el truncamiento. + Por default, truncate intentara cortar al final de una palabra. + Se usted quisiera cortar una cantidad exacta de carácteres, pase el + tercer parámetro, que es opcional, como true. + + + truncate + +assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-upper.xml b/docs/es/designers/language-modifiers/language-modifier-upper.xml new file mode 100644 index 00000000..f6308426 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-upper.xml @@ -0,0 +1,60 @@ + + + + upper + + Este es usado para convertir a mayusculas una variable. + + + upper + +assign('articleTitle', "If Strike isn't Settled Quickly it may Last a While."); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + + + + + Esta es la Salida: + + + + + + + diff --git a/docs/es/designers/language-modifiers/language-modifier-wordwrap.xml b/docs/es/designers/language-modifiers/language-modifier-wordwrap.xml new file mode 100644 index 00000000..4bddbdb4 --- /dev/null +++ b/docs/es/designers/language-modifiers/language-modifier-wordwrap.xml @@ -0,0 +1,132 @@ + + + + wordwrap + + + + + + + + + + Posición del Parametro + Tipo + Requerido + Default + Descripción + + + + + 1 + integer + No + 80 + Este determina en cuantas columnas cortar. + + + 2 + string + No + \n + Esta es la cadena usada para cortar. + + + 3 + boolean + No + false + Este determina cuando cortar o no, o al final de una + palabra(false), o en un carácter exacto(true). + + + + + + + Este corta una cadena para un ancho de columna, el default es 80. + Como segundo parámetro opcional, usted puede especificar la cadena + que será usada para cortar el texto para la próxima linea (el default + es un retorno de carro \n). + Por default, wordwrap intentara cortar al final de una palabra. Si + usted quisiera cortar un tamaño exacto de cacarteres, pase al + tercer parámetro, que es opcional, como true. + + + wordwrap + +assign('articleTitle', "Blind woman gets new kidney from dad she hasn't seen in years."); +$smarty->display('index.tpl'); + +?> +]]> + + + Donde index.tpl es: + + +\n"} + +{$articleTitle|wordwrap:30:"\n":true} +]]> + + + Esta es la Salida: + + + +from dad she hasn't seen in
+years. + +Blind woman gets new kidney +from dad she hasn't seen in +years. +]]> +
+
+
+ diff --git a/docs/es/designers/language-variables.xml b/docs/es/designers/language-variables.xml new file mode 100644 index 00000000..9eaa0861 --- /dev/null +++ b/docs/es/designers/language-variables.xml @@ -0,0 +1,51 @@ + + + + Variables + + Smarty tiene varios tipos diferentes de variables. El tipo de variable + depende de cual simbolo este prefijado(incluido dentro). + + + Las variables de Smarty no pueden ser mostradas directamente o usadas + como argumentos para atributos de funciones y modificadores, dentro de + expresiones condicionales, etc. Para mostrar una variable, simplesmente + coloque esta entre delimitadores siendo esta la única cosa entre ellos. + Ejemplos: + + +]]> + + + + &designers.language-variables.language-assigned-variables; + &designers.language-variables.language-config-variables; + &designers.language-variables.language-variables-smarty; + + + + diff --git a/docs/es/designers/language-variables/language-assigned-variables.xml b/docs/es/designers/language-variables/language-assigned-variables.xml new file mode 100644 index 00000000..4ec33c3c --- /dev/null +++ b/docs/es/designers/language-variables/language-assigned-variables.xml @@ -0,0 +1,175 @@ + + + + Variables definidas desde PHP + + Las variables que son definidas desde PHP son referenciadas precedendo + estas con una señal de cifrado $. Las variables + definidas dentro del template como una función + assign también son + mostradas de esta manera. + + + + variables definidas + + +Your last login was on {$lastLoginDate}. +]]> + + + This will output: + + + +Your last login was on January 11th, 2001. +]]> + + + + + Arreglos asociativos + + Usted también puede referenciar matrices asociativas en variables + que son definidas desde PHP especificando la clave después del + simbolo '.'(punto). + + + Accesando variables de matriz asociativa + +assign('Contacts', + array('fax' => '555-222-9876', + 'email' => 'zaphod@slartibartfast.com', + 'phone' => array('home' => '555-444-3333', + 'cell' => '555-111-1234'))); +$smarty->display('index.tpl'); +?> +]]> + + + where the content of index.tpl is: + + + +{$Contacts.email}
+{* you can print arrays of arrays as well *} +{$Contacts.phone.home}
+{$Contacts.phone.cell}
+]]> +
+ + this will output: + + + +zaphod@slartibartfast.com
+555-444-3333
+555-111-1234
+]]> +
+
+
+ + Índices de Matrices + + Usted podra referencia matrizes por su índice, muy semejantes a la + sintaxis de PHP. + + + Accesando matrices por sus índices + +assign('Contacts', + array('555-222-9876', + 'zaphod@slartibartfast.com', + array('555-444-3333', + '555-111-1234'))); +$smarty->display('index.tpl'); + +?> +]]> + + + where index.tpl is: + + + +{$Contacts[1]}
+{* you can print arrays of arrays as well *} +{$Contacts[2][0]}
+{$Contacts[2][1]}
+]]> +
+ + This will output: + + + +zaphod@slartibartfast.com
+555-444-3333
+555-111-1234
+]]> +
+
+
+ + Objetos + + Las propiedades de los objetos definidos desde PHP pueden ser + referenciados especificando el nombre de la propiedad despué;s + del simbolo '->'. + + + Accesando propiedades de objetos + +name}
+email: {$person->email}
+]]> +
+ + this will output: + + + +email: zaphod@slartibartfast.com
+]]> +
+
+
+
+ diff --git a/docs/es/designers/language-variables/language-config-variables.xml b/docs/es/designers/language-variables/language-config-variables.xml new file mode 100644 index 00000000..d7b18476 --- /dev/null +++ b/docs/es/designers/language-variables/language-config-variables.xml @@ -0,0 +1,114 @@ + + + + Variables cargadas desde archivos de configuración + + Las variables que son cargadas de archivos de configuración son + referenciadas incluyendo entre ellas el signo(#), o como variables + de Smarty + $smarty.config. + La segunda sintaxis es util para incrustar valores de un atributo + dentro de comillas. + + + Variables de configuración + + foo.conf: + + + + + + index.tpl: + + + +{#pageTitle#} + + + + + + + +
FirstLastAddress
+ + +]]> +
+ + index.tpl: (alternate syntax) + + + +{$smarty.config.pageTitle} + + + + + + + +
FirstLastAddress
+ + +]]> +
+ + this will output for both examples: + + + +This is mine + + + + + + + +
FirstLastAddress
+ + +]]> +
+
+ + Las variables de un archivo de configuración no pueden ser + usadas hasta después de que son cargadas por los archivos de + configuración. + Este procedimento es explicado posteriormente en este documento en + config_load. + +
+ diff --git a/docs/es/designers/language-variables/language-variables-smarty.xml b/docs/es/designers/language-variables/language-variables-smarty.xml new file mode 100644 index 00000000..cd912c39 --- /dev/null +++ b/docs/es/designers/language-variables/language-variables-smarty.xml @@ -0,0 +1,165 @@ + + + + La variable reservada {$smarty} + + La variable reservada {$smarty} puede ser utilizada para accesar a + variables especiales del template. A continuación una lista completa. + + + + Solicitud de Variables + + La solicitud de variables como get, post, cookies, server, environment, y + session pueden ser accesadas como se muestra en los ejemplos de abajo: + + + Mostrando peticiones de variables + + + + + + + Por historicas razones {$SCRIPT_NAME} puede ser accesado directamente + sin embargo {$smarty.server.SCRIPT_NAME} es el sugerido para accesar + este valor. + + + + + + {$smarty.now} + + El timestamp actual puede ser accesado con {$smarty.now}. + El número refleja el número de segundos pasados desde la + llamada Epoca (1 de Enero de 1970) y puede ser pasado directamente + para el modificador date_format para mostrar la fecha. + + + Usando {$smarty.now} + + + + + + + {$smarty.const} + + Usted puede accesar el valor de constantes PHP directamente. + + + Usando {$smarty.const} + + + + + + + + {$smarty.capture} + + La salida capturada via {capture}..{/capture} puede ser accesada + usando la variable {$smarty}. + vea la sección capture + para un ejemplo. + + + + + {$smarty.config} + + La variable {$smarty} puede ser usada para referir variables de + configuración cargadas. + {$smarty.config.foo} es un sinónimo para {#foo#}. vea la sección + sobre config_load + para un ejemplo. + + + + + {$smarty.section}, {$smarty.foreach} + + La variable {$smarty} puede ser usada para hacer referencia a las + propiedades 'section' y 'foreach' del loop. Ver la documentación + sobre section y + foreach. + + + + + {$smarty.template} + + Esta variable contiene el nombre actual del template que esta siendo + procesado. + + + + {$smarty.version} + + Esta variable contiene la versión Smarty con que es compilado el + template. + + + + {$smarty.ldelim} + + Esta variable es usada para imprimir literalmente el valor left-delimiter. + Ver tambien {ldelim},{rdelim}. + + + + {$smarty.rdelim} + + Esta variable es usada para imprimir literalmente el valor right-delimiter. + Ver tambien {rdelim},{rdelim}. + + + + + diff --git a/docs/es/getting-started.xml b/docs/es/getting-started.xml new file mode 100644 index 00000000..0f995cc4 --- /dev/null +++ b/docs/es/getting-started.xml @@ -0,0 +1,546 @@ + + + + Iniciando + + + Que es Smarty? + + Smarty es un motor de plantillas para PHP. Mas especificamente, esta + herramienta facilita la manera de separar la aplicación lógica y el + contenido en la presentación. + La mejor descripción esta en una situación donde la aplicación + del programador y la plantilla del diseñador juegan diferentes roles, + o en la mayoria de los casos no la misma persona. Por ejemplo: + Digamos que usted crea una pagina web, es decir, despliega el articulo + de un diario. El encabezado del articulo, el rotulo, el autor y el + cuerpo son elementos del contenido, estos no contiene información de + como quieren ser presentados. Estos son pasados por la aplicación + Smarty, donde el diseñador edita la plantilla, y usa una combinación de + etiquetas HTML y etiquetas de plantilla para formatear la presentación + de estos elementos (HTML, tablas, color de fondo, tamaño de letras, + hojas de estilo, etc...). + Un día el programador necesita cambiar la manera de recuperar el + contenido del articulo(un cambio en la aplicación lógica.). Este + cambio no afectara al diseñador de la plantilla, el contenido llegara a + la plantilla exactamente igual. De la misma manera, si el diseñador de + la plantilla quiere rediseñarla en su totalidad, estos cambios no + afectaran la aplicación lógica. + Por lo tanto, el programador puede hacer cambios en la aplicación lógica + sin que sea necesario restructurar la plantilla. Y el diseñador de la + plantilla puede hacer cambios sin que haya rompimiento con la aplicación + lógica. + + + Ahora un pequeño resumen sobre que no hace Smarty. Smarty no intenta + separar completamente la lógica de la plantilla. No hay problema entre la + lógica y su plantilla bajo la condición que esta lógica sea + estrictamente para presentación. + Un consejo: mantener la aplicación lógica fuera de la plantilla, y la + presentación fuera de la aplicación lógica. + Esto tiene como finalidad tener un objeto mas manipulable y escalable para + un futuro proximo. + + + Un único aspecto acerca de Smarty es la compilación de la plantilla. + De esta manera Smarty lee la plantilla y crea los scripts de PHP. Una vez + creados, son executados sobre él. + Por consiguiente no existe ningún costo por analizar gramaticalmente + cada archivo de template por cada requisición, y cada template puede llevar + toda la ventaja del compilador de cache de PHP tal como Zend Accelerator + (&url.zend;) o PHP Accelerator + (&url.php-accelerator;). + + + Algunas de las características de Smarty: + + + + + Es extremamente rápido. + + + + + Es eficiente ya que puede interpretar el trabajo mas sucio. + + + + + No analiza gramaticalmente desde arriba el template, solo compila una vez. + + + + + El esta atento para solo recompilar los archivos de plantilla que fueron + cambiados. + + + + + Usted puede crear + funciones habituales + y modificadores de variables + customizados, de modo que el lenguaje de la platilla es altamente extensible. + + + + + Sintaxis de etiquetas delimitadoras para configuración de la plantilla, + así lo puede usar {}, {{}}, <!--{}-->, etc. + + + + + Los construtoress if/elseif/else/endif son pasados por el interpretador + de PHP, así la sintaxis de la expresión {if ...} puede ser compleja o + simple de la forma que usted quiera. + + + + + Permite un anidamiento ilimitado de sections, ifs, etc. + + + + + Es posible incrustar directamente codigo PHP en los archivos de plantilla, + aunque esto puede no ser necesario(no recomendado) dado que la herramienta + se puede ajustar. + + + + + Soporte de caching incrustado + + + + + Fuentes de Plantilla absoluto + + + + + Funciones habituales de manipulación de cache + + + + + Arquitectura de Plugin + + + + + + Instalación + + + Requerimentos + + Smarty Requiere un servidor web corriendo PHP 4.0.6 o posterior. + + + + + Instalación Básica + + Instale los archivos de la libreria de Smarty que estan en el directorio + de distribución /libs/. + Estos son los archivos PHP que usted NO EDITARA. Estos archivos son toda + las aplicaciones comunes y ellos son actualizados cuando usted actualiza + a una nueva versión de Smarty. + + + Archivos de la libreria Smarty + + + + + + Smarty utiliza una constante de PHP llamada SMARTY_DIR que es la ruta para + el directorio de la biblioteca de Smarty. Basicamente, si su + aplicación puede encontrar el archivo Smarty.class.php + , usted no necesita definir SMARTY_DIR, Smarty lo + encontrará. Por consiguiente si, Smarty.class.php + no esta incluido en el path, y no es abastecido por + una ruta absoluta para encontrar su aplicación, entonces usted + debe definir SMARTY_DIR manualmente. SMARTY_DIR debe + incluir una barra de seguimento. + + + Aquí esta un ejemplo de como se crea una instancia de Smarty en sus + scripts PHP: + + + + Creando una instancia Smarty de Smarty + + +]]> + + + + + Intente correr el script de arriba. Si usted obtiene un error diciendo que + el archivo Smarty.class.php + no fue encontrado, puedes usar una de las siguientes opciones: + + + + Reemplazar por la ruta absulta de la libreria del archivo + + +]]> + + + + + Adicionar el directorio de la libreria para incluirlo en el + include_path de PHP + + +]]> + + + + + Defina la constante SMARTY_DIR manualmente + + +]]> + + + + + Ahora que la libreria de archivos esta en su sitio, es tiempo + de configurar los directorios de Smarty para su aplicación. + Smarty require cuatro directorios (por defaul) llamados + templates, templates_c, + configs y cache. Cada + uno de estos son para definir las propiedades de las clases de Smarty. + $template_dir, $compile_dir, + $config_dir, y $cache_dir + respectivamente. Es altamente recomendado que usted configure un grupo + separado de estos directorios para cada aplicación que utilice de Smarty. + + + Asegurece que usted sabe la ubicación del document root de su servidor + web. En nuestro ejemplo, el document root esta en + "/web/www.mydomain.com/docs/". Los directorios de Smarty solo son + accesados por la libreria de Smarty y nunca son accesados directamente + por el navegador. Por consiguiente para evitar cualquier preocupación + con la seguridad, es recomendado colocar estos directorios + fuera del document root. + + + Para nuestro ejemplo de instalación, configuraremos el ambiente de Smarty + para una aplicación de libro de visitas. Escojemos una aplicación solo + con el proposito de crear un directorio de nombre convencional. + Usted puede usar el mismo ambiente para cualquier aplicación, solamente + sustituya "guestbook" con el nombre de su aplicación. + Nosotros colocaremos nuestros directorios de Smarty dentro de + "/web/www.mydomain.com/smarty/guestbook/". + + + Usted necesita tener por lo menos un archivo dentro de su document root, + y que sea accesado por el navegador. Nosotros llamamos el script de + "index.php", y lo colocamos en un subdirectorio dentro del document root + llamado "/guestbook/". + + + + Nota Técnica: + + Es conveniente configurar el servidor de forma que "index.php" pueda + ser identificado como el índice del directório padre, de esta manera + si usted accesa "http://www.mydomain.com/guestbook/", el script + index.php será ejecutado sin "index.php" ni la URL. + En Apache usted puede definir el sitio adicionando "index.php" en el + final de su configuración del directorio index + (separando cada uno con espacios.) + + + + + Veamos nuestra estructura de archivos hasta hora: + + + + Ejemplo de estrutura de archivo + + + + + + + Smarty necesitara permisos de escritura para + $compile_dir y $cache_dir, + esto garantiza que el usuario del servidor pueda escribir en ellos. + Este es generalmente el usuarios "nobody" y el grupo "nobody". + Para X usuarios de sistema, el default es "www" y el grupo "www". + Si usted esta usando Apache, puede ver en su archivo httpd.conf + (normalmente en "/usr/local/apache/conf/") cual es el usuario y + grupo que estan siendo usados. + + + + Configurando permisos de archivos + + + + + + + Nota Técnica: + + chmod 770 puede ser una seguridad bastante fuerte, solo le permite al + usuario "nobody" y al grupo "nobody" acesso de lectura/escritura a los + directorios. Si usted quiere abrir permiso de lectura a cualquiera + (en la mayoria de las veces para su propia conveniencia de querer ver + estos archivos), usted puede usar el 775 en lugar del 770. + + + + + Nosotros necesitamos crear el archivo index.tpl, para que Smarty lo + pueda cargar. Este estara localizado en su $template_dir. + + + + Editando /web/www.mydomain.com/smarty/guestbook/templates/index.tpl + + + + + + + Nota Técnica: + + {* Smarty *} Esto es un comentario en el template. + Este no es obligatorio, pero si una buena practica iniciar todos sus + archivos de plantilla con estos comentarios. + Esto hace facilmente reconocibles a los archivos a pesar la extención + del archivo. Por ejemplo, editores de texto pueden reconocer el archivo + y habilitar un realce de sintaxis especial. + + + + + Ahora vamos a editar el index.php. crearemos una instancia de Smarty, + daremos valor a las variables del template y mostraremos el archivo + index.tpl. + En el ambiente de nuestro ejemplo, "/usr/local/lib/php/Smarty" esta + dentro de include_path. Asegurese que exista el mismo, o utilice la + ruta absoluta. + + + + Editando /web/www.mydomain.com/docs/guestbook/index.php + +template_dir = '/web/www.mydomain.com/smarty/guestbook/templates/'; +$smarty->compile_dir = '/web/www.mydomain.com/smarty/guestbook/templates_c/'; +$smarty->config_dir = '/web/www.mydomain.com/smarty/guestbook/configs/'; +$smarty->cache_dir = '/web/www.mydomain.com/smarty/guestbook/cache/'; + +$smarty->assign('name','Ned'); + +$smarty->display('index.tpl'); +?> +]]> + + + + + Nota Técnica: + + En nuestro ejemplo, estamos configurando rutas absolutas para todos + los directorios de Smarty. + Si '/web/www.mydomain.com/smarty/guestbook/' está dentro de su + include_path de PHP, entonces estas declaraciones no son necesarias. + Sin embargo, esto es mas eficiente y (por experiencia) tiene menos + tendencia a errores en relación a determinar las rutas absolutas. + Esto garantiza que Smarty esta recibiendo los archivos del directorio + que usted desea. + + + + + Ahora carge el archivo index.php desde su navegador web. Usted debera + ver "Hello, Ned!" + + + Usted a completado la configuracion basica para el Smarty! + + + + Expandiendo la configuración + + + Esta es una continuación de la + instalación básica, por favor lea esta primero! + + + Una forma un poco mas flexible de configurar el Smarty, expandir las + clases e iniciar su ambiente de Smarty. Es, en vez de configurar rutas + de directorios repetidamente, asigne esas mismas a variables, etc., + nosotros podemos facilitar eso. Vamos a crear un nuevo directorio en + "/php/includes/guestbook/" y llamemos al nuevo archivo "setup.php". + En nuestro ejemplo, "/php/includes" está en nuestro include_path. + Verifique que usted también lo definio, o utilice rutas absolutas de + los archivos. + + + + Editando /php/includes/guestbook/setup.php + +Smarty(); + + $this->template_dir = '/web/www.mydomain.com/smarty/guestbook/templates/'; + $this->compile_dir = '/web/www.mydomain.com/smarty/guestbook/templates_c/'; + $this->config_dir = '/web/www.mydomain.com/smarty/guestbook/configs/'; + $this->cache_dir = '/web/www.mydomain.com/smarty/guestbook/cache/'; + + $this->caching = true; + $this->assign('app_name','Guest Book'); + } + +} +?> +]]> + + + + + Ahora vamos a modificar el archivo index.php para usar el setup.php: + + + + Editando /web/www.mydomain.com/docs/guestbook/index.php + +assign('name','Ned'); + +$smarty->display('index.tpl'); +?> +]]> + + + + + Ahora usted vera que es completamente simple crear una instancia de + Smarty, solo use Smarty_GuestBook, que automáticamente inicializa todo + para nuestra aplicación. + + + + + + + + diff --git a/docs/es/preface.xml b/docs/es/preface.xml new file mode 100644 index 00000000..f7889415 --- /dev/null +++ b/docs/es/preface.xml @@ -0,0 +1,103 @@ + + + + Prólogo + + Esta es indudablemente una de las preguntas que mas se hacen en las listas + de correo de PHP: Como hacer mis scripts de PHP independientes del diseño?. + Mientras PHP se encarga de como "incrustar scripts en lenguaje HTML", + después de escribir los proyectos que mezclan PHP y HTML libremente, + esto trae como consecuencia la idea de separar la forma y el contenido, + muy buena idea[TM]. En adición, en muchas compañias la + interpretación de esquema es diseñador y programador por separado. + Por consiguiente, la busqueda trae como solución una plantilla(template). + + + Por ejemplo en nuestra compañia, el desarrollo de una aplicación es + como sigue: Después de tener la documentación necesaria, el + diseñador de web diseña el prototipo de la interfaz y la entrega al + programador. El programador implementa las reglas de negocio en PHP y usa el + prototipo para crear el "esqueleto" de la plantilla. + El proyeto esta en manos de la persona responsable del HTML designer/web page + que produzca la plantilla para su gloria completa. El proyecto debe ir y regresar + entre programación/HTML varias veces. De esa manera, es importante para + tener un buen suporte de templates porque los programadores no quieren hacer nada + con HTML ni quieren diseño HTML al rededor del codigo PHP. + Los diseñadores precisan de soporte para archivos de configuración, bloques + dinámicos y otras interfaces usadas, mas ellos no quieren ocuparse con las + compejidades del lenguaje de programación PHP. + + + Buscando, actualmente existen muchas soluciones de templates disponibles para + PHP, la mayor parte de ellos les provee de una forma rudimentaria de + sustitución de variables dentro del template y hace una forma limitada + de la funcionalidad dinámica del bloque. + Pero nuestras necesidades requieren mas que eso. + Porque no queremos programadores que no quieran tener trato con HTML del todo, + pero esto puede ser casi inevitable. + Por ejemplo, si un diseñador quiere alternar colores de fondo sobre bloques + dinámicos, esto tuvo que trabajarse con el programador anticipadamente. + Nosotros necesitamos también que los diseñadores esten capacitados para + usar archivos de configuración, y colocar variables de ellos dentro de + los templates. La lista continua. + + + Nosotros empezamos escribiendo por fuera una especulación para un + motor de plantillas(templates) atrasado de 1999. + Después de terminar la especulación, comenzamos a trabajar + un motor de plantillas escrito en C que esperanzadoramente fue aceptado + para ser incorporado con PHP. + No solamente nos encontramos con algunas complicadas barreras tecnicas, + si no también hubo acalorados debates sobre lo que exactamente + debia de hacer o no un motor de plantillas. + De esta experiencia, decidimos que un motor de platillas devería + ser escrito en PHP como una clase, para que cualquiera lo use de la misma + forma como ellos ven. + Así nosotros escribimos un motor que es SmartTemplate + nunca volvio a existir(nota: esa clase nunca fue + enviada al público). Esta era una clase que ralizaba casi todo lo que nosotros + necesitabamos: sustitución de variables regulares, soporte incluso + de otras plantillas, integración con archivos de configuración, + incrustación de código PHP, funcionalidades 'if' limitada y muchos + mas bloques dinámicos robustos que podrían ser anidados muchas veces. + Todo esto con expresiones regulares y el código producido seria mejor, como + diriamos nosotros, impenetrable. + Eso era también notoriamente lento en grandes aplicaciones por todas + las interpretaciones y expresiones regulares trabajando en cada + requisición. + El mayor problema del punto de vista de un programador era todo el trabajo + necesario en el procesamiento del scripts PHP y procesamiento de bloques + dinámicos de la plantilla. Como hacemos eso facilmente? + + + Entonces se origino la visión de que finalmente se convirtiera en + Smarty. Nosotros sabemos que rápido es el código PHP sin las cabeceras + y la interpretación de plantillas(templates). + También sabemos que meticuloso y arrogante es el lenguaje PHP su poder + debe ser aceptable para un diseñador, y este podría ser enmascarado con + una simples sintaxis de plantillas(templates). + Entonces que pasara si nosotros convinamos las dos fuerzas? + De esta manera, nacio Smarty... + + + + diff --git a/docs/es/programmers/advanced-features.xml b/docs/es/programmers/advanced-features.xml new file mode 100644 index 00000000..e490ecc8 --- /dev/null +++ b/docs/es/programmers/advanced-features.xml @@ -0,0 +1,35 @@ + + + + Caracteristicas Avanzadas +&programmers.advanced-features.advanced-features-objects; +&programmers.advanced-features.advanced-features-prefilters; + +&programmers.advanced-features.advanced-features-postfilters; + +&programmers.advanced-features.advanced-features-outputfilters; + +&programmers.advanced-features.section-template-cache-handler-func; + +&programmers.advanced-features.template-resources; + + diff --git a/docs/es/programmers/advanced-features/advanced-features-objects.xml b/docs/es/programmers/advanced-features/advanced-features-objects.xml new file mode 100644 index 00000000..d8c83c94 --- /dev/null +++ b/docs/es/programmers/advanced-features/advanced-features-objects.xml @@ -0,0 +1,117 @@ + + + + Objetos + + El Smarty permite acceso a objetos de PHP a través de sus templates. + Hay dos formas de accesarlos. Una forma es registrando objetos para el + template, entonces acceselos mediante sintaxis similar a las funciones + habituales. La otra es asignar objetos al template y accesarlos como si + fueran una variable asignada. El primer método tiene una sintaxis de + template mucho mas agradable. Y también mas segura, a medida que un + objeto registrado puede ser reescrito a ciertos métodos y propiedades. + Sin embargo tanto, un objeto registrado no puede ser puesto en loop o + ser asignado en arreglos de objetos, etc. El método que usted escoja + sera determinado por sus necesidades, pero utilice el primero método si + es posible para mantener un minimo de sintaxis en el template. + + + Si la seguridad esta habilitada, ninguno de los dos métodos privados o + funciones pueden ser accesados (comenzando con "_"). Si un metodo y + propiedades de un mismo nombre existe, el método será usado. + + + Usted puede restringir los métodos y propiedades que pueden ser accesados + listandolos en un arreglo como el tercer parámetro de registro. + + + Por default, los parámetros pasados a los objetos a a través de los + templates son pasados de la misma forma en que las funciones de + costumbre los obtienen. Un arreglo asociativo es pasado como el primer + parámetro, y el objeto smarty como el segundo. Si usted quiere que los + parámetros pasados uno de cada vez por cada argumento pasen como + parámetros de un objeto tradicional, defina el cuarto parámetro de + registro en falso. + + + El quinto parámetro opcional solo tiene efecto con + format siendo true + y conteniendo una lista de métodos de ob que seran tratados + como bloques. Esto significa que estos métodos tienen una + etiqueta de cierre en el template + ({foobar->meth2}...{/foobar->meth2}) y + los parámetros para los métodos tienen la misma sinopsis como + los parámetros de block-function-plugins: Ellos reciben 4 + parámetros $params, + $content,&$smarty + y &$repeat también se comportan como + block-function-plugins. + + + usando un objeto registrado o atribuido + +register_object("foobar",$myobj); + +// Si usted quiere restringir acceso a ciertos metodos o propriedades, +// listelos +$smarty->register_object("foobar",$myobj,array('meth1','meth2','prop1')); + +// Si usted quiere usar el formato de parámetro del objeto tradicional, +// pase un booleano en false +$smarty->register_object("foobar",$myobj,null,false); + +// también puede asignar ojetos. Posible cuando se asignan por +// referencia. +$smarty->assign_by_ref("myobj", $myobj); + +$smarty->display("index.tpl"); +?> + +TEMPLATE: + +{* accesando a nuestro objeto registrado *} +{foobar->meth1 p1="foo" p2=$bar} + +{* usted también puede asignar la salida *} +{foobar->meth1 p1="foo" p2=$bar assign="output"} +the output was {$output} + +{* accesando a nuestro objeto asignado *} +{$myobj->meth1("foo",$bar)} +]]> + + + + diff --git a/docs/es/programmers/advanced-features/advanced-features-outputfilters.xml b/docs/es/programmers/advanced-features/advanced-features-outputfilters.xml new file mode 100644 index 00000000..1a6ff1a0 --- /dev/null +++ b/docs/es/programmers/advanced-features/advanced-features-outputfilters.xml @@ -0,0 +1,69 @@ + + + + Filtros de salida + + Cuando el template es invocado a través de display() o fetch(), + su salida puede ser enviada a través de uno o mas filtros de salida. + Este es diferente a los postfilters porque los postfilters operan en + los templates compilados antes de ser salvados en disco, y los filtros + de salida operan en la salida del template cuando este es ejecutado. + + + + Los Filtros de Salida pueden ser + registrado o + cargados del directorio de plugins usando la función + load_filter() o + configurando a variable + $autoload_filters. + El Smarty pasara la salida como el primer argumento, y espera + que la función retorne el resultado del procesamiento. + + + Usando un filtro de salida de template + +register_outputfilter("protect_email"); +$smarty->display("index.tpl"); + +// Ahora cualquier ocurrencia de una dirección de email en la salida +// del template tendra una simple protección contra spambots + +?> +]]> + + + + diff --git a/docs/es/programmers/advanced-features/advanced-features-postfilters.xml b/docs/es/programmers/advanced-features/advanced-features-postfilters.xml new file mode 100644 index 00000000..f0b01fc2 --- /dev/null +++ b/docs/es/programmers/advanced-features/advanced-features-postfilters.xml @@ -0,0 +1,59 @@ + + + + Postfilters + + Los postfilters de template son funciones de PHP con las cuales sus + templates son corridos inmediatamente después de ser compilados. + Los postfilters pueden ser + registrado o cargados del directorio de plugins usando la función + load_filter() o por la variable + de configuración + $autoload_filters. + El Smarty pasara el código fuente del template + compilado como el primer argumento, y espera que la función retorne el + resultado del procesamiento. + + + Usando un postfilter de template + +;\n\" ?>;\n".$tpl_source; +} + +// registra el postfilter +$smarty->register_postfilter("add_header_comment"); +$smarty->display("index.tpl"); +?> + +{* compiled Smarty template index.tpl *} + +{* rest of template content... *} +]]> + + + + diff --git a/docs/es/programmers/advanced-features/advanced-features-prefilters.xml b/docs/es/programmers/advanced-features/advanced-features-prefilters.xml new file mode 100644 index 00000000..bef72bc6 --- /dev/null +++ b/docs/es/programmers/advanced-features/advanced-features-prefilters.xml @@ -0,0 +1,61 @@ + + + + Prefilters + + Los prefilters de Template son funciones de PHP que corren sus + templates antes de ser compilados. Esto es bueno para procesar + por adelantado sus templates y remover comentarios no deseados, + vigilando a las personas que coloquen en sus templates, etc. + Los Prefilters pueden ser + registrado + o cargado del directorio de plugins usando la función + load_filter() o por la + configuración de la variable + $autoload_filters. + El Smarty pasara el código fuente del template como el primer argumento, + y espera que la función le retorne el código fuente del template + resultante. + + + usando un prefiltro prefilter de template + +/U","",$tpl_source); +} + +// registrar el prefilter +$smarty->register_prefilter("remove_dw_comments"); +$smarty->display("index.tpl"); +?> + +{* Smarty template index.tpl *} + +]]> + + + + diff --git a/docs/es/programmers/advanced-features/section-template-cache-handler-func.xml b/docs/es/programmers/advanced-features/section-template-cache-handler-func.xml new file mode 100644 index 00000000..40929495 --- /dev/null +++ b/docs/es/programmers/advanced-features/section-template-cache-handler-func.xml @@ -0,0 +1,158 @@ + + + + Función manipuladora de cache + + Como una alternativa al uso del mecanismo de caching por default + basado en archivo, usted puede especificar una función habitual + de manipulación de cache que será usada para leer, escribir y + limpar archivos de cache. + + + Cree una función en su aplicación para que Smarty la use como un + manipulador de cache. Defina el nombre de la variable de clase en el + $cache_handler_func. + El Smarty ahora usara esta para manipular datos en el cache. El primer + parámetro es la acción, que puede ser uno de estos 'read', 'write' y + 'clear'. El segundo parámetro es el objeto de Smarty. El tercer parámetro + es el contenido que esta en el cache. Sobre 'write', el Smarty pasa el + contenido en cache en estos parámetros. sobre 'read', el Smarty espera + que su función acepte este parámetro por referencia y poblar estos con los + datos en cache. Sobre 'clear', el Smarty pasa una variable en cero desde + aquí que esta no es usada. El cuarto parámetro es el nombre del archivo de + template(necesario para leer/escribir). El quinto parámetro es la cache_id + (opcional). El sexto parámetro es la compile_id (opcional). + + + NOTA: El ultimo parámetro ($exp_time) fue adicionado en el Smarty-2.6.0. + + + ejemplo usando MySQL como una fuente de cache + +cache_handler_func = 'mysql_cache_handler'; + +$smarty->display('index.tpl'); + + +mysql database is expected in this format: + +create database SMARTY_CACHE; + +create table CACHE_PAGES( +CacheID char(32) PRIMARY KEY, +CacheContents MEDIUMTEXT NOT NULL +); + +*/ + +function mysql_cache_handler($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null, $exp_time=null) +{ + // set db host, user and pass here + $db_host = 'localhost'; + $db_user = 'myuser'; + $db_pass = 'mypass'; + $db_name = 'SMARTY_CACHE'; + $use_gzip = false; + + // create unique cache id + $CacheID = md5($tpl_file.$cache_id.$compile_id); + + if(! $link = mysql_pconnect($db_host, $db_user, $db_pass)) { + $smarty_obj->_trigger_error_msg("cache_handler: could not connect to database"); + return false; + } + mysql_select_db($db_name); + + switch ($action) { + case 'read': + // read cache from database + $results = mysql_query("select CacheContents from CACHE_PAGES where CacheID='$CacheID'"); + if(!$results) { + $smarty_obj->_trigger_error_msg("cache_handler: query failed."); + } + $row = mysql_fetch_array($results,MYSQL_ASSOC); + + if($use_gzip && function_exists("gzuncompress")) { + $cache_contents = gzuncompress($row["CacheContents"]); + } else { + $cache_contents = $row["CacheContents"]; + } + $return = $results; + break; + case 'write': + // save cache to database + + if($use_gzip && function_exists("gzcompress")) { + // compress the contents for storage efficiency + $contents = gzcompress($cache_content); + } else { + $contents = $cache_content; + } + $results = mysql_query("replace into CACHE_PAGES values( + '$CacheID', + '".addslashes($contents)."') + "); + if(!$results) { + $smarty_obj->_trigger_error_msg("cache_handler: query failed."); + } + $return = $results; + break; + case 'clear': + // clear cache info + if(empty($cache_id) && empty($compile_id) && empty($tpl_file)) { + // clear them all + $results = mysql_query("delete from CACHE_PAGES"); + } else { + $results = mysql_query("delete from CACHE_PAGES where CacheID='$CacheID'"); + } + if(!$results) { + $smarty_obj->_trigger_error_msg("cache_handler: query failed."); + } + $return = $results; + break; + default: + // error, unknown action + $smarty_obj->_trigger_error_msg("cache_handler: unknown action \"$action\""); + $return = false; + break; + } + mysql_close($link); + return $return; + +} + +?> +]]> + + + + diff --git a/docs/es/programmers/advanced-features/template-resources.xml b/docs/es/programmers/advanced-features/template-resources.xml new file mode 100644 index 00000000..a2e5e984 --- /dev/null +++ b/docs/es/programmers/advanced-features/template-resources.xml @@ -0,0 +1,239 @@ + + + + Recursos + + Los templates pueden venir de una variedad de fuentes. Cuando usted + muestra un template con (display) o (fetch), o incluye un template + dentro de otro template, usted suministra un tipo de recurso, seguido + por la ruta correcta y el nombre del template. + Si un recurso no es dado explicitamente el valor de + $default_resource_type + es asumido. + + + Templates partiendo del $template_dir + + Los templates desde el $template_dir no requieren recursos del + template, aunque usted puede usar el file: resource for + consistancy(recurso por consistencia). Justamente proporcionando + la ruta(path) del template que usted quiere usar en relación al + directorio root $template_dir. + + + Usando templates partiendo del $template_dir + +display("index.tpl"); +$smarty->display("admin/menu.tpl"); +$smarty->display("file:admin/menu.tpl"); // agual al de arriba +?> + +{* dentro del template de Smarty *} +{include file="index.tpl"} +{include file="file:index.tpl"} {* igual al de arriba *} +]]> + + + + + Templates partiendo de cualquier directorio + + Los templates de fuera del $template_dir requieren el file: tipo + de recurso del template, seguido por la ruta absoluta y el nombre + del template. + + + usando templates partiendo de cualquier directorio + +display("file:/export/templates/index.tpl"); +$smarty->display("file:/path/to/my/templates/menu.tpl"); +?> + +{* desde adentro del template Smarty *} +{include file="file:/usr/local/share/templates/navigation.tpl"} +]]> + + + + + Rutas de archivos de Windows + + Si usted esta utilizando una maquina con windows, las rutas de + los archivos normalmente incluyen la letra del drive (C:) en el + comienzo del nombre de la ruta. Asegurarse de usar "file:" en la + ruta para evitar conflictos de nombres y poder obtener los + resultados desados. + + + usando templates con rutas de archivos de windows + +display("file:C:/export/templates/index.tpl"); +$smarty->display("file:F:/path/to/my/templates/menu.tpl"); +?> + +{* dentro del template de Smarty *} +{include file="file:D:/usr/local/share/templates/navigation.tpl"} +]]> + + + + + + + Templates partiendo de otras fuentes + + Se pueden retomar templates usando cualquier fuente posible a la + que usted pueda acceder con PHP: base de datos, sockets, LDAP, etc. + Usted puede hacer esto escribiendo las funciones de plugin de recurso + y registrandolas con Smarty. + + + + Vea la sección resource plugins + para mayor informacion sobre las funciones que puede utilizar. + + + + + Nota Usted puede activar manualmente el recurso file + incrustado, pero no puede suministrar un recurso que busca templates a + partir del sistema de archivos de alguna otra forma registrando bajo + otro nombre de recurso. + + + + Usando recursos habituales + +query("select tpl_source + from my_table + where tpl_name='$tpl_name'"); + if ($sql->num_rows) { + $tpl_source = $sql->record['tpl_source']; + return true; + } else { + return false; + } +} + +function db_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj) +{ + // ejecutar la base de datos llamar aquí para poblar + // $tpl_timestamp. + $sql = new SQL; + $sql->query("select tpl_timestamp + from my_table + where tpl_name='$tpl_name'"); + if ($sql->num_rows) { + $tpl_timestamp = $sql->record['tpl_timestamp']; + return true; + } else { + return false; + } +} + +function db_get_secure($tpl_name, &$smarty_obj) +{ + // asume que todos los templates son seguros + return true; +} + +function db_get_trusted($tpl_name, &$smarty_obj) +{ + // no usar para templates +} + +// registrar el nombre del recurso "db" +$smarty->register_resource("db", array("db_get_template", + "db_get_timestamp", + "db_get_secure", + "db_get_trusted")); + +// usando el recurso a partir del script PHP +$smarty->display("db:index.tpl"); +?> + +{* usando el recurso dentro del template de Smarty *} +{include file="db:/extras/navigation.tpl"} +]]> + + + + + + Función manipuladora de Template por default + + Usted puede especificar la función que será usada para devolver + el contenido del template dentro del evento del template no puede + ser retomado desde su recurso. Un uso distinto es para crear + templates que no existen "on-the-fly" (templates cuyo contenido + cambia mucho, bastante variable). + + + usando la función manipuladora de template por default + +_write_file($resource_name,$template_source); + return true; + } + } else { + // not a file + return false; + } +} + +// defina la función manipuladora por default +$smarty->default_template_handler_func = 'make_template'; +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions.xml b/docs/es/programmers/api-functions.xml new file mode 100644 index 00000000..f1f0695d --- /dev/null +++ b/docs/es/programmers/api-functions.xml @@ -0,0 +1,72 @@ + + + + Metodos + + +
+ + <para></para> + </section> + </partintro> +&programmers.api-functions.api-append; +&programmers.api-functions.api-append-by-ref; +&programmers.api-functions.api-assign; +&programmers.api-functions.api-assign-by-ref; +&programmers.api-functions.api-clear-all-assign; +&programmers.api-functions.api-clear-all-cache; +&programmers.api-functions.api-clear-assign; +&programmers.api-functions.api-clear-cache; +&programmers.api-functions.api-clear-compiled-tpl; +&programmers.api-functions.api-clear-config; +&programmers.api-functions.api-config-load; +&programmers.api-functions.api-display; +&programmers.api-functions.api-fetch; +&programmers.api-functions.api-get-config-vars; +&programmers.api-functions.api-get-registered-object; +&programmers.api-functions.api-get-template-vars; +&programmers.api-functions.api-is-cached; +&programmers.api-functions.api-load-filter; +&programmers.api-functions.api-register-block; +&programmers.api-functions.api-register-compiler-function; +&programmers.api-functions.api-register-function; +&programmers.api-functions.api-register-modifier; +&programmers.api-functions.api-register-object; +&programmers.api-functions.api-register-outputfilter; +&programmers.api-functions.api-register-postfilter; +&programmers.api-functions.api-register-prefilter; +&programmers.api-functions.api-register-resource; +&programmers.api-functions.api-trigger-error; + +&programmers.api-functions.api-template-exists; +&programmers.api-functions.api-unregister-block; +&programmers.api-functions.api-unregister-compiler-function; +&programmers.api-functions.api-unregister-function; +&programmers.api-functions.api-unregister-modifier; +&programmers.api-functions.api-unregister-object; +&programmers.api-functions.api-unregister-outputfilter; +&programmers.api-functions.api-unregister-postfilter; +&programmers.api-functions.api-unregister-prefilter; +&programmers.api-functions.api-unregister-resource; + +</reference> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-append-by-ref.xml b/docs/es/programmers/api-functions/api-append-by-ref.xml new file mode 100644 index 00000000..189750ea --- /dev/null +++ b/docs/es/programmers/api-functions/api-append-by-ref.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.append.by.ref"> + <refnamediv> + <refname>append_by_ref</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>append_by_ref</methodname> + <methodparam><type>string</type><parameter>varname</parameter></methodparam> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + <methodparam choice="opt"><type>bool</type><parameter>merge</parameter></methodparam> + </methodsynopsis> + <para> + Este es usado para adicionar valores al templete por referencia. + Si usted adiciona una variable por referencia entonces cambiara su valor, + el valor asignado sufrira el cambio también. Para objetos, append_by_ref() + también envia una copia en memoria del objeto adicionado. Vea el manual de + PHP en referenciando variables para una mejor explicación del asunto. + Si usted pasa el tercer parámetro en true, el valor será mezclado con el + arreglo en ves de ser adicionado. + </para> + ¬e.parameter.merge; + <example> + <title>append_by_ref + +append_by_ref("Name", $myname); +$smarty->append_by_ref("Address", $address); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-append.xml b/docs/es/programmers/api-functions/api-append.xml new file mode 100644 index 00000000..ce3a294b --- /dev/null +++ b/docs/es/programmers/api-functions/api-append.xml @@ -0,0 +1,66 @@ + + + + + append + + + + + <methodsynopsis> + <type>void</type><methodname>append</methodname> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <methodsynopsis> + <type>void</type><methodname>append</methodname> + <methodparam><type>string</type><parameter>varname</parameter></methodparam> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + <methodparam choice="opt"><type>bool</type><parameter>merge</parameter></methodparam> + </methodsynopsis> + <para> + Este es usado para adicionar un elemento en un arreglo asignado. + Si usted adiciona una cadena como valor, este se convertira en + un valor del arreglo y entonces lo adiciona. Usted puede + explicitamente pasar pares de nombres/valores, o arreglos asociativos + conteniendo los pares nombre/valor. Si usted pasa el tercer parámetro + opcional como true, el valor se únira al arreglo actual en vez de ser + adicionado. + </para> + ¬e.parameter.merge; + <example> + <title>append + +append("Name", "Fred"); +$smarty->append("Address", $address); + +// passing an associative array +$smarty->append(array("city" => "Lincoln", "state" => "Nebraska")); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-assign-by-ref.xml b/docs/es/programmers/api-functions/api-assign-by-ref.xml new file mode 100644 index 00000000..170adfe4 --- /dev/null +++ b/docs/es/programmers/api-functions/api-assign-by-ref.xml @@ -0,0 +1,64 @@ + + + + + assign_by_ref + + + + + <methodsynopsis> + <type>void</type><methodname>assign_by_ref</methodname> + <methodparam><type>string</type><parameter>varname</parameter></methodparam> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <para> + Este es usado para asignar valores por referencia al template en vez + de hacer una copia. Vea el manual de PHP en la parte sobre referencia + de variables para una explicación mas detallada. + </para> + <note> + <title>Nota Técnica + + Este es usado para asignar valores por referencia al template. + Si ested asigna una variable por referencia entonces cambiara + este valor, el valor asignado exprimentara el cambio también. + Para objetos, assign_by_ref() también exite una copia del + objetos asignado en memoria. Vea el manual de PHP en refereciando + variables para una mejor explicación. + + + + assign_by_ref + +assign_by_ref('Name', $myname); +$smarty->assign_by_ref('Address', $address); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-assign.xml b/docs/es/programmers/api-functions/api-assign.xml new file mode 100644 index 00000000..f5ac60be --- /dev/null +++ b/docs/es/programmers/api-functions/api-assign.xml @@ -0,0 +1,60 @@ + + + + + assign + + + + + <methodsynopsis> + <type>void</type><methodname>assign</methodname> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <methodsynopsis> + <type>void</type><methodname>assign</methodname> + <methodparam><type>string</type><parameter>varname</parameter></methodparam> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <para> + Este es usado para asignar valores al template. Usted puede + explicitamente pasar pares de nombres/valores, o un arreglo + asociativo conteniendo el par de nombre/valor. + </para> + <example> + <title>assign + +assign('Name', 'Fred'); +$smarty->assign('Address', $address); + +// passing an associative array +$smarty->assign(array("city" => "Lincoln", "state" => "Nebraska")); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-clear-all-assign.xml b/docs/es/programmers/api-functions/api-clear-all-assign.xml new file mode 100644 index 00000000..58b69bc5 --- /dev/null +++ b/docs/es/programmers/api-functions/api-clear-all-assign.xml @@ -0,0 +1,49 @@ + + + + + clear_all_assign + + + + + <methodsynopsis> + <type>void</type><methodname>clear_all_assign</methodname> + <void /> + </methodsynopsis> + <para> + Esto limpia el valor de todas las variables asignadas. + </para> + <example> + <title>clear_all_assign + +clear_all_assign(); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-clear-all-cache.xml b/docs/es/programmers/api-functions/api-clear-all-cache.xml new file mode 100644 index 00000000..328ec1f9 --- /dev/null +++ b/docs/es/programmers/api-functions/api-clear-all-cache.xml @@ -0,0 +1,51 @@ + + + + + clear_all_cache + + + + + <methodsynopsis> + <type>void</type><methodname>clear_all_cache</methodname> + <methodparam choice="opt"><type>int</type><parameter>expire_time</parameter></methodparam> + </methodsynopsis> + <para> + Esto limpia completamente el cache del template. Como un parámetro + opcional, usted puede proporcionar un periodo minimo en segundos + que el archivo de cache debe tener antes de ser anulado. + </para> + <example> + <title>clear_all_cache + +clear_all_cache(); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-clear-assign.xml b/docs/es/programmers/api-functions/api-clear-assign.xml new file mode 100644 index 00000000..41cf2ca8 --- /dev/null +++ b/docs/es/programmers/api-functions/api-clear-assign.xml @@ -0,0 +1,53 @@ + + + + + clear_assign + + + + + <methodsynopsis> + <type>void</type><methodname>clear_assign</methodname> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <para> + Esto limpia el valor de una viariable asignada. Este puede ser un + valor simple, o un arreglo de valores. + </para> + <example> + <title>clear_assign + +clear_assign("Name"); + +// clear multiple variables +$smarty->clear_assign(array("Name", "Address", "Zip")); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-clear-cache.xml b/docs/es/programmers/api-functions/api-clear-cache.xml new file mode 100644 index 00000000..170a05ec --- /dev/null +++ b/docs/es/programmers/api-functions/api-clear-cache.xml @@ -0,0 +1,64 @@ + + + + + clear_cache + + + + + <methodsynopsis> + <type>void</type><methodname>clear_cache</methodname> + <methodparam><type>string</type><parameter>template</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>expire_time</parameter></methodparam> + </methodsynopsis> + <para> + Esto limpia el cahce de un <parameter>template</parameter> especifico. + Si usted tiene multiples caches en este archivo, usted puede limpiar un + cache especifico proporcionando el <parameter>cache_id</parameter> como + segundo parámetro Usted también puede pasar el + <parameter>compile_id</parameter> como un tercer parámetro. + Usted puede "agrupar" templates conjuntamente de esta manera estos pueden + ser removidos como un grupo. Vea el + <link linkend="caching">caching section</link> para mayor información. + Como un cuarto parámetro opcional, usted puede proporcionar un periodo + minimo en segundos que el archivo de cache debe tener antes de ser anulado. + </para> + <example> + <title>clear_cache + +clear_cache("index.tpl"); + +// clear the cache for a particular cache id in an multiple-cache template +$smarty->clear_cache("index.tpl", "CACHEID"); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-clear-compiled-tpl.xml b/docs/es/programmers/api-functions/api-clear-compiled-tpl.xml new file mode 100644 index 00000000..7e93e3ba --- /dev/null +++ b/docs/es/programmers/api-functions/api-clear-compiled-tpl.xml @@ -0,0 +1,60 @@ + + + + + clear_compiled_tpl + + + + + <methodsynopsis> + <type>void</type><methodname>clear_compiled_tpl</methodname> + <methodparam choice="opt"><type>string</type><parameter>tpl_file</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>exp_time</parameter></methodparam> + </methodsynopsis> + <para> + Esto limpia la versión compilada del recurso del template especificado, + o todos los archivos de templates compilados si no fueron especificados. + si usted lo pasa compile_is es limpiado. si usted lo pasa con ex_time, + entonces solo compilara los templates anteriores al exp_time segundo + seran limpiados, por default todos los templates son compilados y + limpiados independientemente de su tiempo de vida. + Esta función es solo para uso avanzado, normalmente no es necesaria. + </para> + <example> + <title>clear_compiled_tpl + +clear_compiled_tpl("index.tpl"); + +// clear entire compile directory +$smarty->clear_compiled_tpl(); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-clear-config.xml b/docs/es/programmers/api-functions/api-clear-config.xml new file mode 100644 index 00000000..edd5c249 --- /dev/null +++ b/docs/es/programmers/api-functions/api-clear-config.xml @@ -0,0 +1,54 @@ + + + + + clear_config + + + + + <methodsynopsis> + <type>void</type><methodname>clear_config</methodname> + <methodparam choice="opt"><type>string</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <para> + Esto limpia todas las variables de configuración asignadas. + Si es proporcionado el nombre de una variable, solamente esta + variable es limpiada. + </para> + <example> + <title>clear_config + +clear_config(); + +// clear one variable +$smarty->clear_config('foobar'); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-config-load.xml b/docs/es/programmers/api-functions/api-config-load.xml new file mode 100644 index 00000000..892e3058 --- /dev/null +++ b/docs/es/programmers/api-functions/api-config-load.xml @@ -0,0 +1,68 @@ + + + + + config_load + + + + + <methodsynopsis> + <type>void</type><methodname>config_load</methodname> + <methodparam><type>string</type><parameter>file</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>section</parameter></methodparam> + </methodsynopsis> + <para> + Esto carga el <parameter>archivo</parameter> de configuración de + datos y lo asigna al template. Esto funciona idéntico a la función + <link linkend="language.function.config.load">config_load</link>. + </para> + <note> + <title>Nota Técnica + + A partir de Smarty 2.4.0, las variables de template asignadas son + mantenidas a través de fetch() y display(). Las variables de + configuración cargadas de config_load() son siempre de alcance global. + Los archivos de configuracion también son compilados para + execución rapida, y respetar el + force_compile y + compile_check de + configuración. + + + + config_load + +config_load('my.conf'); + +// load a section +$smarty->config_load('my.conf', 'foobar'); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-display.xml b/docs/es/programmers/api-functions/api-display.xml new file mode 100644 index 00000000..0910937c --- /dev/null +++ b/docs/es/programmers/api-functions/api-display.xml @@ -0,0 +1,102 @@ + + + + + display + + + + + <methodsynopsis> + <type>void</type><methodname>display</methodname> + <methodparam><type>string</type><parameter>template</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> + </methodsynopsis> + <para> + Este despliega el template. cargando un tipo valido de path + <link linkend="template.resources">template resource</link>. + Como un segundo parámetro opcional, usted puede pasar un + identificador de cache. + Vea el <link linkend="caching">caching section</link> para mayor + información. + </para> + ¶meter.compileid; + <example> + <title>display + +caching = true; + +// only do db calls if cache doesn't exist +if(!$smarty->is_cached("index.tpl")) { + + // dummy up some data + $address = "245 N 50th"; + $db_data = array( + "City" => "Lincoln", + "State" => "Nebraska", + "Zip" => "68502" + ); + + $smarty->assign("Name","Fred"); + $smarty->assign("Address",$address); + $smarty->assign($db_data); + +} + +// display the output +$smarty->display("index.tpl"); +?> +]]> + + + + Use la sintaxis template resources + para mostrar archivos fuera del directorio $template_dir. + + + Ejemplos de recursos de la función display + +display("/usr/local/include/templates/header.tpl"); + +// absolute filepath (same thing) +$smarty->display("file:/usr/local/include/templates/header.tpl"); + +// windows absolute filepath (MUST use "file:" prefix) +$smarty->display("file:C:/www/pub/templates/header.tpl"); + +// include from template resource named "db" +$smarty->display("db:header.tpl"); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-fetch.xml b/docs/es/programmers/api-functions/api-fetch.xml new file mode 100644 index 00000000..744a14c2 --- /dev/null +++ b/docs/es/programmers/api-functions/api-fetch.xml @@ -0,0 +1,86 @@ + + + + + fetch + + + + + <methodsynopsis> + <type>string</type><methodname>fetch</methodname> + <methodparam><type>string</type><parameter>template</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> + </methodsynopsis> + <para> + Este retorna la salida del template en vez de desplegarla. + Proporcionando un tipo y path valido + <link linkend="template.resources">template resource</link>. + Como un segundo parámetro opcional, usted puede pasar el + identificador de cache. + vea el <link linkend="caching">caching section</link> para + mayor información. + </para> + ¶meter.compileid; + <para> + <example> + <title>fetch + +caching = true; + +// only do db calls if cache doesn't exist +if(!$smarty->is_cached("index.tpl")) { + + // dummy up some data + $address = "245 N 50th"; + $db_data = array( + "City" => "Lincoln", + "State" => "Nebraska", + "Zip" => "68502" + ); + + $smarty->assign("Name","Fred"); + $smarty->assign("Address",$address); + $smarty->assign($db_data); + +} + +// capture the output +$output = $smarty->fetch("index.tpl"); + +// do something with $output here + +echo $output; +?> +]]> + + + + + + diff --git a/docs/es/programmers/api-functions/api-get-config-vars.xml b/docs/es/programmers/api-functions/api-get-config-vars.xml new file mode 100644 index 00000000..01c468d4 --- /dev/null +++ b/docs/es/programmers/api-functions/api-get-config-vars.xml @@ -0,0 +1,57 @@ + + + + + get_config_vars + + + + + <methodsynopsis> + <type>array</type><methodname>get_config_vars</methodname> + <methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam> + </methodsynopsis> + <para> + Este retona el valor de la variable de configuración dado. + Si no tiene un parámetro dado, un arreglo de todas las variables + de los archivos de configuración es retornado. + </para> + <example> + <title>get_config_vars + +get_config_vars('foo'); + +// get all loaded config template vars +$config_vars = $smarty->get_config_vars(); + +// take a look at them +print_r($config_vars); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-get-registered-object.xml b/docs/es/programmers/api-functions/api-get-registered-object.xml new file mode 100644 index 00000000..eb7d56b5 --- /dev/null +++ b/docs/es/programmers/api-functions/api-get-registered-object.xml @@ -0,0 +1,57 @@ + + + + + get_registered_object + + + + + <methodsynopsis> + <type>array</type><methodname>get_registered_object</methodname> + <methodparam><type>string</type><parameter>object_name</parameter></methodparam> + </methodsynopsis> + <para> + Este retorna una referencia para un objeto registrado. + Este es útil dentro de una función habitual cuando usted + necesita acesar directamente a un objeto registrado. + </para> + <example> + <title>get_registered_object + +get_registered_object($params['object']); + // use $obj_ref is now a reference to the object + } +} +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-get-template-vars.xml b/docs/es/programmers/api-functions/api-get-template-vars.xml new file mode 100644 index 00000000..ed51754b --- /dev/null +++ b/docs/es/programmers/api-functions/api-get-template-vars.xml @@ -0,0 +1,57 @@ + + + + + get_template_vars + + + + + <methodsynopsis> + <type>array</type><methodname>get_template_vars</methodname> + <methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam> + </methodsynopsis> + <para> + Este retorna el valor de una variable asignada. Si no tiene un + parámetro dado, un arreglo de todas las variables asignadas es + retornado. + </para> + <example> + <title>get_template_vars + +get_template_vars('foo'); + +// get all assigned template vars +$tpl_vars = $smarty->get_template_vars(); + +// take a look at them +print_r($tpl_vars); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-is-cached.xml b/docs/es/programmers/api-functions/api-is-cached.xml new file mode 100644 index 00000000..2cd111ab --- /dev/null +++ b/docs/es/programmers/api-functions/api-is-cached.xml @@ -0,0 +1,107 @@ + + + + + is_cached + + + + + <methodsynopsis> + <type>bool</type><methodname>is_cached</methodname> + <methodparam><type>string</type><parameter>template</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> + </methodsynopsis> + <para> + Este retorna true si hay un cache valido para ese template. + Esto solamente funciona si <link linkend="variable.caching"> + caching</link> está asignado a true. + </para> + <example> + <title>is_cached + +caching = true; + +if(!$smarty->is_cached("index.tpl")) { +// do database calls, assign vars here +} + +$smarty->display("index.tpl"); +?> +]]> + + + + Usted también puede pasar un identificador de cache como un + segundo parámetro opcional en el caso que usted quiera multiples + caches para el template dado. + + + Usted puede proporcionar el identidicador como un tercer parametro + opcional. Si usted omite ese parametro la persistencia del + $compile_id es usada. + + + Si usted no quiere pasar el identificador de cache solamente + quiere pasar el compile id debe pasar null + como el identidficador de cache. + + + is_cached con templates con multiple-cache + +caching = true; + +if(!$smarty->is_cached("index.tpl", "FrontPage")) { + // do database calls, assign vars here +} + +$smarty->display("index.tpl", "FrontPage"); +?> +]]> + + + + + + Nota técnica + + Si is_cached retorna true el carga actualmente + la salida del cache y lo guarda internamente. cualquier subsecuente + llama a display() o + fetch() y retorna este internamente + guardando la salida y no intenta volver a cargar el archivo del cache. + Esto previene una condicion de la carrera que puede ocurrir cuando un + segundo proceso limpie el cache entre las llamadas a is_cached mostradas + en el ejemplo de arriba. Esto significa tambien llamar al + clear_cache() y otros cambios + en el cache-settings que no tiene efecto despues que + is_cached retorna true. + + + + + diff --git a/docs/es/programmers/api-functions/api-load-filter.xml b/docs/es/programmers/api-functions/api-load-filter.xml new file mode 100644 index 00000000..27a77dca --- /dev/null +++ b/docs/es/programmers/api-functions/api-load-filter.xml @@ -0,0 +1,55 @@ + + + + + load_filter + + + + + <methodsynopsis> + <type>void</type><methodname>load_filter</methodname> + <methodparam><type>string</type><parameter>type</parameter></methodparam> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Esta función puede ser usada para cargar un filtro de plugin. + El primer argumento especifíca el tipo de filtro a cargar y puede + ser uno de los siguientes: 'pre', 'post', o 'output'. El segundo + argumento especifíca el nombre del filtro del plugin, por ejemplo, + 'trim'. + </para> + <example> + <title>loading filter plugins + +load_filter('pre', 'trim'); // load prefilter named 'trim' +$smarty->load_filter('pre', 'datefooter'); // load another prefilter named 'datefooter' +$smarty->load_filter('output', 'compress'); // load output filter named 'compress' +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-register-block.xml b/docs/es/programmers/api-functions/api-register-block.xml new file mode 100644 index 00000000..92f98c46 --- /dev/null +++ b/docs/es/programmers/api-functions/api-register-block.xml @@ -0,0 +1,91 @@ + + + + + register_block + + + + + <methodsynopsis> + <type>void</type><methodname>register_block</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + <methodparam><type>mixed</type><parameter>impl</parameter></methodparam> + <methodparam><type>bool</type><parameter>cacheable</parameter></methodparam> + <methodparam><type>mixed</type><parameter>cache_attrs</parameter></methodparam> + </methodsynopsis> + <para> + Use este para registrar dinámicamente bloques de funciones de + plugins. Pase el bloque de nombres de función, seguido por una + llamada de función PHP que implemente esto. + </para> + <para> + La llamada de una funcion-php <parameter>impl</parameter> + puede ser cualquier (a) cadena conteniendo el nombre de la + función o (b) un arreglo con el formato + <literal>array(&$object, $method)</literal> con + <literal>&$object</literal> siendo la referencia a un + objeto y <literal>$method</literal> siendo una cadena + conteniendo el nombre del método o (c) un arreglo con el + formato <literal>array(&$class, $method)</literal> con + <literal>$class</literal> siendo un nombre de clase y + <literal>$method</literal> siendo un método de esta clase. + </para> + <para> + <parameter>cacheable</parameter> y <parameter>cache_attrs</parameter> + pueden ser omitidos en la mayoria de los casos. Vea <link + linkend="caching.cacheable">Controlando modos de salida de cache de los + plugins </link> para saber como usar las propiedades. + </para> + <example> + <title>register_block + +register_block("translate", "do_translation"); + +function do_translation ($params, $content, &$smarty, &$repeat) +{ + if (isset($content)) { + $lang = $params['lang']; + // do some translation with $content + return $translation; + } +} +?> +]]> + + + Donde el template es: + + + + + + + + diff --git a/docs/es/programmers/api-functions/api-register-compiler-function.xml b/docs/es/programmers/api-functions/api-register-compiler-function.xml new file mode 100644 index 00000000..4f72e5a9 --- /dev/null +++ b/docs/es/programmers/api-functions/api-register-compiler-function.xml @@ -0,0 +1,61 @@ + + + + + register_compiler_function + + + + + <methodsynopsis> + <type>bool</type><methodname>register_compiler_function</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + <methodparam><type>mixed</type><parameter>impl</parameter></methodparam> + <methodparam><type>bool</type><parameter>cacheable</parameter></methodparam> + </methodsynopsis> + <para> + Use esto para registrar dinámicamente una función compiladora + de plugin. Pase el nombre de la función compiladora, seguido + por la función PHP que implemente esto. + </para> + <para> + La llamada a la funcion-php <parameter>impl</parameter> puede ser + (a) una cadena conteniendo el nombre de la función o + (b) un arreglo en el formato + <literal>array(&$object, $method)</literal> con + <literal>&$object</literal> siendo una referencia para + un objeto y <literal>$method</literal> siendo una cadena conteniendo + el nombre del método o + (c) un arreglo en el formato + <literal>array(&$class, $method)</literal> con + <literal>$class</literal> siendo un nombre de + clase y <literal>$method</literal> siendo el método de esta clase. + </para> + <para> + <parameter>cacheable</parameter> puede ser omitido en la mayoria + de los casos. + Vea <link linkend="caching.cacheable">Controlando modos de Salida de + Cache de los Plugins</link> para obtener mayor información. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-register-function.xml b/docs/es/programmers/api-functions/api-register-function.xml new file mode 100644 index 00000000..9b00f1c6 --- /dev/null +++ b/docs/es/programmers/api-functions/api-register-function.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.register.function"> + <refnamediv> + <refname>register_function</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>register_function</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + <methodparam><type>mixed</type><parameter>impl</parameter></methodparam> + <methodparam><type>bool</type><parameter>cacheable</parameter></methodparam> + <methodparam><type>mixed</type><parameter>cache_attrs</parameter></methodparam> + </methodsynopsis> + <para> + Use este para registrar funciones de plugins dinámicamente para + el template. Pase en el template el nombre de la función, seguido + por el nombre de la función PHP que implementa esto. + </para> + <para> + La llamada a la funcion-php <parameter>impl</parameter> puede ser + (a) una cadena conteniendo el nombre de la función o + (b) un arreglo en el formato + <literal>array(&$object, $method)</literal> con + <literal>&$object</literal> siendo una referencia para + un objeto y <literal>$method</literal> siendo una cadena + conteniendo el nombre del método o + (c) un arreglo en el formato + <literal>array(&$class, $method)</literal> con + <literal>$class</literal> siendo un nombre de clase y + <literal>$method</literal> siendo un método de esta clase. + </para> + <para> + <parameter>cacheable</parameter> y <parameter>cache_attrs</parameter> + pueden ser omitidos en la mayoria de los casos. + Vea <link linkend="caching.cacheable">Controlando modos de Salida Cache de + los Plugins</link> para obtener mayores informes. + </para> + <example> + <title>register_function + +register_function("date_now", "print_current_date"); + +function print_current_date($params) +{ + if(empty($params['format'])) { + $format = "%b %e, %Y"; + } else { + $format = $params['format']; + return strftime($format,time()); + } +} +// ahora usted puede usar eso en el Smarty para mostrar la fecha actual: +// {date_now} o, {date_now format="%Y/%m/%d"} para formatearle. +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-register-modifier.xml b/docs/es/programmers/api-functions/api-register-modifier.xml new file mode 100644 index 00000000..c8d517ff --- /dev/null +++ b/docs/es/programmers/api-functions/api-register-modifier.xml @@ -0,0 +1,68 @@ + + + + + register_modifier + + + + + <methodsynopsis> + <type>void</type><methodname>register_modifier</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + <methodparam><type>mixed</type><parameter>impl</parameter></methodparam> + </methodsynopsis> + <para> + Use este para modificar dinámicamente plugins registrados. + Pase en el template el nombre del modificador, seguido de la + función PHP que implemente esto. + </para> + <para> + La llamada de la funcion-php <parameter>impl</parameter> puede ser + (a) una cadena conteniendo el nombre de la función o + (b) un arreglo en el formato + <literal>array(&$object, $method)</literal> con + <literal>&$object</literal> siendo una referencia para + un objeto y <literal>$method</literal> siendo una cadena conteniendo + el nombre del método o + (c) un arreglo en el formato + <literal>array(&$class, $method)</literal> con + <literal>$class</literal> siendo un nombre de clase y + <literal>$method</literal> siendo un método de esta clase. + </para> + <example> + <title>register_modifier + +register_modifier("sslash", "stripslashes"); + +// now you can use {$var|sslash} to strip slashes from variables +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-register-object.xml b/docs/es/programmers/api-functions/api-register-object.xml new file mode 100644 index 00000000..3a424063 --- /dev/null +++ b/docs/es/programmers/api-functions/api-register-object.xml @@ -0,0 +1,44 @@ + + + + + register_object + + + + + <methodsynopsis> + <type>void</type><methodname>register_object</methodname> + <methodparam><type>string</type><parameter>object_name</parameter></methodparam> + <methodparam><type>object</type><parameter>object</parameter></methodparam> + <methodparam><type>array</type><parameter>allowed_methods_properties</parameter></methodparam> + <methodparam><type>boolean</type><parameter>format</parameter></methodparam> + <methodparam><type>array</type><parameter>block_methods</parameter></methodparam> + </methodsynopsis> + <para> + Este es para registrar un objeto para usar en el template. + Vea <link linkend="advanced.features.objects">object section</link> + del manual para ejemplos. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-register-outputfilter.xml b/docs/es/programmers/api-functions/api-register-outputfilter.xml new file mode 100644 index 00000000..dc6e0e5e --- /dev/null +++ b/docs/es/programmers/api-functions/api-register-outputfilter.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.register.outputfilter"> + <refnamediv> + <refname>register_outputfilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>register_outputfilter</methodname> + <methodparam><type>mixed</type><parameter>function</parameter></methodparam> + </methodsynopsis> + <para> + Use este para registrar dinámicamente filtros de salida para + operaciones en la salida del template antes de mostrarlo. + Vea <link linkend="advanced.features.outputfilters">Filtros de + Salida de Templates</link> para mayores informes de como + configurar una función de filtro de salida. + </para> + <para> + La llamada de la funcion-php <parameter>function</parameter> + puede ser + (a) una cadena conteniendo un nombre de función o + (b) un arreglo en el formato + <literal>array(&$object, $method)</literal> con + <literal>&$object</literal> siendo una referencia para + un objeto y <literal>$method</literal> siendo una cadena + conteniendo el nombre del método o + (c) un arreglo en el formato + <literal>array(&$class, $method)</literal> con + <literal>$class</literal> siendo el nombre de la clase y + <literal>$method</literal> siendo un método de esta clase. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-register-postfilter.xml b/docs/es/programmers/api-functions/api-register-postfilter.xml new file mode 100644 index 00000000..60b08502 --- /dev/null +++ b/docs/es/programmers/api-functions/api-register-postfilter.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.register.postfilter"> + <refnamediv> + <refname>register_postfilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>register_postfilter</methodname> + <methodparam><type>mixed</type><parameter>function</parameter></methodparam> + </methodsynopsis> + <para> + Use esto para registrar dinámicamente postfiltros para + correr templates directos después de ser compilados. + Vea <link linkend="advanced.features.postfilters">postfiltros + de template</link> para mayores informes de como configurar + funciones de postfiltering. + </para> + <para> + La llamada de la funcion-php <parameter>function</parameter> + puede ser: + (a) una cadena conteniendo un nombre de función o + (b) un arreglo con el formato + <literal>array(&$object, $method)</literal> con + <literal>&$object</literal> siendo una referencia para un + objeto y <literal>$method</literal> siendo una cadena conteniendo + el nombre de un método o + (c) un arreglo con el formato + <literal>array(&$class, $method)</literal> con + <literal>$class</literal> siendo un nombre de clase y + <literal>$method</literal> siendo un método de esta clase. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-register-prefilter.xml b/docs/es/programmers/api-functions/api-register-prefilter.xml new file mode 100644 index 00000000..5d3d2650 --- /dev/null +++ b/docs/es/programmers/api-functions/api-register-prefilter.xml @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.register.prefilter"> + <refnamediv> + <refname>register_prefilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>register_prefilter</methodname> + <methodparam><type>mixed</type><parameter>function</parameter></methodparam> + </methodsynopsis> + <para> + Use esto para registrar prefiltros dinámicamente para correr + templates antes de que estos sean compilados. Vea + <link linkend="advanced.features.prefilters">template prefilters</link> + para mayores informes de como configurar una función de prefiltering. + </para> + <para> + La llamada de la funcion-php <parameter>function</parameter> + puede ser: + (a) una cadena conteniendo un nombre de función o + (b) un arreglo con el formato + <literal>array(&$object, $method)</literal> con + <literal>&$object</literal> siendo una referencia para un + objeto y <literal>$method</literal> siendo una cadena conteniendo + el nombre de un método o + (c) un arreglo con el formato + <literal>array(&$class, $method)</literal> con + <literal>$class</literal> siendo un nombre de clase y + <literal>$method</literal> siendo un método de esta clase. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-register-resource.xml b/docs/es/programmers/api-functions/api-register-resource.xml new file mode 100644 index 00000000..46c0d00c --- /dev/null +++ b/docs/es/programmers/api-functions/api-register-resource.xml @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.register.resource"> + <refnamediv> + <refname>register_resource</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>register_resource</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + <methodparam><type>array</type><parameter>resource_funcs</parameter></methodparam> + </methodsynopsis> + <para> + Use esto para registrar dinámicamente un recurso de plugin con Smarty. + Pase el nombre o el recurso y o el arreglo de funciones que implementa + esto. Vea <link linkend="template.resources">template resources</link> + para mayor información de como configurar una función para mandar llamar + templates. + </para> + <note> + <title>Nota técnica + + El nombre del recurso debe tener al menos dos caracteres de largo. + Un nombre de recurso de un carácter será ignorado y usado como parte + del path del archivo como, $smarty->display('c:/path/to/index.tpl'); + + + + La php-funcion-array resource_funcs debe tener + 4 o 5 elementos. Con 4 elementos los elementos son las llamadas para + las respectivas funciones de recurso "source", "timestamp", "secure" + y "trusted". Con 5 elementos el primer elemento + tiene que ser un objeto por referencia o un nombre de clase del objeto + o una clase implementando el recurso y los 4 elementos siguientes tiene + que ser los nombres de los métodos implementando "source", "timestamp", + "secure" y "trusted". + + + register_resource + +register_resource("db", array("db_get_template", +"db_get_timestamp", +"db_get_secure", +"db_get_trusted")); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-template-exists.xml b/docs/es/programmers/api-functions/api-template-exists.xml new file mode 100644 index 00000000..c8b70895 --- /dev/null +++ b/docs/es/programmers/api-functions/api-template-exists.xml @@ -0,0 +1,40 @@ + + + + + template_exists + + + + + <methodsynopsis> + <type>bool</type><methodname>template_exists</methodname> + <methodparam><type>string</type><parameter>template</parameter></methodparam> + </methodsynopsis> + <para> + Esta función checa si el template especificado existe. Este puede + aceptar un path para el template en el filesystem o un recurso de + cadena especificando el template. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-trigger-error.xml b/docs/es/programmers/api-functions/api-trigger-error.xml new file mode 100644 index 00000000..bfc3c8dc --- /dev/null +++ b/docs/es/programmers/api-functions/api-trigger-error.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.trigger.error"> + <refnamediv> + <refname>trigger_error</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>trigger_error</methodname> + <methodparam><type>string</type><parameter>error_msg</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>level</parameter></methodparam> + </methodsynopsis> + <para> + Esta función puede ser usada para la salida de un mensaje de error + usando Smarty. El parámetro <parameter>level</parameter> es uno de + los valores usados para la función de php trigger_error(), + ex.: E_USER_NOTICE, E_USER_WARNING, etc. + Por default es E_USER_WARNING. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-unregister-block.xml b/docs/es/programmers/api-functions/api-unregister-block.xml new file mode 100644 index 00000000..e39cf54e --- /dev/null +++ b/docs/es/programmers/api-functions/api-unregister-block.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.block"> + <refnamediv> + <refname>unregister_block</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_block</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Use esto para des-registrar dinámicamente un bloque de + funciones de plugin. Pase en el bloque el + <parameter>nombre</parameter> de la función. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-unregister-compiler-function.xml b/docs/es/programmers/api-functions/api-unregister-compiler-function.xml new file mode 100644 index 00000000..af17df9f --- /dev/null +++ b/docs/es/programmers/api-functions/api-unregister-compiler-function.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.compiler.function"> + <refnamediv> + <refname>unregister_compiler_function</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_compiler_function</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Use este para des-registrar dinámicamente una función de compilación. + pase el <parameter>nombre</parameter> de la función compiladora. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-unregister-function.xml b/docs/es/programmers/api-functions/api-unregister-function.xml new file mode 100644 index 00000000..e28e105d --- /dev/null +++ b/docs/es/programmers/api-functions/api-unregister-function.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.function"> + <refnamediv> + <refname>unregister_function</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_function</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Use esta para des-registrar dinámicamente una función de + plugin del template. Pase en el template el nombre de la función. + </para> + <example> + <title>unregister_function + +unregister_function("fetch"); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-unregister-modifier.xml b/docs/es/programmers/api-functions/api-unregister-modifier.xml new file mode 100644 index 00000000..075398d2 --- /dev/null +++ b/docs/es/programmers/api-functions/api-unregister-modifier.xml @@ -0,0 +1,52 @@ + + + + + unregister_modifier + + + + + <methodsynopsis> + <type>void</type><methodname>unregister_modifier</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Use este para des-registrar dinámicamente un modificador de plugin. + Pase en el template el nombre del modificador. + </para> + <example> + <title>unregister_modifier + +unregister_modifier("strip_tags"); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-functions/api-unregister-object.xml b/docs/es/programmers/api-functions/api-unregister-object.xml new file mode 100644 index 00000000..d7fc46f2 --- /dev/null +++ b/docs/es/programmers/api-functions/api-unregister-object.xml @@ -0,0 +1,38 @@ + + + + + unregister_object + + + + + <methodsynopsis> + <type>void</type><methodname>unregister_object</methodname> + <methodparam><type>string</type><parameter>object_name</parameter></methodparam> + </methodsynopsis> + <para> + Use este para des-registrar un objeto. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-unregister-outputfilter.xml b/docs/es/programmers/api-functions/api-unregister-outputfilter.xml new file mode 100644 index 00000000..6912bdcc --- /dev/null +++ b/docs/es/programmers/api-functions/api-unregister-outputfilter.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.outputfilter"> + <refnamediv> + <refname>unregister_outputfilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_outputfilter</methodname> + <methodparam><type>string</type><parameter>function_name</parameter></methodparam> + </methodsynopsis> + <para> + Use este para des-registrar dinámicamente un filtro de salida. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-unregister-postfilter.xml b/docs/es/programmers/api-functions/api-unregister-postfilter.xml new file mode 100644 index 00000000..16f82429 --- /dev/null +++ b/docs/es/programmers/api-functions/api-unregister-postfilter.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.postfilter"> + <refnamediv> + <refname>unregister_postfilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_postfilter</methodname> + <methodparam><type>string</type><parameter>function_name</parameter></methodparam> + </methodsynopsis> + <para> + Use esto para des-registrar dinámicamente un postfiltro. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-unregister-prefilter.xml b/docs/es/programmers/api-functions/api-unregister-prefilter.xml new file mode 100644 index 00000000..090dfea3 --- /dev/null +++ b/docs/es/programmers/api-functions/api-unregister-prefilter.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.prefilter"> + <refnamediv> + <refname>unregister_prefilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_prefilter</methodname> + <methodparam><type>string</type><parameter>function_name</parameter></methodparam> + </methodsynopsis> + <para> + Use esto para des-registrar dinámicamente un prefiltro. + </para> + </refsect1> +</refentry> +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +--> diff --git a/docs/es/programmers/api-functions/api-unregister-resource.xml b/docs/es/programmers/api-functions/api-unregister-resource.xml new file mode 100644 index 00000000..579fc925 --- /dev/null +++ b/docs/es/programmers/api-functions/api-unregister-resource.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.resource"> + <refnamediv> + <refname>unregister_resource</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_resource</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Use esto para des-registrar dinámicamente un recurso de plugin. + Pase en el parámetro el nombre del recurso. + </para> + <example> + <title>unregister_resource + +unregister_resource("db"); +?> +]]> + + + + + diff --git a/docs/es/programmers/api-variables.xml b/docs/es/programmers/api-variables.xml new file mode 100644 index 00000000..61c07392 --- /dev/null +++ b/docs/es/programmers/api-variables.xml @@ -0,0 +1,61 @@ + + + + Variables + +&programmers.api-variables.variable-template-dir; +&programmers.api-variables.variable-compile-dir; +&programmers.api-variables.variable-config-dir; +&programmers.api-variables.variable-plugins-dir; +&programmers.api-variables.variable-debugging; +&programmers.api-variables.variable-debug-tpl; +&programmers.api-variables.variable-debugging-ctrl; +&programmers.api-variables.variable-autoload-filters; +&programmers.api-variables.variable-compile-check; +&programmers.api-variables.variable-force-compile; +&programmers.api-variables.variable-caching; +&programmers.api-variables.variable-cache-dir; +&programmers.api-variables.variable-cache-lifetime; +&programmers.api-variables.variable-cache-handler-func; +&programmers.api-variables.variable-cache-modified-check; +&programmers.api-variables.variable-config-overwrite; +&programmers.api-variables.variable-config-booleanize; +&programmers.api-variables.variable-config-read-hidden; +&programmers.api-variables.variable-config-fix-newlines; +&programmers.api-variables.variable-default-template-handler-func; +&programmers.api-variables.variable-php-handling; +&programmers.api-variables.variable-security; +&programmers.api-variables.variable-secure-dir; +&programmers.api-variables.variable-security-settings; +&programmers.api-variables.variable-trusted-dir; +&programmers.api-variables.variable-left-delimiter; +&programmers.api-variables.variable-right-delimiter; +&programmers.api-variables.variable-compiler-class; +&programmers.api-variables.variable-request-vars-order; +&programmers.api-variables.variable-request-use-auto-globals; +&programmers.api-variables.variable-error-reporting; +&programmers.api-variables.variable-compile-id; +&programmers.api-variables.variable-use-sub-dirs; +&programmers.api-variables.variable-default-modifiers; +&programmers.api-variables.variable-default-resource-type; + + \ No newline at end of file diff --git a/docs/es/programmers/api-variables/variable-autoload-filters.xml b/docs/es/programmers/api-variables/variable-autoload-filters.xml new file mode 100644 index 00000000..518cf7ac --- /dev/null +++ b/docs/es/programmers/api-variables/variable-autoload-filters.xml @@ -0,0 +1,44 @@ + + + + $autoload_filters + + Si existe algun filtro que usted desea cargar en cada llamada de + template, usted puede especificar cual variable usar y el Smarty + ira automáticamente a cargarlos para usted. La variable es un + arreglo asociativo donde las llaves son tipos de filtro y los + valores son arreglos de nombres de filtros. + Por ejemplo: + + +autoload_filters = array('pre' => array('trim', 'stamp'), + 'output' => array('convert')); +?> +]]> + + + + + + diff --git a/docs/es/programmers/api-variables/variable-cache-dir.xml b/docs/es/programmers/api-variables/variable-cache-dir.xml new file mode 100644 index 00000000..d612bc6b --- /dev/null +++ b/docs/es/programmers/api-variables/variable-cache-dir.xml @@ -0,0 +1,48 @@ + + + + $cache_dir + + Este es el nombre del directorio donde los caches del template + son almacenados. Por default es "./cache", esto significa que + buscara el directorio de cache en el mismo directorio que ejecuta + el scripts PHP. Usted puede usar también su propia función habitual + de mantenimiento de cache para manipular los archivos de cache, que + ignorará está configuración. + + + Nota Técnica + + Esta configuración debe ser cualquiera de las dos, un path + relativo o absoluto. include_path no es usado para escribir archivos. + + + + Nota Técnica + + No es recomendado colocar este directorio bajo el directorio + document root de su servidor web. + + + + + diff --git a/docs/es/programmers/api-variables/variable-cache-handler-func.xml b/docs/es/programmers/api-variables/variable-cache-handler-func.xml new file mode 100644 index 00000000..91add9e8 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-cache-handler-func.xml @@ -0,0 +1,33 @@ + + + + $cache_handler_func + + Usted puede proporcionar una función por default para manipular + archivos de cache en vez de usar el metodo incrustado usando el + $cache_dir. Para mayor detalle vea la sección + + cache handler function section. + + + + diff --git a/docs/es/programmers/api-variables/variable-cache-lifetime.xml b/docs/es/programmers/api-variables/variable-cache-lifetime.xml new file mode 100644 index 00000000..26d9b0d3 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-cache-lifetime.xml @@ -0,0 +1,54 @@ + + + + $cache_lifetime + + Este es la duración del tiempo en segundos que un cache de template + es valido. Una vez que este tiempo está expirado, el cache sera + regenerado. $caching debe ser asignado a "true" para $cache_lifetime + hasta tener algún propósito. Un valor de -1 forza el cache a nunca + expirar. Un valor de 0 forzara a que el cache sea siempre regenerado + (bueno solo para probar, el método mas eficiente para desabilitar cache + es asignar $caching = false.) + + + Si $force_compile + está habilitado, los archivos de cache serán regenerados todo el + tiempo, efectivamente desabilitando caching. Usted puede limpiar + todos los archivos de cache con la función + clear_all_cache(), + o archivos individuales de cache (o grupos) con la función + clear_cache(). + + + Nota Técnica + + Si usted quisiera dar a ciertos templates su propio tiempo de + vida de cache, usted puede hacer esto asignando + $caching = 2, entonces + determina $cache_lifetime a un único valor justo antes de llamar + display() o fetch(). + + + + + diff --git a/docs/es/programmers/api-variables/variable-cache-modified-check.xml b/docs/es/programmers/api-variables/variable-cache-modified-check.xml new file mode 100644 index 00000000..fae0c3cc --- /dev/null +++ b/docs/es/programmers/api-variables/variable-cache-modified-check.xml @@ -0,0 +1,35 @@ + + + + $cache_modified_check + + Si es asignado true, Smarty respetara el If-Modified-Since + encabezado enviado para el cliente. Si el timestamp del + archivo de cache no fue alterado desde la ultima visita, + entonces un encabezado "304 Not Modified" sera enviado en + vez del contenido. + Esto funciona solamente en archivos de cache sin etiquetas + insert. + + + + diff --git a/docs/es/programmers/api-variables/variable-caching.xml b/docs/es/programmers/api-variables/variable-caching.xml new file mode 100644 index 00000000..c8a6a181 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-caching.xml @@ -0,0 +1,45 @@ + + + + $caching + + Este informa al Smarty si hay o no salida de cache para el template. + Por default tiene asignado 0, o desabilitado. Si su template genera + contenido redundante, es necesario ligar el caching. Esto tendra un + benefico significativo en el rendimiento. Usted puede tener multiples + caches para el mismo template. Un valor de 1 o 2 caching habilitados. + 1 anuncia a Smarty para usar la variable actual $cache_lifetime hasta + determinar si el cache expiro. Un valor 2 anuncia a Smarty para usar + el valor cache_lifetime al tiempo en que le cache fue generado. + De esta manera usted puede determinar el cache_lifetime inmediatamente + antes de buscar el template para tener el control cuando este cache en + particular expira. + Vea también is_cached. + + + Si $compile_check está habilitado, el contenido del cache se regenerara + si alguno de los dos templates o archivos de configuración que son parte + de este cache estuviera modificado. Si $force_compile está habilitado, + el contenido del cache siempre sera regenerado. + + + diff --git a/docs/es/programmers/api-variables/variable-compile-check.xml b/docs/es/programmers/api-variables/variable-compile-check.xml new file mode 100644 index 00000000..dd3ceeb9 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-compile-check.xml @@ -0,0 +1,43 @@ + + + + $compile_check + + En cada llamada de la aplicación PHP, Smarty prueba para ver si el + template actual fue modificado (diferentes time stamp) desde la + ultima compilación. Si este fue modificado, se recompilara el template. + Si el template no fue compilado, este ira a compilar de cualquier + manera esa configuración. Por default esta variable es determinada como + true. Una vez que la aplicación esta en producción (los templates no + seran modificados), el paso compile_check no es necesario. asegurese de + determinar $compile_check a "false" para un mejor funcionamiento. + Note que si usted modifica está para "false" y el archivo de template + está modificado, usted *no* vera los cambios desde el template hasta que + no sea recompilado. Si el cache esta habilitado y compile_check está + habilitado, entonces los archivos de cache tienen que ser regenerados si + el archivo de template es muy complejo o el archivo de configuración fue + actualizado. + vea $force_compile + o clear_compiled_tpl. + + + diff --git a/docs/es/programmers/api-variables/variable-compile-dir.xml b/docs/es/programmers/api-variables/variable-compile-dir.xml new file mode 100644 index 00000000..1b906ea2 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-compile-dir.xml @@ -0,0 +1,45 @@ + + + + $compile_dir + + Ese es el nombre del directorio donde los templates compilados + están localizados, Por default están en "./templates_c", esto + significa que lo buscara en el directorio de templates en el + mismo directorio que esta ejecutando el script php. + + + Nota Técnica + + Esa configuración debe ser un path relativo o un path + absoluto. include_path no se usa para escribir archivos. + + + + Nota Técnica + + No es recomendado colocar este directorio bajo el directorio + document root de su servidor web. + + + + diff --git a/docs/es/programmers/api-variables/variable-compile-id.xml b/docs/es/programmers/api-variables/variable-compile-id.xml new file mode 100644 index 00000000..dd7e2475 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-compile-id.xml @@ -0,0 +1,31 @@ + + + + $compile_id + + Identificador de compilación persistente. Como una alternativa + para pasar el mismo compile_id a cada llamada de función, usted + puede asignar este compile_id y este será usado implicitamente + después. + + + diff --git a/docs/es/programmers/api-variables/variable-compiler-class.xml b/docs/es/programmers/api-variables/variable-compiler-class.xml new file mode 100644 index 00000000..6f5ad8e5 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-compiler-class.xml @@ -0,0 +1,30 @@ + + + + $compiler_class + + Especifica el nombre del compilador de clases que Smarty usara + para compilar los templates. El default es 'Smarty_Compiler'. + Solo para usuarios avanzados. + + + diff --git a/docs/es/programmers/api-variables/variable-config-booleanize.xml b/docs/es/programmers/api-variables/variable-config-booleanize.xml new file mode 100644 index 00000000..273f0f34 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-config-booleanize.xml @@ -0,0 +1,32 @@ + + + + $config_booleanize + + Si es asignado true, los valores del archivo de configuración de + on/true/yes y off/false/no se convierten en valores booleanos + automáticamente. De esta forma usted puede usar los valores en un + template como: {if #foobar#} ... {/if}. Si foobar estuviera on, + true o yes, la condición {if} se ejecutara. true es el default. + + + diff --git a/docs/es/programmers/api-variables/variable-config-dir.xml b/docs/es/programmers/api-variables/variable-config-dir.xml new file mode 100644 index 00000000..56756e80 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-config-dir.xml @@ -0,0 +1,39 @@ + + + + $config_dir + + Este es el directorio usado para almacenar archivos de + configuración usados en los templates. + El default es "./configs", esto significa que lo buscara + en el directorio de templates en el mismo directorio que + esta ejecutando el script php. + + + Nota Técnica + + No es recomendado colocar este directorio bajo el directorio + document root de su servidor web. + + + + diff --git a/docs/es/programmers/api-variables/variable-config-fix-newlines.xml b/docs/es/programmers/api-variables/variable-config-fix-newlines.xml new file mode 100644 index 00000000..7e73c630 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-config-fix-newlines.xml @@ -0,0 +1,30 @@ + + + + $config_fix_newlines + + Si es asignado true, mac y dos newlines (\r y \r\n) en el archivo de + configuración seran convertidos a \n cuando estos fueran interpretados. + true es el defaut. + + + diff --git a/docs/es/programmers/api-variables/variable-config-overwrite.xml b/docs/es/programmers/api-variables/variable-config-overwrite.xml new file mode 100644 index 00000000..0275b847 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-config-overwrite.xml @@ -0,0 +1,32 @@ + + + + $config_overwrite + + Si es asignado true, las variables leidas en el archivo de + configuración se sobreescribiran unas a otras. De lo contrario, + las variables seran guardadas en un arreglo. Esto es útil si usted + quiere almacenar arreglos de datos en archivos de configuracion, + solamente lista tiempos de cada elemento múltiplo. true por default. + + + diff --git a/docs/es/programmers/api-variables/variable-config-read-hidden.xml b/docs/es/programmers/api-variables/variable-config-read-hidden.xml new file mode 100644 index 00000000..662c0eb4 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-config-read-hidden.xml @@ -0,0 +1,33 @@ + + + + $config_read_hidden + + Si es asignado true, esconde secciones (nombres de secciones comenzando + con un periodo) en el archivo de configuración pueden ser leidos del + template. Tipicamente desearia esto como false, de esta forma usted puede + almacenar datos sensibles en el archivo de configuración como un parámetro + de base de datos y sin preocuparse que el template los carge. + false es el default. + + + diff --git a/docs/es/programmers/api-variables/variable-debug-tpl.xml b/docs/es/programmers/api-variables/variable-debug-tpl.xml new file mode 100644 index 00000000..20107553 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-debug-tpl.xml @@ -0,0 +1,30 @@ + + + + $debug_tpl + + Este es el nombre del archivo de template usado para el debug + de la consola. Por default, es nombrado debug.tpl y esta + localizado en el SMARTY_DIR. + + + diff --git a/docs/es/programmers/api-variables/variable-debugging-ctrl.xml b/docs/es/programmers/api-variables/variable-debugging-ctrl.xml new file mode 100644 index 00000000..3fd8cf71 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-debugging-ctrl.xml @@ -0,0 +1,33 @@ + + + + $debugging_ctrl + + Esto permite rutas alternativas para habilitar el debug. + NONE no significa que métodos alternativos son permitidos. + URL significa cuando la palabra SMARTY_DEBUG fue encontrada + en el QUERY_STRING, que el debug está habilitado para la + llamada del script. Si $debugging es true, ese valor es + ignorado. + + + diff --git a/docs/es/programmers/api-variables/variable-debugging.xml b/docs/es/programmers/api-variables/variable-debugging.xml new file mode 100644 index 00000000..18c1cf9a --- /dev/null +++ b/docs/es/programmers/api-variables/variable-debugging.xml @@ -0,0 +1,32 @@ + + + + $debugging + + Este habilita el + debugging console. + La consola es una ventana de javascript que informa a usted + sobre los archivos del template incluidos y las variables + destinadas a la pagina del template actual. + + + diff --git a/docs/es/programmers/api-variables/variable-default-modifiers.xml b/docs/es/programmers/api-variables/variable-default-modifiers.xml new file mode 100644 index 00000000..db6f0ca6 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-default-modifiers.xml @@ -0,0 +1,33 @@ + + + + $default_modifiers + + Este es un arreglo de modificadores implicitamente aplicados para cada + variable en el template. Por Ejemplo, cada variable HTML-escape por + default, usa el arreglo('escape:"htmlall"'); Para hacer que las variables + excenten los modificadores por default, pase el modificador especial + "smarty" con un valor de parámetro "nodefaults" modificando esto, tal + como {$var|smarty:nodefaults}. + + + diff --git a/docs/es/programmers/api-variables/variable-default-resource-type.xml b/docs/es/programmers/api-variables/variable-default-resource-type.xml new file mode 100644 index 00000000..de60d63b --- /dev/null +++ b/docs/es/programmers/api-variables/variable-default-resource-type.xml @@ -0,0 +1,33 @@ + + + + $default_resource_type + + Este anuncia a Smarty el tipo de recurso a usar implicitamente. + El valor por default es 'file', significa que + $smarty->display('index.tpl'); y + $smarty->display('file:index.tpl'); son identicos en el significado. + Para mas detalles vea el capitulo + resource. + + + diff --git a/docs/es/programmers/api-variables/variable-default-template-handler-func.xml b/docs/es/programmers/api-variables/variable-default-template-handler-func.xml new file mode 100644 index 00000000..ec4ed9bd --- /dev/null +++ b/docs/es/programmers/api-variables/variable-default-template-handler-func.xml @@ -0,0 +1,29 @@ + + + + $default_template_handler_func + + Esta función es llamada cuando un template no puede ser obtenido + desde su recurso. + + + diff --git a/docs/es/programmers/api-variables/variable-error-reporting.xml b/docs/es/programmers/api-variables/variable-error-reporting.xml new file mode 100644 index 00000000..a525ef0f --- /dev/null +++ b/docs/es/programmers/api-variables/variable-error-reporting.xml @@ -0,0 +1,31 @@ + + + + $error_reporting + + Cuando este valor es asignado a non-null-value este valor es + usado como error_reporting-level dentro de display() y fetch(). + Cuando debugging es habilitado este valor es ignorado y el + error-level no es tocado. + + + diff --git a/docs/es/programmers/api-variables/variable-force-compile.xml b/docs/es/programmers/api-variables/variable-force-compile.xml new file mode 100644 index 00000000..e17d80c8 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-force-compile.xml @@ -0,0 +1,32 @@ + + + + $force_compile + + Este forza al Smarty a (re)compilar templates en cada llamada. + Esta configuración sobrescribe $compile_check. Por default este + es desabilitado. Es útil para el desarrollo y debug. Nunca debe ser + usado en ambiente de producción. Si el cache esta habilitado, los + archivo(s) de cache seran regenerados todo el tiempo. + + + diff --git a/docs/es/programmers/api-variables/variable-left-delimiter.xml b/docs/es/programmers/api-variables/variable-left-delimiter.xml new file mode 100644 index 00000000..3b3aec87 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-left-delimiter.xml @@ -0,0 +1,29 @@ + + + + $left_delimiter + + Este es el delimitador izquierdo usado por el lenguaje de template. + El default es "{". + + + diff --git a/docs/es/programmers/api-variables/variable-php-handling.xml b/docs/es/programmers/api-variables/variable-php-handling.xml new file mode 100644 index 00000000..40b1b802 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-php-handling.xml @@ -0,0 +1,48 @@ + + + + $php_handling + + Este informa al Smarty como manipular códigos PHP contenidos en los + templates. Hay cuatro posibles configuraciones, siendo el default + SMARTY_PHP_PASSTHRU. Observe que esto NO afectara los códigos php + dentro de las etiquetas + {php}{/php} en el template. + + + SMARTY_PHP_PASSTHRU - Smarty echos tags as-is. + SMARTY_PHP_QUOTE - Smarty abre comillas a las etiquetas + de entidades html. + SMARTY_PHP_REMOVE - Smarty borra las etiquetas del + template. + SMARTY_PHP_ALLOW - Smarty ejecuta las etiquetas como + código PHP. + + + + Incrustar codigo PHP dentro del template es sumamente desalentador. + Use custom functions + o modifiers en vez de eso. + + + + diff --git a/docs/es/programmers/api-variables/variable-plugins-dir.xml b/docs/es/programmers/api-variables/variable-plugins-dir.xml new file mode 100644 index 00000000..d01342f8 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-plugins-dir.xml @@ -0,0 +1,40 @@ + + + + $plugins_dir + + Este es el directorio donde Smarty procurara ir a buscar los plugins + que sean necesarios. El default es "plugins" bajo el SMARTY_DIR. + Si usted proporciona un path relativo, Smarty procurara ir primero + bajo el SMARTY_DIR, Entonces relativo para el cwd(current working + directory), Entonces relativo para cada entrada de su PHP include path. + + + Nota Técnica + + Para un mejor funcionamiento, no configure su plugins_dir para que + use el include path PHP. Use un path absoluto, o un path relativo + para SMARTY_DIR o el cwd (current working directory). + + + + diff --git a/docs/es/programmers/api-variables/variable-request-use-auto-globals.xml b/docs/es/programmers/api-variables/variable-request-use-auto-globals.xml new file mode 100644 index 00000000..02f0880a --- /dev/null +++ b/docs/es/programmers/api-variables/variable-request-use-auto-globals.xml @@ -0,0 +1,35 @@ + + + + $request_use_auto_globals + + Especifica si el Smarty debe usar variables globales del php + $HTTP_*_VARS[] ($request_use_auto_globals=false valor por default) + o $_*[] ($request_use_auto_globals=true). Esto afecta a los templates + que hacen uso de {$smarty.request.*}, {$smarty.get.*} etc. . + Atención: Si usted asigna $request_use_auto_globals a true, + variable.request.vars.order + no tendran efecto los valores de configuracion de php + gpc_order sera usados. + + + diff --git a/docs/es/programmers/api-variables/variable-request-vars-order.xml b/docs/es/programmers/api-variables/variable-request-vars-order.xml new file mode 100644 index 00000000..921bf9c4 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-request-vars-order.xml @@ -0,0 +1,29 @@ + + + + $request_vars_order + + El orden en el cual las variables requeridas seran registradas, + similar al variables_order en el php.ini + + + diff --git a/docs/es/programmers/api-variables/variable-right-delimiter.xml b/docs/es/programmers/api-variables/variable-right-delimiter.xml new file mode 100644 index 00000000..b624b5cf --- /dev/null +++ b/docs/es/programmers/api-variables/variable-right-delimiter.xml @@ -0,0 +1,29 @@ + + + + $right_delimiter + + Este es el delimitador derecho usado por el lenguaje de template. + El default es "}". + + + diff --git a/docs/es/programmers/api-variables/variable-secure-dir.xml b/docs/es/programmers/api-variables/variable-secure-dir.xml new file mode 100644 index 00000000..e71a04f9 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-secure-dir.xml @@ -0,0 +1,30 @@ + + + + $secure_dir + + Este es un arreglo de todos los directorios locales que son + considerados seguros. {include} y {fetch} usan estos (directorios) + cuando security está habilitada. + + + diff --git a/docs/es/programmers/api-variables/variable-security-settings.xml b/docs/es/programmers/api-variables/variable-security-settings.xml new file mode 100644 index 00000000..15bcffc9 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-security-settings.xml @@ -0,0 +1,43 @@ + + + + $security_settings + + Estas son usadas para cancelar o especificar configuraciones de + seguridad cuando security esta habilitado. Estas son las posibles + configuraciones. + + + PHP_HANDLING - true/false. la configuracion de + $php_handling no es checada por security. + IF_FUNCS - Este es un arreglo de nombres de funciones + PHP permitidas en los bloques IF. + INCLUDE_ANY - true/false. Si es asignado true, algun + template puede ser incluido para un archivo de sistema, a pesar de toda + la lista de $secure_dir. + PHP_TAGS - true/false. Si es asignado true, las + etiquetas {php}{/php} son permitidas en los templates. + MODIFIER_FUNCS - Este es un arreglo de nombres de + funciones PHP permitidas usadas como modificadores de variables. + + + diff --git a/docs/es/programmers/api-variables/variable-security.xml b/docs/es/programmers/api-variables/variable-security.xml new file mode 100644 index 00000000..d1a9b6be --- /dev/null +++ b/docs/es/programmers/api-variables/variable-security.xml @@ -0,0 +1,47 @@ + + + + $security + + $security true/false, el default es false. Security es bueno + para situaciones cuando usted tiene partes inconfiables editando + el template (via ftp por ejemplo) y usetd quiere reducir los + riesgos de comportamiento de seguridad del sistema a través del + lenguaje del template. Al habilitar la seguridad forza las siguientes + reglas del lenguaje del template, a menos que especifique control con + $security_settings: + + + Si $php_handling está asignado a SMARTY_PHP_ALLOW, + este es implicitamente cambiado a SMARTY_PHP_PASSTHRU + Las funciones PHP no son permitidas en sentencias IF, + excepto quellas que esten especificadas en $security_settings + Los templates solo pueden ser incluidos en el + directorio listado en $secure_dir array + Los archivos locales solamente pueden ser traidos del + directorio listado en $secure_dir usando el arreglo {fetch} + Estas etiquetas {php}{/php} no son permitidas + Las funciones PHP no son permitidas como modificadores, + excepto si estan especificados en el $security_settings + + + diff --git a/docs/es/programmers/api-variables/variable-template-dir.xml b/docs/es/programmers/api-variables/variable-template-dir.xml new file mode 100644 index 00000000..9343c1b8 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-template-dir.xml @@ -0,0 +1,39 @@ + + + + $template_dir + + Este es el nombre por default del directorio del template. Si + usted no proporciona un tipo de recurso que incluya archivos, + entonces estos se encontraran aquí. Por default "./templates", + esto significa que lo buscara en el directorio del templates + en el mismo directorio que esta ejecutando el script PHP. + + + Nota Técnica + + No es recomendado colocar este directorio bajo el directorio + document root de su servidor web. + + + + diff --git a/docs/es/programmers/api-variables/variable-trusted-dir.xml b/docs/es/programmers/api-variables/variable-trusted-dir.xml new file mode 100644 index 00000000..2887c578 --- /dev/null +++ b/docs/es/programmers/api-variables/variable-trusted-dir.xml @@ -0,0 +1,32 @@ + + + + $trusted_dir + + $trusted_dir solamente es usado cuando $security está habilitado. + Este es un arreglo de todos los directorios que son considerados + confiables. Los directorios confiables son de donde usted extraera + sus script PHP que son ejecutados directamente desde el template con + {include_php}. + + + diff --git a/docs/es/programmers/api-variables/variable-use-sub-dirs.xml b/docs/es/programmers/api-variables/variable-use-sub-dirs.xml new file mode 100644 index 00000000..7b8be00a --- /dev/null +++ b/docs/es/programmers/api-variables/variable-use-sub-dirs.xml @@ -0,0 +1,36 @@ + + + + $use_sub_dirs + + Configure este a false si su ambiente de PHP no permite la cración + de subdirectorios para Smarty. Los subdiretorios son mas eficientes, + Entonces aprovechelo si puede. + + + Nota Técnica + + Desde Smarty-2.6.2 use_sub_dirs esta por default en false. + + + + diff --git a/docs/es/programmers/caching.xml b/docs/es/programmers/caching.xml new file mode 100644 index 00000000..60ea8be4 --- /dev/null +++ b/docs/es/programmers/caching.xml @@ -0,0 +1,51 @@ + + + + Cache + + Caching es usado para aumentar la velocidad de llamada de + display() o + fetch() salvando esto en un + archivo de salida. Si hay una versión de cache disponible + para la llamada, este es mostrado en vez de regresar la salida + de datos. Caching puede hacer cosas tremendamente rápidas, + especialmente templates con largo tiempo de computo. + Desde la salida de datos de display() o fetch() está en + cache, un archivo de cache podría ser compuesto por diversos + archivos de templates, archivos de configuración, etc. + + + Dado que sus templates son dinámicos, es importante tener cuidado + de como usa la cache y por cuanto tiempo. Por ejemplo, si usted esta + mostrando la pagina principal de su web site y esta no tiene cambios + muy frecuentes en su contenido, esta puede funcionar bien en la cache + por una hora o mas. por otro lado, si usted esta mostrando una pagina + con un mapa de tiempo que contenga nueva información por minuto, no + tiene sentido hacer cache nuestra página. + +&programmers.caching.caching-setting-up; +&programmers.caching.caching-multiple-caches; +&programmers.caching.caching-groups; + +&programmers.caching.caching-cacheable; + + diff --git a/docs/es/programmers/caching/caching-cacheable.xml b/docs/es/programmers/caching/caching-cacheable.xml new file mode 100644 index 00000000..bdc1d8f5 --- /dev/null +++ b/docs/es/programmers/caching/caching-cacheable.xml @@ -0,0 +1,143 @@ + + + + Controlando salida de Cacheabilidad de plugins + + Desde Smarty-2.6.0 los caches de plugins pueden ser declarados + o registrados. El tercer parámetro para register_block, + register_compiler_function es register_function es llamado + $cacheable y el default es true que es + también el comportamiento de plugins en la versiones anteriores + a Smarty 2.6.0. + + + + Cuando registre un plugin con $cacheable=false el plugin es llamado + todo el tiempo en la pagina que está siendo mostrada, aun si la + pagina viene desde el cache. + La función de plugin tiene un comportamiento parecido al de + la función insert. + + + + En contraste con {insert} + el atributo para el plugin no está en cache por default. Ellos pueden ser + declarados para ser cacheados con el cuarto parámetro + $cache_attrs. $cache_attrs + es un arreglo de nombres de atributos que deben ser cacheados, entonces la + función de plugin pega el valor como si fuera el tiempo en que la pagina + fue escrita para el cache todo el tiempo este es traido desde el cache. + + + + Previniendo que una saída de plugin de ser cacheada + +caching = true; + +function remaining_seconds($params, &$smarty) { + $remain = $params['endtime'] - time(); + if ($remain >=0) + return $remain . " second(s)"; + else + return "done"; +} + +$smarty->register_function('remaining', 'remaining_seconds', false, array('endtime')); + +if (!$smarty->is_cached('index.tpl')) { + // fetch $obj from db and assign... + $smarty->assign_by_ref('obj', $obj); +} + +$smarty->display('index.tpl'); +?> +]]> + + + Donde index.tpl es: + + +endtime} +]]> + + + El número en segundos hasta el endtime del $obj este sufre cambios + en cada display de la pagina, aun si la pagina esta en cache. Desde + que el atributo endtime sea cacheado el objeto solamente tiene que + ser jalado de la base de datos cuando la pagina esta escrita en la + cache mas no en requisiciones de la pagina. + + + + + Previniendo una pasada entera del template para el cache + +caching = true; + +function smarty_block_dynamic($param, $content, &$smarty) { + return $content; +} +$smarty->register_block('dynamic', 'smarty_block_dynamic', false); + +$smarty->display('index.tpl'); +?> +]]> + + + Donde index.tpl es: + + + + + + + + Cuando recarga la pagina usted notara que ambas fechas son diferentes. + Una es "dinamica" y la otra es "estática". Usted puede hacer todo entre + las etiquetas {dynamic}...{/dynamic} y tener la certeza de que no sera + cacheado como el resto de la pagina. + + + + + diff --git a/docs/es/programmers/caching/caching-groups.xml b/docs/es/programmers/caching/caching-groups.xml new file mode 100644 index 00000000..629026d6 --- /dev/null +++ b/docs/es/programmers/caching/caching-groups.xml @@ -0,0 +1,86 @@ + + + + Cache Groups + + Usted puede hacer agrupamientos mas elaborados configurando grupos de + cache_id. Esto se logra con la separación de cada sub-grupo con una + barra vertical "|" en el valor del cache_id. Usted puede tener tantos + sub-grupos como guste. + + + Usted puede pensar que los grupos de cache son parecidos a un + directorio para organizar. por ejemplo, un grupo de cache con + "a|b|b" podria pensarse como la estructura del directorio "a/b/c/". + clear_cache(null,"a|b|c") esto seria para quitar los archivos + "/a/b/c/*". clear_cache(null,"a|b") esto seria para quitar los + archivos "/a/b/*". Si usted espicifica el compile_id como + clear_cache(null,"a|b","foo") este tratara de agregarlo al grupo + de cache "/a/b/c/foo/". Si usted especifica el nombre del template + tal como clear_cache("foo.tpl","a|b|c") entonces el smarty intentara + borrar "/a/b/c/foo.tpl". + Usted no puede borrar un nombre de template especifico bajo multiples + grupos de cache como "/a/b/*/foo.tpl", el grupo de cache trabaja solo + de izquierda a derecha. Usted puede necesitar para su grupos de + templates un unico grupo de cache jerarquico para poder limpiarlos + como grupos. + + + El agupamiento de cache no debe ser confundido con su directorio + jerarquico del template, El agrupamiento de cache no tiene ninguna + ciencia de como sus templates son estructurados. + Por ejemplo, si usted tiene una estructura display('themes/blue/index.tpl'), + usted no puede limpiar el cache para todo bajo el diretorio "themes/blue". + Si usted quiere hacer esto, usted debe agruparlos en el cache_id, como + display('themes/blue/index.tpl','themes|blue'); Entonces usted puede + limpiar los caches para el tema azul con clear_cache(null,'themes|blue'); + + + Grupos de cache_id + +caching = true; + +// clear all caches with "sports|basketball" as the first two cache_id groups +$smarty->clear_cache(null,"sports|basketball"); + +// clear all caches with "sports" as the first cache_id group. This would +// include "sports|basketball", or "sports|(anything)|(anything)|(anything)|..." +$smarty->clear_cache(null,"sports"); + +// clear the foo.tpl cache file with "sports|basketball" as the cache_id +$smarty->clear_cache("foo.tpl","sports|basketball"); + + +$smarty->display('index.tpl',"sports|basketball"); +?> +]]> + + + + + + diff --git a/docs/es/programmers/caching/caching-multiple-caches.xml b/docs/es/programmers/caching/caching-multiple-caches.xml new file mode 100644 index 00000000..68b2bada --- /dev/null +++ b/docs/es/programmers/caching/caching-multiple-caches.xml @@ -0,0 +1,129 @@ + + + + Multiples caches por pagina + + Usted puede tener multiples archivos de cache para una simples llamada + de display() o fetch(). Vamos a decir que una llamada a + display('index.tpl') debe tener varios contenidos de salida diferentes + dependiendo de alguna condición, y usted quiere separar los caches para + cada una. Usted puede hacer esto pasando un cache_id como un segundo + parámetro en la llamada de la función. + + + Pasando un cache_id para display() + +caching = true; + +$my_cache_id = $_GET['article_id']; + +$smarty->display('index.tpl',$my_cache_id); +?> +]]> + + + + Arriba, nosotros pasamos la variable $my_cache_id a display() con + el cache_id. Para cada valor unico de $my_cache_id, un cache por + separado sera generado para cada index.tpl. En este ejemplo, + "article_id" fue pasado en URL y es usado como el cache_id. + + + Nota Técnica + + Tenga mucho cuidado cuando pase valores del cliente (web browser) + dentro de Smarty (o alguna aplicación PHP). Aunque el ejemplo de + arriba usar el article_id desde una URL parece facil, esto podría + tener fatales consecuencias. El cache_id es usado para crear un + directorio en el sistema de archivos, entonces si el usuario decide + pasar un valor extremadamente largo para article_id, o escribir un + script que envia article_ids aleatorios en un paso rápido, esto + posiblemente podría causar problemas a nivel del servidor. Tenga la + certeza de limpiar algún dato pasado antes de usarlo. En este ejemplo, + tal vez usted sabia que el article_id tiene un largo de 10 caracteres + este es constituido solamente de alfanumúricos, y debe ser un article_id + valido en la base de datos. Verifique esto! + + + + Asegurarse de pasar el mismo cache_id como el segundo parámetro + para is_cached() y + clear_cache(). + + + Pasando un cache_id para is_cached() + +caching = true; + +$my_cache_id = $_GET['article_id']; + +if(!$smarty->is_cached('index.tpl',$my_cache_id)) { + // No cache available, do variable assignments here. + $contents = get_database_contents(); + $smarty->assign($contents); +} + +$smarty->display('index.tpl',$my_cache_id); +?> +]]> + + + + Usted puede limpar todos los caches para un cache_id en particular + pasando el primer parámetro null a clear_cache(). + + + Limpando todos los caches para un cache_id en particular + +caching = true; + +// clear all caches with "sports" as the cache_id +$smarty->clear_cache(null,"sports"); + +$smarty->display('index.tpl',"sports"); +?> +]]> + + + + De esta manera, usted puede "agrupar" sus caches conjuntamente dandoles + el mismo cache_id. + + + + + diff --git a/docs/es/programmers/caching/caching-setting-up.xml b/docs/es/programmers/caching/caching-setting-up.xml new file mode 100644 index 00000000..dedc806f --- /dev/null +++ b/docs/es/programmers/caching/caching-setting-up.xml @@ -0,0 +1,199 @@ + + + + Configurando el Cache + + Lo primero que se tiene que hacer es habilitar el cache. esto es configurar + $caching = true (o 1.) + + + Habilitando Cache + +caching = true; + +$smarty->display('index.tpl'); +?> +]]> + + + + Con el caching habilitado, la llamada a la función + display('index.tpl') traera el template como siempre, + pero también salvara una copia en el archivo de salida + (una copia de cache) en el + $cache_dir. + En la proxima llamada de display('index.tpl'), la copia + en cache sera usada en vez de traer nuevamente el template. + + + Nota Técnica + + Los archivos en el $cache_dir son nombrados similarmente al + nombre del archivo de template. + Aunque ellos tengan una extensión ".php", ellos no son realmente + scripts ejecutables de php. No edite estos archivos! + + + + Cada pagina en cache tiene un periodo de tiempo limitado determinado por + $cache_lifetime. + El default del valor es 3600 segundos, o 1 hora. Después de este tiempo + expira, el cache es regenerado. Es posible dar tiempos individuales para + caches con su propio tiempo de expiración para configuración $caching = 2. + Vea la documentación en + $cache_lifetime + para mas detalles. + + + Configurando cache_lifetime por cache + +caching = 2; // lifetime is per cache + +// set the cache_lifetime for index.tpl to 5 minutes +$smarty->cache_lifetime = 300; +$smarty->display('index.tpl'); + +// set the cache_lifetime for home.tpl to 1 hour +$smarty->cache_lifetime = 3600; +$smarty->display('home.tpl'); + +// NOTE: the following $cache_lifetime setting will not work when $caching = 2. +// The cache lifetime for home.tpl has already been set +// to 1 hour, and will no longer respect the value of $cache_lifetime. +// The home.tpl cache will still expire after 1 hour. +$smarty->cache_lifetime = 30; // 30 seconds +$smarty->display('home.tpl'); +?> +]]> + + + + Si $compile_check está + habilitado, cada archivo de template y archivo de configuración que + está involucrado con el archivo en cache es checado por modificadores. + Si alguno de estos archivos fue modificado desde que el ultimo cache + fue generado, el cache es regenerado inmediatamente. Esto es una forma + de optimizar ligeramente el rendimiento de las cabeceras, dejar + $compile_check determinado false. + + + Habilitando $compile_check + +caching = true; +$smarty->compile_check = true; + +$smarty->display('index.tpl'); +?> +]]> + + + + Si $force_compile está + habilitado, los archivos de cache siempre seran regenerados. + Esto definitivamente desactiva el caching. $force_compile generalmente + es usado para propositos de debug solamente, una forma mas eficiente + de desactivar el caching es asignando + $caching = false (ó 0.) + + + La función is_cached() puede ser + usada para testar si un template tiene un cache valido o no. Si usted + tiene un template con cache que requiera alguna cosa como un retorno + de base de datos, usted puede usar esto para saltar este proceso. + + + Usando is_cached() + +caching = true; + +if(!$smarty->is_cached('index.tpl')) { + // No cache available, do variable assignments here. + $contents = get_database_contents(); + $smarty->assign($contents); +} + +$smarty->display('index.tpl'); +?> +]]> + + + + Usted puede guardar partes de su pagina dinámica con la función + de template insert. + Vamos a decir que su pagina entera puede tener cache excepto para un + banner que es mostrado abajo del lado derecho de su pagina. Usando + la función insert para el banner, usted puede guardar ese elemento + dinámico dentro de un contenido de cache. Vea la documentación en + insert para detalles + y ejemplos. + + + Usted puede limpiar todos los archivos de cache con la función + clear_all_cache(), + los archivos de cache individuales (o grupos) con la función + clear_cache(). + + + Limpiando el cache + +caching = true; + +// clear out all cache files +$smarty->clear_all_cache(); + +// clear only cache for index.tpl +$smarty->clear_cache('index.tpl'); + +$smarty->display('index.tpl'); +?> +]]> + + + + + + diff --git a/docs/es/programmers/plugins.xml b/docs/es/programmers/plugins.xml new file mode 100644 index 00000000..c32799e6 --- /dev/null +++ b/docs/es/programmers/plugins.xml @@ -0,0 +1,69 @@ + + + + Extendiendo Smarty con plugins + + La version 2.0 introduce la arquitectura de plugin que es usada para + casi todas las funcionalidades adaptables del Smarty. Esto incluye: + + funciones + modificadores + funciones de bloque + funciones de compilación + prefiltros + postfiltros + filtros de salida + recursos(fuentes) + inserts + + Con la excepción de recursos, la compatibildad con la forma antigua + de funciones de manipulación de registro via register_* API es + conservada. Si usted no uso el API en lugar de eso modifico las + variables de clase $custom_funcs, + $custom_mods, y otras directamente, entonces usted + va a necesitar ajustar sus scripts para cualquiera que use el API o + convertir sus funciones habituales en plugins. + + +&programmers.plugins.plugins-howto; + +&programmers.plugins.plugins-naming-conventions; + +&programmers.plugins.plugins-writing; + +&programmers.plugins.plugins-functions; + +&programmers.plugins.plugins-modifiers; + +&programmers.plugins.plugins-block-functions; + +&programmers.plugins.plugins-compiler-functions; + +&programmers.plugins.plugins-prefilters-postfilters; + +&programmers.plugins.plugins-outputfilters; + +&programmers.plugins.plugins-resources; + +&programmers.plugins.plugins-inserts; + + diff --git a/docs/es/programmers/plugins/plugins-block-functions.xml b/docs/es/programmers/plugins/plugins-block-functions.xml new file mode 100644 index 00000000..3ac66d6a --- /dev/null +++ b/docs/es/programmers/plugins/plugins-block-functions.xml @@ -0,0 +1,119 @@ + + + Block Functions + + + void smarty_block_name + array $params + mixed $content + object &$smarty + boolean &$repeat + + + + Las funciones de bloque son funciones de forma: {func} .. {/func}. + En otras palabras, estas encapsulan un bloque del template y operan + el contenido de este bloque. Las funciones de bloque toman precedencia + sobre las funciones habituales con el mismo nombre, es decir, usted no + puede tener ambas, las funciones habituales {func} y las funciones de + bloque {func} .. {/func}. + + + Por default la implementación de su función es llamada dos + veces por el Smarty: una vez por la etiqueta de apertura, y + la otra por la etiqueta de cierre + (vea &$repeat abajo para ver como hacer + cambios a esto). + + + Solo la etiqueta de apertura de la función de bloque puede tener + atributos. Todos los atributos pasados a las funciones de template + estan contenidos en $params como un arreglo + asociativo. Usted puede accesar a cualquiera de estos valores + directamente, e.g. $params['start']. + Los atributos de la etiqueta de apertura son también son accesibles + a su función cuando se procesa la etiqueta de cierre. + + + El valor de la variable $content depende de + que si su función es llamada por la etiqueta de cierre o de apertura. + En caso de que la etiqueta sea de apertura, este será + null, si la etiqueta es de cierre el valor será + del contenido del bloque del template. Se debe observar que el bloque + del template ya a sido procesado por el Smarty, asi todo lo que usted + recibirá es la salida del template, no el template original. + + + + El parámetro &$repeat es pasado por + referencia para la función de implementación y proporciona + la posibilidad de controlar cuantas veces será mostrado el bloque. + Por default $repeat es true + en la primera llamada de la block-function (etiqueta de apertura del + bloque) y false en todas las llamadas subsecuentes + a la función de boque (etiqueta de cierre del boque). Cada vez que es + implementada la función retorna con el &$repeat + siendo true, el contenido entre {func} .. {/func} es evaluado y es + implementado a la función es llamada nuevamente con el nuevo contenido + del bloque en el parámetro $content. + + + + Si usted tiene funciones de bloque anidadas, es posible descubrir + cual es el padre de la función de bloque accesando la variable + $smarty->_tag_stack. + Solo hacer un var_dump() sobre ella y la estrutura estara visible. + + + Vea tambien: + register_block(), + unregister_block(). + + + Función de bloque + + +]]> + + + + + diff --git a/docs/es/programmers/plugins/plugins-compiler-functions.xml b/docs/es/programmers/plugins/plugins-compiler-functions.xml new file mode 100644 index 00000000..832bac37 --- /dev/null +++ b/docs/es/programmers/plugins/plugins-compiler-functions.xml @@ -0,0 +1,91 @@ + + + Funciones Compiladoras + + Las funciones compiladoras solo son llamadas durante la compilación + del template. Estas son útiles para inyectar codigo PHP o contenido + estático time-sensitive dentro del template. Si existen ambas, una + función compiladora y una función habitual registrada bajo el mismo + nombre, la función compiladora tiene precedencia. + + + + mixed smarty_compiler_name + string $tag_arg + object &$smarty + + + + En las funciones compiladoras son pasados dos parámetros: + la etiqueta string del argumento de la etiqueta - basicamente, + todo a partir del nombre de la función hasta el delimitador del + cierre, y el objeto del Smarty. Es supuesto que retorna el codigo + PHP para ser inyectado dentro del template compilado. + + + Vea también + register_compiler_function(), + unregister_compiler_function(). + + + Función compiladora simple + +_current_file . " compiled at " . date('Y-m-d H:M'). "';"; +} +?> +]]> + + + Esta función puede ser llamada en un template de la siguiente forma: + + +{* esta función es ejecutada solamente en tiempo de compilación *} +{tplheader} + + + El codigo PHP resultante en el template compilado seria algo asi: + + + +]]> + + + + + diff --git a/docs/es/programmers/plugins/plugins-functions.xml b/docs/es/programmers/plugins/plugins-functions.xml new file mode 100644 index 00000000..27f4c9dd --- /dev/null +++ b/docs/es/programmers/plugins/plugins-functions.xml @@ -0,0 +1,127 @@ + + + Funciones de Template + + + void smarty_function_name + array $params + object &$smarty + + + + Todos los atributos pasados para las funciones de template a partir + del template estan contenidas en $params como + un arreglo asociativo. + + + La salida(valor de retorno) de la función será substituida en + el lugar de la etiqueta de la función en el template (la función + fetch, por ejemplo). + Alternativamente, la función puede simplemente ejecutar alguna + otra tarea sin tener alguna salida (la función assign). + + + Si la función necesita pasar valores a algunas variables del template + o utilizar alguna otra funcionalidad del Smarty, esta puede usar el + objeto $smarty alimentandolo para hacer eso. + + + Vea tambien: + register_function(), + unregister_function(). + + + + Función de plugin con salida + + +]]> + + + + + que puede ser usada en el template de la siguiente forma: + + +Question: Will we ever have time travel? +Answer: {eightball}. + + + + Función de plugin sin salida + +trigger_error("assign: missing 'var' parameter"); + return; + } + + if (!in_array('value', array_keys($params))) { + $smarty->trigger_error("assign: missing 'value' parameter"); + return; + } + + $smarty->assign($params['var'], $params['value']); +} +?> +]]> + + + + + + diff --git a/docs/es/programmers/plugins/plugins-howto.xml b/docs/es/programmers/plugins/plugins-howto.xml new file mode 100644 index 00000000..a8feaf9c --- /dev/null +++ b/docs/es/programmers/plugins/plugins-howto.xml @@ -0,0 +1,47 @@ + + + + Como funcionan los Plugins + + Los plugins son siempre cargados cuando son requeridos. solo los + calificativos especificos, funciones, recursos, etc convocados en + scripts del template seran leidos. Además, cada plugin es cargado + una sola vez, aun si usted tiene corriendo varias instancias + diferentes de Smarty dentro de la misma petición. + + + Pre/posfiltros y salidas de filtros son una parte de un caso especial. + Dado que ellos no son mensionados en los templates, ellos deben ser + registrados o leidos explicitamente mediante funciones de API antes de + que el template sea procesado. El orden en el cual son ejecutados + multiples filtros del mismo tipo depende del orden en el que estos son + registrados o leidos. + + + El directorio de directory + puede ser una cadena que contenga una ruta o un arreglo que contenga + multiples rutas. Para instalar un plugin, simplemente coloquelo en el + directorio y el Smarty lo usara automáticamente. + + + + diff --git a/docs/es/programmers/plugins/plugins-inserts.xml b/docs/es/programmers/plugins/plugins-inserts.xml new file mode 100644 index 00000000..48614b54 --- /dev/null +++ b/docs/es/programmers/plugins/plugins-inserts.xml @@ -0,0 +1,74 @@ + + + Inserts + + Los Plugins Insert son usados para implementar funciones que son + invocadas por las etiquetas + insert + en el template. + + + + string smarty_insert_name + array $params + object &$smarty + + + + El primer parámetro de la función es un arreglo asociativo de + atributos pasados al insert. + + + La función insert debe retornar el resultado que ira a sustituir + el lugar de la etiqueta insert en el template. + + + insert plugin + +trigger_error("insert time: missing 'format' parameter"); + return; + } + + $datetime = strftime($params['format']); + return $datetime; +} +?> +]]> + + + + + diff --git a/docs/es/programmers/plugins/plugins-modifiers.xml b/docs/es/programmers/plugins/plugins-modifiers.xml new file mode 100644 index 00000000..14eb8cda --- /dev/null +++ b/docs/es/programmers/plugins/plugins-modifiers.xml @@ -0,0 +1,115 @@ + + + Modificadores + + Los modificadores son funciones que son aplicadas a una variable + en el template antes de ser mostrada o usada en algun otro contexto. + Los modificadores pueden ser encadenados conjuntamente. + + + + mixed smarty_modifier_name + mixed $value + [mixed $param1, ...] + + + + El primer parámetro en el modificador de plugin es el valor sobre + el cual el modificador es precisa para funcionar. El resto de los + parámetros pueden ser opcionales, dependiendo de cual tipo de operación + va a ser ejecutada. + + + El modificador debe retornar el resultado de su procesamiento. + + + Vea Tambien + register_modifier(), + unregister_modifier(). + + + Plugin modificador simple + + Este plugin básicamente es un alias de una función incorporada + en PHP. Este no tiene ningun parámetro adicional. + + + +]]> + + + + + Plugin modificador mas complejo + + $length) { + $length -= strlen($etc); + $fragment = substr($string, 0, $length+1); + if ($break_words) + $fragment = substr($fragment, 0, -1); + else + $fragment = preg_replace('/\s+(\S+)?$/', '', $fragment); + return $fragment.$etc; + } else + return $string; +} +?> +]]> + + + + + diff --git a/docs/es/programmers/plugins/plugins-naming-conventions.xml b/docs/es/programmers/plugins/plugins-naming-conventions.xml new file mode 100644 index 00000000..76da88f4 --- /dev/null +++ b/docs/es/programmers/plugins/plugins-naming-conventions.xml @@ -0,0 +1,81 @@ + + + + Nombres convensionales + + Los archivos y funciones de Plugin deben seguir una convención + de apariencia muy especifica a fin de que pueda ser localizada + por el Smarty. + + + Los archivos de plugin deben ser nombrados de la siguiente forma: +
+ + + type.name.php + + +
+
+ + Donde type es uno de los siguientes tipo de plugin: + + function + modifier + block + compiler + prefilter + postfilter + outputfilter + resource + insert + + + + Y name seria un identificador valido (solo, letras, + números, y underscores). + + + Algunos ejemplos: function.html_select_date.php, + resource.db.php, modifier.spacify.php. + + + Las funciones de plugin dentro de los archivos de plugin deben ser + nombradas de la siguiente forma: +
+ + smarty_type_name + +
+
+ + El significado de type and name son + los mismo que loas anteriores. + + + El Smarty mostrara mensajes de error apropiados si el archivo de + plugins que es necesario no es encontrado, o si el archivo a la + función de plugin esta nombrado inadecuadamente. + +
+ + diff --git a/docs/es/programmers/plugins/plugins-outputfilters.xml b/docs/es/programmers/plugins/plugins-outputfilters.xml new file mode 100644 index 00000000..71a8bf00 --- /dev/null +++ b/docs/es/programmers/plugins/plugins-outputfilters.xml @@ -0,0 +1,67 @@ + + + Filtros de Salida + + Los Filtros de salida operan en la salida del template, después + que el template es cargado y ejecutado, pero antes que la salida + sea mostrada. + + + + string smarty_outputfilter_name + string $template_output + object &$smarty + + + + El primer parámetro de la función de filtro de salida es la + salida del template que necesita ser procesada, y el segundo + parámetro es la instancia del Smarty invocando el plugin. + El plugin debe hacer el procesamiento y retornar los resultados. + + + plugin de filtro de salida + + +]]> + + + + + diff --git a/docs/es/programmers/plugins/plugins-prefilters-postfilters.xml b/docs/es/programmers/plugins/plugins-prefilters-postfilters.xml new file mode 100644 index 00000000..10b37ac8 --- /dev/null +++ b/docs/es/programmers/plugins/plugins-prefilters-postfilters.xml @@ -0,0 +1,108 @@ + + + + Prefiltros/Postfiltros + + Los Plugins Prefilter y postfilter con muy similares en concepto; + donde ellos difieren es en la ejecución -- mas precisamente en el + tiempo sus ejecuciones. + + + + string smarty_prefilter_name + string $source + object &$smarty + + + + Los Prefilters son usados para procesar el fuente del template + inmediatamente antes de la compilación. El primer parámetro de + la función del prefilter es el fuente del template, posiblemente + modificado por algunos otros prefilters. El Plugin es supuesto + que retorne el fuente modificado. Observe que este código no + es salvado en ningun lugar, este es solo usado para la compilación. + + + + string smarty_postfilter_name + string $compiled + object &$smarty + + + + Los Postfilters son usados para procesar la salida compilada del + template (el código PHP) inmediatamente después de que la compilacion + es terminada pero antes de que el template compilado sea salvado en + el sistema de archivos. El primer parámetro para la función postfilter + es el código del template compilado, posiblemente modificado por otros + postfilters. El plugin es supuesto que retorne la versión modificada + de este codigo. + + + prefilter plugin + +]+>!e', 'strtolower("$1")', $source); + } +?> +]]> + + + + + postfilter plugin + +\nget_template_vars()); ?>\n" . $compiled; + return $compiled; + } +?> +]]> + + + + + diff --git a/docs/es/programmers/plugins/plugins-resources.xml b/docs/es/programmers/plugins/plugins-resources.xml new file mode 100644 index 00000000..40789086 --- /dev/null +++ b/docs/es/programmers/plugins/plugins-resources.xml @@ -0,0 +1,162 @@ + + + Fuentes + + Las fuentes de los plugins son como una forma generica de suministrar + código fuente de template o componentes de script PHP al Smarty. + Algunos ejemplos de fuentes: base de datos, LDAP, memoria compartida, + sockets, etc. + + + + Existe un total de 4 funciones que necesitan estar registradas para + cada tipo de fuente. Cada función recibirá el fuente requerido como + primer parámetro y el objeto de Smarty como ultimo parámetro. + El resto de los parámetros dependen de la función. + + + + + bool smarty_resource_name_source + string $rsrc_name + string &$source + object &$smarty + + + bool smarty_resource_name_timestamp + string $rsrc_name + int &$timestamp + object &$smarty + + + bool smarty_resource_name_secure + string $rsrc_name + object &$smarty + + + bool smarty_resource_name_trusted + string $rsrc_name + object &$smarty + + + + + La primera función debe devolver el recurso. + Su segundo parámetro es una variable pasada por referencia donde + el resultado debe ser almacenado. + La función debe retornar true si esta pudo + recuperar satisfactoriamente el recurso y en caso contrario + retornara false. + + + + La segunda función debe devolver la ultima modificación del + recurso requerido (como un timestamp Unix). El segundo parámetro + es una variable pasada por referencia donde el timestamp sera + almacenado. La función debe retornar true + si el timestamp pudo ser determinado satisfactoriamente, y en + caso contrario retornara false. + + + + La tercera función debe retornar true o + false, dependiendo si el recurso requerido + es seguro o no. Esta función es usada solo para recursos de + template pero esta debe ser definida. + + + + La cuarta función debe retornar true o + false, dependiendo si el recurso requerido + es seguro o no. Esta función es usada solo para componetes de + script de PHP solicitado por las etiquetas + include_php o insert + con el atributo src. Sin embargo, + este debe ser definido para los recurso del template. + + + Vea también + register_resource(), + unregister_resource(). + + + Plugin resource (recurso) + +query("select tpl_source + from my_table + where tpl_name='$tpl_name'"); + if ($sql->num_rows) { + $tpl_source = $sql->record['tpl_source']; + return true; + } else { + return false; + } +} + +function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty) +{ + // do database call here to populate $tpl_timestamp. + $sql = new SQL; + $sql->query("select tpl_timestamp + from my_table + where tpl_name='$tpl_name'"); + if ($sql->num_rows) { + $tpl_timestamp = $sql->record['tpl_timestamp']; + return true; + } else { + return false; + } +} + +function smarty_resource_db_secure($tpl_name, &$smarty) +{ + // assume all templates are secure + return true; +} + +function smarty_resource_db_trusted($tpl_name, &$smarty) +{ + // not used for templates +} +?> +]]> + + + + + diff --git a/docs/es/programmers/plugins/plugins-writing.xml b/docs/es/programmers/plugins/plugins-writing.xml new file mode 100644 index 00000000..f0ad8942 --- /dev/null +++ b/docs/es/programmers/plugins/plugins-writing.xml @@ -0,0 +1,57 @@ + + + + Escribiendo Plugins + + Los Plugins pueden ser leidos por el Smarty automáticamente del + sistema de archivos o pueden ser registrados en tiempo de + ejecución por medio de una de las funciones de API register_* . + Estos también pueden ser usados con la función API unregister_*. + + + Para los plugins que son registrados en tiempo de ejecución, el + nombre de la(s) función(es) de plugin no tiene que seguir la + convención de apariencia. + + + Si un plugin depende de alguna función alimentada por otro plugin + (como es el caso con algunos plugins incrustados con el Smarty), + entonces la forma apropiada para leer el plugin necesario es esta: + + +_get_plugin_filepath('function', 'html_options'); +?> +]]> + + + Como regla general, el objeto Smarty siempre es pasado a los + plugins como ultimo parámetro (con dos excepciones: los + modificadores no pasan el objeto de Smarty del todo y los + blocks obtenidos son pasados &$repeat + después el objeto de Smarty para manter compatibilidad con + antiguas versiones de Smarty). + + + + diff --git a/docs/es/programmers/smarty-constants.xml b/docs/es/programmers/smarty-constants.xml new file mode 100644 index 00000000..6589b5c9 --- /dev/null +++ b/docs/es/programmers/smarty-constants.xml @@ -0,0 +1,49 @@ + + + + Constantes + + + SMARTY_DIR + + Esta debe ser la ruta completa del path para la localización + de los archivos de clases de Smarty. Si esta no fuera definida, + Entonces Smarty intentara determinar el valor apropiado + automáticamente. Si es definido, el path debe finalizar con una + diagonal. + + + SMARTY_DIR + + +]]> + + + + +