From d6d2da10f54d419e2d80264084cc5a2d66ab1c4a Mon Sep 17 00:00:00 2001 From: takagi Date: Sat, 21 Apr 2007 12:13:34 +0000 Subject: [PATCH] added Japanese translation files. --- docs/ja/appendixes/bugs.xml | 31 + docs/ja/appendixes/resources.xml | 59 ++ docs/ja/appendixes/tips.xml | 453 ++++++++++ docs/ja/appendixes/troubleshooting.xml | 200 +++++ docs/ja/bookinfo.xml | 57 ++ .../designers/chapter-debugging-console.xml | 89 ++ docs/ja/designers/config-files.xml | 110 +++ docs/ja/designers/language-basic-syntax.xml | 46 + .../language-escaping.xml | 92 ++ .../language-basic-syntax/language-math.xml | 57 ++ .../language-syntax-attributes.xml | 62 ++ .../language-syntax-comments.xml | 108 +++ .../language-syntax-functions.xml | 88 ++ .../language-syntax-quotes.xml | 94 ++ .../language-syntax-variables.xml | 87 ++ .../designers/language-builtin-functions.xml | 53 ++ .../language-function-capture.xml | 139 +++ .../language-function-config-load.xml | 183 ++++ .../language-function-foreach.xml | 459 ++++++++++ .../language-function-if.xml | 266 ++++++ .../language-function-include-php.xml | 149 ++++ .../language-function-include.xml | 217 +++++ .../language-function-insert.xml | 164 ++++ .../language-function-ldelim.xml | 101 +++ .../language-function-literal.xml | 106 +++ .../language-function-php.xml | 83 ++ .../language-function-section.xml | 837 ++++++++++++++++++ .../language-function-strip.xml | 85 ++ .../language-combining-modifiers.xml | 69 ++ .../designers/language-custom-functions.xml | 50 ++ .../language-function-assign.xml | 163 ++++ .../language-function-counter.xml | 127 +++ .../language-function-cycle.xml | 156 ++++ .../language-function-debug.xml | 67 ++ .../language-function-eval.xml | 156 ++++ .../language-function-fetch.xml | 138 +++ .../language-function-html-checkboxes.xml | 237 +++++ .../language-function-html-image.xml | 166 ++++ .../language-function-html-options.xml | 282 ++++++ .../language-function-html-radios.xml | 225 +++++ .../language-function-html-select-date.xml | 347 ++++++++ .../language-function-html-select-time.xml | 223 +++++ .../language-function-html-table.xml | 247 ++++++ .../language-function-mailto.xml | 176 ++++ .../language-function-math.xml | 204 +++++ .../language-function-popup-init.xml | 89 ++ .../language-function-popup.xml | 436 +++++++++ .../language-function-textformat.xml | 297 +++++++ docs/ja/designers/language-modifiers.xml | 158 ++++ .../language-modifier-capitalize.xml | 98 ++ .../language-modifier-cat.xml | 86 ++ .../language-modifier-count-characters.xml | 97 ++ .../language-modifier-count-paragraphs.xml | 73 ++ .../language-modifier-count-sentences.xml | 71 ++ .../language-modifier-count-words.xml | 68 ++ .../language-modifier-date-format.xml | 281 ++++++ .../language-modifier-default.xml | 110 +++ .../language-modifier-escape.xml | 162 ++++ .../language-modifier-indent.xml | 128 +++ .../language-modifier-lower.xml | 69 ++ .../language-modifier-nl2br.xml | 71 ++ .../language-modifier-regex-replace.xml | 110 +++ .../language-modifier-replace.xml | 107 +++ .../language-modifier-spacify.xml | 98 ++ .../language-modifier-string-format.xml | 100 +++ .../language-modifier-strip-tags.xml | 102 +++ .../language-modifier-strip.xml | 78 ++ .../language-modifier-truncate.xml | 128 +++ .../language-modifier-upper.xml | 67 ++ .../language-modifier-wordwrap.xml | 144 +++ docs/ja/designers/language-variables.xml | 68 ++ .../language-assigned-variables.xml | 205 +++++ .../language-config-variables.xml | 121 +++ .../language-variables-smarty.xml | 228 +++++ docs/ja/getting-started.xml | 685 ++++++++++++++ docs/ja/language-defs.ent | 8 + docs/ja/language-snippets.ent | 56 ++ docs/ja/livedocs.ent | 8 + docs/ja/make_chm_index.html | 38 + docs/ja/preface.xml | 94 ++ docs/ja/programmers/advanced-features.xml | 37 + .../advanced-features-objects.xml | 139 +++ .../advanced-features-outputfilters.xml | 81 ++ .../advanced-features-postfilters.xml | 74 ++ .../advanced-features-prefilters.xml | 73 ++ .../section-template-cache-handler-func.xml | 184 ++++ .../advanced-features/template-resources.xml | 258 ++++++ docs/ja/programmers/api-functions.xml | 67 ++ .../api-functions/api-append-by-ref.xml | 72 ++ .../programmers/api-functions/api-append.xml | 80 ++ .../api-functions/api-assign-by-ref.xml | 77 ++ .../programmers/api-functions/api-assign.xml | 100 +++ .../api-functions/api-clear-all-assign.xml | 68 ++ .../api-functions/api-clear-all-cache.xml | 61 ++ .../api-functions/api-clear-assign.xml | 62 ++ .../api-functions/api-clear-cache.xml | 86 ++ .../api-functions/api-clear-compiled-tpl.xml | 70 ++ .../api-functions/api-clear-config.xml | 66 ++ .../api-functions/api-config-load.xml | 84 ++ .../programmers/api-functions/api-display.xml | 116 +++ .../programmers/api-functions/api-fetch.xml | 159 ++++ .../api-functions/api-get-config-vars.xml | 68 ++ .../api-get-registered-object.xml | 67 ++ .../api-functions/api-get-template-vars.xml | 70 ++ .../api-functions/api-is-cached.xml | 131 +++ .../api-functions/api-load-filter.xml | 70 ++ .../api-functions/api-register-block.xml | 91 ++ .../api-register-compiler-function.xml | 59 ++ .../api-functions/api-register-function.xml | 93 ++ .../api-functions/api-register-modifier.xml | 75 ++ .../api-functions/api-register-object.xml | 55 ++ .../api-register-outputfilter.xml | 55 ++ .../api-functions/api-register-postfilter.xml | 59 ++ .../api-functions/api-register-prefilter.xml | 58 ++ .../api-functions/api-register-resource.xml | 96 ++ .../api-functions/api-template-exists.xml | 95 ++ .../api-functions/api-trigger-error.xml | 54 ++ .../api-functions/api-unregister-block.xml | 50 ++ .../api-unregister-compiler-function.xml | 49 + .../api-functions/api-unregister-function.xml | 59 ++ .../api-functions/api-unregister-modifier.xml | 59 ++ .../api-functions/api-unregister-object.xml | 44 + .../api-unregister-outputfilter.xml | 48 + .../api-unregister-postfilter.xml | 46 + .../api-unregister-prefilter.xml | 46 + .../api-functions/api-unregister-resource.xml | 61 ++ docs/ja/programmers/api-variables.xml | 63 ++ .../variable-autoload-filters.xml | 53 ++ .../api-variables/variable-cache-dir.xml | 69 ++ .../variable-cache-handler-func.xml | 36 + .../api-variables/variable-cache-lifetime.xml | 72 ++ .../variable-cache-modified-check.xml | 45 + .../api-variables/variable-caching.xml | 83 ++ .../api-variables/variable-compile-check.xml | 50 ++ .../api-variables/variable-compile-dir.xml | 57 ++ .../api-variables/variable-compile-id.xml | 65 ++ .../api-variables/variable-compiler-class.xml | 32 + .../variable-config-booleanize.xml | 37 + .../api-variables/variable-config-dir.xml | 42 + .../variable-config-fix-newlines.xml | 33 + .../variable-config-overwrite.xml | 77 ++ .../variable-config-read-hidden.xml | 35 + .../api-variables/variable-debug-tpl.xml | 39 + .../api-variables/variable-debugging-ctrl.xml | 59 ++ .../api-variables/variable-debugging.xml | 49 + .../variable-default-modifiers.xml | 35 + .../variable-default-resource-type.xml | 36 + ...variable-default-template-handler-func.xml | 30 + .../variable-error-reporting.xml | 44 + .../api-variables/variable-force-compile.xml | 37 + .../api-variables/variable-left-delimiter.xml | 38 + .../api-variables/variable-php-handling.xml | 62 ++ .../api-variables/variable-plugins-dir.xml | 80 ++ .../variable-request-use-auto-globals.xml | 48 + .../variable-request-vars-order.xml | 36 + .../variable-right-delimiter.xml | 38 + .../api-variables/variable-secure-dir.xml | 55 ++ .../variable-security-settings.xml | 77 ++ .../api-variables/variable-security.xml | 71 ++ .../api-variables/variable-template-dir.xml | 42 + .../api-variables/variable-trusted-dir.xml | 36 + .../api-variables/variable-use-sub-dirs.xml | 72 ++ docs/ja/programmers/caching.xml | 54 ++ .../programmers/caching/caching-cacheable.xml | 140 +++ .../ja/programmers/caching/caching-groups.xml | 109 +++ .../caching/caching-multiple-caches.xml | 136 +++ .../caching/caching-setting-up.xml | 207 +++++ docs/ja/programmers/plugins.xml | 70 ++ .../plugins/plugins-block-functions.xml | 123 +++ .../plugins/plugins-compiler-functions.xml | 98 ++ .../programmers/plugins/plugins-functions.xml | 132 +++ docs/ja/programmers/plugins/plugins-howto.xml | 46 + .../programmers/plugins/plugins-inserts.xml | 72 ++ .../programmers/plugins/plugins-modifiers.xml | 118 +++ .../plugins/plugins-naming-conventions.xml | 99 +++ .../plugins/plugins-outputfilters.xml | 75 ++ .../plugins-prefilters-postfilters.xml | 118 +++ .../programmers/plugins/plugins-resources.xml | 168 ++++ .../programmers/plugins/plugins-writing.xml | 62 ++ docs/ja/programmers/smarty-constants.xml | 91 ++ docs/ja/translation.xml | 25 + 181 files changed, 19695 insertions(+) create mode 100644 docs/ja/appendixes/bugs.xml create mode 100644 docs/ja/appendixes/resources.xml create mode 100644 docs/ja/appendixes/tips.xml create mode 100644 docs/ja/appendixes/troubleshooting.xml create mode 100644 docs/ja/bookinfo.xml create mode 100644 docs/ja/designers/chapter-debugging-console.xml create mode 100644 docs/ja/designers/config-files.xml create mode 100644 docs/ja/designers/language-basic-syntax.xml create mode 100644 docs/ja/designers/language-basic-syntax/language-escaping.xml create mode 100644 docs/ja/designers/language-basic-syntax/language-math.xml create mode 100644 docs/ja/designers/language-basic-syntax/language-syntax-attributes.xml create mode 100644 docs/ja/designers/language-basic-syntax/language-syntax-comments.xml create mode 100644 docs/ja/designers/language-basic-syntax/language-syntax-functions.xml create mode 100644 docs/ja/designers/language-basic-syntax/language-syntax-quotes.xml create mode 100644 docs/ja/designers/language-basic-syntax/language-syntax-variables.xml create mode 100644 docs/ja/designers/language-builtin-functions.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-capture.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-config-load.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-foreach.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-if.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-include-php.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-include.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-insert.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-ldelim.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-literal.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-php.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-section.xml create mode 100644 docs/ja/designers/language-builtin-functions/language-function-strip.xml create mode 100644 docs/ja/designers/language-combining-modifiers.xml create mode 100644 docs/ja/designers/language-custom-functions.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-assign.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-counter.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-cycle.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-debug.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-eval.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-fetch.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-html-checkboxes.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-html-image.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-html-options.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-html-radios.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-html-select-date.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-html-select-time.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-html-table.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-mailto.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-math.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-popup-init.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-popup.xml create mode 100644 docs/ja/designers/language-custom-functions/language-function-textformat.xml create mode 100644 docs/ja/designers/language-modifiers.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-capitalize.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-cat.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-count-characters.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-count-paragraphs.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-count-sentences.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-count-words.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-date-format.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-default.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-escape.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-indent.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-lower.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-nl2br.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-regex-replace.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-replace.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-spacify.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-string-format.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-strip-tags.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-strip.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-truncate.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-upper.xml create mode 100644 docs/ja/designers/language-modifiers/language-modifier-wordwrap.xml create mode 100644 docs/ja/designers/language-variables.xml create mode 100644 docs/ja/designers/language-variables/language-assigned-variables.xml create mode 100644 docs/ja/designers/language-variables/language-config-variables.xml create mode 100644 docs/ja/designers/language-variables/language-variables-smarty.xml create mode 100644 docs/ja/getting-started.xml create mode 100644 docs/ja/language-defs.ent create mode 100644 docs/ja/language-snippets.ent create mode 100644 docs/ja/livedocs.ent create mode 100644 docs/ja/make_chm_index.html create mode 100644 docs/ja/preface.xml create mode 100644 docs/ja/programmers/advanced-features.xml create mode 100644 docs/ja/programmers/advanced-features/advanced-features-objects.xml create mode 100644 docs/ja/programmers/advanced-features/advanced-features-outputfilters.xml create mode 100644 docs/ja/programmers/advanced-features/advanced-features-postfilters.xml create mode 100644 docs/ja/programmers/advanced-features/advanced-features-prefilters.xml create mode 100644 docs/ja/programmers/advanced-features/section-template-cache-handler-func.xml create mode 100644 docs/ja/programmers/advanced-features/template-resources.xml create mode 100644 docs/ja/programmers/api-functions.xml create mode 100644 docs/ja/programmers/api-functions/api-append-by-ref.xml create mode 100644 docs/ja/programmers/api-functions/api-append.xml create mode 100644 docs/ja/programmers/api-functions/api-assign-by-ref.xml create mode 100644 docs/ja/programmers/api-functions/api-assign.xml create mode 100644 docs/ja/programmers/api-functions/api-clear-all-assign.xml create mode 100644 docs/ja/programmers/api-functions/api-clear-all-cache.xml create mode 100644 docs/ja/programmers/api-functions/api-clear-assign.xml create mode 100644 docs/ja/programmers/api-functions/api-clear-cache.xml create mode 100644 docs/ja/programmers/api-functions/api-clear-compiled-tpl.xml create mode 100644 docs/ja/programmers/api-functions/api-clear-config.xml create mode 100644 docs/ja/programmers/api-functions/api-config-load.xml create mode 100644 docs/ja/programmers/api-functions/api-display.xml create mode 100644 docs/ja/programmers/api-functions/api-fetch.xml create mode 100644 docs/ja/programmers/api-functions/api-get-config-vars.xml create mode 100644 docs/ja/programmers/api-functions/api-get-registered-object.xml create mode 100644 docs/ja/programmers/api-functions/api-get-template-vars.xml create mode 100644 docs/ja/programmers/api-functions/api-is-cached.xml create mode 100644 docs/ja/programmers/api-functions/api-load-filter.xml create mode 100644 docs/ja/programmers/api-functions/api-register-block.xml create mode 100644 docs/ja/programmers/api-functions/api-register-compiler-function.xml create mode 100644 docs/ja/programmers/api-functions/api-register-function.xml create mode 100644 docs/ja/programmers/api-functions/api-register-modifier.xml create mode 100644 docs/ja/programmers/api-functions/api-register-object.xml create mode 100644 docs/ja/programmers/api-functions/api-register-outputfilter.xml create mode 100644 docs/ja/programmers/api-functions/api-register-postfilter.xml create mode 100644 docs/ja/programmers/api-functions/api-register-prefilter.xml create mode 100644 docs/ja/programmers/api-functions/api-register-resource.xml create mode 100644 docs/ja/programmers/api-functions/api-template-exists.xml create mode 100644 docs/ja/programmers/api-functions/api-trigger-error.xml create mode 100644 docs/ja/programmers/api-functions/api-unregister-block.xml create mode 100644 docs/ja/programmers/api-functions/api-unregister-compiler-function.xml create mode 100644 docs/ja/programmers/api-functions/api-unregister-function.xml create mode 100644 docs/ja/programmers/api-functions/api-unregister-modifier.xml create mode 100644 docs/ja/programmers/api-functions/api-unregister-object.xml create mode 100644 docs/ja/programmers/api-functions/api-unregister-outputfilter.xml create mode 100644 docs/ja/programmers/api-functions/api-unregister-postfilter.xml create mode 100644 docs/ja/programmers/api-functions/api-unregister-prefilter.xml create mode 100644 docs/ja/programmers/api-functions/api-unregister-resource.xml create mode 100644 docs/ja/programmers/api-variables.xml create mode 100644 docs/ja/programmers/api-variables/variable-autoload-filters.xml create mode 100644 docs/ja/programmers/api-variables/variable-cache-dir.xml create mode 100644 docs/ja/programmers/api-variables/variable-cache-handler-func.xml create mode 100644 docs/ja/programmers/api-variables/variable-cache-lifetime.xml create mode 100644 docs/ja/programmers/api-variables/variable-cache-modified-check.xml create mode 100644 docs/ja/programmers/api-variables/variable-caching.xml create mode 100644 docs/ja/programmers/api-variables/variable-compile-check.xml create mode 100644 docs/ja/programmers/api-variables/variable-compile-dir.xml create mode 100644 docs/ja/programmers/api-variables/variable-compile-id.xml create mode 100644 docs/ja/programmers/api-variables/variable-compiler-class.xml create mode 100644 docs/ja/programmers/api-variables/variable-config-booleanize.xml create mode 100644 docs/ja/programmers/api-variables/variable-config-dir.xml create mode 100644 docs/ja/programmers/api-variables/variable-config-fix-newlines.xml create mode 100644 docs/ja/programmers/api-variables/variable-config-overwrite.xml create mode 100644 docs/ja/programmers/api-variables/variable-config-read-hidden.xml create mode 100644 docs/ja/programmers/api-variables/variable-debug-tpl.xml create mode 100644 docs/ja/programmers/api-variables/variable-debugging-ctrl.xml create mode 100644 docs/ja/programmers/api-variables/variable-debugging.xml create mode 100644 docs/ja/programmers/api-variables/variable-default-modifiers.xml create mode 100644 docs/ja/programmers/api-variables/variable-default-resource-type.xml create mode 100644 docs/ja/programmers/api-variables/variable-default-template-handler-func.xml create mode 100644 docs/ja/programmers/api-variables/variable-error-reporting.xml create mode 100644 docs/ja/programmers/api-variables/variable-force-compile.xml create mode 100644 docs/ja/programmers/api-variables/variable-left-delimiter.xml create mode 100644 docs/ja/programmers/api-variables/variable-php-handling.xml create mode 100644 docs/ja/programmers/api-variables/variable-plugins-dir.xml create mode 100644 docs/ja/programmers/api-variables/variable-request-use-auto-globals.xml create mode 100644 docs/ja/programmers/api-variables/variable-request-vars-order.xml create mode 100644 docs/ja/programmers/api-variables/variable-right-delimiter.xml create mode 100644 docs/ja/programmers/api-variables/variable-secure-dir.xml create mode 100644 docs/ja/programmers/api-variables/variable-security-settings.xml create mode 100644 docs/ja/programmers/api-variables/variable-security.xml create mode 100644 docs/ja/programmers/api-variables/variable-template-dir.xml create mode 100644 docs/ja/programmers/api-variables/variable-trusted-dir.xml create mode 100644 docs/ja/programmers/api-variables/variable-use-sub-dirs.xml create mode 100644 docs/ja/programmers/caching.xml create mode 100644 docs/ja/programmers/caching/caching-cacheable.xml create mode 100644 docs/ja/programmers/caching/caching-groups.xml create mode 100644 docs/ja/programmers/caching/caching-multiple-caches.xml create mode 100644 docs/ja/programmers/caching/caching-setting-up.xml create mode 100644 docs/ja/programmers/plugins.xml create mode 100644 docs/ja/programmers/plugins/plugins-block-functions.xml create mode 100644 docs/ja/programmers/plugins/plugins-compiler-functions.xml create mode 100644 docs/ja/programmers/plugins/plugins-functions.xml create mode 100644 docs/ja/programmers/plugins/plugins-howto.xml create mode 100644 docs/ja/programmers/plugins/plugins-inserts.xml create mode 100644 docs/ja/programmers/plugins/plugins-modifiers.xml create mode 100644 docs/ja/programmers/plugins/plugins-naming-conventions.xml create mode 100644 docs/ja/programmers/plugins/plugins-outputfilters.xml create mode 100644 docs/ja/programmers/plugins/plugins-prefilters-postfilters.xml create mode 100644 docs/ja/programmers/plugins/plugins-resources.xml create mode 100644 docs/ja/programmers/plugins/plugins-writing.xml create mode 100644 docs/ja/programmers/smarty-constants.xml create mode 100644 docs/ja/translation.xml diff --git a/docs/ja/appendixes/bugs.xml b/docs/ja/appendixes/bugs.xml new file mode 100644 index 00000000..05d1bab3 --- /dev/null +++ b/docs/ja/appendixes/bugs.xml @@ -0,0 +1,31 @@ + + + + + + バグ + + Smarty の最新ディストリビューションに付属している + BUGS ファイルを読むか、web サイトをチェックしてください。 + + + diff --git a/docs/ja/appendixes/resources.xml b/docs/ja/appendixes/resources.xml new file mode 100644 index 00000000..693c0a87 --- /dev/null +++ b/docs/ja/appendixes/resources.xml @@ -0,0 +1,59 @@ + + + + + + リソース + Smarty のホームページは + &url.smarty; + です。 + + + + + + メーリングリストに参加するには、メールを + &ml.general.sub; に送信してください。 + メーリングリストのアーカイブは ここ で閲覧できます。 + + + + 掲示板は &url.forums; です。 + + + + wiki の場所は &url.wiki; です。 + + + + チャットに参加したい場合は irc.freenode.net#smarty へ。 + + + + FAQ は こちらこちら + にあります。 + + + + + + diff --git a/docs/ja/appendixes/tips.xml b/docs/ja/appendixes/tips.xml new file mode 100644 index 00000000..33a3276b --- /dev/null +++ b/docs/ja/appendixes/tips.xml @@ -0,0 +1,453 @@ + + + + + + ヒント & 裏ワザ + + + + 空白の変数の扱い + + テーブルの背景が適切に機能するように   + を出力する場合のように、空白の変数が何も出力しない代わりに + デフォルトの値を出力したい場合があるかもしれません。 + そのために多くの人は + {if} + {if}ステートメントを使用すると思いますが、Smartyによる変数の修飾子 + default + を使った簡略な方法があります。 + + Undefined variable というエラーが表示されるのは、 + PHP の + error_reporting()E_ALL + になっており、変数が Smarty に代入されていない場合です。 + + + + + + 変数が空白の時、  を出力する + + + + + + +default 修飾子および +変数のデフォルトの扱い +も参照してください。 + + + + + + 変数のデフォルトの扱い + + 変数がテンプレートの至る所に頻繁に使われる場合、それが記述されるたびに変更子 + default + を用いると少し見苦しくなりがちです。この場合、 + {assign} + 関数によって変数にデフォルト値を割り当てる事でこれを改善する事ができます。 + + + デフォルト値をテンプレート変数に割り当てる + + + + + + default + 修飾子および 空白の変数の扱い + も参照してください。 + + + + + ヘッダテンプレートにタイトルの変数を渡す + + テンプレートの大半が同じヘッダ及びフッタを使用する場合は、それらを単体のテンプレートに分割して + + {include} するのが普通です。 + しかしどのページから呼び出されたかによって、 + そのヘッダに異なるタイトルを持たせる必要があるとすればどうなるでしょうか? + インクルードされる際に、タイトルを + 属性 + としてヘッダに渡す事ができます。 + + + + ヘッダテンプレートにタイトルの変数を渡す + + + mainpage.tpl - メインページを描画する際に、 + Main Page というタイトルを + header.tpl に私、それをタイトルとして使用します。 + + + + + + + archives.tpl - アーカイブページを描画する際には、 + タイトルは Archives となります。 + この例では、ハードコーディングされた変数ではなく + archives_page.conf + から変数を取得していることに注意しましょう。 + + + + + + + header.tpl - $title 変数が設定されていない場合に、 + Smarty News と表示します。これは + default + 修飾子を使用して実現しています。 + + + + +{$title|default:'Smarty News'} + + +]]> + + + + footer.tpl + + + + +]]> + + + + + + 日付 + + 経験上、Smarty に渡す日付は常に + タイムスタンプ型 + にしておくことをお勧めします。これにより、テンプレートデザイナーは + date_format + 修飾子で日付の書式を自由にコントロールできるようになります。 + また、必要なら日付の比較も簡単に行えます。 + + + date_format の使用 + + + + + 出力はこのようになります。 + + + + + + + + + 出力はこのようになります。 + + + + + + テンプレートで日付を比較するには、タイムスタンプを使用します。 + + + + + + + テンプレートで + {html_select_date} を使用する場合、 + おそらくプログラマはフォームからの出力をタイムスタンプ型に変換したいでしょう。 + それを行うのに役立つ関数を次に示します。 + + + フォームの日付要素をUNIXタイムスタンプ型に変換する + + +]]> + + + + + + {html_select_date}、 + + {html_select_time}、 + + date_format + および + $smarty.now + も参照してください。 + + + + + WAP/WML + + WAP/WML テンプレートはテンプレートコンテンツに加え、php + によって Content-Type ヘッダ + が渡される必要があります。これを実行する容易な方法は、 + ヘッダを出力するカスタム関数を記述する事です。 + もし キャッシュ を有効にしている場合はキャッシュは機能しないので、 + {insert} + タグを用いて出力を行います ({insert} + タグはキャッシュされない事を覚えていて下さい)。 + もしテンプレートの前にブラウザに何か出力されていると、 + ヘッダの出力は失敗する可能性があります。 + + + WML Content-Type ヘッダを出力するために {insert} を使用する + + +]]> + + + Smarty テンプレートは、次のように insert タグから始まる必要があります。 + + + + + + + + + + + + +

+ Smarty 版の WAP へようこそ! + OK を押すと次に進みます…… +

+
+ + +

+ どう?簡単でしょ? +

+
+
+]]> +
+
+
+ + + コンポーネント化したテンプレート + + 習慣的に、アプリケーションにテンプレートをプログラミングする手順は次のように進みます。 + はじめに php アプリケーションにおいて変数を蓄積します + (おそらくデータベースのクエリーによって)。それから Smarty + オブジェクトのインスタンスを作成して変数を割り当て + (assign())、 + テンプレートを表示 (display()) + します。仮に株式相場表示を行うテンプレートがあったとしましょう。 + これは php アプリケーションにより株式情報のデータを収集し、 + テンプレートにこれらの変数を割り当てて表示します。 + もし、前もってデータを取得する事を気にせずに、 + テンプレートを単にインクルードする事で株式相場表示をアプリケーションに追加できれば良いと思いませんか? + + + これは、内容をフェッチし、テンプレート変数に割り当てるための + カスタムプラグインを書くことで実現できます + + + コンポーネント化したテンプレート + + function.load_ticker.php - + このファイルを + + プラグインのディレクトリ + においてください。 + + +assign($params['assign'], $ticker_info); +} +?> +]]> + + + index.tpl + + + + + + + {include_php}、 + {include} + および + {php} + も参照してください。 + + + + + E-mail アドレスを混乱させる + + これまでに、あなたの E-mail アドレスが多数のスパムメーリングリストにどのように載るのか + 不思議に思った事はありませんか?その一つの方法として、スパム発信者は web ページ上の + E-mail アドレスを収集しています。この問題に対抗するために、E-mail アドレスが HTML + ソース内では混乱した JavaScript に見えるがブラウザでは正しく表示されるという方法が使えます。 + これは {mailto} + プラグインによって行われます。 + + + E-mail アドレスを混乱させる例 + + +{mailto address=$EmailAddress encode='javascript' subject='Hello'} に問い合わせを送る + +]]> + + + + テクニカルノート + + この方法は 100% 確実という訳ではありません。 + もしかしたらスパム発信者はこれらの値を解読するためのコードを書くかもしれません。 + ですがそれはまず有り得ないでしょう…… + おそらく…… + 今のところは…… + 量子コンピュータってどうなったんでしょう :-? + + + + escape + 修飾子および + {mailto} + も参照してください。 + + +
+ + diff --git a/docs/ja/appendixes/troubleshooting.xml b/docs/ja/appendixes/troubleshooting.xml new file mode 100644 index 00000000..c2df3728 --- /dev/null +++ b/docs/ja/appendixes/troubleshooting.xml @@ -0,0 +1,200 @@ + + + + + + トラブルシューティング + + + Smarty/PHP エラー + + Smarty は、タグの属性が不足していたり、誤った変数名を指定していた時など、 + 多くのエラーをキャッチする事ができます。 + キャッチすると次の例のようなエラーが表示されます。 + + + Smarty エラー + + + + + + Smarty はテンプレート名・エラー行番号・エラー内容を示します。 + その次のエラーは、Smarty クラスにおいてエラーが発生した実際の行番号から成るメッセージです。 + + + + タグの閉じ忘れのような、Smarty がキャッチできないエラーがあります。 + 通常、このような場合のエラーは PHP コンパイル時にパースエラーで終了します。 + + + + PHP パースエラー + + + + + + + PHP パースエラーの場合のエラー行番号は、 + テンプレートそのものではなくコンパイルされた PHP スクリプトに一致します。 + 通常、テンプレートを見ることで構文エラーを見つけられます。 + 一般的な間違いとしては、 + {if}{/if} や + {section}{/section} + タグの閉じ忘れ、{if} + タグ内のロジックの構文の誤りなどがあります。もしエラーが見つけられない場合は、 + テンプレートのどこに該当するエラーがあるかを見い出すために、 + コンパイルされた PHP ファイルを開いて行番号のあたりを調べる必要があります。 + + + + + その他共通のエラー + + + + + + + + + + $template_dir + が存在しない不正なディレクトリか、もしくは存在しても + index.tpl が + templates/ + ディレクトリ内にありません。 + + + + + + {config_load} + 関数がテンプレート内にあり (もしくは + config_load() + で呼び出されており)、その際の + $config_dir + が存在しない不正なディレクトリか、もしくは存在しても + site.conf がそのディレクトリ内にありません。 + + + + + + + + + + + + + + $compile_dir + に不正な値が入っており、そのようなディレクトリが存在しないか、もしくは + templates_c の指定がディレクトリではなくファイルです。 + + + + + + + + + + + + + $compile_dir に Web サーバによる書き込み権限がありません。 + Smarty のインストール + のページ下部のパーミッションの項を参照してください。 + + + + + + + + + + + + $caching が有効であるにも関わらず、 + $cache_dir + が存在しない不正なディレクトリか、もしくは存在しても + cache/ がディレクトリではなくファイルである、という意味です。 + + + + + + + + + + + + $caching + が有効であるにも関わらず、 + $cache_dir + に Web サーバによる書き込み権限がない、という意味です。 + Smarty のインストール + のページ下部のパーミッションの項を参照してください。 + + + + + + + デバッグ、 + + $error_reporting + および + trigger_error() + の項も参照してください。 + + + + + diff --git a/docs/ja/bookinfo.xml b/docs/ja/bookinfo.xml new file mode 100644 index 00000000..65ad0903 --- /dev/null +++ b/docs/ja/bookinfo.xml @@ -0,0 +1,57 @@ + + + + + + Smarty - コンパイリング PHP テンプレートエンジン + + + Monte + Ohrt <monte at ohrt dot com> + + + Andrei + Zmievski <andrei@php.net> + + + + + ShinsukeMatsuda <mat-sh at fj9 dot so-net dot ne dot jp> + + + DaichiKamemoto <daichi at asial dot co dot jp> + + + JoeMorikawa <joe at asial dot co dot jp> + + + MasahiroTakagi <takagi@php.net> + + + &build-date; + + 2001-2005 + New Digital Group, Inc. + + + + diff --git a/docs/ja/designers/chapter-debugging-console.xml b/docs/ja/designers/chapter-debugging-console.xml new file mode 100644 index 00000000..5b5f77fb --- /dev/null +++ b/docs/ja/designers/chapter-debugging-console.xml @@ -0,0 +1,89 @@ + + + + + + デバッギングコンソール + + Smarty にはデバッギングコンソールが用意されています。 + このコンソールは、 + インクルード + された全てのテンプレートについての情報と、現在実行中のテンプレートに + 割り当てられた 変数及び + 設定 + ファイルの変数の値を表示します。Smarty の配布ファイル群に含まれているテンプレート + debug.tpl が、コンソールを表示するためのものです。 + + + debug.tpl (デフォルトでは + SMARTY_DIR 内にあります) に + + $debug_tpl のテンプレートリソースのパスを示す必要がある場合は、 + Smarty で + $debugging + を &true; に設定します。 + ページを読み込む時に Javascript による新たなコンソールウィンドウが現れ、 + 現在のページにおける、インクルードされたすべてのテンプレートの名前と + 定義されている変数の値を表示します。 + 特定のテンプレートに有効な変数を調べる場合は、テンプレート関数 + + {debug} を参照してください。 + デバッギングコンソールを無効にするには + $debugging + を &false; に設定します。また、一時的にデバッギングコンソールを有効にするには、 + $debugging_ctrl + で URL の中に SMARTY_DEBUG を含めます。 + . + + + テクニカルノート + + fetch() + API を使用している場合はデバッギングコンソールは動作せず、 + + display() の場合のみ使用できます。 + このコンソールは、生成されたテンプレートの終端に追加される + Javascript の集合です。Javascript がお好みでないなら、 + 希望の出力になるように debug.tpl + を修正してください。デバッグ情報はキャッシュされず、 + デバッギングコンソールの出力には debug.tpl + 自体の情報は含まれません。 + + + + + 各テンプレートと設定ファイルの読み込みにかかる時間は、ほんの数秒です。 + + + + トラブルシューティング、 + + $error_reporting + および + trigger_error() + も参照してください。 + + + + + + diff --git a/docs/ja/designers/config-files.xml b/docs/ja/designers/config-files.xml new file mode 100644 index 00000000..971552f6 --- /dev/null +++ b/docs/ja/designers/config-files.xml @@ -0,0 +1,110 @@ + + + + + + 設定ファイル + + 設定ファイルは、1つのファイルからグローバルなテンプレート変数を管理する方法として、 + デザイナーにとって有用です。1つの例としては、テンプレートの色の指定を行う場合です。 + 通常、アプリケーションの配色を変更するには全てのテンプレートファイルを調べ、 + 該当する箇所の色の指定を変更する必要があります。 + 設定ファイルを使うと色の指定を一箇所で管理できるので、 + 更新する必要があるファイルは1つだけになります。 + + + 設定ファイルの記述例 + + + + + + 設定ファイルの値 + はクォートで囲む事が出来ます(必須ではありません)。 + シングルクォートとダブルクォートのどちらでも使用できます。 + 複数行にまたがる値を持つ場合は、値全体をトリプルクォート(""") + で囲みます。設定ファイルの中にコメントを記述するには、 + 行の初めに # (ハッシュ) を使う事を推奨します。 + + + 上記の設定ファイルの例は2つのセクションを持っています。 + セクション名はブラケット[]に囲まれ、[ + もしくは ] を含まない任意の文字列を指定できます。 + 先頭の4つの変数は、グローバル変数 (あるいはセクションに含まれない変数) + です。これらの変数は常に設定ファイルから読み込まれます。 + 特定のセクションが読み込まれた場合は、 + グローバル変数に加えてそのセクションからの変数が読み込まれます。 + グローバル変数とセクション内に同じ変数が存在する場合はセクション内の変数が使用されます。 + 1つのセクション内に同名の2つの変数を指定した場合は、 + + $config_overwrite + が無効でない限りは後で指定されたものが使用されます。 + + + 設定ファイルの読み込みは、組み込みのテンプレート関数 + + {config_load} あるいは API 関数 config_load() + によって行います。 + + + [.hidden] のように変数名又はセクション名の先頭にピリオドをつける事によって、 + 変数又は全体のセクションを隠蔽する事ができます。 + アプリケーションからは使用されるがテンプレートエンジンからは使用されないような重要なデータ + (DB接続に関する情報など) を取得する際に有用です。 + テンプレートを編集をするサードパーティが存在する場合、 + 重要なデータを含んだ設定ファイルをテンプレート内に読み込む事によって盗み読まれる危険性を回避できます。 + + + {config_load}、 + $config_overwrite、 + get_config_vars()、 + clear_config() + および + config_load() + も参照してください。 + + + diff --git a/docs/ja/designers/language-basic-syntax.xml b/docs/ja/designers/language-basic-syntax.xml new file mode 100644 index 00000000..8818501d --- /dev/null +++ b/docs/ja/designers/language-basic-syntax.xml @@ -0,0 +1,46 @@ + + + + + + 基本構文 + + 全てのテンプレートタグはデリミタによって囲まれます。 + デフォルトではデリミタは {} + ですが、これは 変更可能 です。 + + + このマニュアルで挙げる例ではデフォルトのデリミタを利用しています。 + Smarty では、デリミタ外の内容は静的コンテンツとして表示されます。 + Smarty がテンプレ ートタグを見つけると、その解釈を試みて適切な出力に置換します。 + + + &designers.language-basic-syntax.language-syntax-comments; + &designers.language-basic-syntax.language-syntax-variables; + &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/ja/designers/language-basic-syntax/language-escaping.xml b/docs/ja/designers/language-basic-syntax/language-escaping.xml new file mode 100644 index 00000000..5ff2f3d7 --- /dev/null +++ b/docs/ja/designers/language-basic-syntax/language-escaping.xml @@ -0,0 +1,92 @@ + + + + + + Smarty の構文解析を回避する + + 時々、Smarty の構文解析の対象にしたくないと望む、 + もしくはそうする必要がある部分があります。 典型的な例としては、 + テンプレートに Javascript や CSS コードが含まれるときです。 + それらの言語が Smarty のデフォルトの + デリミタ + である { と } を使用するときに問題が発生します。 + + + + もっとも単純な解決方法は、Javascript と CSS コードをそれぞれファイルに切り分け、 + それらにアクセスするために標準的な HTML の機能を使用する事で状況を回避する事です。 + + + + リテラルコンテンツを含めるには + {literal}..{/literal} ブロックを使用します。 + HTML エンティティの使用法と同様に、 {ldelim}{rdelim} あるいは + {$smarty.ldelim} を使用して現在のデリミタを表示することができます。 + + + + 単純に Smarty の + $left_delimiter および + + $right_delimiter + を変更するだけでも便利になることが多々あります。 + + + デリミタを変更する例 + +left_delimiter = ''; + +$smarty->assign('foo', 'bar'); +$smarty->assign('name', 'Albert'); +$smarty->display('example.tpl'); + +?> +]]> + + + テンプレートはこのようになります。 + + + to Smarty + +]]> + + + + diff --git a/docs/ja/designers/language-basic-syntax/language-math.xml b/docs/ja/designers/language-basic-syntax/language-math.xml new file mode 100644 index 00000000..46ad6332 --- /dev/null +++ b/docs/ja/designers/language-basic-syntax/language-math.xml @@ -0,0 +1,57 @@ + + + + + + 演算子 + + 演算子は、変数の値に直接適用されます。 + + + 演算子の例 + +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`"} +]]> + + + + + 複雑な数式については + {math} 関数、そして + {eval} + も参照してください。 + + + diff --git a/docs/ja/designers/language-basic-syntax/language-syntax-attributes.xml b/docs/ja/designers/language-basic-syntax/language-syntax-attributes.xml new file mode 100644 index 00000000..4589be8a --- /dev/null +++ b/docs/ja/designers/language-basic-syntax/language-syntax-attributes.xml @@ -0,0 +1,62 @@ + + + + + + 属性 + + ほとんどの 関数 には、 + それらの動作を指定したり修正するための属性があります。Smarty 関数の属性は + HTML の属性にかなり近いものです。静的な値はクォートで囲む必要はありませんが、 + リテラル文字列であるべきです。変数を使う場合はクォートで囲んではいけません。 + + + いくつかの属性は、boolean 値 (&true; あるいは &false;) を必要とします。 + これらの値は、クォートなしの true、 + onyes あるいは + falseoff、 + no を指定する事が出来ます。 + + + 関数の属性の構文 + + + {html_options options=$companies selected=$company_id} + +]]> + + + + diff --git a/docs/ja/designers/language-basic-syntax/language-syntax-comments.xml b/docs/ja/designers/language-basic-syntax/language-syntax-comments.xml new file mode 100644 index 00000000..76d3df2f --- /dev/null +++ b/docs/ja/designers/language-basic-syntax/language-syntax-comments.xml @@ -0,0 +1,108 @@ + + + + + + コメント + + テンプレートのコメントはまずアスタリスクで囲まれ、次にそれを + デリミタ + タグで囲みます。このような形式になります。 + + + + + + + + Smarty のコメントは、テンプレートの最終的な出力には表示されません。この点は + <!-- HTML のコメント --> とは異なります。 + これは、テンプレート内での内部的なメモとして使用するのに便利です。 + 誰にもバレません ;-) + + + テンプレート内のコメント + + + +{$title} + + + +{* 別の Smarty コメント *} + + +{* この、複数行の + Smarty コメントは + ブラウザへは送信されません +*} + +{********************************************************* +クレジットブロックを含む複数行のコメント + @ author: bg@example.com + @ maintainer: support@example.com + @ para: var that sets block style + @ css: the style output +**********************************************************} + +{* メインロゴなどを含むヘッダファイル *} +{include file='header.tpl'} + + +{* 開発メモ: 変数 $includeFile の値は foo.php で設定されています *} + +{include file=$includeFile} + +{* この + {html_options options=$vals selected=$selected_id} + +*} + + +{* $affiliate|upper *} + +{* コメントを入れ子にすることはできません *} +{* + +*} + + +{* テンプレート用の cvs タグ。以下の 36 はアメリカの通貨記号ですが、 +. cvs がこれを変換してしまいます…… *} +{* $Id: Exp $ *} +{* $Id: *} + + +]]> + + + + diff --git a/docs/ja/designers/language-basic-syntax/language-syntax-functions.xml b/docs/ja/designers/language-basic-syntax/language-syntax-functions.xml new file mode 100644 index 00000000..a93b93a1 --- /dev/null +++ b/docs/ja/designers/language-basic-syntax/language-syntax-functions.xml @@ -0,0 +1,88 @@ + + + + + + 関数 + + すべての Smarty タグは、 + 変数 + を出力するか何らかの関数を呼び出す動作をします。 + 関数は、 + {funcname attr1='val1' attr2='val2'} + のように関数名とその + 属性 + をデリミタで囲みます。 + + + 関数の構文 + +{$name}! +{else} + やぁ、{$name} +{/if} + +{include file='footer.tpl' ad=$random_id} +]]> + + + + + + 組み込み関数 + と カスタム関数 + は、テンプレート内では同じ構文です。 + + + 組み込み関数とは Smarty の + 内部で 動作する関数で、たとえば + {if}、 + {section} および + {strip} + などのことです。これらを変更したり修正したりすることはありません。 + + + カスタム関数は + 追加の 関数で、 + プラグイン で実装します。 + これらは自由に修正したり、新たな関数を追加したりする事が可能です。 + + {html_options} や + {popup} + などがカスタム関数の例です。 + + + + + register_function() + も参照してください。 + + + + diff --git a/docs/ja/designers/language-basic-syntax/language-syntax-quotes.xml b/docs/ja/designers/language-basic-syntax/language-syntax-quotes.xml new file mode 100644 index 00000000..2562aaaa --- /dev/null +++ b/docs/ja/designers/language-basic-syntax/language-syntax-quotes.xml @@ -0,0 +1,94 @@ + + + + + + ダブルクォート内に埋め込まれた変数 + + + + + Smarty が "ダブルクォート" で囲まれた内容の中から 割り当てられた + 変数 + として認識するのは、変数名が数字・文字・_(アンダースコア)・[](ブラケット) + のみで構成されているもののみです。詳細は + 名前の付けかた + を参照ください。 + + + + その他の文字、たとえば .(ピリオド)や + $object>reference(オブジェクト参照)を含む場合は、 + その変数を `バッククォート` で囲む必要があります。 + + + + 修飾子 を埋め込むことはできず、 + 常にクォートの外で適用する必要があります。 + + + + + 構文の例 + + + + + + + 実用例 + + + + + + + escape + も参照してください。 + + + + diff --git a/docs/ja/designers/language-basic-syntax/language-syntax-variables.xml b/docs/ja/designers/language-basic-syntax/language-syntax-variables.xml new file mode 100644 index 00000000..8836ed32 --- /dev/null +++ b/docs/ja/designers/language-basic-syntax/language-syntax-variables.xml @@ -0,0 +1,87 @@ + + + + + + 変数 + + テンプレート変数は、先頭にドル記号 $ を付けます。変数名には + PHP の変数 + と同様に英数字およびアンダースコアが使用できます。 + 配列の参照には、インデックスの数値もしくはそれ以外の文字を使用できます。 + オブジェクトのプロパティとメソッドの参照も同様です。 + + Config ファイルの変数 + にはドル記号を付けず、参照する際にはハッシュマーク # で囲むか、 + + $smarty.config + 変数として指定します。 + + + 変数 + +bar} <-- オブジェクトのプロパティ "bar"を表示します。 +{$foo->bar()} <-- オブジェクトのメソッド"bar"の返り値を表示します。 +{#foo#} <-- configファイル変数"foo"を表示します。 +{$smarty.config.foo} <-- {#foo#}と同じです。 +{$foo[bar]} <-- sectionループ内でのみ正当な構文です。{section}の項を参照のこと。 +{assign var=foo value='baa'}{$foo} <-- "baa"を表示します。{assign}の項を参照のこと。 + +その他多くの組み合わせが可能です。 + +{$foo.bar.baz} +{$foo.$bar.$baz} +{$foo[4].baz} +{$foo[4].$baz} +{$foo.bar.baz[4]} +{$foo->bar($baz,2,$bar)} <-- パラメータを渡します。 +{"foo"} <-- 静的な値を使用できます。 + +{* サーバ変数 "SERVER_NAME" の内容を表示します ($_SERVER['SERVER_NAME'])*} +{$smarty.server.SERVER_NAME} +]]> + + + + $_GET や + $_SESSION などのようなリクエスト変数は、 + 予約済の変数 + $smarty の値で取得します。 + + + + + $smarty、 + config 変数、 + {assign} + および + assign() + も参照してください。 + + + + diff --git a/docs/ja/designers/language-builtin-functions.xml b/docs/ja/designers/language-builtin-functions.xml new file mode 100644 index 00000000..3db7e5cf --- /dev/null +++ b/docs/ja/designers/language-builtin-functions.xml @@ -0,0 +1,53 @@ + + + + + + 組み込み関数 + + Smarty にはいくつかの組み込み関数があります。 + これらはテンプレートエンジンにとって必要不可欠なものです。これらと同じ名前の + カスタム関数 + を作成したり、組み込み関数を修正したりする事はできません。 + + + これらの関数の一部は assign 属性を持っており、 + 結果を出力せずにここで指定した名前のテンプレート変数に格納します。これは + + {assign} 関数と似ています。 + + + &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-if; + &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-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/ja/designers/language-builtin-functions/language-function-capture.xml b/docs/ja/designers/language-builtin-functions/language-function-capture.xml new file mode 100644 index 00000000..eec8f651 --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-capture.xml @@ -0,0 +1,139 @@ + + + + + + {capture} + + + {capture} は、タグの間のテンプレートの出力を集め、 + それをブラウザに表示する代わりに変数に受け渡します。 + {capture name='foo'}{/capture} + の間のあらゆるコンテンツは、name + 属性で指定した変数に格納されます。 + + キャプチャされたコンテンツは、特別な変数 + $smarty.capture.foo + (fooname 属性で指定した変数) によって利用できます。 + name 属性を指定しない場合は default + が使われ、$smarty.capture.default + のようになります。 + + {capture}'s はネスト可能です。 + + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + name + string + no + default + キャプチャされるブロックの名前 + + + assign + string + No + n/a + キャプチャされた出力を割り当てるための変数名 + + + + + + + + 注意 + + {insert} + の出力をキャプチャする際には注意が必要です。 + $caching + が有効の時に、実行したい + {insert} + コマンドがもしキャッシュされたコンテンツ内にあるのなら、そのコンテンツはキャプチャされません。 + + + + + + name 属性を使用した {capture} + +{$smarty.capture.banner} +{/if} +]]> + + + + + {capture} をテンプレート変数に格納 + この例は、 + {popup} + 関数の使用法を示すものです。 + + +Your ip is {$smarty.server.REMOTE_ADDR}. +{/capture} +help +]]> + + + + + + + $smarty.capture、 + {eval}、 + {fetch}、 + fetch() + および {assign} + も参照してください。 + + + + diff --git a/docs/ja/designers/language-builtin-functions/language-function-config-load.xml b/docs/ja/designers/language-builtin-functions/language-function-config-load.xml new file mode 100644 index 00000000..6970e1a5 --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-config-load.xml @@ -0,0 +1,183 @@ + + + + + + {config_load} + + {config_load} を使用して、 + 設定ファイル からテンプレートに + #変数# + を読み込みます。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + file + string + Yes + n/a + インクルードする設定ファイルの名前 + + + section + string + No + n/a + 読み込むセクションの名前 + + + scope + string + no + local + + 読み込む変数のスコープの処理方法。local、parent、global + のいずれかを指定します。 local を指定すると、 + 変数がローカルファイルのテンプレート変数として読み込まれます。 parent を指定すると、 + 該当ファイルとその親ファイルのテンプレート変数として読み込まれます。 + global を指定すると、すべてのテンプレートでテンプレート変数として利用できます。 + + + + global + boolean + No + No + + 変数が親テンプレートから利用できるかどうか。scope=parent と同じです + (注: この属性は非推奨です。代わりに scope 属性を使用するようになっていますが、 + まだサポートされています。scope 属性を指定すると、この値は無視されます)。 + + + + + + + + {config_load} + + example.conf ファイル + + + + + テンプレート + + +{#pageTitle#|default:"No title"} + + + + + + + +
FirstLastAddress
+ + +]]> +
+
+ + 設定ファイル + には、セクションも含まれます。section + 属性を指定する事で、そのセクション内の変数を読み込む事ができます。 + + + + 設定ファイルの sections と組み込みのテンプレート関数 + {section} + には特に関連はありません。単にたまたま名前が同じであるというだけのことです。 + + + + セクションを指定した {config_load} 関数 + + +{#pageTitle#} + + + + + + + +
FirstLastAddress
+ + +]]> +
+
+ + +設定ファイル変数の配列については +$config_overwrite +を参照してください。 + + + + 設定ファイル のページ、 + config 変数 のページ、 + $config_dir、 + get_config_vars() + および + config_load() + も参照してください。 + +
+ + diff --git a/docs/ja/designers/language-builtin-functions/language-function-foreach.xml b/docs/ja/designers/language-builtin-functions/language-function-foreach.xml new file mode 100644 index 00000000..03e0ba83 --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-foreach.xml @@ -0,0 +1,459 @@ + + + + + + {foreach},{foreachelse} + + {foreach} を使用して、 + 1つの連想配列 をループします。 + {section} + のように、データの配列 をループすることはありません。 + {foreach} の構文は + {section} + よりずっと簡単ですが、その代わりに 1つの配列 + しか扱えません。すべての {foreach} タグは、 + 終了タグ {/foreach} とペアである必要があります。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + from + array + Yes + n/a + ループに使用する配列 + + + item + string + Yes + n/a + 現在の要素を示す変数の名前 + + + key + string + No + n/a + 現在のキーを示す変数の名前 + + + name + string + No + n/a + foreach プロパティにアクセスするための foreach ループ名 + + + + + + + + + 必須の属性は fromitem です。 + + + + {foreach} ループの name + は、英数字とアンダースコアを使用して自由に命名できます。これは + PHP の変数 + と同じです。 + + + + {foreach} ループはネスト可能で、ネストした + {foreach} の name はお互いにユニークである必要があります。 + + + + from 属性は、通常は値の配列で、 + {foreach} のループ回数を決定するために使われます。 + + + + {foreachelse} は、 + from 変数の値が存在しない場合に実行されます。 + + + + {foreach} ループは、プロパティを操作する変数を自身で持っています。 + これらは次のように表されます。 + + {$smarty.foreach.name.property} + ここで、name は + name 属性の値となります。 + + + 注意 + name 属性が必要となるのは + {foreach} のプロパティにアクセスする必要がある場合のみです。 + これは {section} + の場合とは異なります。{foreach} のプロパティに対して + 定義されていない name でアクセスしてもエラーは発生しませんが、 + 結果は予測できない値になります。 + + + + + + {foreach} のプロパティには + index、 + iteration、 + first、 + last、 + show、 + total + があります。 + + + + + + <parameter>item</parameter> 属性 + +assign('myArray', $arr); +?> +]]> + + $myArray を順序なしリストで出力するテンプレート + + +{foreach from=$myArray item=foo} +
  • {$foo}
  • +{/foreach} + +]]> +
    + + 出力 + + + +
  • 1000
  • +
  • 1001
  • +
  • 1002
  • + +]]> +
    +
    + + + <parameter>item</parameter> および <parameter>key</parameter> 属性の説明 + + 'Tennis', 3 => 'Swimming', 8 => 'Coding'); +$smarty->assign('myArray', $arr); +?> +]]> + + $myArray を キー/値 のペアで出力するテンプレート。 + PHP の foreach と似ています。 + + +{foreach from=$myArray key=k item=v} +
  • {$k}: {$v}
  • +{/foreach} + +]]> +
    + + 出力 + + + +
  • 9: Tennis
  • +
  • 3: Swimming
  • +
  • 8: Coding
  • + +]]> +
    +
    + + + + {foreach} で連想配列の <parameter>item</parameter> 属性を指定する例 + + array('no' => 2456, 'label' => 'Salad'), + 96 => array('no' => 4889, 'label' => 'Cream') + ); +$smarty->assign('items', $items_list); +?> +]]> + + $items と + $myId を url に出力するテンプレート + + +{foreach from=$items key=myId item=i} +
  • {$i.no}: {$i.label}
  • +{/foreach} + +]]> +
    + + 出力 + + + +
  • 2456: Salad
  • +
  • 4889: Cream
  • + +]]> + +
    + + + {foreach} で <parameter>item</parameter> と <parameter>key</parameter> をネストする例 + 配列を Smarty に割り当てます。key にはループする値のキーが含まれます。 + +assign('contacts', array( + array('phone' => '1', + 'fax' => '2', + 'cell' => '3'), + array('phone' => '555-4444', + 'fax' => '555-3333', + 'cell' => '760-1234') + )); +?> +]]> + + $contact を出力するテンプレート + + + {foreach key=key item=item from=$contact} + {$key}: {$item}
    + {/foreach} +{/foreach} +]]> +
    + + 出力 + + + + phone: 1
    + fax: 2
    + cell: 3
    +
    + phone: 555-4444
    + fax: 555-3333
    + cell: 760-1234
    +]]> +
    +
    + + + データベースを使用する {foreachelse} の例 + データベース (PEAR や ADODB など) を検索する例で、クエリの結果を Smarty に割り当てます。 + +assign('results', $db->getAssoc($sql) ); +?> +]]> + + 結果がない場合に、{foreachelse} + を使用して 見つかりません と表示するテンプレート + +{$con.name} - {$con.nick}

    +{foreachelse} + 検索結果が見つかりませんでした +{/foreach} +]]> + + + + + + .index + + index には、現在の配列のインデックスをゼロから数えた値が含まれます。 + + + <parameter>index</parameter> の例 + + + +{foreach from=$items key=myId item=i name=foo} + {if $smarty.foreach.foo.index % 5 == 0} + タイトル + {/if} + {$i.label} +{/foreach} + +]]> + + + + + + .iteration + + iteration は現在のループが反復された回数を表示します。 + index + とは異なり、常に 1 から始まります。 + 各ループごとに 1 ずつ加算されます。 + + + <parameter>iteration</parameter> および <parameter>index</parameter> の例 + + + + + + + + + .first + + first は、現在の {foreach} + の反復が最初のものであるときに &true; となります。 + + + <parameter>first</parameter> プロパティの例 + + +{foreach from=$items key=myId item=i name=foo} + + {if $smarty.foreach.foo.first}最新{else}{$myId}{/if} + {$i.label} + +{/foreach} + +]]> + + + + + + .last + + last は、現在の {foreach} + の反復が最後のものであるときに &true; となります。 + + + <parameter>last</parameter> プロパティの例 + +{$prod}{if $smarty.foreach.products.last}
    {else},{/if} +{foreachelse} + ... コンテンツ ... +{/foreach} +]]> +
    +
    +
    + + + .show + + show{foreach} のパラメータとして使用します。 + show は boolean 値です。 + &false; の場合は {foreach} は表示されず、 + もし {foreachelse} が存在すれば、それが代わりに表示されます。 + + + + + .total + + total には、 + {foreach} がループするトータル回数が含まれます。 + これは、{foreach} の内部だけではなく + ループを抜けた後でも使用できます。 + + + <parameter>total</parameter> プロパティの例 + +
    +{if $smarty.foreach.foo.last} +
    {$smarty.foreach.foo.total} items
    +{/if} +{foreachelse} + ... 別の内容 ... +{/foreach} +]]> +
    +
    + + + {section} + および $smarty.foreach + も参照してください。 + +
    +
    + + diff --git a/docs/ja/designers/language-builtin-functions/language-function-if.xml b/docs/ja/designers/language-builtin-functions/language-function-if.xml new file mode 100644 index 00000000..f0138dd3 --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-if.xml @@ -0,0 +1,266 @@ + + + + + + {if},{elseif},{else} + + Smarty における {if} ステートメントは、PHP の + if と同等の柔軟性を持っています。 + さらに、テンプレートエンジンのための機能をいくつか追加しています。 + 全ての {if} は、対応する + {/if} とペアである必要があります。{else} + と {elseif} も使用できます。 + ||or、 + &&and、 + is_array() など、PHP の条件演算子や関数はすべて利用可能です。 + + + $security + が有効な場合、配列 $security_settings + には IF_FUNCS 配列が入ります。 + + + 以下は認識される条件演算子の一覧です。 + これらはスペースによって周りの要素から分離される必要があります。 + [] 内に記載された項目は任意である事に注意して下さい。 + "PHP 相当" には、PHP において当てはまるものが示されます。 + + + + + + + + + + + + 条件演算子 + 代替 + 構文例 + 意味 + PHP 相当 + + + + + == + eq + $a eq $b + 等しい + == + + + != + ne, neq + $a neq $b + 等しくない + != + + + > + gt + $a gt $b + より大きい + > + + + < + lt + $a lt $b + より小さい + < + + + >= + gte, ge + $a ge $b + 以上 + >= + + + <= + lte, le + $a le $b + 以下 + <= + + + === + + $a === 0 + 同一性のチェック + === + + + ! + not + not $a + 否定 (単項) + ! + + + % + mod + $a mod $b + 剰余 + % + + + is [not] div by + + $a is not div by 4 + 割り切れる + $a % $b == 0 + + + is [not] even + + $a is not even + 偶数である [ない] (単項) + $a % 2 == 0 + + + is [not] even by + + $a is not even by $b + 偶数番目のグループである [ない] + ($a / $b) % 2 == 0 + + + is [not] odd + + $a is not odd + 奇数である [ない] (単項) + $a % 2 != 0 + + + is [not] odd by + + $a is not odd by $b + 奇数番目のグループである [ない] + ($a / $b) % 2 != 0 + + + + + + {if} ステートメント + + 1000 ) and $volume >= #minVolAmt#} + ... +{/if} + + +{* PHP 関数を埋め込むことも可能 *} +{if count($var) gt 0} + ... +{/if} + +{* 配列のチェック *} +{if is_array($foo) } + ..... +{/if} + +{* null でないことのチェック *} +{if isset($foo) } + ..... +{/if} + + +{* 値が偶数か奇数か *} +{if $var is even} + ... +{/if} +{if $var is odd} + ... +{/if} +{if $var is not odd} + ... +{/if} + + +{* 値が 4 で割り切れるかどうか *} +{if $var is div by 4} + ... +{/if} + + +{* + ふたつずつグループ化したときに、値が even であるかどうか + 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} +]]> + + + + + + {if} のその他の例 + + 0) + {* foreach ループを実行します *} +{/if} + ]]> + + + + + diff --git a/docs/ja/designers/language-builtin-functions/language-function-include-php.xml b/docs/ja/designers/language-builtin-functions/language-function-include-php.xml new file mode 100644 index 00000000..c74c8978 --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-include-php.xml @@ -0,0 +1,149 @@ + + + + + + {include_php} + + テクニカルノート + + {include_php} は Smarty ではほとんど推奨されていません。 + カスタムテンプレート関数を使用すれば、同等の機能を実現できます。 + {include_php} を使用する理由がもしあるとすれば、 + plugins/ + ディレクトリやアプリケーションのコードから PHP 関数を完全に隔離したい場合などです。 + 詳細は コンポーネント化したテンプレートの例 + を参照してください。 + + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + file + string + Yes + n/a + インクルードする PHP ファイル名 + + + once + boolean + No + &true; + 同じ PHP ファイルが複数回インクルードされた場合に、一度だけインクルードするかどうか + + + assign + string + No + n/a + include_php の出力を格納する変数名 + + + + + + + {include_php} タグを使用して、PHP スクリプトをテンプレートにインクルードします。 + $security + が有効な場合は、PHP スクリプトは $trusted_dir + で指定されたディレクトリに存在する必要があります。{include_php} + タグには file 属性が必須で、 + ここにはインクルードする PHP ファイルへのパスを指定します。 + このパスは $trusted_dir + からの相対パスか絶対パスのいずれかとなります。 + + + デフォルトでは、PHPファイルはテンプレート内で複数回呼ばれても一度しかインクルードしません。 + once 属性によって毎回インクルードするべきかどうかを指定できます。 + この属性を &false; に設定すると、テンプレート内でインクルードの指示がある毎に + PHP スクリプトをインクルードします。 + + + オプションで assign 属性を渡すこともできます。 + これは、{include_php} の出力をブラウザに表示させる代わりに + 変数に格納したい場合に、その変数名を指定します。 + + + Smarty オブジェクトは、インクルードした PHP スクリプト内で + $this として使用可能です。 + + + {include_php} 関数 + load_nav.php ファイル + +query('select url, name from navigation order by name'); +$this->assign('navigation', $db->getRows()); + +?> +]]> + + + テンプレート + + +{$nav.name}
    +{/foreach} +]]> +
    +
    + + {include}、 + $security、 +$trusted_dir、 + {php}{capture}テンプレートリソース および コンポーネント化したテンプレート + も参照してください。 + +
    + diff --git a/docs/ja/designers/language-builtin-functions/language-function-include.xml b/docs/ja/designers/language-builtin-functions/language-function-include.xml new file mode 100644 index 00000000..05605826 --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-include.xml @@ -0,0 +1,217 @@ + + + + + + {include} + + {include} タグを使用して、 + 現在のテンプレートに他のテンプレートをインクルードします。 + 現在のテンプレートにて利用可能なあらゆる変数は、 + インクルードされたテンプレートでも同じく利用可能です。 + + + + + {include} タグには、テンプレートリソースのパスを含んだ + file 属性を必ず指定する必要があります。 + + + + {include} の出力をブラウザに表示する代わりに変数に格納したい場合は、 + オプションの assign 属性にその変数名を定義します。 + {assign} + と同等です。 + + + + インクルードされたテンプレートに変数を渡すには、 + attributes + を使用します。インクルードされたテンプレートに明示的に渡された変数は、 + インクルードされたファイルのスコープでのみ有効となります。 + そのテンプレートに同じ名前の変数が存在する場合は、 + 渡された変数がそれをオーバーライドします。 + + + + 全ての割り当て変数の値は、インクルードされたテンプレートのスコープが閉じた後に元に戻ります。 + これは、インクルードされたテンプレート内で全ての変数を使用可能であるということです。 + しかし、インクルードされたテンプレート内での変数の変更は + {include} + の後でインクルードしている側のテンプレート内では見ることはできません。 + + + + $template_dir + ディレクトリ外にあるファイルを {include} するには、 + テンプレートリソース を指定します。 + + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + file + string + Yes + n/a + インクルードするテンプレートファイル名 + + + assign + string + No + n/a + インクルードしたコンテンツの出力を格納する変数名 + + + [var ...] + [var type] + No + n/a + ローカルからテンプレートに渡す変数 + + + + + + + シンプルな {include} の例 + + + + {$title} + + +{include file='page_header.tpl'} + +{* ここにテンプレートの本体を記述します。変数 $tpl_name + はたとえば 'contact.tpl' などに置き換えられます。 +*} +{include file="$tpl_name.tpl"} + +{include file='page_footer.tpl'} + + +]]> + + + + + {include} に変数を渡す + + + + このテンプレートは、以下のような links.tpl をインクルードします。 + + +

    {$title}{/h3> +
      +{foreach from=$links item=l} +.. 何かを行います ... + + +]]> + + + + + + {include} と変数への割り当て + この例は、nav.tpl + の内容を変数 $navbar に割り当て、 + ページの最初と最後に出力させるものです。 + + + + {include file='nav.tpl' assign=navbar} + {include file='header.tpl' title='Smarty is cool'} + {$navbar} + {* テンプレートの本体をここへ記述します *} + {$navbar} + {include file='footer.tpl'} + +]]> + + + + + さまざまな {include} リソースの例 + + + + + + {include_php}、 + {insert}、 + {php}、 + テンプレートリソース および + コンポーネント化したテンプレート + も参照してください。 + + + + diff --git a/docs/ja/designers/language-builtin-functions/language-function-insert.xml b/docs/ja/designers/language-builtin-functions/language-function-insert.xml new file mode 100644 index 00000000..518b6912 --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-insert.xml @@ -0,0 +1,164 @@ + + + + + + {insert} + + {insert} タグは {include} + タグと似た動作をします。ただ {insert} + タグは、テンプレートの キャッシュ + が有効であってもキャッシュされません。 + テンプレートが呼び出されるたびに実行されます。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + name + string + Yes + n/a + 呼び出すinsert関数の名前(insert_name) + + + assign + string + No + n/a + 出力を格納するテンプレート変数名 + + + script + string + No + n/a + insert関数を呼び出す前にインクルードされるPHPスクリプト名 + + + [var ...] + [var type] + No + n/a + insert関数に渡す変数 + + + + + + + + 例えば、ページの上部にバナーを表示するテンプレートを持っているとします。 + バナーにはHTML, images, flash等が混合して含まれます。 + したがってここに静的リンクを用いる事はできないので、 + バナーコンテンツをキャッシュの対象にしたくありません。 + そのためには、あらかじめ設定ファイルから取得した #banner_location_id# + と #site_id# の値を渡し、バナーコンテンツを表示するために + {insert} タグを呼び出す必要があります。 + + + {insert} 関数 + +{* バナーを取得する例 *} +{insert name="getBanner" lid=#banner_location_id# sid=#site_id#} + + + + この例では、name 属性に getBanner を指定し、 + パラメータに #banner_location_id# と #site_id# を渡しています。Smarty は + PHP アプリケーション内の insert_getBanner() 関数を探し、第1パラメータとして + #banner_location_id# と #site_id# の値を格納した連想配列を渡します。 + アプリケーションにおける全ての {insert} 関数の名前は、 + ネームスペースの衝突を避けるために "insert_" によって始まる必要があります。 + insert_getBanner() 関数は、渡された値によって何らかの処理を行い、結果を返すべきです。 + この結果はテンプレートの {insert} タグに置換されて表示されます。 + この例では、Smarty は insert_getBanner(array("lid" => "12345","sid" => "67890")); + という関数を呼び出し、返された結果が {insert} タグの位置に表示されます。 + + + + assign 属性を指定すると、 + {insert} タグの出力は + ブラウザに表示される代わりにテンプレート変数に格納されます。 + + + 出力をテンプレート変数に格納するのは、 + キャッシュ + が有効な状態ではあまり有益ではありません。 + + + + + + script 属性を与えると、この PHP スクリプトは + {insert} 関数が実行される前に + (一度だけ) インクルードされます。 + これは、insert 関数がまだ存在しないかもしれない場合や、insert + 関数の動作のために PHP スクリプトを最初にインクルードする必要がある場合に指定します。 + + + パスには、絶対パスかあるいは + $trusted_dir + からの相対パスを指定します。$security + が有効な場合は、スクリプトは + $trusted_dir + 内にある必要があります。 + + + + Smarty オブジェクトは第2パラメータとして渡されます。 + これにより、{insert} + 関数から Smarty オブジェクトの情報の参照や修正が可能です。 + + + テクニカルノート + + テンプレートには、キャッシュの対象外となる部分を持たせる事が可能です。 + キャッシュ が有効の場合でも、 + {insert} タグによる出力はキャッシュされません。 + そのページが呼び出される度に動的に実行されます。 + この動作は、バナー・投票・天気予報・検索結果・ユーザーフィードバックエリア等に向いています。 + + + + {include} + も参照してください。 + + + diff --git a/docs/ja/designers/language-builtin-functions/language-function-ldelim.xml b/docs/ja/designers/language-builtin-functions/language-function-ldelim.xml new file mode 100644 index 00000000..911c811a --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-ldelim.xml @@ -0,0 +1,101 @@ + + + + + + {ldelim},{rdelim} + + {ldelim} および {rdelim} + は、テンプレートのデリミタを + エスケープ します。 + デフォルトでは、これは { + および } となります。 + Javascript や CSS のようなテキストのあつまりをエスケープするためには + {literal}{/literal} + を使用することもできます。{$smarty.ldelim} + も参照してください。 + + + {ldelim}, {rdelim} + + + + + 上の例の出力 + + + + + Javascript を使用する別の例 + + +function foo() {ldelim} + ... コード ... +{rdelim} + +]]> + + + 出力 + + + +function foo() { + .... コード ... +} + +]]> + + + + + + 別の Javascript の例 + + + function myJsFunction(){ldelim} + alert("The server name\n{$smarty.server.SERVER_NAME}\n{$smarty.server.SERVER_ADDR}"); + {rdelim} + +Click here for Server Info +]]> + + + + + {literal} + および Smarty の構文解析を回避 + も参照してください。 + + + + diff --git a/docs/ja/designers/language-builtin-functions/language-function-literal.xml b/docs/ja/designers/language-builtin-functions/language-function-literal.xml new file mode 100644 index 00000000..2f156d0c --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-literal.xml @@ -0,0 +1,106 @@ + + + + + + {literal} + + {literal} タグに囲まれたデータのブロックは、 + リテラルとして認識されます。これは一般的に、Javascript やスタイルシートなどで + 中括弧がテンプレートの + デリミタ + として解釈されるとまずい場合に使用します。 + {literal}{/literal} タブの内部は解釈されず、 + そのままで表示されます。{literal} + ブロック内にテンプレートタグを含める必要がある場合は、代わりに + {ldelim}{rdelim} + で個々のデリミタをエスケープしてください。 + + + + {literal} タグ + + + + +{/literal} +]]> + + + + + Javascript の関数の例 + + +{literal} +function myJsFunction(name, ip){ + alert("The server name\n" + name + "\n" + ip); +} +{/literal} + +Click here for the Server Info + ]]> + + + + + テンプレート内での css style + + +{literal} +/* this is an intersting idea for this section */ +.madIdea{ + border: 3px outset #ffffff; + margin: 2 3 4 5px; + background-color: #001122; +} +{/literal} + +
      With smarty you can embed CSS in the template
      +]]> +
      +
      + + + {ldelim} {rdelim} + および + Smarty の構文解析を回避 + のページも参照してください。 + +
      + + diff --git a/docs/ja/designers/language-builtin-functions/language-function-php.xml b/docs/ja/designers/language-builtin-functions/language-function-php.xml new file mode 100644 index 00000000..a6976276 --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-php.xml @@ -0,0 +1,83 @@ + + + + + + {php} + + {php} タグで、PHP コードを直接テンプレートに埋め込むことができます。 + $php_handling + の設定にかかわらず、これはエスケープされません。 + このタグは上級ユーザのためのものなので通常は必要とされません。 + + +テクニカルノート + + {php} ブロック内の PHP 変数にアクセスするには、PHP の + global + キーワードを使う必要があります。 + + + + + {php} タグ内での PHP コード + + + + + + + + {php} タグで global を使用して変数を代入する + +assign('varX','Toffee'); +{/php} +{* 変数を出力します *} +{$varX} is my fav ice cream :-) +]]> + + + + + $php_handling、 + {include_php}、 + {include}、 + {insert} + および + コンポーネント化したテンプレート + も参照してください。 + + + diff --git a/docs/ja/designers/language-builtin-functions/language-function-section.xml b/docs/ja/designers/language-builtin-functions/language-function-section.xml new file mode 100644 index 00000000..da534555 --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-section.xml @@ -0,0 +1,837 @@ + + + + + + {section},{sectionelse} + + {section} は、 + データの配列 をループするために使用します。 + これは、{foreach} + が 1つの連想配列 + をループするのとは異なります。すべての {section} + タグは、終了タグ {/section} とペアになっている必要があります。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + name + string + Yes + n/a + セクション名 + + + loop + mixed + Yes + n/a + ループ回数を決定する値 + + + start + integer + No + 0 + ループを開始するインデックス位置。この値が負の場合は、 + 配列の最後尾から開始位置が算出されます。 + 例えばループ配列に7つの値があり、そしてstartが-2であるならば、 + 開始インデックスは5になります。 + ループ配列の長さを超えるような無効な値は、 + 自動的に最も近い値に切り捨てられます。 + + + step + integer + No + 1 + + ループインデックスを進めるために使われるステップ値。 + 例えばstep=2なら、インデックスは0, 2, 4をループします。 + stepの値が負の場合は、配列の前方に向かって進みます。 + + + + max + integer + No + n/a + セクションがループする最大の回数 + + + show + boolean + No + &true; + このセクションを表示するかどうか + + + + + + + + 必須の属性は nameloop + です。 + + + + {section}name は、 + 英数字とアンダースコアを使って自由に命名できます。これは + PHP の変数 + と同様です。 + + + + {section} はネスト可能で、その場合の + {section} の名前はお互いにユニークである必要があります。 + + + + loop 属性で指定されたループ変数 + (たいていは配列) は、{section} + のループ回数を決定するために使用されます。 + loop の値として、整数値を渡すこともできます。 + + + + {section} 内で値を表示するには、 + 変数名に続けてブラケット {} で囲んだセクション名を指定します。 + + + + ループ変数に値が存在しない場合は + {sectionelse} が実行されます。 + + + + {section} には、そのプロパティを操作するための + 自身の変数があります。これらには + {$smarty.section.name.property} + としてアクセスできます。name は、name + 属性の値です。 + + + + {section} のプロパティには、 + index、 + index_prev、 + index_next、 + iteration、 + first、 + last、 + rownum、 + loop、 + show、 + total + があります。 + + + + + {section} でのシンプルな配列のループ + +配列を Smarty に assign() します。 + + +assign('custid',$data); +?> +]]> + +配列を出力するテンプレート + + +{/section} +
      +{* $custid 配列のすべての値を逆順に表示します *} +{section name=foo loop=$custid step=-1} + {$custid[foo]}
      +{/section} +]]> +
      + + 上の例の出力 + + + +id: 1001
      +id: 1002
      +
      +id: 1002
      +id: 1001
      +id: 1000
      +]]> +
      +
      + + + + {section} で配列を割り当てない例 + + +{section name=bar loop=21 max=6 step=-2} + {$smarty.section.bar.index} +{/section} +]]> + + + 上の例の出力 + + + +20 18 16 14 12 10 +]]> + + + + + + {section} の名前 + {section}name + は自由につけることができます。PHP + の変数 を参照してください。これは、{section} + 内のデータを参照する際に使用します。 + + + + + + + + {section} での連想配列のループ + これは、データの連想配列を + {section} で出力する例です。 + 次に示すのは、配列 $contacts + を Smarty に渡す PHP スクリプトです。 + + 'John Smith', 'home' => '555-555-5555', + 'cell' => '666-555-5555', 'email' => 'john@myexample.com'), + array('name' => 'Jack Jones', 'home' => '777-555-5555', + 'cell' => '888-555-5555', 'email' => 'jack@myexample.com'), + array('name' => 'Jane Munson', 'home' => '000-555-5555', + 'cell' => '123456', 'email' => 'jane@myexample.com') + ); +$smarty->assign('contacts',$data); +?> +]]> + + +$contacts を出力するテンプレート + + + name: {$contacts[customer].name}
      + home: {$contacts[customer].home}
      + cell: {$contacts[customer].cell}
      + e-mail: {$contacts[customer].email} +

      +{/section} +]]> +
      + + 上の例の出力 + + + + name: John Smith
      + home: 555-555-5555
      + cell: 666-555-5555
      + e-mail: john@myexample.com +

      +

      + name: Jack Jones
      + home phone: 777-555-5555
      + cell phone: 888-555-5555
      + e-mail: jack@myexample.com +

      +

      + name: Jane Munson
      + home phone: 000-555-5555
      + cell phone: 123456
      + e-mail: jane@myexample.com +

      +]]> +
      +
      + + + {section} での <varname>loop</varname> 変数の使用 + この例では、$custid$name + および $address にはすべて配列が割り当てられ、 + その要素数は同じであるものとします。まず、Smarty に配列を割り当てる + PHP スクリプトです。 + +assign('custid',$id); + +$fullnames = array('John Smith','Jack Jones','Jane Munson'); +$smarty->assign('name',$fullnames); + +$addr = array('253 Abbey road', '417 Mulberry ln', '5605 apple st'); +$smarty->assign('address',$addr); + +?> +]]> + +loop 変数は、ループの回数を決定するためにのみ使用します。 + {section} 内ではあらゆるテンプレート変数にアクセス可能です。 + + + id: {$custid[customer]}
      + name: {$name[customer]}
      + address: {$address[customer]} +

      +{/section} +]]> +
      + + 上の例の出力 + + + + id: 1000
      + name: John Smith
      + address: 253 Abbey road +

      +

      + id: 1001
      + name: Jack Jones
      + address: 417 Mulberry ln +

      +

      + id: 1002
      + name: Jane Munson
      + address: 5605 apple st +

      +]]> +
      +
      + + + + + ネストした {section} + + {section} は無制限にネスト可能です。{section} をネストすることで、 + 多次元配列のような複雑なデータ構造にアクセスすることが可能です。 + これは、配列を割り当てる .php スクリプトの例です。 + + +assign('custid',$id); + +$fullnames = array('John Smith','Jack Jones','Jane Munson'); +$smarty->assign('name',$fullnames); + +$addr = array('253 N 45th', '417 Mulberry ln', '5605 apple st'); +$smarty->assign('address',$addr); + +$types = array( + array( 'home phone', 'cell phone', 'e-mail'), + array( 'home phone', 'web'), + array( 'cell phone') + ); +$smarty->assign('contact_type', $types); + +$info = array( + array('555-555-5555', '666-555-5555', 'john@myexample.com'), + array( '123-456-4', 'www.example.com'), + array( '0457878') + ); +$smarty->assign('contact_info', $info); + +?> + ]]> + +このテンプレートでは、$contact_type[customer] + は現在の顧客の連絡手段を格納した配列となります。 + + + id: {$custid[customer]}
      + name: {$name[customer]}
      + address: {$address[customer]}
      + {section name=contact loop=$contact_type[customer]} + {$contact_type[customer][contact]}: {$contact_info[customer][contact]}
      + {/section} +{/section} +]]> +
      + + 上の例の出力。 + + + + id: 1000
      + name: John Smith
      + address: 253 N 45th
      + home phone: 555-555-5555
      + cell phone: 666-555-5555
      + e-mail: john@myexample.com
      +
      + id: 1001
      + name: Jack Jones
      + address: 417 Mulberry ln
      + home phone: 123-456-4
      + web: www.example.com
      +
      + id: 1002
      + name: Jane Munson
      + address: 5605 apple st
      + cell phone: 0457878
      +]]> +
      +
      + + + +データベースを使用する {sectionelse} の例 + データベース (ADODB や PEAR) の検索結果を Smarty に格納します。 + + assign('contacts', $db->getAll($sql)); +?> +]]> + +データベースの結果を HTML のテーブルに出力するテンプレート + + + Name>HomeCellEmail +{section name=co loop=$contacts} + + view + {$contacts[co].name} + {$contacts[co].home} + {$contacts[co].cell} + {$contacts[co].email} + +{sectionelse} + No items found +{/section} + +]]> + + + + + + .index + + index は現在のループインデックスを表示します。 + 0(又は start 属性の値)から始まり、 + 1(又は step 属性の値)ずつ増加します。 + + + テクニカルノート + + stepstart + 属性が変更されていない場合は、セクションのプロパティ iteration + と同じ動作をします。ただ、1 ではなく 0 から始まるという点が異なります。 + + + +{section} の <varname>index</varname> プロパティ + +ちなみに…… +$custid[customer.index] と +$custid[customer] は同じ意味です。 + + + + +{/section} +]]> + + + 上の例の出力 + + + +1 id: 1001
      +2 id: 1002
      +]]> +
      +
      +
      + + + + .index_prev + + index_prev + は前回のループインデックスを表示します。最初のループでは-1がセットされます。 + + + + + .index_next + + index_next + は次回のループインデックスを表示します。 + ループの最後でもやはり現在のインデックスの次回の値を返します + (step 属性の設定に従います)。 + + + +<varname>index</varname>、<varname>index_next</varname> + および <varname>index_prev</varname> プロパティ + +assign('rows',$data); +?> +]]> + +上の配列をテーブルに出力するテンプレート + + + + indexid + index_prevprev_id + index_nextnext_id + +{section name=row loop=$rows} + + {$smarty.section.row.index}{$rows[row]} + {$smarty.section.row.index_prev}{$rows[row.index_prev]} + {$smarty.section.row.index_next}{$rows[row.index_next]} + +{/section} + +]]> + + + 上の例の出力するテーブルは次のようになります。 + + + + + + + + + + .iteration + + iteration は現在のループが反復された回数を表示します。 + + + + index + プロパティとは異なり、これは {section} のプロパティ + startstep および max + の影響を受けません。 + iteration も 1 から始まります。これは + index が 0 から始まるのとは異なります。rownum + は iteration の別名で、全く同じ働きをします。 + + + +セクションのプロパティ <varname>iteration</varname> + +assign('arr',$id); +?> +]]> + +$arr 配列の要素を +step=2 で出力するテンプレート + + +{/section} +]]> + + + 上の例の出力 + + + +iteration=2 index=7 id=3007
      +iteration=3 index=9 id=3009
      +iteration=4 index=11 id=3011
      +iteration=5 index=13 id=3013
      +iteration=6 index=15 id=3015
      +]]> +
      + + もうひとつの例は、iteration プロパティを使用して + 5 行おきにテーブルのヘッダ部を出力します。 + {if} + 関数を mod 演算子とともに使用します。 + + + +{section name=co loop=$contacts} + {if $smarty.section.co.iteration % 5 == 1} +  Name>HomeCellEmail + {/if} + +
      view + {$contacts[co].name} + {$contacts[co].home} + {$contacts[co].cell} + {$contacts[co].email} + +{/section} + +]]> + + + + + + + .first + + first は、現在 + {section} の一回目の処理を行っている場合に + &true; となります。 + + + + + + .last + + last は、現在 + {section} の最後の処理を行っている場合に + &true; となります。 + + + {section} プロパティ <varname>first</varname> と <varname>last</varname> + + この例は $customers 配列をループし、 + ループの最初でヘッダブロック、そしてループの最後でフッタブロックを出力します。 + total + プロパティも使用します。 + + + + idcustomer + {/if} + + + {$customers[customer].id}} + {$customers[customer].name} + + + {if $smarty.section.customer.last} + {$smarty.section.customer.total} customers + + {/if} +{/section} +]]> + + + + + + + .rownum + + rownum は現在のループが反復された回数を表示します(1から開始)。 + これは iteration + の別名で、同じ動作をします。 + + + + + .loop + + loop は、この + {section} ループの最後のインデックス番号を表示します。 + {section} の内部だけでなく、外部で使用することもできます。 + + + {section} プロパティ <varname>loop</varname> + + +{/section} +There are {$smarty.section.customer.loop} customers shown above. +]]> + + + 上の例の出力 + + + +1 id: 1001
      +2 id: 1002
      +There are 3 customers shown above. +]]> +
      +
      +
      + + + .show + + show は、セクションのパラメータとして使用する + boolean 値です。&false; の場合はこのセクションは表示されません。 + {sectionelse} があれば、それが代わりに表示されます。 + + + <varname>show</varname> プロパティ + Boolean $show_customer_info を PHP + アプリケーションから渡し、このセクションを表示するかどうかを調整します。 + + +{/section} + +{if $smarty.section.customer.show} + the section was shown. +{else} + the section was not shown. +{/if} +]]> + + + 上の例の出力 + + + +2 id: 1001
      +3 id: 1002
      + +the section was shown. +]]> +
      +
      +
      + + + .total + + total{section} + がループしたトータル回数を表示します。これは + {section} の内部だけでなく外部でも使うことができます。 + + + <varname>total</varname> プロパティの例 + + +{/section} + There are {$smarty.section.customer.total} customers shown above. +]]> + + + + {foreach} + および + $smarty.section + も参照してください。 + + +
      + + diff --git a/docs/ja/designers/language-builtin-functions/language-function-strip.xml b/docs/ja/designers/language-builtin-functions/language-function-strip.xml new file mode 100644 index 00000000..31ce3d33 --- /dev/null +++ b/docs/ja/designers/language-builtin-functions/language-function-strip.xml @@ -0,0 +1,85 @@ + + + + + + {strip} + + Webデザイナーの方は、HTML コードに含まれたホワイトスペースとキャリッジリターンが + ブラウザの表示に影響を及ぼす問題に何度も遭遇した事があると思います。 + 問題を回避するには、テンプレートの全てのタグを連ねて記述する必要があります。 + しかしこれでは大変読みづらく管理しにくいテンプレートになってしまいます。 + + + {strip}{/strip} タグに囲まれたコンテンツは、 + ブラウザに表示される前に、各行の先頭と終端にある + 余分なホワイトスペースやキャリッジリターンが除去されます。 + これによってテンプレートは可読性を維持し、 + 余分なホワイトスペースによって問題を引き起こす心配もありません。 + + + + {strip}{/strip} はテンプレート変数の内容に影響しません。 + 詳細は strip 修飾子 + を参照してください。 + + + + {strip} タグ + + + + + + This is a test + + + + +{/strip} +]]> + + + 上の例の出力 + + +strip + 修飾子も参照してください。 + + + + + diff --git a/docs/ja/designers/language-combining-modifiers.xml b/docs/ja/designers/language-combining-modifiers.xml new file mode 100644 index 00000000..680c1997 --- /dev/null +++ b/docs/ja/designers/language-combining-modifiers.xml @@ -0,0 +1,69 @@ + + + + + + 修飾子の連結 + + 変数には複数の修飾子を適用できます。 + それらは左から右に連結された順に適用されます。 + 各修飾子は、| (パイプ) キャラクタで連結しなければなりません。 + + + 修飾子の連結 + +assign('articleTitle', 'Smokers are Productive, but Death Cuts Efficiency.'); + +?> +]]> + + +テンプレート + + + + + + 出力 + + + + + + + + diff --git a/docs/ja/designers/language-custom-functions.xml b/docs/ja/designers/language-custom-functions.xml new file mode 100644 index 00000000..5bd2afa1 --- /dev/null +++ b/docs/ja/designers/language-custom-functions.xml @@ -0,0 +1,50 @@ + + + + + + カスタム関数 + + Smarty は、テンプレートで使用可能なカスタム関数をいくつか実装しています。 + + + &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-mailto; + &designers.language-custom-functions.language-function-math; + &designers.language-custom-functions.language-function-popup; + &designers.language-custom-functions.language-function-popup-init; + &designers.language-custom-functions.language-function-textformat; + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-assign.xml b/docs/ja/designers/language-custom-functions/language-function-assign.xml new file mode 100644 index 00000000..f61328fb --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-assign.xml @@ -0,0 +1,163 @@ + + + + + + {assign} + + {assign} は、テンプレート変数を + テンプレートの実行時に + 割り当てます。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + var + string + Yes + n/a + 割り当てられるテンプレート変数の名前 + + + value + string + Yes + n/a + テンプレート変数に割り当てる値 + + + + + + + {assign} + + + + + 上の例の出力 + + + + + + + + {assign} での演算子の使用 +この複雑な例では、変数を `バッククォート` で囲む必要があります。 + + + + + + + + PHP スクリプトからの {assign} 変数へのアクセス + + PHP スクリプトから {assign} 変数にアクセスするには + + get_template_vars() + を使用します。これは、変数 $foo + を作成するテンプレートです。 + + + + +テンプレート変数は、以下のスクリプトのように +テンプレートの実行後か実行中にしか利用できません。 + + +get_template_vars('foo'); + +// テンプレートを変数に格納します。 +$whole_page = $smarty->fetch('index.tpl'); + +// これは 'smarty' と出力します。テンプレートが実行されたからです。 +echo $smarty->get_template_vars('foo'); + +$smarty->assign('foo','Even smarter'); + +// これは 'Even smarter' を出力します。 +echo $smarty->get_template_vars('foo'); + +?> +]]> + + + + + + 次の関数も、オプションで + テンプレート変数へ割り当てることができます。 + + + + {capture}、 + {include}、 + {include_php}、 + {insert}、 + {counter}、 + {cycle}、 + {eval}、 + {fetch}、 + {math}、 + {textformat} + + + + assign() + および + get_template_vars() + も参照してください。 + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-counter.xml b/docs/ja/designers/language-custom-functions/language-function-counter.xml new file mode 100644 index 00000000..cc1eb7be --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-counter.xml @@ -0,0 +1,127 @@ + + + + + + {counter} + + {counter} はカウントした回数を表示します。 + {counter} は各反復の回数を記憶します。 + 数字、カウントの間隔や進行方向、値の表示/非表示などを設定できます。 + また、各々にユニークなname属性を与える事によって、 + 同時に複数のカウンタを実行する事ができます。name属性を指定しなかった場合は、 + default を使用します。 + + + assign 属性を指定した場合は、 + {counter} 関数の出力がこのテンプレート変数に格納され、 + テンプレートには出力されません。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + name + string + No + default + カウンタの名前 + + + start + number + No + 1 + カウントを開始する数 + + + skip + number + No + 1 + カウントの間隔 + + + direction + string + No + up + カウントの進行方向 (up/down) + + + print + boolean + No + &true; + 値を表示するかどうか + + + assign + string + No + n/a + 出力が割り当てられるテンプレート変数 + + + + + + + {counter} + + +{counter}
      +{counter}
      +{counter}
      +]]> +
      + + 出力 + + + +2
      +4
      +6
      +]]> +
      +
      +
      + diff --git a/docs/ja/designers/language-custom-functions/language-function-cycle.xml b/docs/ja/designers/language-custom-functions/language-function-cycle.xml new file mode 100644 index 00000000..c4c465ce --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-cycle.xml @@ -0,0 +1,156 @@ + + + + + + {cycle} + + {cycle} は、値の設定に従って循環します。 + テーブル内のセルの色を交互に2色もしくはそれ以上の色に変更したり、 + 配列の値を循環するような事が簡単に行えます。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + name + string + No + default + サイクルの名前 + + + values + mixed + Yes + N/A + カンマを境界としたリスト (delimiter属性を参照) + または値の配列のどちらかによって指定する、循環される値 + + + + print + boolean + No + &true; + 値を表示するかどうか + + + advance + boolean + No + &true; + 次の値に進むかどうか + + + delimiter + string + No + , + value 属性で使用するためのデリミタ + + + assign + string + No + n/a + 出力が割り当てられるテンプレート変数 + + + reset + boolean + No + &false; + 次の値に進まずに、最初の値をセットする。 + + + + + + + + name 属性を渡す事によって、テンプレート内で + 1つ以上の値のセットを通して {cycle} を行えます。 + 各 {cycle} にはユニークな name + を与えてください。 + + + print 属性に &false; をセットする事で、 + 強制的に現在の値を表示しない事が可能です。これは、 + こっそり値をスキップするのに役に立つでしょう。 + + + advance 属性は値を繰り返すために使われます。 + &false; をセットした時に次の {cycle} が呼ばれると、 + 同じ値を表示します。 + + + assign 属性を指定した場合は、 + {cycle} 関数の出力は + テンプレートに出力される代わりにテンプレート変数に割り当てられます。 + + + + + {cycle} + + + {$data[rows]} + +{/section} +]]> + + 上のテンプレートの出力 + + + 1 + + + 2 + + + 3 + +]]> + + + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-debug.xml b/docs/ja/designers/language-custom-functions/language-function-debug.xml new file mode 100644 index 00000000..ec1292bf --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-debug.xml @@ -0,0 +1,67 @@ + + + + + + {debug} + + {debug} は、ページにデバッギングコンソールを出力します。 + これは、PHP スクリプトにおける debug + の設定に関係なく動作します。これはプログラムを実行した時、 + 使用されるテンプレートは表示せずに、割り当てられた変数のみを表示します。 + ですが、現在このテンプレートのスコープ内で有効な変数をすべて見る事ができます。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + output + string + No + javascript + 出力タイプ。html又はjavascript + + + + + + + デバッギングコンソール + のページも参照してください。 + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-eval.xml b/docs/ja/designers/language-custom-functions/language-function-eval.xml new file mode 100644 index 00000000..9720afc3 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-eval.xml @@ -0,0 +1,156 @@ + + + + + + {eval} + + {eval} は、与えられた変数をテンプレートとして評価します。 + テンプレート変数又はテンプレートタグを + 変数や設定ファイル内に埋め込むような用途に使われます。 + + + assign 属性が指定されると、 + {eval} 関数の出y録はこのテンプレート変数に割り当てられ、 + テンプレートに出力されることはありません。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + var + mixed + Yes + n/a + 評価される変数 (又は文字列) + + + assign + string + No + n/a + 出力が割り当てられるテンプレート変数 + + + + + + + テクニカルノート + + + + 評価される変数は、テンプレートと同じように扱われます。 + エスケープやセキュリティ機能も、テンプレートと同様になります。 + + + + 評価される変数はリクエスト毎にコンパイルされるので、 + コンパイルされた形式では保存されません。ですが、 + キャッシュ が有効に設定されている場合は、 + 残りのテンプレートの出力に関してはキャッシュされます。 + + + + + + + {eval} +設定ファイル setup.conf + + +emphend = +title = Welcome to {$company}'s home page! +ErrorCity = You must supply a {#emphstart#}city{#emphend#}. +ErrorState = You must supply a {#emphstart#}state{#emphend#}. +]]> + + + テンプレート + + + + + + 上のテンプレートの出力 + + +city. +You must supply a state. +]]> + + + + + もうひとつの {eval} の例 + これは、サーバ名 (大文字変換したもの) と IP を出力します。 + 割り当てられる変数 $str は、 + データベースのクエリから取得します。 + + assign('foo',$str); +?> + ]]> + + + テンプレート + + + + + + + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-fetch.xml b/docs/ja/designers/language-custom-functions/language-function-fetch.xml new file mode 100644 index 00000000..3b6eb993 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-fetch.xml @@ -0,0 +1,138 @@ + + + + + + {fetch} + + {fetch} は、ローカルシステムやhttp, ftpからファイルを取得し、 + コンテンツを表示します。 + + + + + ファイル名が http:// から始まる場合は、web + サイト上のページを取得して表示します。 + + + http リダイレクトはサポートしていません。 + 必要に応じて、最後のスラッシュをつけることを忘れないようにしましょう。 + + + + + + ファイル名が ftp:// で始まる場合は、 + ftp サーバからダウンロードしたファイルを表示します。 + + + + ローカルファイルの場合には、ファイルのフルパスあるいは + 実行する PHP スクリプトからの相対パスを指定する必要があります。 + + + テンプレートの + $security が有効になっており、 + ファイルをローカルファイルシステムから取得する場合、 + {fetch} は定義済みの + 安全なディレクトリ + のいずれかにあるファイルのみを受け付けます。 + + + + + + assign 属性を指定すると、 + {fetch} 関数の出力がこのテンプレート変数に割り当てられます。 + テンプレートには出力されません。 + + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + file + string + Yes + n/a + 取得するファイル、http あるいは ftp のサイト + + + assign + string + No + n/a + 出力が割り当てられるテンプレート変数 + + + + + + + + {fetch} の例 + +{$weather} +{/if} +]]> + + + + {capture}、 + {eval}、 + {assign} + および + fetch() + も参照してください。 + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-html-checkboxes.xml b/docs/ja/designers/language-custom-functions/language-function-html-checkboxes.xml new file mode 100644 index 00000000..9da2ee55 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-html-checkboxes.xml @@ -0,0 +1,237 @@ + + + + + + {html_checkboxes} + + {html_checkboxes} は、 + 提供されたデータから HTML チェックボックスグループを作成する + カスタム関数 + です。デフォルトで選択されているアイテムの指定もうまく配慮されます。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + name + string + No + checkbox + チェックボックスリストの名前 + + + values + array + Yes (options属性を用いない場合) + n/a + チェックボックスボタンの値の配列 + + + output + array + Yes (options属性を用いない場合) + n/a + チェックボックスボタンの出力の配列 + + + selected + string/array + No + empty + あらかじめ選択されたチェックボックス要素群 + + + options + associative array + Yes (valuesとoutput属性を用いない場合) + n/a + values属性とoutput属性の連想配列 + + + separator + string + No + empty + 各チェックボックスアイテムを区分するための文字列 + + + assign + string + No + empty + チェックボックスのタグを出力せずに配列に格納する + + + labels + boolean + No + &true; + 出力に <label> タグを加える + + + assign + string + No + empty + 各チェックボックスの出力をひとつの要素とする配列に格納する + + + + + + + + options を使用しない場合は、 + 必須の属性は values および + output となります。 + + + + 全ての出力は XHTML 準拠です。 + + + + 上の属性リストに無いパラメータが与えられた場合は、作成された各 + <input> タグの内側に名前/値のペアで表されます。 + + + + + {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); + +?> +]]> + + +テンプレート + + +'} +]]> + + + あるいは、このような PHP コードに対して + + +assign('cust_checkboxes', array( + 1000 => 'Joe Schmoe', + 1001 => 'Jack Smith', + 1002 => 'Jane Johnson', + 1003 => 'Charlie Brown') + ); +$smarty->assign('customer_id', 1001); + +?> +]]> + + + テンプレートはこのようになります。 + + +'} +]]> + + + どちらも、出力は次のようになります。 + + +Joe Schmoe
      + +
      +
      +
      +]]> +
      +
      + + + データベースの例 (PEAR あるいは ADODB) + + +assign('contact_types',$db->getAssoc($sql)); + +$sql = 'select contact_id, contact_type_id, contact ' + .'from contacts where contact_id=12'; +$smarty->assign('contact',$db->getRow($sql)); + +?> +]]> + + データベースのクエリの出力 + +'} +]]> + + + + {html_radios} + および + {html_options} + も参照してください。 + +
      + + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-html-image.xml b/docs/ja/designers/language-custom-functions/language-function-html-image.xml new file mode 100644 index 00000000..6682eb64 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-html-image.xml @@ -0,0 +1,166 @@ + + + + + + {html_image} + + {html_image} は、HTML の <img> + タグを作成する + カスタム関数 です。 + height 属性と width + 属性を省略した場合は、画像ファイルから自動的に算出します。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + file + string + Yes + n/a + 画像のパス・ファイル名 + + + height + string + No + 実際の画像の高さ + 画像を表示する高さ + + + width + string + No + 実際の画像の幅 + 画像を表示する幅 + + + basedir + string + no + web サーバのドキュメントルート + 相対パスの基準となるディレクトリ + + + alt + string + no + + 画像の代替テキスト + + + href + string + no + n/a + 画像にリンクする href の値 + + + path_prefix + string + no + n/a + 出力パスのプレフィックス + + + + + + + + basedir 属性は、画像の相対パスの基準となるベースディレクトリです。 + 指定しなかった場合は、web サーバのドキュメントルートである + $_ENV['DOCUMENT_ROOT'] を使用します。 + $security + が有効な場合は、画像のパスは + セキュアディレクトリ + 内になければなりません。 + + + + href は画像にリンクされた href の値です。 + これを指定すると、image タグの周りに + <a href="LINKVALUE"><a> + タグを配置します。 + + + + path_prefix には、任意で + 出力パスを指定できます。これは、画像を違うサーバに配置したい場合に有効です。 + + + + 前述の属性リストにないパラメータが与えられた場合は、作成された各 + <img> タグの内側に + 名前/値 のペアで表されます。 + + + + + テクニカルノート + + {html_image} は、画像を読み込んで幅と高さを取得するため、 + ディスクへのアクセスが必要です。テンプレートの キャッシュ + を使用しない場合は、{html_image} + ではなく静的に image タグを使用するほうがパフォーマンス的にお勧めです。 + + + + + {html_image} の例 + + + + + 上のテンプレートの出力 + + + + + +]]> + + + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-html-options.xml b/docs/ja/designers/language-custom-functions/language-function-html-options.xml new file mode 100644 index 00000000..5fd41c15 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-html-options.xml @@ -0,0 +1,282 @@ + + + + + + {html_options} + + {html_options} は、HTML の + <select><option> グループにデータを代入して作成する + カスタム関数 です。 + デフォルトで選択されるアイテムも決定できます。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + values + array + Yes (options属性を用いない場合) + n/a + ドロップダウンリストのvalue属性の配列 + + + output + array + Yes (options属性を用いない場合) + n/a + ドロップダウンリストの出力内容の配列 + + + selected + string/array + No + empty + あらかじめ選択されているオプション要素 + + + options + associative array + Yes (valuesとoutput属性を用いない場合) + n/a + キーがvalues属性、要素がoutput属性の連想配列 + + + name + string + No + empty + selectグループの名前 + + + + + + + + options を使用しない場合は、 + values および output + が必須となります。 + + + + + 任意である name 属性が与えられると、 + <select></select> タグが作成されます。 + それ以外の場合は <option> のリストのみを作成します。 + + + + 配列が渡された場合は HTML の <optgroup> + として扱われ、グループが表示されます。 + <optgroup> での再帰呼出もサポートしています。 + + + + 前述の属性リストに無いパラメータが与えられた場合は、 + 作成された各 <select> タグの内側に + 名前/値 のペアで表されます。任意の name + 属性が与えられない場合には、これらは無視されます。 + + + + すべての出力は XHTML に準拠しています。 + + + + + + <varname>options</varname> 属性での連想配列 + +assign('myOptions', array( + 1800 => 'Joe Schmoe', + 9904 => 'Jack Smith', + 2003 => 'Charlie Brown') + ); +$smarty->assign('mySelect', 9904); +?> +]]> + + + 以下のテンプレートはドロップダウンリストを作成します。 + name 属性が存在することで + <select> タグが作成されることに注意しましょう。 + + + + + + + 上の例の出力 + + + + + + + +]]> + + + + +<varname>values</varname> と +<varname>ouptut</varname> を個別の配列で指定したドロップダウン + +assign('cust_ids', array(56,92,13)); +$smarty->assign('cust_names', array( + 'Joe Schmoe', + 'Jane Johnson', + 'Charlie Brown')); +$smarty->assign('customer_id', 92); +?> +]]> + + + 上の配列を次のテンプレートで出力します + (PHP の + count() 関数を修飾子として使用することで、 + select の大きさを設定していることに注意しましょう)。 + + + + {html_options values=$cust_ids output=$cust_names selected=$customer_id} + +]]> + + + 上の例の出力 + + + + + + + + +]]> + + + + データベース (ADODB あるいは PEAR) の例 + +assign('contact_types',$db->getAssoc($sql)); + +$sql = 'select contact_id, name, email, contact_type_id + from contacts where contact_id='.$contact_id; +$smarty->assign('contact',$db->getRow($sql)); + +?> +]]> + + +テンプレートは次のようになります。 +truncate +修飾子の使用法に注意しましょう。 + + + + + {html_options options=$contact_types|truncate:20 selected=$contact.type_id} + +]]> + + + + + <optgroup> を使用したドロップダウン + + 'Golf', 9 => 'Cricket',7 => 'Swim'); +$arr['Rest'] = array(3 => 'Sauna',1 => 'Massage'); +$smarty->assign('lookups', $arr); +$smarty->assign('fav', 7); +?> +]]> + + テンプレート + + + + + + + 出力 + + + + + + + + + + + + + +]]> + + + + + {html_checkboxes} + および + {html_radios} + も参照してください。 + + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-html-radios.xml b/docs/ja/designers/language-custom-functions/language-function-html-radios.xml new file mode 100644 index 00000000..c54ce8b2 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-html-radios.xml @@ -0,0 +1,225 @@ + + + + + + {html_radios} + + {html_radios} は + HTML のラジオボタングループを作成する + カスタム関数 + です。デフォルトで選択されているアイテムの指定も考慮します。 + + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + name + string + No + radio + ラジオリストの名前 + + + values + array + Yes (options属性を用いない場合) + n/a + ラジオボタンの値の配列 + + + output + array + Yes (options属性を用いない場合) + n/a + ラジオボタンの項目内容の配列 + + + selected + string + No + empty + あらかじめ選択されたラジオ要素 + + + options + associative array + Yes (valuesとoutput属性を用いない場合) + n/a + values属性とoutput属性の連想配列 + + + separator + string + No + empty + 各ラジオアイテムを区分するための文字列 + + + assign + string + No + empty + radio タグを配列に格納し、出力はしない + + + + + + + + options を使用しない場合は + values および + output が必須となります。 + + + + 全ての出力は XHTML に準拠しています。 + + + + 前述の属性リストに無いパラメータが与えられた場合は、 + 作成された各 <input> タグの内側に + 名前/値 のペアで表されます。 + + + + {html_radios} の最初の例 + +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); + +?> +]]> + + + テンプレート + + +'} + ]]> + + + + {html_radios} の二番目の例 + +assign('cust_radios', array( + 1000 => 'Joe Schmoe', + 1001 => 'Jack Smith', + 1002 => 'Jane Johnson', + 1003 => 'Charlie Brown')); +$smarty->assign('customer_id', 1001); + +?> +]]> + + + テンプレート + + +'} +]]> + + + どちらも、次のように出力します。 + + + +Joe Schmoe
      +
      +
      +
      +]]> +
      +
      + + {html_radios} - データベース (PEAR あるいは ADODB) の例 + +assign('contact_types',$db->getAssoc($sql)); + +$sql = 'select contact_id, name, email, contact_type_id ' + .'from contacts where contact_id='.$contact_id; +$smarty->assign('contact',$db->getRow($sql)); + +?> +]]> + + + データベースから割り当てた変数を、次のテンプレートで出力します。 + + +'} +]]> + + + + {html_checkboxes} + および {html_options} + も参照してください。 + +
      + + + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-html-select-date.xml b/docs/ja/designers/language-custom-functions/language-function-html-select-date.xml new file mode 100644 index 00000000..41073228 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-html-select-date.xml @@ -0,0 +1,347 @@ + + + + + + {html_select_date} + + {html_select_date} は、日付のドロップダウンリストを作成する + カスタム関数 です。 + 年・月・日のいずれか又は全てを表示する事が出来ます。 + 以下の属性リストに無いパラメータが与えられた場合は、 + 作成された年、月、日の各 <select> タグの内側に + 名前/値 のペアで表されます。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + prefix + string + No + Date_ + name属性に付加する接頭辞 + + + time + timestamp/ YYYY-MM-DD + No + UNIXタイムスタンプ又はYYYY-MM-DDフォーマットによる現在の時間 + 使用する日付/時間 + + + start_year + string + No + 現在の年 + ドロップダウンリストの始めの年 + (年を表す数字又は現在の年からの相対年数(+/- N)) + + + end_year + string + No + start_yearと同じ + ドロップダウンリストの終わりの年 + (年を表す数字又は現在の年からの相対年数(+/- N)) + + + display_days + boolean + No + &true; + 日を表示するかどうか + + + display_months + boolean + No + &true; + 月を表示するかどうか + + + display_years + boolean + No + &true; + 年を表示するかどうか + + + month_format + string + No + %B + 月の表示フォーマット(strftime) + + + day_format + string + No + %02d + 日の出力のフォーマット(sprintf) + + + day_value_format + string + No + %d + 日の値のフォーマット (sprintf) + + + year_as_text + boolean + No + &false; + 年をテキストとして表示するかどうか + + + reverse_years + boolean + No + &false; + 年を逆順で表示する + + + field_array + string + No + null + + name属性が与えられた場合、結果の値を + name[Day],name[Month],name[Year]の形の連想配列にしてPHPに返す + + + + day_size + string + No + null + 日のselectタグにsize属性を追加 + + + month_size + string + No + null + 月のselectタグにsize属性を追加 + + + year_size + string + No + null + 年のselectタグにsize属性を追加 + + + all_extra + string + No + null + 全てのselect/inputタグに拡張属性を追加 + + + day_extra + string + No + null + 日のselect/inputタグに拡張属性を追加 + + + month_extra + string + No + null + 月のselect/inputタグに拡張属性を追加 + + + year_extra + string + No + null + 年のselect/inputタグに拡張属性を追加 + + + field_order + string + No + MDY + フィールドを表示する順序 + + + field_separator + string + No + \n + フィールド間に表示する文字列 + + + month_value_format + string + No + %m + strftime() フォーマットによる月の値(デフォルトは%m) + + + year_empty + string + No + null + + 年のセレクトボックスの最初の要素に、指定した文字列をlabelとして、 + 空文字 のvalueを持たせます。 + 例えば、セレクトボックスに 年を選択して下さい と表示させる時に便利です。 + 年を選択しないことを示唆するのに、time属性に対して -MM-DD + という値が指定できることに注意してください。 + + + month_empty + string + No + null + + 月のセレクトボックスの最初の要素に、指定した文字列をlabelとして、 + 空文字 のvalueを持たせます。月を選択しないことを示唆するのに、 + time属性に対して YYYY--DD という値が指定できることに注意してください。 + + + day_empty + string + No + null + + 日のセレクトボックスの最初の要素に、指定した文字列をlabelとして、 + 空文字 のvalueを持たせます。日を選択しないことを示唆するのに、 + time属性に対して YYYY-MM- という値が指定できることに注意してください。 + + + + + + + + 日付に関するヒント + のページに、{html_select_date} + の値をタイムスタンプに変換する便利な php 関数が紹介されています。 + + + + + {html_select_date} + テンプレートのコード + + + + + 出力 + + + + + + + ..... 省略 ..... + + + + + + +]]> + + + + + {html_select_date} の二番目の例 + + + + + 現在が西暦 2000 だとすると、出力は次のようになります。 + + + + + +.... 省略 .... + + + + +]]> + + + + {html_select_time}、 + date_format、 + $smarty.now + および 日付に関するヒント + も参照してください。 + + + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-html-select-time.xml b/docs/ja/designers/language-custom-functions/language-function-html-select-time.xml new file mode 100644 index 00000000..4c444930 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-html-select-time.xml @@ -0,0 +1,223 @@ + + + + + + {html_select_time} + + {html_select_time} は、時間のドロップダウンリストを作成する + カスタム関数 です。 + 時・分・秒・am/pm のいずれか又は全てを表示する事が出来ます。 + + + time 属性にはUNIXタイムスタンプや + YYYYMMDDHHMMSS 形式の文字列、PHP の + strtotime() + によって解析可能な文字列のような異なるフォーマットを持たせる事が出来ます。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + prefix + string + No + Time_ + name属性に付加する接頭辞 + + + time + timestamp + No + 現在の時間 + 使用する日付/時間 + + + display_hours + boolean + No + &true; + 時を表示するかどうか + + + display_minutes + boolean + No + &true; + 分を表示するかどうか + + + display_seconds + boolean + No + &true; + 秒を表示するかどうか + + + display_meridian + boolean + No + &true; + am/pm を表示するかどうか + + + use_24_hours + boolean + No + &true; + 24 時間クロックを用いるかどうか + + + minute_interval + integer + No + 1 + ドロップダウンリストの分間隔 + + + second_interval + integer + No + 1 + ドロップダウンリストの秒間隔 + + + field_array + string + No + n/a + 結果の値をこの名前の配列に渡して出力 + + + all_extra + string + No + null + 全てのselect/inputタグに拡張属性を追加 + + + hour_extra + string + No + null + 時間のselect/inputタグに拡張属性を追加 + + + minute_extra + string + No + null + 分のselect/inputタグに拡張属性を追加 + + + second_extra + string + No + null + 秒のselect/inputタグに拡張属性を追加 + + + meridian_extra + string + No + null + am/pmのselect/inputタグに拡張属性を追加 + + + + + + + {html_select_time} + + + + + 現在時刻が午前 9 時 20 分 23 秒だとすると、このテンプレートの出力は次のようになります。 + + + + + +... 省略 .... + + + +... 省略 .... + + + + + + +]]> + + + + $smarty.now、 + {html_select_date} + および 日付に関するヒントのページ + も参照してください。 + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-html-table.xml b/docs/ja/designers/language-custom-functions/language-function-html-table.xml new file mode 100644 index 00000000..c3843ad8 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-html-table.xml @@ -0,0 +1,247 @@ + + + + + + {html_table} + + {html_table} は、HTML の + <table> にデータの配列を出力する + カスタム関数 です。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + loop + array + Yes + n/a + ループに用いるデータ配列 + + + cols + mixed + No + 3 + + テーブルのカラム数。cols属性は空であるがrows属性が与えられたという場合、 + colsの数は、すべての要素を表示するのに事足りるcolsが表示されるように + rowsの数と要素の数によって計算されます。 + rowsとcolsの両方が空だった場合、 colsのデフォルトは 3 として計算は省かれます。 + リストあるいは配列を渡すと、そのリストあるいは配列の要素数がカラム数となります。 + + + + rows + integer + No + empty + + テーブルの行数。rows属性は空であるがcols属性が与えられたという場合、 + rowsの数は、すべての要素を表示するのに事足りるrowsが表示されるように + colsの数と要素の数によって計算されます。 + + + + inner + string + No + cols + + ループ配列から参照される連続要素の進行方向。 + cols なら要素が列方向へ、 + rows なら要素が行方向へ記述されることを意味します。 + + + + caption + string + No + empty + テーブルの <caption> + 要素に使用する文字列 + + + table_attr + string + No + border="1" + <table> タグの属性 + + + th_attr + string + No + empty + <th> タグの属性 + (配列は循環します) + + + tr_attr + string + No + empty + <tr> タグの属性 + (配列は循環します) + + + td_attr + string + No + empty + <td> タグの属性 + (配列は循環します) + + + trailpad + string + No + &nbsp; + 行の最後に余ったセルがあればそれらを埋めるのに用いられる値 + + + hdir + string + No + right + + 各行の表示される方向。有効な値: + right (左から右へ)、 + left (右から左へ) + + + + vdir + string + No + down + + 各カラムの表示される方向。有効な値: + down (上から下へ)、 + up (下から上へ) + + + + + + + + + cols 属性は、テーブルのカラム数を定義します。 + + + + table_attrtr_attr + および td_attr の値は、それぞれ + <table><tr> + および <td> タグの属性を表します。 + + + + tr_attrtd_attr + が配列の場合は、循環して処理します。 + + + + trailpad は、テーブルの最後の行でセルが余った場合に + そこを埋める値として使用します。 + + + + + {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'); +?> +]]> + + PHP から割り当てられた変数の内容を、三通りの方法で出力します。 + それぞれ、テンプレートの後に出力結果を続けます。 + + + + +123 +456 +789 + + + + +{**** 例 2 ****} +{html_table loop=$data cols=4 table_attr='border="0"'} + + + + + + + +
      1234
      5678
      9   
      + + +{**** 例 3 ****} +{html_table loop=$data cols="first,second,third,fourth" tr_attr=$tr} + + + + + + + + + + + + +
      firstsecondthirdfourth
      1234
      5678
      9   
      +]]> +
      + +
      +
      + + diff --git a/docs/ja/designers/language-custom-functions/language-function-mailto.xml b/docs/ja/designers/language-custom-functions/language-function-mailto.xml new file mode 100644 index 00000000..b28f69a6 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-mailto.xml @@ -0,0 +1,176 @@ + + + + + + {mailto} + + {mailto} は、mailto: + リンクの作成とメールアドレスのエンコードを自動的に行います。 + メールアドレスをエンコードすることで、 + アドレス収集ソフトがあなたのサイトからメールアドレスを取得することを困難にします。 + + テクニカルノート + + Javascript がおそらく一番徹底したエンコードを行いますが、 + hexエンコードも使用する事が出来ます。 + + + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + address + string + Yes + n/a + メールアドレス + + + text + string + No + n/a + 表示するテキスト。デフォルトではメールアドレス。 + + + encode + string + No + none + メールアドレスのエンコード方法。 + none、 + hexjavascript + あるいは javascript_charcode + のいずれか。 + + + cc + string + No + n/a + カーボンコピーにあたるメールアドレス。 複数の場合はカンマによって区切られる。 + + + + bcc + string + No + n/a + ブラインドカーボンコピーにあたるメールアドレス。 + 複数の場合はカンマによって区切られる。 + + + subject + string + No + n/a + メールの件名 + + + newsgroups + string + No + n/a + 投稿するニュースグループ。複数の場合はカンマによって区切られる。 + + + followupto + string + No + n/a + フォローアップするメールアドレス。複数の場合はカンマによって区切られる。 + + + extra + string + No + n/a + リンクする際に渡したい特別な情報(例えばスタイルシートクラス)。 + + + + + + + + {mailto} のサンプルと、その結果 + +me@example.com
      + +{mailto address="me@example.com" text="send me some mail"} +send me some mail + +{mailto address="me@example.com" encode="javascript"} + + +{mailto address="me@example.com" encode="hex"} +m&..snipped...#x6f;m + +{mailto address="me@example.com" subject="Hello to you!"} +me@example.com + +{mailto address="me@example.com" cc="you@example.com,they@example.com"} +me@example.com + +{mailto address="me@example.com" extra='class="email"'} + + +{mailto address="me@example.com" encode="javascript_charcode"} + +]]> + + + + escape、 + {textformat} + および + E-mail アドレスを混乱させる + も参照してください。 + + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-math.xml b/docs/ja/designers/language-custom-functions/language-function-math.xml new file mode 100644 index 00000000..f2e6a4ee --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-math.xml @@ -0,0 +1,204 @@ + + + + + + {math} + + {math} を使用すると、 + テンプレートのデザイナーがテンプレート内で数学の計算を実行できます。 + + + + 式の中では、数値型のテンプレート変数を使用でき、結果はタグの位置に出力されます。 + + + + 式で使用する変数はパラメータとして渡します。 + これはテンプレート変数あるいは静的な値のいずれかとなります。 + + + +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, + pi, pow, rand, round, sin, sqrt, srans および tan を使用できます。 + これらの詳細については、PHP の + 数学 関数のマニュアルを参照してください。 + + + + assign 属性を指定すると、 + {math} 関数の出力はテンプレート変数に格納され、 + テンプレートには出力されません。 + + + + + テクニカルノート + + {math} は PHP の + eval() + 関数を使用するのでパフォーマンス的にコストの高い関数です。 + PHP 内で math 関数を実行する事は、テンプレートで行うよりもはるかに効率的で、 + mathの計算がPHPで可能な場合はPHPで行い、結果をテンプレートに + assign() するようにしましょう。 + + {section} ループ内のような反復動作で + {math} 関数を呼び出す事は避けて下さい。 + + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + equation + string + Yes + n/a + 実行する式 + + + format + string + No + n/a + 結果の表示フォーマット (sprintf) + + + var + numeric + Yes + n/a + 式の変数に渡す値 + + + assign + string + No + n/a + 出力を割り当てるテンプレート変数 + + + [var ...] + numeric + Yes + n/a + 式の変数の値 + + + + + + + + {math} + + サンプル a: + + + + + + 上の例の出力 + + + + + + サンプル b: + + + + + + 上の例の出力 + + + + + + サンプル c: + + + + + + 上の例の出力 + + + + + + サンプル d: + + + + + + 上の例の出力 + + + + + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-popup-init.xml b/docs/ja/designers/language-custom-functions/language-function-popup-init.xml new file mode 100644 index 00000000..310a0bf2 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-popup-init.xml @@ -0,0 +1,89 @@ + + + + + + {popup_init} + + {popup} + は、ポップアップウィンドウ用のライブラリである + overLib と統合しています。 + これは、ヘルプウィンドウやツールチップといった状況依存の情報を表示するために使用します。 + + + + + {popup_init} は、 + {popup} 関数を使用する予定のページ内で + 一度だけ 呼び出す必要があります。呼び出す場所としては + <head> タグの中がお勧めです。 + + + + パスは、実行するスクリプトの場所からの相対パスか、あるいは完全修飾形式のパスとなります。 + テンプレートからの相対パスではありません。 + + + + overLib の作者は + Erik Bosrup で、ホームページ/ダウンロード先は + &url.overLib; です。 + + + + + {popup_init} + + +{* popup_init は、ページの先頭で一度だけ呼ばれる必要があります。 *} +{popup_init src='javascripts/overlib/overlib.js'} + +{* 完全修飾形式の url の例 *} +{popup_init src='http://myserver.org/my_js_libs/overlib/overlib.js'} + + +// 最初の例の出力 + + + + +]]> + + + + +XHTML の検証 +{popup_init} は +strict な検証を行いません。strict で検証すると +document type does not allow element "div" here; +というエラーが出るでしょう +(<div> タグを <head> +の中で使用しているからです)。 + +つまり、<script> タグと +<div> タグを手動で追加する必要があります。 + + + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-popup.xml b/docs/ja/designers/language-custom-functions/language-function-popup.xml new file mode 100644 index 00000000..323fb42d --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-popup.xml @@ -0,0 +1,436 @@ + + + + + + {popup} + + {popup} を使用して、Javascript のポップアップウィンドウを作成します。 + + {popup_init} は、この動作の最初に呼び出される必要があります。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + text + string + Yes + n/a + ポップアップウィンドウ中に表示するtext/html + + + trigger + string + No + onMouseOver + ポップアップウィンドウを起動するトリガー(onMouseOver又はonClick) + + + sticky + boolean + No + &false; + 閉じられるまでポップアップを待機させる + + + caption + string + No + n/a + タイトルにセットする見出し + + + fgcolor + string + No + n/a + ポップアップボックスの内部の色 + + + bgcolor + string + No + n/a + ポップアップボックスの枠線の色 + + + textcolor + string + No + n/a + ポップアップボックス内部のテキストの色 + + + capcolor + string + No + n/a + ポップアップボックスの見出しのテキストの色 + + + closecolor + string + No + n/a + closeテキストの色 + + + textfont + string + No + n/a + メインテキストで使用されるフォントの種類 + + + captionfont + string + No + n/a + 見出しで使用されるフォント + + + closefont + string + No + n/a + Close テキストのフォント + + + textsize + string + No + n/a + メインテキストのフォントサイズ + + + captionsize + string + No + n/a + 見出しテキストのフォントサイズ + + + closesize + string + No + n/a + Close テキストのフォントサイズ + + + width + integer + No + n/a + ボックスの幅 + + + height + integer + No + n/a + ボックスの高さ + + + left + boolean + No + &false; + ポップアップをマウスの左側に表示 + + + right + boolean + No + &false; + ポップアップをマウスの右側に表示 + + + center + boolean + No + &false; + ポップアップをマウスの中央に表示 + + + above + boolean + No + &false; + ポップアップをマウスの上側に表示 + (注: heightがセットされている場合のみ有効) + + + below + boolean + No + &false; + ポップアップをマウスの下側に表示 + + + border + integer + No + n/a + ポップアップの枠線の幅 + + + offsetx + integer + No + n/a + ポインタから水平にどれくらい離れた位置にポップアップを表示するか + + + offsety + integer + No + n/a + ポインタから垂直にどれくらい離れた位置にポップアップを表示するか + + + fgbackground + url to image + No + n/a + ポップアップの内部に色の代わりに表示する画像 + + + bgbackground + url to image + No + n/a + ポップアップの境界に色の代わりに表示する画像。 + (注:bgcolor や colorを にしたほうがよい) + (注:Closeリンクを使用する場合、Netscape + ではテーブルのセルが再描写されて誤った表示になることがあります) + + + closetext + string + No + n/a + Close テキストの代替として使用する文字列 + + + noclose + boolean + No + n/a + sticky属性がtrueに設定されているポップアップの見出しに + Close テキストを表示しない + + + status + string + No + n/a + ブラウザのステータスバーに表示する文字列 + + + autostatus + boolean + No + n/a + ポップアップのテキストをステータスバーのテキストとして設定する + (注: statusの設定をオーバーライドします) + + + autostatuscap + string + No + n/a + ポップアップの見出しテキストをステータスバーのテキストとして設定する + (注: statusとautostatusの設定をオーバーライドします) + + + inarray + integer + No + n/a + overlib.js 内にある ol_array 配列中の指定したインデックスから、 + text を読み込む (このパラメータはtextの代わりに使用されます) + + + caparray + integer + No + n/a + overlib.js 内にある ol_caps 配列中の指定したインデックスから、 + caption を読み込む + + + capicon + url + No + n/a + ポップアップの見出しの前に画像を表示する + + + snapx + integer + No + n/a + ポップアップを水平グリッドにスナップする + + + snapy + integer + No + n/a + ポップアップを垂直グリッドにスナップする + + + fixx + integer + No + n/a + ポップアップの水平の位置を固定する + (注: 他の全ての水平の位置に関する属性はオーバーライドされます) + + + fixy + integer + No + n/a + ポップアップの垂直の位置を固定する + (注: 他の全ての垂直の位置に関する属性はオーバーライドされます) + + + background + url + No + n/a + テーブルボックスの背景の代わりに画像をセットする + + + padx + integer,integer + No + n/a + 水平のホワイトスペースによって背景画像の表示領域を大きくする + (注: 2つのパラメータが必要) + + + pady + integer,integer + No + n/a + 垂直のホワイトスペースによって背景画像の表示領域を大きくする + (注: 2つのパラメータが必要) + + + fullhtml + boolean + No + n/a + 背景画像上でHTMLを完全にコントロールする (HTML コードは + text 属性に記述する) + + + frame + string + No + n/a + 異なるフレームにおけるポップアップを操作する + (詳細はoverlibのサイトを参照) + + + function + string + No + n/a + 指定した Javascript 関数を呼び出し、 + その返り値をポップアップウィンドウに表示する + + + delay + integer + No + n/a + ポップアップをツールチップ風に表示する。 + 設定した遅延 (ミリ秒) の後にポップアップします。 + + + hauto + boolean + No + n/a + ポップアップがマウスの左側か右側のどちらに位置するべきかを自動的に決定する + + + vauto + boolean + No + n/a + ポップアップがマウスの上側か下側のどちらに位置するべきかを自動的に決定する + + + + + + + {popup} + +mypage + +{* popupのtextにhtmlやlinksを用いる事ができます *} +mypage + +{* テーブルのセルの上でポップアップします *} +{$part_number} +]]> + + + + {capture} + のページにもよい例があります。 + + {popup_init} + および + overLib のホームページも参照してください。 + + + + diff --git a/docs/ja/designers/language-custom-functions/language-function-textformat.xml b/docs/ja/designers/language-custom-functions/language-function-textformat.xml new file mode 100644 index 00000000..8c164d62 --- /dev/null +++ b/docs/ja/designers/language-custom-functions/language-function-textformat.xml @@ -0,0 +1,297 @@ + + + + + + {textformat} + + {textformat} は、 + テキストを整形するために用いる + ブロック関数 です。 + これは基本的に空白と特殊文字を取り除き、 + 境界でラップして行をインデントする事によって段落を整形します。 + + + 明示的にパラメータを設定したり、あらかじめ決められたスタイルを使用したりできます。現在、 + email のみが有効なスタイルです。 + + + + + + + + + + + + 属性名 + + 必須 + デフォルト + 概要 + + + + + style + string + No + n/a + あらかじめ決められたスタイル + + + indent + number + No + 0 + 各行をインデントするキャラクタ数 + + + indent_first + number + No + 0 + 最初の行をインデントするキャラクタ数 + + + indent_char + string + No + (半角スペース1個) + インデントするために使われるキャラクタ(又は文字列) + + + wrap + number + No + 80 + 各行をいくつのキャラクタ数でラップするか + + + wrap_char + string + No + \n + 各行を分割するためのキャラクタ(又は文字列) + + + wrap_cut + boolean + No + &false; + &true; ならば、単語の境界の代わりに正確なキャラクタ数で行を分割します。 + + + assign + string + No + n/a + 出力が割り当てられるテンプレート変数 + + + + + + + {textformat} + + + + + 上の例の出力 + + + + + + + + + 上の例の出力 + + + + + + + + + 上の例の出力 + + + + + + + + + 上の例の出力 + + + + + + + {strip} + および + wordwrap + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers.xml b/docs/ja/designers/language-modifiers.xml new file mode 100644 index 00000000..1812c30e --- /dev/null +++ b/docs/ja/designers/language-modifiers.xml @@ -0,0 +1,158 @@ + + + + + + 変数の修飾子 + + 変数の修飾子は、 + 変数 や + カスタム関数 + や文字列を修飾して出力することができます。修飾子を適用するには、 + 変数名の後に | (パイプ) と修飾子の名前を指定します。 + また、修飾子はその動作に影響を及ぼす追加のパラメータを受け入れる場合もあります。 + そのパラメータは修飾子の後に続き、: (コロン) によって区切られます。 + また、すべての PHP 関数は、暗黙的に修飾子として使用でき + (あとで説明します)、修飾子は 組み合わせる + こともできます。 + + + 修飾子の例 + + +{html_options output=$myArray|upper|truncate:20} + +]]> + + + + + + 配列に対して修飾子を用いた場合は、その配列に格納された全ての値に影響を及ぼします。 + 配列全体を1つの値として作用させるには修飾子の先頭に @ + 記号をつける必要があります。 + + + {$articleTitle|@count} - これは、 + 配列 $articleTitle の要素数を、php の + count() + 関数を修飾子として用いて出力します。 + + + + + 修飾子は $plugins_dir + から自動的に読み込むか、明示的に register_modifier() + 関数で登録します。2つ目の方法は、PHP スクリプトと Smarty テンプレートで + 関数を共有する場合などに有用です。 + + + + 先ほどの例で示したように、全ての PHP 関数は暗黙で修飾子として使用する事ができます。 + しかし、修飾子としてPHP関数を使うには2つの小さな落とし穴があります。 + + 第1に、 たまに関数のパラメータの順序が望ましいものではなくります。 + $foo を + {"%2.f"|sprintf:$foo} でフォーマットすることはできますが、 + Smarty が提供する方式である {$foo|string_format:"%2.f"} + のほうがより直感的です。 + + + 第2に、 + $security が有効な場合、 + 修飾子として使用される全ての PHP 関数は + + $security_settings 配列の + MODIFIER_FUNCS 要素で + 信頼できるものとして定義される必要があります。 + + + + + + + register_modifier()、 + 修飾子の連結 + および + プラグインによる Smarty の拡張 + も参照してください。 + + + &designers.language-modifiers.language-modifier-capitalize; + &designers.language-modifiers.language-modifier-cat; + &designers.language-modifiers.language-modifier-count-characters; + &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/ja/designers/language-modifiers/language-modifier-capitalize.xml b/docs/ja/designers/language-modifiers/language-modifier-capitalize.xml new file mode 100644 index 00000000..d2e13656 --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-capitalize.xml @@ -0,0 +1,98 @@ + + + + + + capitalize + + 変数内の全ての単語の先頭を大文字で開始します。 + PHP の + ucfirst() 関数と似ています。 + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + boolean + No + &false; + 数字とセットの単語を大文字にするかどうか + + + + + + capitalize + +assign('articleTitle', 'next x-men film, x3, delayed.'); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + lower + および + upper + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-cat.xml b/docs/ja/designers/language-modifiers/language-modifier-cat.xml new file mode 100644 index 00000000..cfb6962e --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-cat.xml @@ -0,0 +1,86 @@ + + + + + + cat + + 与えられた変数に値を連結します。 + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + string + No + empty + 与えられた変数にこの値を連結する + + + + + + + cat + +assign('articleTitle', "Psychics predict world didn't end"); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-count-characters.xml b/docs/ja/designers/language-modifiers/language-modifier-count-characters.xml new file mode 100644 index 00000000..cdea53b4 --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-count-characters.xml @@ -0,0 +1,97 @@ + + + + + + count_characters + + 変数内の文字数をカウントします。 + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + boolean + No + &false; + 空白キャラクタをカウントに含めるかどうか + + + + + + + count_characters + +assign('articleTitle', 'Cold Wave Linked to Temperatures.'); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + count_words、 + count_sentences および + count_paragraphs + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-count-paragraphs.xml b/docs/ja/designers/language-modifiers/language-modifier-count-paragraphs.xml new file mode 100644 index 00000000..2aa556bc --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-count-paragraphs.xml @@ -0,0 +1,73 @@ + + + + + + count_paragraphs + + 変数内のパラグラフの数をカウントします。 + + + count_paragraphs + +assign('articleTitle', + "War Dims Hope for Peace. Child's Death Ruins Couple's Holiday.\n\n + Man is Fatally Slain. Death Causes Loneliness, Feeling of Isolation." + ); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + count_characters、 + count_sentences + および + count_words. + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-count-sentences.xml b/docs/ja/designers/language-modifiers/language-modifier-count-sentences.xml new file mode 100644 index 00000000..c648caeb --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-count-sentences.xml @@ -0,0 +1,71 @@ + + + + + + count_sentences + + 変数内のセンテンスの数をカウントします。 + + + count_sentences + +assign('articleTitle', + 'Two Soviet Ships Collide - One Dies. + Enraged Cow Injures Farmer with Axe.' + ); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + count_characters、 + count_paragraphs + および + count_words. + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-count-words.xml b/docs/ja/designers/language-modifiers/language-modifier-count-words.xml new file mode 100644 index 00000000..09bd9c49 --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-count-words.xml @@ -0,0 +1,68 @@ + + + + + + count_words + + 変数内の単語の数をカウントします。 + + + count_words + +assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.'); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + count_characters、 + count_paragraphs + および + count_sentences. + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-date-format.xml b/docs/ja/designers/language-modifiers/language-modifier-date-format.xml new file mode 100644 index 00000000..1bd3abc8 --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-date-format.xml @@ -0,0 +1,281 @@ + + + + + + date_format + + 日付と時間を + strftime() + のフォーマットに基づいて整形します。日付を Unix + タイムスタンプ + や MySQL タイムスタンプ、そして月・日・年で構成された + (PHP の strtotime() + でパース可能な) 文字列として変数に割り当てる事ができます。デザイナーは、 + date_format を使用することで日付の書式設定を自由にコントロールできます。 + date_format に渡した日付が空で + 第2パラメータが渡された場合、その日付をフォーマットします。 + + + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + string + No + %b %e, %Y + 日付の表示フォーマット + + + 2 + string + No + n/a + 入力が空のときのデフォルトの日付 + + + + + + + + + Smarty-2.6.10 以降、date_format に渡された数値は + 常に (MySQL タイムスタンプは例外です。以下を参照してください) + Unix タイムスタンプとして解釈されるようになりました。 + + + Smarty-2.6.10 より前は、PHP の + strtotime() がパース可能な数値文字列 + (YYYYMMDD のような形式) は、 + タイムスタンプではなく日付文字列として解釈されることもあります + (strtotime() の実装に依存します)。 + + + 唯一の例外は、mysql タイムスタンプです。 + これは数値のみで、文字数は14文字 ("YYYYMMDDHHMMSS") です。 + mysql タイムスタンプは unix タイムスタンプより優先されます。 + + + + プログラマーズノート + + date_format は、本質的には PHP の + strftime() + 関数のラッパーです。PHP をコンパイルしたシステム上の + strftime() + の実装によっては、利用可能な変換指定子が多少変わる場合があります。 + 有効な指定子の一覧は、システムの man ページを参照してください。 + Windows 上でも一部の指定子をエミュレートしており、%D, %e, %h, %l, %n, + %r, %R, %t, %T が使用できます。 + + + + + date_format + +assign('config', $config); +$smarty->assign('yesterday', strtotime('-1 day')); + +?> +]]> + + + このテンプレートでは、 + $smarty.now を使用して現在時刻を取得しています。 + + + + + + 出力 + + + + + + + + date_format の変換指定子 + + + %a - 現在のロケールに基づく短縮された曜日の名前 + + + %A - 現在のロケールに基づく完全な曜日の名前 + + + %b - 現在のロケールに基づく短縮された月の名前 + + + %B - 現在のロケールに基づく完全な月の名前 + + + %c - 現在のロケールに基づく適当な日付と時間の表現 + + + %C - 世紀(年を100で割り、整数に丸めたもの。00から99) + + + %d - 10進数の日付(01から31) + + + %D - %m/%d/%yと同じ + + + %e - 月単位の日付を10進数で表したもの。日付が1桁の場合は、前に空白を一つ付ける。('1'から'31') + + + %g - 西暦の下二桁 [00,99] + + + %G - 西暦 [0000,9999] + + + %h - %bと同じ。 + + + %H - 時間を24時間表示の10進数で(00から23まで) + + + %I - 時間を12時間表示の10進数で(01から12までの範囲) + + + %j - 年間での日付を10進数で表現 (001から366) + + + %k - 24時間表示の時間の一桁目に空白を入れる ( 0 から 23までの範囲) + + + %l - 12時間表示の時間の一桁目に空白を入れる ( 1 から 12までの範囲) + + + %m - 月を10進数で表現 (01から12) + + + %M - 分を10進数で表現 + + + %n - 改行文字 + + + %p - 指定した時間により `am' または `pm' 、または 現在のロケールに対応した文字列 + + + %r - a.m.およびp.m.表記で表した時間 + + + %R - 24時間表記で表した時間 + + + %S - 10進数で表した秒 + + + %t - タブ文字 + + + %T - 現在の時間。%H:%M:%Sに等しい。 + + + %u - 10進数表記の曜日で[1,7]の範囲。1が月曜日。 + + + %U - 年間で何番目の週であるかを 10 進数で表現。年間で最初の日曜を最初の週の最初の日として数えます。 + + + %V - ISO 8601:1988で規定された現在の年の週番号の10進数表現で 01から53までの範囲となります。 + 1は最初の週でその週は現在の年に 最低4日はあります。週は月曜日から始まります。 + + + %w - 曜日を10進数で表現。日曜は0になります。 + + + %W - 現在の年で何番目の週であるかを10進数で表現。 年間で最初の月曜を最初の週の最初の日として数えます。 + + + %x - 時間を除いた日付を現在のロケールに基づき表現します。 + + + %X - 日付を除いた時間を現在のロケールに基づき表現します。 + + + %y - 世紀の部分を除いた年を10進数として表現。(00から99までの範囲) + + + %Y - 世紀を含む年を10進数で表現 + + + %Z - タイムゾーンまたはその名前または短縮形 + + + %% - 文字リテラル`%' + + + + + + $smarty.now、 + strftime()、 + {html_select_date} + および 日付に関するヒント のページも参照してください。 + + + + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-default.xml b/docs/ja/designers/language-modifiers/language-modifier-default.xml new file mode 100644 index 00000000..19fecb24 --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-default.xml @@ -0,0 +1,110 @@ + + + + + + default + + 変数のデフォルト値を設定します。変数が空であるか設定されていない場合に、 + 代わりとしてデフォルト値が表示されます。この修飾子は1つのパラメータをとります。 + + + + + + error_reporting(E_ALL) を指定すると、 + テンプレート内で未定義の変数を使用した場合に常にエラーが発生します。 + この関数を使用すると、null あるいは空文字列に変換できるので便利です。 + + + + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + string + No + empty + 変数が空の場合に表示されるデフォルト値 + + + + + + + default + +assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.'); +$smarty->assign('email', ''); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + 変数のデフォルトの扱い + および + 空白の変数の扱い + のページも参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-escape.xml b/docs/ja/designers/language-modifiers/language-modifier-escape.xml new file mode 100644 index 00000000..5e69aa04 --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-escape.xml @@ -0,0 +1,162 @@ + + + + + + escape + + escape は変数のエンコードやエスケープを行います。 + たとえば html、 + urlシングルクォート、 + hexhexentity、 + javascript および mail + などに対する処理を行います。 + デフォルトでは html 用の処理をします。 + + + + + + + + + + + + + パラメータの位置 + + 必須 + 有効な値 + デフォルト + 概要 + + + + + 1 + string + No + html, htmlall, + url, + urlpathinfo, quotes, + hex, hexentity, + javascript, mail + + html + 使用するエスケープフォーマット + + + 2 + string + No + ISO-8859-1, UTF-8 + および + htmlentities() がサポートする任意の文字セット + + ISO-8859-1 + htmlentities() へ渡す文字セットのエンコーディング + + + + + + + escape + +assign('articleTitle', + "'Stiff Opposition Expected to Casketless Funeral Plan'" + ); +$smarty->assign('EmailAddress','smarty@example.com'); + +?> +]]> + + + escape を使用するテンプレートの後に、その出力結果を続けています。 + + + をエスケープします *} +'Stiff Opposition Expected to Casketless Funeral Plan' + +{$articleTitle|escape:'htmlall'} {* 全ての html エンティティをエスケープします *} +'Stiff Opposition Expected to Casketless Funeral Plan' + +click here +click here + +{$articleTitle|escape:'quotes'} +\'Stiff Opposition Expected to Casketless Funeral Plan\' + +{$EmailAddress|escape:"hexentity"} +{$EmailAddress|escape:'mail'} {* email をテキストに変換します *} +bob..snip..et + +{'mail@example.com'|escape:'mail'} +smarty [AT] example [DOT] com +]]> + + + + + 別の例 + PHP の関数を修飾子として使用できます。これは + + $security の設定によります。 + + +click here +]]> + + これは email 用に便利です。しかし、 + + {mailto} も参照してください。 + +{$EmailAddress|escape:'mail'} +]]> + + + + + Smarty の構文解析を回避、 + {mailto} + および + E-mail アドレスを混乱させる + のページも参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-indent.xml b/docs/ja/designers/language-modifiers/language-modifier-indent.xml new file mode 100644 index 00000000..e89f63f8 --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-indent.xml @@ -0,0 +1,128 @@ + + + + + + indent + + 各行で文字列をインデントします。デフォルトは 4 です。 + 第1パラメータには、インデントするキャラクタ数が指定できます。 + 第2パラメータには、インデントに使用するキャラクタが指定できます。 + たとえば、"\t" はタブを表します。 + + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + integer + No + 4 + インデントするキャラクタ数 + + + 2 + string + No + (半角スペース 1 文字) + インデントに使用するキャラクタ + + + + + + + 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.' + ); +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + strip、 + wordwrap + および + spacify + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-lower.xml b/docs/ja/designers/language-modifiers/language-modifier-lower.xml new file mode 100644 index 00000000..fe3ff793 --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-lower.xml @@ -0,0 +1,69 @@ + + + + + + lower + + 変数を小文字に置き換えます。これは、PHP の + + strtolower() 関数と同義です。 + + + lower + +assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.'); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + upper + および + capitalize + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-nl2br.xml b/docs/ja/designers/language-modifiers/language-modifier-nl2br.xml new file mode 100644 index 00000000..2de7808e --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-nl2br.xml @@ -0,0 +1,71 @@ + + + + + + nl2br + + 与えられた変数内の全ての改行文字 "\n" + を html の <br /> タグに変換します。 + これは PHP の + nl2br() 関数と同義です。 + + + nl2br + +assign('articleTitle', + "Sun or rain expected\ntoday, dark tonight" + ); + +?> +]]> + + + テンプレート + + + + + + 出力 + + +today, dark tonight +]]> + + + + word_wrap、 + count_paragraphs + および + count_sentences + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-regex-replace.xml b/docs/ja/designers/language-modifiers/language-modifier-regex-replace.xml new file mode 100644 index 00000000..254b4e8e --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-regex-replace.xml @@ -0,0 +1,110 @@ + + + + + + regex_replace + + 変数に対して正規表現による検索・置換を行います。 + 正規表現は、PHP マニュアルの + + preg_replace() の構文を使用してください。 + + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + string + Yes + n/a + 置換するための正規表現 + + + 2 + string + Yes + n/a + この文字列に置換する + + + + + + + regex_replace + +assign('articleTitle', "Infertility unlikely to\nbe passed on, experts say."); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + + replace + および + escape + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-replace.xml b/docs/ja/designers/language-modifiers/language-modifier-replace.xml new file mode 100644 index 00000000..79443e30 --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-replace.xml @@ -0,0 +1,107 @@ + + + + + + replace + + 変数に対して、シンプルな検索・置換を行います。これは、PHP の + + str_replace() 関数と同義です。 + + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + string + Yes + n/a + 置換元の文字列 + + + 2 + string + Yes + n/a + この文字列に置換する + + + + + + + replace + +assign('articleTitle', "Child's Stool Great for Use in Garden."); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + regex_replace + および + escape + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-spacify.xml b/docs/ja/designers/language-modifiers/language-modifier-spacify.xml new file mode 100644 index 00000000..cec56a2f --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-spacify.xml @@ -0,0 +1,98 @@ + + + + + + spacify + + spacify は、変数の各キャラクタ間にスペースを挿入します。 + 第1パラメータには、挿入するキャラクタ(または文字列) を渡す事ができます。 + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + string + No + one space + 変数の各キャラクタ間に挿入される要素 + + + + + + + spacify + +assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say.'); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + wordwrap + および + nl2br + も参照ください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-string-format.xml b/docs/ja/designers/language-modifiers/language-modifier-string-format.xml new file mode 100644 index 00000000..d96d628d --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-string-format.xml @@ -0,0 +1,100 @@ + + + + + + string_format + + 変数の値を10進数として表示したり、文字列をフォーマットして表示します。 + フォーマット文字列には + sprintf() + の構文を使用してください。 + + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + string + Yes + n/a + フォーマット文字列(sprintf) + + + + + + + string_format + +assign('number', 23.5787446); + +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + + date_format + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-strip-tags.xml b/docs/ja/designers/language-modifiers/language-modifier-strip-tags.xml new file mode 100644 index 00000000..a16a86dc --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-strip-tags.xml @@ -0,0 +1,102 @@ + + + + + + strip_tags + + マークアップタグを取り除きます。これは、基本的に + <> + で囲まれたもののことです。 + + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + bool + No + &true; + タグを' 'または''のどちらで置き換えるか + + + + + + + strip_tags + +assign('articleTitle', + "Blind Woman Gets New +Kidney from Dad she Hasn't Seen in years." + ); + +?> +]]> + + + テンプレート + + + + + + 出力 + + +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. +]]> + + + + replace + および + regex_replace + も参照してください。 + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-strip.xml b/docs/ja/designers/language-modifiers/language-modifier-strip.xml new file mode 100644 index 00000000..89a61cc4 --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-strip.xml @@ -0,0 +1,78 @@ + + + + + + strip + + 繰り返された空白・改行・タブを、1つの空白または与えられた文字列によって置き換えます。 + + + Note + + テンプレートテキストのブロックを対象に取り去りたいなら、 + 組み込みの {strip} + 関数を使用して下さい。 + + + + strip + +assign('articleTitle', "Grandmother of\neight makes\t hole in one."); +$smarty->display('index.tpl'); +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + + {strip} + および + truncate + も参照してください。 + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-truncate.xml b/docs/ja/designers/language-modifiers/language-modifier-truncate.xml new file mode 100644 index 00000000..e5f95814 --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-truncate.xml @@ -0,0 +1,128 @@ + + + + + + truncate + + 指定したキャラクタ数(デフォルトは80)で変数を切り捨てます。 + 第2パラメータには、変数が切り捨てられた時に終端に付加する文字列を指定する事が出来ます。 + 指定する文字列の長さは元の切り捨ての長さの中に含まれます。 + デフォルトでは、truncate は単語の境界で切り捨てを行います。 + 厳密なキャラクタ数で切り捨てたい場合には第3パラメータに &true; を渡します。 + + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + integer + No + 80 + 切り捨てを行うキャラクタ数 + + + 2 + string + No + ... + 切り捨てが発生した際に終端に付加するキャラクタ。 + この長さは切り捨て長さの設定に含まれません。 + + + 3 + boolean + No + &false; + 切り捨てを単語の境界で行うか(&false;)、厳密なキャラクタ数で行うか(&true;) + + + 4 + boolean + No + &false; + 切り捨てを文字列の終端で行うか(&false;)、 + 文字列の中盤で行うか(&true;)。この設定が&true;の場合、 + 単語の境界が無視されることに注意。 + + + + + + + + truncate + +assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.'); +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-upper.xml b/docs/ja/designers/language-modifiers/language-modifier-upper.xml new file mode 100644 index 00000000..69455fcd --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-upper.xml @@ -0,0 +1,67 @@ + + + + + + upper + + 変数を大文字に置き換えます。これは、PHP の + + strtoupper() 関数と同義です。 + + + upper + +assign('articleTitle', "If Strike isn't Settled Quickly it may Last a While."); +?> +]]> + + + テンプレート + + + + + + 出力 + + + + + + + lower + および + capitalize + も参照してください。 + + + + diff --git a/docs/ja/designers/language-modifiers/language-modifier-wordwrap.xml b/docs/ja/designers/language-modifiers/language-modifier-wordwrap.xml new file mode 100644 index 00000000..c7b6ef0f --- /dev/null +++ b/docs/ja/designers/language-modifiers/language-modifier-wordwrap.xml @@ -0,0 +1,144 @@ + + + + + + wordwrap + + 指定したカラム幅で文字列をワードラップします(デフォルトは80)。 + 第2パラメータには、次の行にワードラップするために使用される文字列を指定する事が出来ます + (デフォルトは "\n")。 + デフォルトでは、wordwrap は単語の境界でワードラップを行います。 + 厳密な文字数でワードラップしたい場合は第3パラメータに &true; を渡します。 + これは PHP の + wordwrap() + 関数と同義です。 + + + + + + + + + + + + パラメータの位置 + + 必須 + デフォルト + 概要 + + + + + 1 + integer + No + 80 + ワードラップするカラム幅 + + + 2 + string + No + \n + ワードラップに使用される文字列 + + + 3 + boolean + No + &false; + ワードラップを単語の境界で行うか(&false;)、 + 厳密なキャラクタ数で行うか(&true;) + + + + + + + wordwrap + +assign('articleTitle', + "Blind woman gets new kidney from dad she hasn't seen in years." + ); + +?> +]]> + + + テンプレート + + +\n"} + +{$articleTitle|wordwrap:30:"\n":true} +]]> + + + 出力 + + + +from dad she hasn't seen in
      +years. + +Blind woman gets new kidney +from dad she hasn't seen in +years. +]]> +
      +
      + + nl2br + および + {textformat} + も参照してください。 + +
      + + + diff --git a/docs/ja/designers/language-variables.xml b/docs/ja/designers/language-variables.xml new file mode 100644 index 00000000..3c3da3b3 --- /dev/null +++ b/docs/ja/designers/language-variables.xml @@ -0,0 +1,68 @@ + + + + + + 変数 + + Smarty は色々な種類の変数を持っています。変数の種類は接頭辞の記号によって決まります + (記号によって囲まれる場合もあります)。 + + + Smarty 変数は、その値を直接表示したり + 関数 の引数や + 属性、 + 修飾子、 + そして条件式の内部などで使用されたりします。 + 変数の値を表示するには、それを単純に + デリミタ + で囲み、デリミタ内に変数のみが含まれるようにします。 + +変数の例 + +{$product.description} + +{$Contacts[row].Phone} + + +]]> + + + +ヒント +Smarty 変数の値を手っ取り早く調べるには、 +デバッギングコンソール を使用するとよいでしょう。 + + + + + + &designers.language-variables.language-assigned-variables; + &designers.language-variables.language-config-variables; + &designers.language-variables.language-variables-smarty; + + + + diff --git a/docs/ja/designers/language-variables/language-assigned-variables.xml b/docs/ja/designers/language-variables/language-assigned-variables.xml new file mode 100644 index 00000000..cd0374cc --- /dev/null +++ b/docs/ja/designers/language-variables/language-assigned-variables.xml @@ -0,0 +1,205 @@ + + + + + + PHP から割り当てられた変数 + + PHP から 割り当てられた 変数は、 + (php と同様に) 先頭にドル記号 ($) をつける事で参照できます。 + テンプレート内で + {assign} + 関数を用いて割り当てられた変数もこの方法で表示されます。 + + + + 割り当てられた変数 + php script + +assign('firstname', 'Doug'); +$smarty->assign('lastname', 'Evans'); +$smarty->assign('meetingPlace', 'New York'); + +$smarty->display('index.tpl'); + +?> +]]> + + + 一方、index.tpl の内容はこのようになります。 + + + +{* これは動作しません。変数名は大文字小文字を区別するからです。 *} +This weeks meeting is in {$meetingplace}. +{* こちらは動作します *} +This weeks meeting is in {$meetingPlace}. +]]> + + + + 出力は次のようになります。 + + + +This weeks meeting is in . +This weeks meeting is in New York. +]]> + + + + + + 連想配列 + + PHP から割り当てられた連想配列を参照することもできます。 + この場合は、'.' (ピリオド) 記号の後にキーを指定します。 + + + 連想配列の値にアクセスする + +assign('Contacts', + array('fax' => '555-222-9876', + 'email' => 'zaphod@slartibartfast.example.com', + 'phone' => array('home' => '555-444-3333', + 'cell' => '555-111-1234') + ) + ); +$smarty->display('index.tpl'); +?> +]]> + + + 一方、index.tpl の内容はこのようになります。 + + + +{$Contacts.email}
      +{* you can print arrays of arrays as well *} +{$Contacts.phone.home}
      +{$Contacts.phone.cell}
      +]]> +
      + + 出力は次のようになります。 + + + +zaphod@slartibartfast.example.com
      +555-444-3333
      +555-111-1234
      +]]> +
      +
      +
      + + + + 配列のインデックス + + 配列に対してインデックスでアクセスすることもできます。 + これは PHP 本来の構文と同じです。 + + + インデックスによって配列にアクセスする + +assign('Contacts', array( + '555-222-9876', + 'zaphod@slartibartfast.example.com', + array('555-444-3333', + '555-111-1234') + )); +$smarty->display('index.tpl'); +?> +]]> + + + 一方、index.tpl の内容はこのようになります。 + + + +{$Contacts[1]}
      +{* you can print arrays of arrays as well *} +{$Contacts[2][0]}
      +{$Contacts[2][1]}
      +]]> +
      + + 出力は次のようになります。 + + + +zaphod@slartibartfast.example.com
      +555-444-3333
      +555-111-1234
      +]]> +
      +
      +
      + + + + オブジェクト + + PHP から割り当てられた オブジェクト + のプロパティにアクセスするには、-> + 記号の後にプロパティ名を指定します。 + + + オブジェクトのプロパティにアクセスする + +name}
      +email: {$person->email}
      +]]> +
      + + 出力は次のようになります。 + + + +email: zaphod@slartibartfast.example.com
      +]]> +
      +
      +
      +
      + + diff --git a/docs/ja/designers/language-variables/language-config-variables.xml b/docs/ja/designers/language-variables/language-config-variables.xml new file mode 100644 index 00000000..c9c83181 --- /dev/null +++ b/docs/ja/designers/language-variables/language-config-variables.xml @@ -0,0 +1,121 @@ + + + + + + 設定ファイルから読み込まれた変数 + + 設定ファイル + から読み込まれた変数を参照するには、それをハッシュマーク (#) + で囲むか、あるいは Smarty 変数 + $smarty.config を使用します。 + 2つ目の方法は、クォートされた属性値の中に含める場合に便利です。 + + + 設定ファイルの変数 + + サンプルの設定ファイル - foo.conf: + + + + + + #hash# 方式のテンプレート + + + +{#pageTitle#} + + + + + + + +
      FirstLastAddress
      + + +]]> +
      + + + $smarty.config 方式のテンプレート + + + +{$smarty.config.pageTitle} + + + + + + + +
      FirstLastAddress
      + + +]]> +
      + + どちらの場合も出力は同じです。 + + + +This is mine + + + + + + + +
      FirstLastAddress
      + + +]]> +
      +
      + + 変数は、設定ファイルから読み込まれるまで使用できません。 + 詳細は、後ほど + + {config_load} + の項で説明します。 + + + 変数 および + 予約変数 + $smarty も参照してください。 + +
      + diff --git a/docs/ja/designers/language-variables/language-variables-smarty.xml b/docs/ja/designers/language-variables/language-variables-smarty.xml new file mode 100644 index 00000000..182e6d32 --- /dev/null +++ b/docs/ja/designers/language-variables/language-variables-smarty.xml @@ -0,0 +1,228 @@ + + + + + + 予約変数 {$smarty} + + PHP の予約変数 {$smarty} を使用すると、 + 環境変数やリクエスト変数にアクセスすることができます。 + アクセスできる内容について、以下に説明します。 + + + + リクエスト変数 + + $_GET$_POST、 + $_COOKIE$_SERVER、 + $_ENV および $_SESSION + ( + $request_vars_order + および + $request_use_auto_globals を参照してください) + といった リクエスト変数 + にアクセスするには、下の例のようにします。 + + + リクエスト変数の表示 + + + + + + + 歴史的な理由から、{$SCRIPT_NAME} には直接アクセスできます。 + しかし、この値にアクセスする方法としては + {$smarty.server.SCRIPT_NAME} が推奨されています。 + + +click me +click me +]]> + + + + + + {$smarty.now} + + 現在の タイムスタンプ + にアクセスするには {$smarty.now} を使用します。 + この値は、いわゆるエポック (1970年1月1日) からの経過秒数が含まれます。 + また、これを直接 + date_format + 修飾子に渡して表示させることができます。実行するたびに + time() + がコールされることに注意しましょう。つまり、全体を処理するのに3秒かかるスクリプトがあったとして、 + その最初と最後でそれぞれ $smarty.now + をコールすると、その値には2秒の差が生じます。 + + + + + + + + + + {$smarty.const} + + PHP 定数の値に直接アクセスできます。smarty 定数 も参照してください。 + + + + +]]> + + +定数を出力するテンプレート + + + + + + + + + {$smarty.capture} + + 組み込みの + + {capture}..{/capture} + 関数でキャプチャしたテンプレートの出力にアクセスするには + {$smarty.capture} 変数を使用します。 + 詳細は + {capture} のページを参照してください。 + + + + + {$smarty.config} + + {$smarty.config} 変数は、読み込まれた + config 変数 + を参照するのに使用できます。 + {$smarty.config.foo} は + {#foo#} と同義です。詳細は + {config_load} + のページを参照してください。 + + + + + {$smarty.section}、{$smarty.foreach} + + {$smarty.section} 変数および + {$smarty.foreach} 変数は、 + {section} + および + {foreach} + のループプロパティを参照するために使用します。 + この中には .first.index + といった有用な値が含まれます。 + + + + + {$smarty.template} + + 現在処理中のテンプレートの名前を返します。 + 次の例の container.tpl と、そこからインクルードしている + banner.tpl の両方で + {$smarty.template} を使用しています。 + + +Main container is {$smarty.template} +{include file='banner.tpl'} +]]> + + + 出力は、このようになります。 + + +Main page is container.tpl +banner.tpl +]]> + + + + + {$smarty.version} + + このテンプレートをコンパイルした Smarty のバージョンを返します。 + + +Powered by Smarty {$smarty.version} +]]> + + + + + {$smarty.ldelim}、{$smarty.rdelim} + + これらの変数を使用して、左右のデリミタをそのまま表示します。 + + {ldelim}、{rdelim} と同じです。 + + + assigned variables および + config variables + も参照してください。 + + + + diff --git a/docs/ja/getting-started.xml b/docs/ja/getting-started.xml new file mode 100644 index 00000000..b9c63870 --- /dev/null +++ b/docs/ja/getting-started.xml @@ -0,0 +1,685 @@ + + + + + + はじめに + + + Smarty とは? + + Smarty は PHP のためのテンプレートエンジンです。具体的に言うと、php + のプレゼンテーションからアプリケーションのロジックとコンテンツを分離して管理する事を容易にします。 + これは、プログラマーとテンプレートデザイナーの役割が異なり、 + これらの役割を違う人間が受け持っている場合に最適だと言えます。 + + + + 例えば、新聞記事を表示するwebページを作成しているとします。 + + + + 記事の $headline (見出し)、$tagline + (キャッチフレーズ)、$author (著者) および + $body (本文) が中身を構成する要素となります。 + ここには、それをどのように表示するかという情報は含まれません。 + これらはアプリケーションによって Smarty に + 渡されます。 + + + + テンプレートデザイナーはこのテンプレートを編集し、 + HTML タグや テンプレートタグ + を使用して、これらの 変数 + と要素 (テーブル、div、背景色、フォントサイズ、スタイルシート、svg など) + の体裁を調整します。 + + + + ある日、プログラマーが (アプリケーションロジックを変更したなどの理由で) + 記事の内容を取得する手段を変更する必要が出てきたとします。 + この変更はテンプレートデザイナーに影響がないため、 + 記事には全く同じ内容のテンプレートが適用できるでしょう。 + + + + 同様に、もしテンプレートデザイナーがテンプレートを完全に作り直したい場合でも、 + アプリケーションロジックを変更する必要がありません。 + + + + したがって、プログラマーはテンプレートを作り直す事なくアプリケーションロジックを変更する事ができ、 + テンプレートデザイナーはアプリケーションロジックを壊す事なくテンプレートを変更できます。 + + + + + Smarty の設計の目標の一つとして、 + ビジネスロジックとプレゼンテーションロジックの分離があります。 + + + + + これは、プレゼンテーションのためだけという条件の下で + テンプレートにロジックを含める事が可能であるという事です。 + 他のテンプレートを include + したり、テーブル行の色を + 変更 したり、変数を + 大文字 にしたり、データの配列を + ループ させたり、それを + 表示 + したりといったことが、プレゼンテーションロジックの例になります。 + + + これは、Smarty がビジネスロジックとプレゼンテーションロジックの分離を + 強制している訳ではない事を意味しています。 + Smarty はテンプレート内に置かれたものがビジネスロジックなのか何なのか全くわかりません。 + + + また、テンプレートにロジックを 置きたくない + ならば、テキストと変数のみでコンテンツを作り上げることも可能です。 + + + + + Smarty のユニークな特徴の一つは、テンプレートをコンパイルすることです。 + つまり、Smarty がテンプレートファイルを読み込み、 + それをもとにして PHP スクリプトを作成するということです。 + 一度作成してしまえば、その後はコンパイルされた PHP スクリプトが実行されるので、 + 各リクエスト時にテンプレートファイルのパースによるオーバーヘッドがありません。 + さらに各テンプレートは、 + eAccelerator、 + ionCube、 + mmCache + あるいは Zend Accelerator + のような PHP コンパイラやキャッシュソリューションを最大限に活用することができます。 + + + Smarty の特徴 + + + + + 非常に高速 + + + + + 下仕事は PHP パーサが行うので能率的 + + + + + コンパイルは一度だけ行われるので、テンプレートのパースによるオーバーヘッドが無い + + + + + 再コンパイル + は変更があったテンプレートファイルのみで行うのでスマート + + + + + 簡単に独自の 関数 + や 変数の修飾子 + を作成できるので、テンプレート言語を強力に拡張することが可能 + + + + + テンプレートの + {デリミタ} + タグの記法を変更し、 + {$foo}{{$foo}}、 + <!--{$foo}--> などを使用することが可能 + + + + + + {if}..{elseif}..{else}..{/if} + 構文は PHP パーサが処理するので、{if...} + の条件式にはシンプルなものから複雑なものまで自由に指定可能 + + + + + + sectionsif's + などは無制限にネスト可能 + + + + + テンプレートファイル内に + PHP コードを埋め込む + ことも可能。しかし、エンジン自体が + カスタマイズ できるので、 + これはおそらく不要 (そして非推奨)。 + + + + + 組み込みで キャッシュ機能 をサポート + + + + + 任意の テンプレート ソース + + + + + カスタム キャッシュハンドラ + 関数 + + + + + プラグイン 機構 + + + + + + + + + + + インストール + + + 必要条件 + + Smarty は、PHP 4.0.6 以降が動作しているウェブサーバを必要とします。 + + + + + 基本的なインストール + + + Smarty のライブラリファイルを、ディストリビューションの + /libs/ サブディレクトリにインストールしてください。 + これらの .php を編集してはいけません。 + これらはすべてのアプリケーションで共有するものであり、 + Smarty を新しいバージョンにアップグレードする際にのみ更新します。 + + 以下の例で、Smarty の tarball の展開先は次のようになります。 + + *nix の場合は + /usr/local/lib/Smarty-v.e.r/ + + Windows 環境の場合は + c:\webroot\libs\Smarty-v.e.r\ + + + + + + 必要な Smarty ライブラリファイル群 + + + + + + + Smarty は、SMARTY_DIR + という名前の PHP の 定数 + を使用します。これは、Smarty の libs/ ディレクトリへの + 絶対パス を表します。 + 基本的にあなたのアプリケーションが Smarty.class.php + ファイルを見つける事が出来るなら + SMARTY_DIR + を定義する必要はありません。Smarty は自分でそれを考えます。 + したがって、もし Smarty.class.php が + include_path + にないか、あなたのアプリケーションにてそれらへの絶対パスが指定されていないなら、 + 手動で SMARTY_DIR を定義する必要があります。 + SMARTY_DIR は、 + 最後にスラッシュ / を含めなければなりません。 + + + + + + 次の例では、PHP スクリプト内での Smarty インスタンスの作成方法を示します。 + + + +]]> + + + + + 上のスクリプトを実行してみてください。 + Smarty.class.php ファイルが見つからないというエラーが出た場合は、 + 以下のいずれかを行う必要があります。 + + + + 手動で SMARTY_DIR 定数を定義する + + +]]> + + + + + ライブラリファイルの絶対パスを指定する + + +]]> + + + + + <filename>php.ini</filename> ファイルにライブラリへのパスを追加する + + + + + + + PHP スクリプト内での <literal><ulink url="&url.e-accel;">ini_set()</ulink></literal> + によるインクルードパスの追加 + + +]]> + + + + + これでライブラリファイルは正常に設置できたので、 + 今度はあなたのアプリケーション内に Smarty 用のディレクトリを セットアップしましょう。 + + + + + Smarty は、デフォルトで + templates/、 + templates_c/configs/ および cache/ + と名づけられた4つのディレクトリが必要です。 + + + これらの名前は、それぞれ + Smarty クラスのプロパティ + + $template_dir、 + + $compile_dir、 + + $config_dir および + + $cache_dir で定義することができます。 + + + + Smarty を使用する各アプリケーションにおいて、 + これらのディレクトリを個別に設置する事を強く推奨します。 + + + + + インストール例として、ゲストブックアプリケーションの + Smarty 環境をセットアップしてみます。 + 私達はディレクトリの命名規約の目的についてのみ取り上げました。 + 例のアプリケーション名を guestbook/ + からあなたのアプリケーション名に置き換えれば、同様の環境を使用できます。 + + + + + ファイル構造 + + + + + + + あなたは web サーバのドキュメントルートの位置を知っている必要があります。 + 例ではドキュメントルートは /web/www.example.com/guestbook/htdocs/ + とします。Smarty ディレクトリは Smarty ライブラリによってのみアクセスされ、 + web ブラウザから直接アクセスされる事はありません。 + したがってセキュリティの心配を避けるために、 + これらのディレクトリをドキュメントルートの 外部 + に配置する事を推奨します (ただし必須ではありません)。 + + + + ドキュメントルート下には最低1つのファイルが必要であり、 + それは web ブラウザによってアクセスされるスクリプトです。 + この例ではドキュメントルート /htdocs/ + の下にサブディレクトリを作成し、その中に index.php + を配置します。 + + + + + Smarty は + + $compile_dir と + + $cache_dir + (templates_c/ と + cache/) に + 書き込み権限 でアクセスする必要があるので、 + web サーバのユーザがこれらに書き込める必要があります + (windows ユーザはこの話を無視してください)。 + + 通常は、このユーザは nobody でグループは + nobody です。OS X ユーザの場合は、デフォルトのユーザは + www でグループは www です。 + もし Apache を使用しているなら、httpd.conf + ファイルを見ればユーザ名とグループ名がわかります。 + + + + パーミッションおよびディレクトリへの書き込み権限の付与 + + + + + + + 注意 + + chmod 770 は強固なセキュリティです。 + これは、ユーザ nobody とグループ nobody + のみにディレクトリのリード/ライトアクセスを許可します。 + もし誰にでもリードアクセスを可能にしたい場合 + (大抵はあなた自身がファイルを見るための利便性から) + は、代わりに 775 を使う事が出来ます。 + + + + + 次に、Smarty が表示するファイル index.tpl + を作成する必要があります。これは、 + $template_dir の中に配置しなければなりません。 + + + + /web/www.example.com/guestbook/templates/index.tpl + + + + + + + テクニカルノート + + {* Smarty *} はテンプレートの + コメント です。 + これは必須ではありませんが、全てのテンプレートファイルのはじめに + コメントを書くのは良い習慣です。 + これは、ファイルの拡張子に関わらずファイルを認識する事を簡単にします。 + 例えば、テキストエディタはファイルを認識して特有のシンタックスハイライトを有効にするでしょう。 + + + + + では、index.php を編集しましょう。 + Smarty のインスタンスを作成し、テンプレート変数を割り当て + (assign())、 + index.tpl ファイルを表示 + (display()) + します。 + + + + /web/www.example.com/docs/guestbook/index.php の編集 + +template_dir = '/web/www.example.com/guestbook/templates/'; +$smarty->compile_dir = '/web/www.example.com/guestbook/templates_c/'; +$smarty->config_dir = '/web/www.example.com/guestbook/configs/'; +$smarty->cache_dir = '/web/www.example.com/guestbook/cache/'; + +$smarty->assign('name','Ned'); + +//** 次の行のコメントをはずすと、デバッギングコンソールを表示します +//$smarty->debugging = true; + +$smarty->display('index.tpl'); + +?> +]]> + + + + + 注意 + + この例では、Smartyのディレクトリすべてを絶対パスで設定しています。 + もし /web/www.example.com/guestbook/ + が PHP の include_path にあるのなら、これらの設定は必要ありません。 + けれどもこれらを絶対パスで指定する方が より効率的で、(経験上)エラーが少なくなります。 + そうすれば、Smarty はあなたが意図したディレクトリからファイルを確実に取得できます。 + + + + + では、web ブラウザから index.php ファイルを読み込んでみましょう。 + "こんにちは、Ned。ようこそ Smarty へ!" と表示されるはずです。 + + + これで Smarty の基本的なセットアップは完了しました! + + + + + + + + + 拡張セットアップ + + + これは、基本的なインストール + の続きです。まず先にこちらから読んで下さい! + + + Smarty をより柔軟にするセットアップ方法は、 + クラスを拡張 + してあなたの Smarty の環境を初期化する事です。 + ディレクトリパスの設定を同じ変数に何度も割り当てる代わりに、一箇所でそれらを行う事が出来ます。 + + + 新しいディレクトリ/php/includes/guestbook/ + を作成し、setup.php という新しいファイルを作成しましょう。 + この例の環境では /php/includes + が include_path です。 + 例と同じようにするか、あるいは絶対パスを使用して下さい。 + + + + /php/includes/guestbook/setup.php + +Smarty(); + + $this->template_dir = '/web/www.example.com/guestbook/templates/'; + $this->compile_dir = '/web/www.example.com/guestbook/templates_c/'; + $this->config_dir = '/web/www.example.com/guestbook/configs/'; + $this->cache_dir = '/web/www.example.com/guestbook/cache/'; + + $this->caching = true; + $this->assign('app_name', 'Guest Book'); + } + +} +?> +]]> + + + + + では、index.php ファイルを修正し、 + setup.php を使うようにしてみましょう。 + + + + /web/www.example.com/guestbook/htdocs/index.php + +assign('name','Ned'); + +$smarty->display('index.tpl'); +?> +]]> + + + + + このように、アプリケーションのために全てを自動的に初期化する + Smarty_GuestBook() + クラスを使う事で、Smarty のインスタンスをとても簡単に作成することができました。 + + + + + + + + diff --git a/docs/ja/language-defs.ent b/docs/ja/language-defs.ent new file mode 100644 index 00000000..90323ec6 --- /dev/null +++ b/docs/ja/language-defs.ent @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/ja/language-snippets.ent b/docs/ja/language-snippets.ent new file mode 100644 index 00000000..9d4ece7b --- /dev/null +++ b/docs/ja/language-snippets.ent @@ -0,0 +1,56 @@ + + + + + + + テクニカルノート + + merge パラメータは配列のキーを尊重するので、 + インデックスが数値である2つの配列をマージする場合、 + それらはお互い上書きされるか不連続なキーの配列になるかもしれません。 + これは、数値のキーを全て削除した後に再びキーに番号付けを行う、PHP + の array_merge() + 関数とは違っています。 + +'> + + + 任意の第3パラメータとして $compile_id + を渡すことができます。 + 異なる言語でコンパイルされた別々のテンプレートが存在するような、 + 同じテンプレートの異なるバージョンをコンパイルしたい場合に利用します。 + $compile_id の別の利用法としては、複数の + $template_dir + を持っているが + $compile_dir + は1つしかない場合などがあります。各 + $template_dir + に別々の $compile_id をセットしなければ、 + 同名のテンプレートはお互いに上書きされてしまいます。 + この関数をコールする度に compile_id を渡す代わりに、一度 + + $compile_id 変数をセットすることもできます。 +'> + + + PHP 関数のコールバック function + は、次のいずれかとなります。 + + + 関数名を含んだ文字列 + + + + array(&$object, $method) 形式の配列 + (&$object はオブジェクトの参照で、 + $method はメソッド名を含む文字列) + + + + array($class, $method) という形式の配列 + ($class はクラス名であり、 + $method はクラスのメソッド) + + + '> diff --git a/docs/ja/livedocs.ent b/docs/ja/livedocs.ent new file mode 100644 index 00000000..6701c2ef --- /dev/null +++ b/docs/ja/livedocs.ent @@ -0,0 +1,8 @@ + + + + +'> +'> + + diff --git a/docs/ja/make_chm_index.html b/docs/ja/make_chm_index.html new file mode 100644 index 00000000..23521cb9 --- /dev/null +++ b/docs/ja/make_chm_index.html @@ -0,0 +1,38 @@ + + + + + + Smarty マニュアル + + + + + + + +

      + +

      +
      +

      Smarty マニュアル

      +
      Monte Ohrt
      +
      Andrei Zmievski
      +
      +

      このファイルは [GENTIME] に作成されました
      +最新版は http://smarty.php.net/download-docs.php +で取得してください。

      + +
      + +
      + diff --git a/docs/ja/preface.xml b/docs/ja/preface.xml new file mode 100644 index 00000000..41190861 --- /dev/null +++ b/docs/ja/preface.xml @@ -0,0 +1,94 @@ + + + + + + 序文 + + "PHP スクリプトをレイアウトから分離させるにはどうすればいいのですか?" + これは間違いなく、PHPメーリングリストでよく尋ねられた質問のうちの1つでしょう。 + PHP は "HTML 埋め込み型スクリプト言語" と言われていますが、 + PHP と HTML を混ぜ合わせたプロジェクトを2,3書いた後で、 + フォームとコンテンツの分離は良いものであるというアイディアを考え出しました。 + その上、多くの会社においてのレイアウトデザイナーとプログラマの役割は分担されています。 + このような理由から、テンプレートソリューションの模索が始まりました。 + + + 例えば私たちの会社において、アプリケーション開発は次の順序で行われています。 + アプリケーションの要求仕様書を作成した後、インタフェースデザイナーは + ユーザーインタフェースのモデルを作成しプログラマに渡します。 + プログラマーは PHP によってビジネスロジックを実装し、 + ユーザーインタフェースのモデルを使ってテンプレートの骨組みを作成します。 + その後、プロジェクトはとても素晴らしいテンプレートをもたらしてくれる + HTML テンプレートデザイナー/レイアウトデザイナーに手渡されます。 + このようにプロジェクトはプログラマー/デザイナーの間で + あちこちに何度も行き来する可能性があります。 + プログラマーは HTML を何も扱いたくないし、HTML デザイナーに PHP + コードの箇所をいじられたくないので、有用なテンプレートの土台を持つ事は重要です。 + デザイナーは設定ファイルやダイナミックブロックのサポートや + 他のインタフェースの公開が必要ですが、彼らは複雑な PHP 言語を扱いたくありません。 + + + 今日、PHP で利用可能な多くのテンプレートソリューションを見ると、 + それらの大半は制限付きのダイナミックブロックの機能性や、 + テンプレート内に変数を展開するための基本的な方法を提供しています。 + しかし、我々のニーズは僅かにそれを上回るものを必要としました。 + プログラマーは HTML レイアウトを全く扱いたくないのですが、 + これはほとんど避けられませんでした。例えば、 + デザイナーが背景色をダイナミックブロックによって変更したい場合、 + プログラマーはそれを前もって考慮しておく必要がありました。 + また、我々はテンプレートに変数を割り当てるための環境設定用のファイルを扱える + デザイナーを必要としました。話は続きます。 + + + 我々は 1999 年末からテンプレートエンジンの仕様を書き始めました。 + 仕様を書き終えた後、願わくば PHP に統合されるようにと C + で書かれたテンプレートエンジンに取り組み始めました。 + その時、我々は複雑な技術的障害に直面したばかりでなく、 + 具体的にテンプレートエンジンですべき事とすべきではない事についての激しい討論をしました。 + そしてその経験から、テンプレートエンジンは PHP のクラスとして記述されるべきであると決定したのは、 + 誰もが使用するのに適していると考えたからです。我々は PHP のクラスとしてのエンジンを書き、 + そして SmartTemplate が生まれました + (注: このクラスは一般に公開されませんでした)。これは、 + 規則的な変数置換・他のテンプレートのインクルード・設定ファイルによる統一・PHP + スクリプトの埋め込み・制限された if ステートメントの機能性と多重ネスト可能なダイナミックブロック等、 + 我々が必要とした全てを持ち合わせたクラスでした。 + ですが、むしろ全てが正規表現によって処理されるというコードは私たちには理解できませんでした。 + 各呼び出しごとに全てのパースと正規表現による作業を行う必要があったので、 + 大規模なアプリケーションでは動作が著しく遅かったのです。 + プログラマの観点からの最も大きな問題は、テンプレート及びダイナミックブロックをセットアップ・ + 処理するために PHP スクリプトにおいての必要な作業でした。どうすれば、 + これをより容易に行えるのでしょうか? + + + そうして、最終的に Smarty となったものの展望がたちました。 + 私たちはテンプレートのパースによるオーバーヘッドを持たない + PHP コードがどれくらい高速に動作するかを知っています。 + また、我々は PHP スクリプトが一般のデザイナーにとって + こまごまとした高圧的なものに見える可能性がある事を知っています。 + そしてそれは PHP よりもはるかにシンプルなテンプレート言語によって隠蔽されるかもしれません。 + もし我々がこの2つの強さを兼ね備えたらどうなるでしょう? + このようにして "Smarty" は生まれたのです…… (^o^) + + + + diff --git a/docs/ja/programmers/advanced-features.xml b/docs/ja/programmers/advanced-features.xml new file mode 100644 index 00000000..ca72ce6d --- /dev/null +++ b/docs/ja/programmers/advanced-features.xml @@ -0,0 +1,37 @@ + + + + + + 隲。?。陟托スオ隶匁コッ? +&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/ja/programmers/advanced-features/advanced-features-objects.xml b/docs/ja/programmers/advanced-features/advanced-features-objects.xml new file mode 100644 index 00000000..6a273696 --- /dev/null +++ b/docs/ja/programmers/advanced-features/advanced-features-objects.xml @@ -0,0 +1,139 @@ + + + + + + オブジェクト + + Smarty は、テンプレートから PHP の + オブジェクト + へのアクセスを許可しています。オブジェクトにアクセスするには2つの方法があります。 + + + + + 1つはテンプレートに オブジェクトを登録 + し、カスタム関数 + と似た構文を用いてアクセスする方法です。 + + + もう1つの方法は assign() + を用いてテンプレートにオブジェクトを割り当て、 + 他の割り当てられた変数のようにオブジェクトにアクセスする方法です。 + + + + + 1つめのメソッドは素晴らしいテンプレート構文を持っています。 + それはとてもセキュアで、 登録されたオブジェクトはいくつかのメソッドやプロパティを制限する事が出来ます。 + しかし繰り返しの処理やオブジェクトの配列への割り当て等の事が出来ません。 + あなたのニーズによって選択するメソッドは決まりますが、 + テンプレート構文を最小限守るには必ず1つめのメソッドを使用して下さい。 + + + $security + が有効の時、('_' から始まる) プライベートメソッドや関数にはアクセス出来ません。 + もしメソッドとプロパティで同じ名前が存在する場合、メソッドが優先されます。 + + + 第3パラメータにメソッドやパラメータをリストした配列を与える事でアクセスを制限できます。 + + + デフォルトではテンプレートからオブジェクトに渡されたパラメータは + カスタム関数 + によって同じ方法で渡されます。 連想配列は第1パラメータとして渡され、 + smarty オブジェクトは第2パラメータとして渡されます。 + もし古いオブジェクトパラメータの渡し方のように各引数を一度に渡したいなら、第4パラメータに + &false; を指定します。 + + + 任意の第5パラメータは + format が &true; の時だけ影響し、 + ブロックとして扱われるべきオブジェクトのメソッドのリストを格納します。 + これはこれらのメソッドがテンプレート内に終了タグ + ({foobar->meth2}...{/foobar->meth2}) + を持つことを意味し、メソッドへのパラメータは + + block-function-plugins + へのパラメータと同じ構文となります。つまり、4つのパラメータ + $params、 + $content、 + &$smarty および + &$repeat を持ち、ブロック関数プラグインのように振る舞います。 + + + 登録または割り当てられたオブジェクトを使用する + +register_object('foobar',$myobj); + +// いくらかのメソッド又はプロパティを制限したい場合、それらを配列の値としてリストします +$smarty->register_object('foobar',$myobj,array('meth1','meth2','prop1')); + + // 古いオブジェクトパラメータの形式を使いたい場合、booleanのfalseを渡します。 +$smarty->register_object('foobar',$myobj,null,false); + +// オブジェクトを割り当てる事が可能です(できれば参照渡しで) +$smarty->assign_by_ref('myobj', $myobj); + +$smarty->display('index.tpl'); +?> +]]> + + + そして index.tpl + でオブジェクトにアクセスするには以下のようにします。 + + +meth1 p1='foo' p2=$bar} + +{* outputに割り当てる事が可能 *} +{foobar->meth1 p1='foo' p2=$bar assign='output'} +the output was {$output} + +{* 割り当てたオブジェクトにアクセスします *} +{$myobj->meth1('foo',$bar)} +]]> + + + + register_object() + および + assign() + も参照してください。 + + + diff --git a/docs/ja/programmers/advanced-features/advanced-features-outputfilters.xml b/docs/ja/programmers/advanced-features/advanced-features-outputfilters.xml new file mode 100644 index 00000000..a80f22c4 --- /dev/null +++ b/docs/ja/programmers/advanced-features/advanced-features-outputfilters.xml @@ -0,0 +1,81 @@ + + + + + + アウトプットフィルタ + + テンプレートが + display() 又は + fetch() + を経由して呼び出された時、出力は1つ又は複数のアウトプットフィルタを通して送られます。 + これは + ポストフィルタ とは異なります。 + コンパイルされたテンプレートがポストフィルタによって、 + テンプレートがディスクに保存される前に処理されるのに対し、 + アウトプットフィルタはテンプレートが実行される時にその出力を処理します。 + + + + アウトプットフィルタは、 + 登録する + か、あるいは load_filter() + 関数や + $autoload_filters 変数によって + プラグインディレクトリ から読み込みます。 + Smarty は内部でユーザ定義関数の第1パラメータにコンパイルされたテンプレートのソースコードを渡すので、 + 関数内で処理を行った後にその結果のソースコードを戻り値として返すようにします。 + + + アウトプットフィルタを使用する + +register_outputfilter('protect_email'); +$smarty->display('index.tpl'); + +// これによりテンプレート出力に含まれるいくつかのemailアドレスは +// スパムボットからシンプルな保護を受けるでしょう +?> +]]> + + + + register_outpurfilter()、 + load_filter()、 + $autoload_filters、 + ポストフィルタ および + $plugins_dir + も参照してください。 + + + diff --git a/docs/ja/programmers/advanced-features/advanced-features-postfilters.xml b/docs/ja/programmers/advanced-features/advanced-features-postfilters.xml new file mode 100644 index 00000000..e573e844 --- /dev/null +++ b/docs/ja/programmers/advanced-features/advanced-features-postfilters.xml @@ -0,0 +1,74 @@ + + + + + + ポストフィルタ + + ポストフィルタは、テンプレートが + コンパイルされた後に + 実行されるPHPユーザ定義関数です。ポストフィルタは、 + 登録する + か、あるいは load_filter() + 関数や + $autoload_filters 変数によって + プラグインディレクトリ から読み込みます。 + Smarty は内部でユーザ定義関数の第1パラメータにコンパイルされたテンプレートのソースコードを渡すので、 + 関数内で処理を行った後にその結果のソースコードを戻り値として返すようにします。 + + + ポストフィルタを使用する + +\n\"; ?>\n".$tpl_source; +} + +// ポストフィルタを登録します +$smarty->register_postfilter('add_header_comment'); +$smarty->display('index.tpl'); +?> +]]> + + + 上のポストフィルタは、このようなコンパイル済みテンプレート + index.tpl を作成します。 + + + +{* 以下、残りのコンテンツ *} +]]> + + + + register_postfilter()、 + プリフィルタ + および + load_filter() + も参照してください。 + + + diff --git a/docs/ja/programmers/advanced-features/advanced-features-prefilters.xml b/docs/ja/programmers/advanced-features/advanced-features-prefilters.xml new file mode 100644 index 00000000..19770eb2 --- /dev/null +++ b/docs/ja/programmers/advanced-features/advanced-features-prefilters.xml @@ -0,0 +1,73 @@ + + + + + + プリフィルタ + + プリフィルタは、テンプレートがコンパイルされる前に + 実行されるPHPユーザ定義関数です。テンプレートに含まれた不必要なコメントを除いたり、 + 第三者にテンプレートの更新を任せている時に + テンプレート内にどのようなものが含まれているかを監視する等といった前処理を行います。 + + + プリフィルタは、 登録する + か、あるいは load_filter() + 関数や + $autoload_filters 変数によって + プラグインディレクトリ から読み込みます。 + + + Smartyは内部でユーザ定義関数の第1パラメータにテンプレートのソースコードを渡すので、 + 関数内で処理を行った後にその結果のソースコードを戻り値として返すようにします。 + + + プリフィルタを使用する + + これはテンプレートソース内の全てのコメントを取り除いてくれるでしょう。 + + +/U",'',$tpl_source); +} + +// プリフィルタを登録します +$smarty->register_prefilter('remove_dw_comments'); +$smarty->display('index.tpl'); +?> +]]> + + + + + register_prefilter()、 + ポストフィルタ + および + load_filter() + も参照してください。 + + + diff --git a/docs/ja/programmers/advanced-features/section-template-cache-handler-func.xml b/docs/ja/programmers/advanced-features/section-template-cache-handler-func.xml new file mode 100644 index 00000000..1691188f --- /dev/null +++ b/docs/ja/programmers/advanced-features/section-template-cache-handler-func.xml @@ -0,0 +1,184 @@ + + + + + + キャッシュハンドラ関数 + + デフォルトのファイルベースのキャッシュメカニズムの代替として、 + キャッシュファイルの読み書きや破棄を直接行うキャッシュハンドラ関数を指定できます。 + + + まず、アプリケーション内にSmartyがキャッシュハンドラとして使用するための関数を定義します。 + そしてその関数名を + $cache_handler_func + クラス変数に指定します。Smarty は、これを使用してキャッシュされたデータを処理します。 + + + + + 第1パラメータはキャッシュの動作を表す文字列で、これは + readwrite および + clear のいずれかとなります。 + + + + 第2パラメータは Smarty オブジェクトです。 + + + + 第3パラメータはキャッシュの内容です。 + write の場合はキャッシュされたコンテンツが渡され、 + read の場合は参照を受け取ってそこにキャッシュされたコンテンツを書き込み、 + clear の場合はこのパラメータの値を使用しないのでダミーの変数が渡されます。 + + + + 第4パラメータはテンプレートファイル名です('read'又は'write'の場合に必要)。 + + + + 任意の第5パラメータは $cache_id です。 + + + + 任意の第6パラメータは + $compile_id です。 + + + + 最後の第7パラメータ $exp_time + は Smarty-2.6.0 で追加されました。 + + + + + + キャッシュソースとしてMySQLを使用する例 + +cache_handler_func = 'mysql_cache_handler'; + +$smarty->display('index.tpl'); + + +MySQLデータベースのスキーマ定義 + +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) +{ + // ここでDBのホスト名・ユーザ名・パスワードを指定します + $db_host = 'localhost'; + $db_user = 'myuser'; + $db_pass = 'mypass'; + $db_name = 'SMARTY_CACHE'; + $use_gzip = false; + + // ユニークなキャッシュ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': + // キャッシュをデータベースから読み込みます + $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_content = gzuncompress($row['CacheContents']); + } else { + $cache_content = $row['CacheContents']; + } + $return = $results; + break; + case 'write': + // キャッシュをデータベースに保存します + + if($use_gzip && function_exists("gzcompress")) { + // 記憶効率のために内容を圧縮します + $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': + // キャッシュ情報を破棄します + if(empty($cache_id) && empty($compile_id) && empty($tpl_file)) { + // 全てのキャッシュを破棄します + $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: + // エラー・未知の動作 + $smarty_obj->_trigger_error_msg("cache_handler: unknown action \"$action\""); + $return = false; + break; + } + mysql_close($link); + return $return; + +} + +?> +]]> + + + + diff --git a/docs/ja/programmers/advanced-features/template-resources.xml b/docs/ja/programmers/advanced-features/template-resources.xml new file mode 100644 index 00000000..6c1e5c54 --- /dev/null +++ b/docs/ja/programmers/advanced-features/template-resources.xml @@ -0,0 +1,258 @@ + + + + + + テンプレートリソース + + テンプレートは様々なリソースから呼び出して使用できます。テンプレートを + display()、 + fetch() + したり別のテンプレートからインクルードしたりする際には、 + リソースの種類に続けて適切なパスとテンプレート名を指定します。 + リソースを明示的に指定しない場合は + $default_resource_type の値であるとみなします。 + + + + $template_dir からのテンプレート + + + $template_dir からのテンプレートを使用する場合は、 + テンプレートリソースの指定は必要ありません。しかし、一貫性を保つために + file: リソースを使用してもかまいません。使用したいテンプレートへのパスを、 + + $template_dir + のルートディレクトリからの相対パスで指定します。 + + + $template_dir のテンプレートを使用する + +display('index.tpl'); +$smarty->display('admin/menu.tpl'); +$smarty->display('file:admin/menu.tpl'); // 上と同じ +?> +]]> + +Smarty のテンプレート + + + + + + + 任意のディレクトリからのテンプレート + + + $template_dir + の外に置かれたテンプレートを使うには、リソースの種類 + file: を指定しなければなりません。 + その後にテンプレートへの絶対パスを続けます。 + + + 任意のディレクトリからのテンプレートを使用する + +display('file:/export/templates/index.tpl'); +$smarty->display('file:/path/to/my/templates/menu.tpl'); +?> +]]> + + + Smarty のテンプレート + + + + + + + + Windows のファイルパス + + 通常、Windows 環境の場合はファイルパスの先頭にドライブレター (C:) + が含まれます。ネームスペースの衝突を回避して期待通りの結果を得るために、 + 必ず file: を使用して下さい。 + + + Windows ファイルパスからテンプレートを使用する + +display('file:C:/export/templates/index.tpl'); +$smarty->display('file:F:/path/to/my/templates/menu.tpl'); +?> +]]> + + + Smarty テンプレート + + + + + + + + + + その他のリソース内のテンプレート + + データベース・ソケット・LDAP 等の + PHPによってアクセス可能なリソースからテンプレートを取得する事ができます。 + そのためにはリソースプラグイン関数を記述し、それを登録する必要があります。 + + + + リソースプラグイン関数についての詳細な情報は + リソースプラグイン + の項を参照してください。 + + + + + 元から存在する file: リソースは上書きできないことに注意しましょう。 + しかし、ファイルシステム上のテンプレートを別の方法で取得するテンプレートを作成することはできます。 + それを別のリソース名で登録すればよいのです。 + + + + カスタムリソースを使用する + +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) +{ + // $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) +{ + // 全てのテンプレートがセキュアであると仮定します + return true; +} + +function db_get_trusted($tpl_name, &$smarty_obj) +{ + // テンプレートから使用しません +} + +// テンプレートリソース名"db"を登録します +$smarty->register_resource("db", array("db_get_template", + "db_get_timestamp", + "db_get_secure", + "db_get_trusted")); + +// phpスクリプトからテンプレートリソースを使用します +$smarty->display("db:index.tpl"); +?> +]]> + + + Smarty テンプレート + + + + + + + + + デフォルトのテンプレートハンドラ関数 + + テンプレートリソースからテンプレートの取得に失敗した際に、 + テンプレートのコンテンツを取り戻すために呼び出されるユーザ定義関数を指定します。 + この関数の使用方法の1つとして、その場限りのテンプレートを作成する処理を行います。 + + + デフォルトのテンプレートハンドラ関数を使用する + +$smarty_obj->template_dir . DIRECTORY_SEPARATOR . $resource_name, 'contents'=>$template_source ), $smarty_obj ); + return true; + } + } else { + // ファイルではない場合 + return false; + } +} + +// デフォルトのハンドラをセット +$smarty->default_template_handler_func = 'make_template'; +?> +]]> + + + + + + diff --git a/docs/ja/programmers/api-functions.xml b/docs/ja/programmers/api-functions.xml new file mode 100644 index 00000000..af3055a5 --- /dev/null +++ b/docs/ja/programmers/api-functions.xml @@ -0,0 +1,67 @@ + + + + + + Smarty 繧ッ繝ゥ繧ケ繝。繧ス繝?ラ +&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; + + + diff --git a/docs/ja/programmers/api-functions/api-append-by-ref.xml b/docs/ja/programmers/api-functions/api-append-by-ref.xml new file mode 100644 index 00000000..885ef9cf --- /dev/null +++ b/docs/ja/programmers/api-functions/api-append-by-ref.xml @@ -0,0 +1,72 @@ + + + + + + + append_by_ref() + 参照として値を追加します。 + + + 説明 + + voidappend_by_ref + stringvarname + mixedvar + boolmerge + + + これを使用して、テンプレートに参照として値を + 追加 します。 + 値を参照で追加すると、元の値が変更されると + 追加した値も変更されます。 + オブジェクト の場合は、 + append_by_ref() を使用すると + 追加されたオブジェクトをメモリ内でコピーすることを避けられます。 + 詳細は、PHP マニュアルのリファレンスの説明を参照して下さい。 + 任意の第3パラメータに &true; が渡された場合は、 + 値は現在のテンプレート配列に追加される代わりにマージされます。 + + ¬e.parameter.merge; + + append_by_ref + +append_by_ref('Name', $myname); +$smarty->append_by_ref('Address', $address); +?> +]]> + + + + append()、 + assign() + および + get_template_vars() + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-append.xml b/docs/ja/programmers/api-functions/api-append.xml new file mode 100644 index 00000000..8db4754c --- /dev/null +++ b/docs/ja/programmers/api-functions/api-append.xml @@ -0,0 +1,80 @@ + + + + + + + append() + 割り当てられたテンプレート配列に要素を追加します。 + + + 説明 + + voidappend + mixedvar + + + voidappend + stringvarname + mixedvar + boolmerge + + + もし文字列を追加する場合は、 配列の値としてコンバートされた後に追加されます。 + 配列名/値のペアを明示的に指定するか、それらが格納された連想配列を指定します。 + 配列ではないテンプレート変数に対して追加した場合、 + その変数を配列に変換した後で追加されます。 任意の第3パラメータに &true; + が渡された場合は、値は現在のテンプレート配列に追加される代わりにマージされます。 + + ¬e.parameter.merge; + + append + +append('foo', 'Fred'); +// これ以降、foo をテンプレート内で配列として使用することができます +$smarty->append('foo', 'Albert'); + +$array = array(1 => 'one', 2 => 'two'); +$smarty->append('X', $array); +$array2 = array(3 => 'three', 4 => 'four'); +// 配列 X に2番目の要素を追加します +$smarty->append('X', $array2); + +// 連想配列を渡します +$smarty->append(array('city' => 'Lincoln', 'state' => 'Nebraska')); +?> +]]> + + + + append_by_ref()、 + assign() + および + get_template_vars() + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-assign-by-ref.xml b/docs/ja/programmers/api-functions/api-assign-by-ref.xml new file mode 100644 index 00000000..4902df0a --- /dev/null +++ b/docs/ja/programmers/api-functions/api-assign-by-ref.xml @@ -0,0 +1,77 @@ + + + + + + + assign_by_ref() + 参照として値を割り当てます。 + + + 説明 + + voidassign_by_ref + stringvarname + mixedvar + + + これを使用して、コピーを作ることなく参照として + テンプレートに変数を 割り当て + ます。詳細は、PHP マニュアルのリファレンスの説明を参照して下さい。 + + + テクニカルノート + + これは参照によってテンプレートに変数を追加するのに使用されます。 + 参照による値が追加された場合は、その値が変更されると追加された元の値も変更されます。 + objects + についても、assign_by_ref() + は追加されたオブジェクトをメモリ内にコピーする事を避けます。詳細は、 + PHP マニュアルのリファレンスの説明を参照して下さい。 + + + + assign_by_ref() + +assign_by_ref('Name', $myname); +$smarty->assign_by_ref('Address', $address); +?> +]]> + + + + assign()、 + clear_all_assign()、 + append()、 + {assign} + および + get_template_vars() + も参照してください。 + + + + + + diff --git a/docs/ja/programmers/api-functions/api-assign.xml b/docs/ja/programmers/api-functions/api-assign.xml new file mode 100644 index 00000000..a1f55be3 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-assign.xml @@ -0,0 +1,100 @@ + + + + + + + assign() + テンプレートに値を割り当てます。 + + + 説明 + + voidassign + mixedvar + + + voidassign + stringvarname + mixedvar + + + テンプレート変数名/値のペアを明示的に指定するか、それらが格納された連想配列を指定します。 + + + assign() + +assign('Name', 'Fred'); +$smarty->assign('Address', $address); + +// 連想配列を渡します +$smarty->assign(array('city' => 'Lincoln', 'state' => 'Nebraska')); + +// 配列を渡します +$myArray = array('no' => 10, 'label' => 'Peanuts'); +$smarty->assign('foo',$myArray); + +// データベース (例: adodb) の行を渡します +$sql = 'select id, name, email from contacts where contact ='.$id; +$smarty->assign('contact', $db->getRow($sql)); +?> +]]> + + + テンプレートの内容 + + + + + + + より複雑な配列の割り当てに関しては、 + {foreach} + および + {section} + を参照してください。 + + + + assign_by_ref()、 + get_template_vars()、 + clear_assign()、 + append() + および + {assign} + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-clear-all-assign.xml b/docs/ja/programmers/api-functions/api-clear-all-assign.xml new file mode 100644 index 00000000..81b4f1df --- /dev/null +++ b/docs/ja/programmers/api-functions/api-clear-all-assign.xml @@ -0,0 +1,68 @@ + + + + + + + clear_all_assign() + 割り当てられた全てのテンプレート変数を破棄します。 + + + 説明 + + voidclear_all_assign + + + + clear_all_assign() + +assign('Name', 'Fred'); +$smarty->assign('Address', $address); + +// 上の内容を出力します +print_r( $smarty->get_template_vars() ); + +// 割り当てられた変数を破棄します +$smarty->clear_all_assign(); + +// 何も出力しません +print_r( $smarty->get_template_vars() ); + +?> +]]> + + + + clear_assign()、 + clear_config()、 + get_template_vars()、 + assign() + および append() + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-clear-all-cache.xml b/docs/ja/programmers/api-functions/api-clear-all-cache.xml new file mode 100644 index 00000000..ae30ecdc --- /dev/null +++ b/docs/ja/programmers/api-functions/api-clear-all-cache.xml @@ -0,0 +1,61 @@ + + + + + + + clear_all_cache() + 全てのテンプレートのキャッシュをクリアします。 + + + 説明 + + voidclear_all_cache + intexpire_time + + + 任意のパラメータとして、キャッシュファイルを削除する前にそのファイルが存在しなくてはならない + 最低限の時間(秒)を与える事が出来ます。 + + + clear_all_cache + +clear_all_cache(); + +// 一時間以上経過しているファイルをすべてクリアします +$smarty->clear_all_cache(3600); +?> +]]> + + + + clear_cache()、 + is_cached() + および + キャッシュ のページも参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-clear-assign.xml b/docs/ja/programmers/api-functions/api-clear-assign.xml new file mode 100644 index 00000000..8a42631a --- /dev/null +++ b/docs/ja/programmers/api-functions/api-clear-assign.xml @@ -0,0 +1,62 @@ + + + + + + + clear_assign() + 割り当てられたテンプレート変数の値を破棄します。 + + + 説明 + + voidclear_assign + mixedvar + + +パラメータには1つの変数又は変数名を格納した配列を渡します。 + + + clear_assign() + +clear_assign('Name'); + +// 複数の変数をクリアします +$smarty->clear_assign(array('Name', 'Address', 'Zip')); +?> +]]> + + + + clear_all_assign()、 + clear_config()、 + get_template_vars()、 + assign() + および append() + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-clear-cache.xml b/docs/ja/programmers/api-functions/api-clear-cache.xml new file mode 100644 index 00000000..bc05a4d5 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-clear-cache.xml @@ -0,0 +1,86 @@ + + + + + + + clear_cache() + 指定したテンプレートのキャッシュを破棄します。 + + + Description + + voidclear_cache + stringtemplate + stringcache_id + stringcompile_id + + intexpire_time + + + + + If you have multiple caches + for a template, you can clear a specific + cache by supplying the cache_id as the second + parameter. + + + You can also pass a + $compile_id + as a third parameter. + You can group templates together + so they can be removed as a group, see the + caching section for more + information. + + + As an optional fourth parameter, you can supply a + minimum age in seconds the cache file must be before it will + get cleared. + + + + + clear_cache() + +clear_cache('index.tpl'); + +// clear the cache for a particular cache id in an multiple-cache template +$smarty->clear_cache('index.tpl', 'MY_CACHE_ID'); +?> +]]> + + + + See also + clear_all_cache() + and + caching section. + + + + + diff --git a/docs/ja/programmers/api-functions/api-clear-compiled-tpl.xml b/docs/ja/programmers/api-functions/api-clear-compiled-tpl.xml new file mode 100644 index 00000000..6725cd08 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-clear-compiled-tpl.xml @@ -0,0 +1,70 @@ + + + + + + + clear_compiled_tpl() + 指定したテンプレートのキャッシュを破棄します。 + + + 説明 + + voidclear_compiled_tpl + stringtpl_file + stringcompile_id + + intexp_time + + + 指定したテンプレートリソースをコンパイルした内容を破棄します。 + 何も指定しなかった場合は、すべてのコンパイル済みテンプレートファイルを破棄します。 + $compile_id + を渡すと、指定した + $compile_id + のテンプレートのみを破棄します。exp_time を指定すると、 + exp_time 秒以上経過しているファイルのみが破棄されます。 + デフォルトでは、経過時間にかかわらず全てのコンパイル済みテンプレートを破棄します。 + この関数は上級者のみが使用するもので、通常は不要です。 + + + clear_compiled_tpl() + +clear_compiled_tpl('index.tpl'); + +// コンパイルディレクトリの内容を全て破棄します +$smarty->clear_compiled_tpl(); +?> +]]> + + + + clear_cache() + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-clear-config.xml b/docs/ja/programmers/api-functions/api-clear-config.xml new file mode 100644 index 00000000..35dd1de0 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-clear-config.xml @@ -0,0 +1,66 @@ + + + + + + + clear_config() + 割り当てられたすべての設定ファイルの変数をクリアします。 + + + 説明 + + voidclear_config + stringvar + + + 割り当てられたすべての + 設定ファイルの変数 + をクリアします。変数名を指定すると、その変数のみをクリアします。 + + + clear_config() + +clear_config(); + +// ひとつの変数のみをクリアします +$smarty->clear_config('foobar'); +?> +]]> + + + + get_config_vars()、 + config variables、 + config files、 + {config_load}、 + config_load() + および + clear_assign() + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-config-load.xml b/docs/ja/programmers/api-functions/api-config-load.xml new file mode 100644 index 00000000..6bb7d581 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-config-load.xml @@ -0,0 +1,84 @@ + + + + + + + config_load() + 設定ファイルのデータを読み込み、テンプレートに割り当てます。 + + + 説明 + + voidconfig_load + stringfile + stringsection + + + 設定ファイル + のデータを読み込み、テンプレートに割り当てます。 + これは、テンプレート関数 + + {config_load} + とまったく同じ働きをします。 + + + テクニカルノート + + Smarty 2.4.0以降では、割り当てられたテンプレート変数は + fetch() + および display() + の実行前後を通じて保持されます。 + config_load() から読み込まれた設定ファイルの変数は、 + 常にグローバルスコープです。設定ファイルは + 高速に実行するためにコンパイルされます。その際には + + $force_compile や + + $compile_check の設定を尊重します。 + + + + config_load() + +config_load('my.conf'); + +// セクションを読み込みます +$smarty->config_load('my.conf', 'foobar'); +?> +]]> + + + + {config_load}、 + get_config_vars()、 + clear_config() + および + 設定ファイルの変数 + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-display.xml b/docs/ja/programmers/api-functions/api-display.xml new file mode 100644 index 00000000..4e27494d --- /dev/null +++ b/docs/ja/programmers/api-functions/api-display.xml @@ -0,0 +1,116 @@ + + + + + + + display() + テンプレートを表示します。 + + + 説明 + + voiddisplay + stringtemplate + stringcache_id + stringcompile_id + + + + テンプレートを表示します + (fetch() と違い出力を行います)。 + 第1パラメータには、有効な テンプレートリソース + の種類を含むパスを指定する事ができます。任意の第2パラメータには + キャッシュID を渡す事ができます。 + 詳細は キャッシュの項 を参照してください。 + + ¶meter.compileid; + + display() + +caching = true; + +// キャッシュが存在しない場合はデータベースを呼び出します +if(!$smarty->is_cached('index.tpl')) { + + // ダミーデータ + $address = '245 N 50th'; + $db_data = array( + 'City' => 'Lincoln', + 'State' => 'Nebraska', + 'Zip' => '68502' + ); + + $smarty->assign('Name', 'Fred'); + $smarty->assign('Address', $address); + $smarty->assign('data', $db_data); + +} + +// 出力を表示します +$smarty->display('index.tpl'); +?> +]]> + + + + + display() 関数にテンプレートリソースを指定した例 + + + $template_dir ディレクトリ外のファイルを表示するためには、 + テンプレートリソース + を指定します。 + + +display('/usr/local/include/templates/header.tpl'); + +// ファイルの絶対パス (上と同じ) +$smarty->display('file:/usr/local/include/templates/header.tpl'); + +// windows環境の絶対パス (接頭辞に"file:"を使う必要があります) +$smarty->display('file:C:/www/pub/templates/header.tpl'); + +// "db"と名付けられたテンプレートリソースからインクルードします +$smarty->display('db:header.tpl'); +?> +]]> + + + + fetch() および + template_exists() + も参照してください。 + + + + + + diff --git a/docs/ja/programmers/api-functions/api-fetch.xml b/docs/ja/programmers/api-functions/api-fetch.xml new file mode 100644 index 00000000..7b19996d --- /dev/null +++ b/docs/ja/programmers/api-functions/api-fetch.xml @@ -0,0 +1,159 @@ + + + + + + + fetch() + テンプレートの出力を返します。 + + + 説明 + + stringfetch + stringtemplate + stringcache_id + string$compile_id + + + + これは、テンプレートを + 表示する + のではなくその出力を返します。第1パラメータには、有効な + テンプレートリソース + の種類を含んだパスを指定する事ができます。任意の第2パラメータには + キャッシュID を渡す事ができます。 + 詳細は、キャッシュの項目 を参照してください。 + + ¶meter.compileid; + + + + fetch() + +caching = true; + +// キャッシュが存在しない場合はデータベースを呼び出します +if(!$smarty->is_cached('index.tpl')) { + + // ダミーデータを用意 + $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); + +} + +// 出力を取り込みます +$output = $smarty->fetch('index.tpl'); + +// ここで$outputについて何かの処理を行います +echo $output; +?> +]]> + + + + + + + Email の送信に fetch() を使用する + + email_body.tpl テンプレート + + + + + + + {textformat} 修飾子を用いた + email_disclaimer.tpl + + + + + + PHP の + + mail() 関数を用いたPHPスクリプト + + +getRow($sql); +$smarty->assign('contact', $contact); + +mail($contact['email'], 'Subject', $smarty->fetch('email_body.tpl')); + +?> +]]> + + + + + + {fetch}、 + display()、 + {eval}、 + および + template_exists() + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-get-config-vars.xml b/docs/ja/programmers/api-functions/api-get-config-vars.xml new file mode 100644 index 00000000..df16d6a2 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-get-config-vars.xml @@ -0,0 +1,68 @@ + + + + + + + get_config_vars() + 読み込まれた設定ファイル変数を返します。 + + + 説明 + + arrayget_config_vars + stringvarname + + + パラメータが与えられない場合は 全ての読み込まれた + 設定ファイル変数 + の配列が返されます。 + + + get_config_vars() + +get_config_vars('foo'); + +// 全ての設定ファイル変数を取得します +$all_config_vars = $smarty->get_config_vars(); + +// では見てみましょう +print_r($all_config_vars); +?> +]]> + + + + clear_config()、 + {config_load}、 + config_load() + および + get_template_vars() + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-get-registered-object.xml b/docs/ja/programmers/api-functions/api-get-registered-object.xml new file mode 100644 index 00000000..d0b1f0e3 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-get-registered-object.xml @@ -0,0 +1,67 @@ + + + + + + + get_registered_object() + 登録されたオブジェクトの参照を返します。 + + + 説明 + + arrayget_registered_object + stringobject_name + + + カスタム関数の中から + 登録されたオブジェクト + に直接アクセスしたい時に便利です。詳細は + オブジェクト の項を参照ください。 + + + get_registered_object() + +get_registered_object($params['object']); + // オブジェクトを参照している$obj_refを使用します + } +} +?> +]]> + + + + register_object()、 + unregister_object() + および + オブジェクトの項 + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-get-template-vars.xml b/docs/ja/programmers/api-functions/api-get-template-vars.xml new file mode 100644 index 00000000..d64cd82c --- /dev/null +++ b/docs/ja/programmers/api-functions/api-get-template-vars.xml @@ -0,0 +1,70 @@ + + + + + + + get_template_vars() + 割り当てられた変数の値を返します。 + + + 説明 + + arrayget_template_vars + stringvarname + + + パラメータが与えられない場合は、 全ての + 割り当てられた + 変数の配列を返します。 + + + get_template_vars + +get_template_vars('foo'); + +// 割り当てられたテンプレートの全ての変数を取得します +$all_tpl_vars = $smarty->get_template_vars(); + +// では見てみましょう +print_r($all_tpl_vars); +?> +]]> + + + + assign()、 + {assign}、 + append()、 + clear_assign()、 + clear_all_assign() + および + get_config_vars() + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-is-cached.xml b/docs/ja/programmers/api-functions/api-is-cached.xml new file mode 100644 index 00000000..f8e667b5 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-is-cached.xml @@ -0,0 +1,131 @@ + + + + + + + is_cached() + テンプレートが有効なキャッシュを持つ場合にtrueを返します。 + + + 説明 + + boolis_cached + stringtemplate + stringcache_id + stringcompile_id + + + + + + これは、 + $caching が &true; の場合にのみ機能します。 + キャッシュの項 も参照してください。 + + + + 1つのテンプレートに + 複数のキャッシュ + が存在する場合は、第2パラメータに + $cache_id を渡すことができます。 + + + + 第3パラメータに + $compile id + を渡すを渡す事が出来ます。このパラメータを省いた時は、もし永続的な + + $compile_id が設定されていればそれを使用します。 + + + + $cache_id は渡さずに + + $compile_id だけを渡したい場合は、 + $cache_id に &null; を指定します。 + + + + + テクニカルノート + + is_cached() が &true; を返すと、 + 実際にはキャッシュされた出力が読み込まれ、内部に格納されます。続いてコールされる + display() または + fetch() + はこの内部に格納された出力を返し、キャッシュファイルを再読み込みしようとはしません。 + これにより、上の例における is_cached() のコールから + display() のコールまでの間に + 別のプロセスがキャッシュをクリアしてしまうといった競合を防ぐことができます。これは、 + is_cached() が &true; を返した後は + clear_cache() + やその他キャッシュ設定の変更が何の影響も及ぼさないということも意味します。 + + + + + is_cached() + +caching = true; + +if(!$smarty->is_cached('index.tpl')) { +// ここでデータベースを呼び出し、値を割り当てます +} + +$smarty->display('index.tpl'); +?> +]]> + + + + + 複数のキャッシュを使用したテンプレートにおける is_cached() + +caching = true; + +if(!$smarty->is_cached('index.tpl', 'FrontPage')) { + // ここでデータベースを呼び出し、値を割り当てます +} + +$smarty->display('index.tpl', 'FrontPage'); +?> +]]> + + + + + + clear_cache()、 + clear_all_cache() + および + キャッシュの項 も参照してください。 + + + + + + diff --git a/docs/ja/programmers/api-functions/api-load-filter.xml b/docs/ja/programmers/api-functions/api-load-filter.xml new file mode 100644 index 00000000..0b362280 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-load-filter.xml @@ -0,0 +1,70 @@ + + + + + + + load_filter() + フィルタプラグインを読み込みます。 + + + 説明 + + voidload_filter + stringtype + stringname + + + 第1パラメータには、読み込むフィルタの種類を + prepost あるいは output + のいずれかで指定します。第2パラメータにはフィルタプラグインの名前を指定します。(例: 'trim') + + + フィルタプラグインを読み込む + +load_filter('pre', 'trim'); + +// 'datefooter'という他のプリフィルタを読み込みます +$smarty->load_filter('pre', 'datefooter'); + +// 'compress'というアウトプットフィルタを読み込みます +$smarty->load_filter('output', 'compress'); + +?> +]]> + + + + register_prefilter()、 + register_postfilter()、 + register_outputfilter()、 + $autoload_filters + および + 拡張機能 も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-register-block.xml b/docs/ja/programmers/api-functions/api-register-block.xml new file mode 100644 index 00000000..f78c7af1 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-register-block.xml @@ -0,0 +1,91 @@ + + + + + + + register_block() + ブロック関数プラグインを動的に登録します。 + + + 説明 + + voidregister_block + stringname + mixedimpl + boolcacheable + mixedcache_attrs + + + + ブロック関数プラグイン + を動的に登録します。パラメータには、ブロック関数名とそれを実装する + PHP のユーザー定義関数名を渡します。 + + &api.register.snippet; + + + cacheablecache_attrs + はほとんどの場合に省略可能です。これらの正しい使用法についての詳細は、 + キャッシュ可能なプラグインの出力の制御 + を参照して下さい。 + + + register_block() + +register_block('translate', 'do_translation'); +?> +]]> + + + テンプレート + + + + + + + + unregister_block() + および + ブロック関数プラグイン + のページも参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-register-compiler-function.xml b/docs/ja/programmers/api-functions/api-register-compiler-function.xml new file mode 100644 index 00000000..8f585bc8 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-register-compiler-function.xml @@ -0,0 +1,59 @@ + + + + + + + register_compiler_function() + コンパイラ関数プラグインを動的に登録します。 + + + 説明 + + boolregister_compiler_function + stringname + mixedimpl + boolcacheable + + + コンパイラ関数 の名前と、 + それを実装する PHP のユーザー定義関数名を渡します。 + + &api.register.snippet; + + + cacheable はほとんどの場合に省略可能です。 + これらの正しい使用法についての詳細は、 + キャッシュ可能なプラグインの出力の制御 を参照して下さい。 + + + + +unregister_compiler_function() +および +コンパイラ関数プラグイン +も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-register-function.xml b/docs/ja/programmers/api-functions/api-register-function.xml new file mode 100644 index 00000000..a16662f3 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-register-function.xml @@ -0,0 +1,93 @@ + + + + + + + register_function() + テンプレート関数プラグインを動的に登録します。 + + + 説明 + + voidregister_function + stringname + mixedimpl + boolcacheable + mixedcache_attrs + + + + パラメータには、テンプレート関数 + 名とそれを実装する PHP のユーザー定義関数名を渡します。 + + &api.register.snippet; + + + + cacheablecache_attrs は、 + ほとんどの場合に省略可能です。これらの正しい使用法についての詳細は、 + キャッシュ可能なプラグインの出力の制御 + を参照して下さい。 + + + register_function() + +register_function('date_now', 'print_current_date'); + +function print_current_date($params, &$smarty) +{ + if(empty($params['format'])) { + $format = "%b %e, %Y"; + } else { + $format = $params['format']; + } + return strftime($format,time()); +} +?> +]]> + + + テンプレート + + + + + + + +unregister_function() +および +テンプレート関数プラグイン の項も参照してください。 + + + + + + diff --git a/docs/ja/programmers/api-functions/api-register-modifier.xml b/docs/ja/programmers/api-functions/api-register-modifier.xml new file mode 100644 index 00000000..ba51e2e4 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-register-modifier.xml @@ -0,0 +1,75 @@ + + + + + + + register_modifier() + 変数の修飾子プラグインを動的に登録します。 + + + 説明 + + voidregister_modifier + stringname + mixedimpl + + + パラメータには、変数の修飾子名とそれを実装するPHPのユーザー定義関数名を渡します。 + + &api.register.snippet; + + + + register_modifier() + +register_modifier('ss', 'stripslashes'); + +?> +]]> + +テンプレートでは、ss を使用してスラッシュを取り除きます。 + + +]]> + + + + + unregister_modifier()、 + register_function()、 + 修飾子、 + プラグインによる Smarty の拡張 + および + 修飾子プラグインの作成 + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-register-object.xml b/docs/ja/programmers/api-functions/api-register-object.xml new file mode 100644 index 00000000..7b52c5a9 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-register-object.xml @@ -0,0 +1,55 @@ + + + + + + + register_object() + テンプレート内で使用するオブジェクトを登録します。 + + + 説明 + + voidregister_object + stringobject_name + objectobject + arrayallowed_methods_properties + + booleanformat + arrayblock_methods + + + 詳細は、 + オブジェクト + の項を参照して下さい。 + + + get_registered_object() + および + unregister_object() + も参照してください。 + + + + + + diff --git a/docs/ja/programmers/api-functions/api-register-outputfilter.xml b/docs/ja/programmers/api-functions/api-register-outputfilter.xml new file mode 100644 index 00000000..b88d966c --- /dev/null +++ b/docs/ja/programmers/api-functions/api-register-outputfilter.xml @@ -0,0 +1,55 @@ + + + + + + + register_outputfilter() + アウトプットフィルタを動的に登録します。 + + + 説明 + + voidregister_outputfilter + mixedfunction + + + テンプレートの出力が + 表示 される前に作用する、 + アウトプットフィルタ + を動的に登録します。アウトプットフィルタ関数の定義のしかたは、 + アウトプットフィルタ + の項を参照して下さい。 + + &api.register.snippet; + + +unregister_outputfilter()、 +load_filter()、 +$autoload_filters +および +アウトプットフィルタ +も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-register-postfilter.xml b/docs/ja/programmers/api-functions/api-register-postfilter.xml new file mode 100644 index 00000000..0a637e12 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-register-postfilter.xml @@ -0,0 +1,59 @@ + + + + + + + register_postfilter() + ポストフィルタを動的に登録します。 + + + 説明 + + voidregister_postfilter + mixedfunction + + + テンプレートをコンパイルした後で実行される + ポストフィルタ + を動的に登録します。ポストフィルタ関数の定義の仕方は、 + ポストフィルタ + の項を参照して下さい。 + + &api.register.snippet; + + + + unregister_postfilter()、 + + register_prefilter()、 + load_filter()、 + + $autoload_filters + および + アウトプットフィルタ + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-register-prefilter.xml b/docs/ja/programmers/api-functions/api-register-prefilter.xml new file mode 100644 index 00000000..aaaf7bc1 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-register-prefilter.xml @@ -0,0 +1,58 @@ + + + + + + + register_prefilter() + プリフィルタを動的に登録します。 + + + 説明 + + voidregister_prefilter + mixedfunction + + + テンプレートをコンパイルする前に実行する、 + プリフィルタ + を動的に登録します。プリフィルタ関数の定義の仕方は、プリフィルタ + の項を参照して下さい。 + + &api.register.snippet; + + + + unregister_prefilter()、 + register_postfilter()、 + register_ouputfilter()、 + load_filter()、 + $autoload_filters + および + アウトプットフィルタ + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-register-resource.xml b/docs/ja/programmers/api-functions/api-register-resource.xml new file mode 100644 index 00000000..74623792 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-register-resource.xml @@ -0,0 +1,96 @@ + + + + + + + register_resource() + リソースプラグインを動的に登録します。 + + + 説明 + + voidregister_resource + stringname + arrayresource_funcs + + + リソースプラグイン + を動的に登録します。パラメータとして、 + リソース名および実行する PHP ユーザ定義関数の名前を格納した配列を渡します。 + テンプレートを取得するための関数の定義の仕方は、 + テンプレートリソース + の項を参照してください。 + + テクニカルノート + + リソース名の長さは少なくとも2文字以上である必要があります。 + 1文字のリソース名は無視され、$smarty->display('c:/path/to/index.tpl'); + のようにファイルパスの一部として使用されます。 + + + + + + + + PHP関数名が含まれる配列 resource_funcs + には4つまたは5つの要素が必要です。 + + + 要素が4つの場合は、source、 + timestampsecure および + trusted がリソースの関数としてそれぞれコールバックされます。 + + + 要素が5つの場合は、最初の要素はリソースを実装するオブジェクトの参照または + オブジェクトのクラス名またはクラスである必要があり、続く4つの要素は + sourcetimestampsecure + および trusted を実装したメソッド名である必要があります。 + + + + register_resource() + +register_resource('db', array( + 'db_get_template', + 'db_get_timestamp', + 'db_get_secure', + 'db_get_trusted') + ); +?> +]]> + + + + + unregister_resource() + および + テンプレートリソース + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-template-exists.xml b/docs/ja/programmers/api-functions/api-template-exists.xml new file mode 100644 index 00000000..aa51ad1c --- /dev/null +++ b/docs/ja/programmers/api-functions/api-template-exists.xml @@ -0,0 +1,95 @@ + + + + + + + template_exists() + 指定したテンプレートが存在するかどうかをチェックします。 + + + 説明 + + booltemplate_exists + stringtemplate + + + ファイルシステムに関するテンプレートへのパス + 又はテンプレートを指定するリソースの文字列のいずれかを受け入れる事ができます。 + + + + template_exists() + + この例は、コンテンツテンプレートを + インクルード + するのに $_GET['page'] を使用しています。 + テンプレートが存在しない場合、代わりにエラーページが表示されます。 + まずは page_container.tpl から。 + + + +{$title} + +{include file='page_top.tpl'} + +{* コンテンツページの中央部分をインクルード *} +{include file=$content_template} + +{include file='page_footer.tpl'} + +]]> + + + そしてスクリプトです。 + + +template_exists($mid_template) ){ + $mid_template = 'page_not_found.tpl'; +} +$smarty->assign('content_template', $mid_template); + +$smarty->display('page_container.tpl'); + +?> +]]> + + + + + display()、 + fetch()、 + {include} + および + {insert} + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-trigger-error.xml b/docs/ja/programmers/api-functions/api-trigger-error.xml new file mode 100644 index 00000000..a9667257 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-trigger-error.xml @@ -0,0 +1,54 @@ + + + + + + + trigger_error() + エラーメッセージを出力します。 + + + 説明 + + voidtrigger_error + stringerror_msg + intlevel + + + Smartyを通してエラーメッセージを出力します。 + level パラメータには、PHP + の + trigger_error() 関数に使用される値 + (E_USER_NOTICEE_USER_WARNING など) + を指定します。デフォルトは E_USER_WARNING です。 + + + + $error_reporting、 + debugging + および + トラブルシューティング + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-unregister-block.xml b/docs/ja/programmers/api-functions/api-unregister-block.xml new file mode 100644 index 00000000..14a8882f --- /dev/null +++ b/docs/ja/programmers/api-functions/api-unregister-block.xml @@ -0,0 +1,50 @@ + + + + + + + unregister_block() + 動的に登録されたブロック関数プラグインを未登録にします。 + + + 説明 + + voidunregister_block + stringname + + + 動的に登録された + ブロック関数プラグイン + を未登録にします。パラメータには、ブロック関数名を渡します。 + + + + register_block() + および + ブロック関数プラグイン + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-unregister-compiler-function.xml b/docs/ja/programmers/api-functions/api-unregister-compiler-function.xml new file mode 100644 index 00000000..21273701 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-unregister-compiler-function.xml @@ -0,0 +1,49 @@ + + + + + + + unregister_compiler_function() + 動的に登録されたコンパイラ関数を未登録にします。 + + + 説明 + + voidunregister_compiler_function + stringname + + + パラメータにはコンパイラ関数名を渡します。 + + + + + register_compiler_function() + および + コンパイラ関数プラグイン + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-unregister-function.xml b/docs/ja/programmers/api-functions/api-unregister-function.xml new file mode 100644 index 00000000..c339e892 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-unregister-function.xml @@ -0,0 +1,59 @@ + + + + + + + unregister_function + 動的に登録されたテンプレート関数プラグインを未登録にします。 + + + 説明 + + voidunregister_function + stringname + + + パラメータには、テンプレート関数名を渡します。 + + + unregister_function + +unregister_function('fetch'); + +?> +]]> + + + + + + register_function() も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-unregister-modifier.xml b/docs/ja/programmers/api-functions/api-unregister-modifier.xml new file mode 100644 index 00000000..e72d0161 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-unregister-modifier.xml @@ -0,0 +1,59 @@ + + + + + + + unregister_modifier() + 動的に登録された変数の修飾子プラグインを未登録にします。 + + + 説明 + + voidunregister_modifier + stringname + + + パラメータには、変数修飾子の名前を渡します。 + + + unregister_modifier() + +unregister_modifier('strip_tags'); + +?> +]]> + + + + register_modifier() + および + 修飾子プラグイン + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-unregister-object.xml b/docs/ja/programmers/api-functions/api-unregister-object.xml new file mode 100644 index 00000000..a6be0079 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-unregister-object.xml @@ -0,0 +1,44 @@ + + + + + + + unregister_object() + 動的に登録されたオブジェクトを未登録にします。 + + + 説明 + + voidunregister_object + stringobject_name + + + + register_object() + および + オブジェクトの項 + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-unregister-outputfilter.xml b/docs/ja/programmers/api-functions/api-unregister-outputfilter.xml new file mode 100644 index 00000000..bac45f6e --- /dev/null +++ b/docs/ja/programmers/api-functions/api-unregister-outputfilter.xml @@ -0,0 +1,48 @@ + + + + + + + unregister_outputfilter() + 動的に登録されたアウトプットフィルタプラグインを未登録にします。 + + + 説明 + + voidunregister_outputfilter + stringfunction_name + + + 動的に登録されたアウトプットフィルタプラグインを未登録にします。 + + + + + register_outputfilter() + および + アウトプットフィルタ + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-functions/api-unregister-postfilter.xml b/docs/ja/programmers/api-functions/api-unregister-postfilter.xml new file mode 100644 index 00000000..004db0e8 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-unregister-postfilter.xml @@ -0,0 +1,46 @@ + + + + + + + unregister_postfilter() + 動的に登録されたポストフィルタプラグインを未登録にします。 + + + 説明 + + voidunregister_postfilter + stringfunction_name + + + + + register_postfilter() + および + ポストフィルタの項 + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-unregister-prefilter.xml b/docs/ja/programmers/api-functions/api-unregister-prefilter.xml new file mode 100644 index 00000000..ecf58c22 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-unregister-prefilter.xml @@ -0,0 +1,46 @@ + + + + + + + unregister_prefilter() + 動的に登録されたプリフィルタプラグインを未登録にします。 + + + 説明 + + voidunregister_prefilter + stringfunction_name + + + + + register_prefilter() + および + プリフィルタの項 + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-functions/api-unregister-resource.xml b/docs/ja/programmers/api-functions/api-unregister-resource.xml new file mode 100644 index 00000000..7309d8c9 --- /dev/null +++ b/docs/ja/programmers/api-functions/api-unregister-resource.xml @@ -0,0 +1,61 @@ + + + + + + + unregister_resource() + 動的に登録されたリソースプラグインを未登録にします。 + + + 説明 + + voidunregister_resource + stringname + + + パラメータにはリソース名を渡します。 + + + unregister_resource() + +unregister_resource('db'); + +?> +]]> + + + + + + register_resource() + および + テンプレートリソース + も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-variables.xml b/docs/ja/programmers/api-variables.xml new file mode 100644 index 00000000..d5ce0ad5 --- /dev/null +++ b/docs/ja/programmers/api-variables.xml @@ -0,0 +1,63 @@ + + + + + + Smarty 繧ッ繝ゥ繧ケ螟画焚 + +&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; + + diff --git a/docs/ja/programmers/api-variables/variable-autoload-filters.xml b/docs/ja/programmers/api-variables/variable-autoload-filters.xml new file mode 100644 index 00000000..022a903f --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-autoload-filters.xml @@ -0,0 +1,53 @@ + + + + + + $autoload_filters + + 全てのテンプレートの呼出し時に適用したいフィルタがある場合、 + この変数を用いて指定する事で、Smarty はそれらを自動的に読み込みます。 + これは、配列のキーがフィルタの種類、値がフィルタの名前を格納した連想配列です。 + たとえば次のようになります。 + + +autoload_filters = array('pre' => array('trim', 'stamp'), + 'output' => array('convert')); +?> +]]> + + + + + + register_outputfilter()、 + register_prefilter()、 + register_postfilter() + および + load_filter() + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-cache-dir.xml b/docs/ja/programmers/api-variables/variable-cache-dir.xml new file mode 100644 index 00000000..f2be9d4f --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-cache-dir.xml @@ -0,0 +1,69 @@ + + + + + + $cache_dir + + テンプレートのキャッシュが格納されるディレクトリです。デフォルトは + ./cache で、 + これは実行中のPHPスクリプトが置かれた場所にある + cache/ ディレクトリを探す事を意味します。 + このディレクトリは web サーバが書き込み可能でなくてはなりません。 + 詳細は インストールについての説明 + を参照してください。 + + + この設定を使わずに、キャッシュファイルを操作するための + + 自作のキャッシュハンドラ + 関数を使う事もできます。詳細は + $use_sub_dirs + も参照してください。 + + + テクニカルノート + + この設定は、相対パス又は絶対パスである必要があります。 + include_path はファイル書き込み時には使用されません。 + + + + テクニカルノート + + このディレクトリをwebサーバのドキュメントルート下に置く事は推奨しません。 + + + + + $caching、 + $use_sub_dirs、 + $cache_lifetime、 + $cache_handler_func、 + $cache_modified_check + および + キャッシュの項目 も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-variables/variable-cache-handler-func.xml b/docs/ja/programmers/api-variables/variable-cache-handler-func.xml new file mode 100644 index 00000000..4217bb39 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-cache-handler-func.xml @@ -0,0 +1,36 @@ + + + + + + $cache_handler_func + + $cache_dir. + 用いる組み込みメソッドを使用する代わりに、 + キャッシュファイルを操作するために定義された関数の名前を指定します。 + 詳細は、 + cache + キャッシュハンドラ関数 の項を参照して下さい。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-cache-lifetime.xml b/docs/ja/programmers/api-variables/variable-cache-lifetime.xml new file mode 100644 index 00000000..d4d2baa6 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-cache-lifetime.xml @@ -0,0 +1,72 @@ + + + + + + $cache_lifetime + + テンプレートのキャッシュの期限(単位:秒)です。これが切れるとキャッシュは再生成されます。 + + + + + $cache_lifetime を使用するためには、 + $caching を有効に (1 あるいは 2 のいずれかに) する必要があります。 + + + + この値を -1 にすると、キャッシュを無期限で有効とします。 + + + + この値を 0 にすると、キャッシュを常に再生成します + (これはテスト時にのみ有用です。 + キャッシュを無効にするためには、より効率的な方法として $caching = 0 + があります)。 + + + + 各テンプレートごとに有効期限を独自に設定したい場合は + + $caching = 2 + とします。そして + display() + あるいは fetch() + を呼び出す前に + $cache_lifetime に値を設定してください。 + + + + + + $force_compile + が有効の場合、キャッシュファイルは毎回再生成されるので事実上キャッシュは無効になります。 + clear_all_cache() + 関数で全てのキャッシュを、clear_cache() + 関数で特定のキャッシュファイル (グループ) をクリアする事が出来ます。 + + + + + diff --git a/docs/ja/programmers/api-variables/variable-cache-modified-check.xml b/docs/ja/programmers/api-variables/variable-cache-modified-check.xml new file mode 100644 index 00000000..b3de6a5d --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-cache-modified-check.xml @@ -0,0 +1,45 @@ + + + + + +$cache_modified_check + + &true; の場合、Smarty はクライアントから送信された If-Modified-Since + ヘッダを尊重します。キャッシュファイルのタイムスタンプが最後に訪れた時から変わっていなければ、 + コンテンツの代わりに '304: Not Modified' レスポンスが返されます。 + これは、キャッシュされた内容に + {insert} + タグが含まれない場合にのみ機能します。 + + + + $caching、 + $cache_lifetime、 + $cache_handler_func + および + キャッシュの項 も参照してください。 + + + + + diff --git a/docs/ja/programmers/api-variables/variable-caching.xml b/docs/ja/programmers/api-variables/variable-caching.xml new file mode 100644 index 00000000..8ac3c644 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-caching.xml @@ -0,0 +1,83 @@ + + + + + + $caching + + テンプレートの出力を + $cache_dir にキャッシュするかどうかを設定します。 + デフォルトは 0 で、これは無効を意味します。 + テンプレートが何度も同じコンテンツを生成するような場合は、 + $caching を有効にするほうがよいでしょう。 + これにより、パフォーマンスが向上します。 + + + + 複数の + キャッシュをひとつのテンプレートファイルに持たせることもできます。 + + + + + 値として 1 または 2 を指定すると、キャッシュを有効にします。 + + + + 1 は、Smarty にそのキャッシュが期限切れかどうかを調べるために、 現在の時間と + $cache_lifetime + の値を比較するように指示します。 + + + 2 は、Smarty にそのキャッシュが生成された時点の時間と + $cache_lifetime + の値を比較するように指示します。このようにキャッシュの期限を制御するために、 + テンプレートを 取得 する直前に + $cache_lifetime + をセットする事ができます。詳細は、 + is_cached() + の項を参照して下さい。 + + + + $compile_check + が有効な場合、キャッシュに含まれるテンプレートや設定ファイルが変更されていると、 + キャッシュが再生成されます。 + + + + $force_compile + が有効ならばキャッシュは常に再生成されます。 + + + + $cache_dir、 + $cache_lifetime、 + $cache_handler_func、 + $cache_modified_check、 + is_cached() + および +キャッシュの項 も参照してください。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-compile-check.xml b/docs/ja/programmers/api-variables/variable-compile-check.xml new file mode 100644 index 00000000..202eb2cd --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-compile-check.xml @@ -0,0 +1,50 @@ + + + + + + $compile_check + + SmartyはPHPアプリケーションの各リクエスト時に、 + 現在のテンプレートが最後に訪れた時から変更されている(タイムスタンプが異なる) + かどうかを検査します。もし変更されているならば、 + そのテンプレートを再コンパイルします。 + そのテンプレートが一度もコンパイルされていなかった場合は、 + この設定に関係なくコンパイルを行います。この変数のデフォルトは &true; です。 + + + テンプレートが変更される予定がないアプリケーションがいったん稼動に入れば、 + もはや compile_checkの ステップは必要ありません。 + 最大限のパフォーマンスを向上させるために、必ず + $compile_check を &false; に設定して下さい。 + また、この設定を &false; に変更した後にテンプレートファイルが変更された場合、 + そのテンプレートが再コンパイルされる事は「ない」ので変更は反映されない事に注意してください。 + $caching と + $compile_check が共に有効ならば、 + テンプレートファイルが更新されるとキャッシュファイルが再生成されます + 詳細は、 + $force_compile および clear_compiled_tpl() + を参照してください。 + + + diff --git a/docs/ja/programmers/api-variables/variable-compile-dir.xml b/docs/ja/programmers/api-variables/variable-compile-dir.xml new file mode 100644 index 00000000..2279d415 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-compile-dir.xml @@ -0,0 +1,57 @@ + + + + + + $compile_dir + + コンパイルされたテンプレートが置かれるディレクトリです。デフォルトは + ./templates_c で、 + これは実行中の PHP スクリプトが置かれた場所にある + templates_c/ ディレクトリを探すことを意味します。 + このディレクトリは web サーバが書き込み可能でなければなりません + 。詳細は + インストール + の説明を参照してください。 + + + + テクニカルノート + + この設定は相対パス又は絶対パスである必要があります。 + include_path はファイル書き込み時には使用されません。 + + + + テクニカルノート + + このディレクトリをwebサーバのドキュメントルート下に置く事は推奨されません。 + + + + $compile_id + および + $use_sub_dirs + も参照してください。 + + + diff --git a/docs/ja/programmers/api-variables/variable-compile-id.xml b/docs/ja/programmers/api-variables/variable-compile-id.xml new file mode 100644 index 00000000..23943e41 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-compile-id.xml @@ -0,0 +1,65 @@ + + + + + + $compile_id + + コンパイルファイルを識別するための id です。すべての関数呼び出しで毎回 + $compile_id を渡すかわりに + $compile_id を指定すると、その後は暗黙のうちにこれを使用します。 + + + $compile_id を使用すると、同一の + $compile_dir + を別々の + $template_dirs で使用できないという制限を回避できます。 + 異なる $compile_id をそれぞれの + $template_dir + で指定すると、Smarty はコンパイルしたテンプレートを + $compile_id で区別します。 + + + 例として、コンパイル時刻でテンプレートをローカライズ (言語依存のパーツを翻訳) + する prefilter + を用いる場合、$compile_id + に現在の言語を使用することで、各言語についてのコンパイルしたテンプレートのセットを得ることができます。 + + + 別の例としては、複数のドメイン/複数のバーチャルホスト + をまたがって同じコンパイルディレクトリを使用する場合があります。 + + + バーチャルホスト環境での $compile_id + +compile_id = $_SERVER['SERVER_NAME']; +$smarty->compile_dir = '/path/to/shared_compile_dir'; + +?> +]]> + + + + diff --git a/docs/ja/programmers/api-variables/variable-compiler-class.xml b/docs/ja/programmers/api-variables/variable-compiler-class.xml new file mode 100644 index 00000000..e9a48516 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-compiler-class.xml @@ -0,0 +1,32 @@ + + + + + + $compiler_class + + Smarty がテンプレートをコンパイルするために使用するコンパイラクラスの名前を指定します。 + デフォルトは 'Smarty_Compiler' です。 + これは上級ユーザのために用意されています。 + + + diff --git a/docs/ja/programmers/api-variables/variable-config-booleanize.xml b/docs/ja/programmers/api-variables/variable-config-booleanize.xml new file mode 100644 index 00000000..bf42e8eb --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-config-booleanize.xml @@ -0,0 +1,37 @@ + + + + + + $config_booleanize + + &true; の場合、設定ファイル + の on/true/yes + や off/false/no といった値が自動的に + boolean 値に変換されます。これにより、テンプレートで + {if #foobar#}...{/if} のように使用できるようになります。foobar が + ontrue あるいは yes + である場合に {if} ステートメントを実行します。 + デフォルトは &true; です。 + + + diff --git a/docs/ja/programmers/api-variables/variable-config-dir.xml b/docs/ja/programmers/api-variables/variable-config-dir.xml new file mode 100644 index 00000000..6248e0bd --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-config-dir.xml @@ -0,0 +1,42 @@ + + + + + + $config_dir + + テンプレートから読み込むための + 設定ファイル + を置くディレクトリです。デフォルトは + ./configs + で、実行中の PHP スクリプトが置かれた場所にある + configs/ + ディレクトリを探すことを意味します。 + + + テクニカルノート + + このディレクトリをwebサーバのドキュメントルート下に置く事は推奨されません。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-config-fix-newlines.xml b/docs/ja/programmers/api-variables/variable-config-fix-newlines.xml new file mode 100644 index 00000000..465dbf84 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-config-fix-newlines.xml @@ -0,0 +1,33 @@ + + + + + + $config_fix_newlines + + &true; の場合、mac や dos の改行コード ('\r' や + '\r\n') が設定ファイルにあると、パース時にそれを + '\n' に変換します。 + デフォルトは is &true; です。 + + + diff --git a/docs/ja/programmers/api-variables/variable-config-overwrite.xml b/docs/ja/programmers/api-variables/variable-config-overwrite.xml new file mode 100644 index 00000000..2af8ecb1 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-config-overwrite.xml @@ -0,0 +1,77 @@ + + + + + + $config_overwrite + + &true; の場合、 + 設定ファイル + から読み込んだ変数は互いに上書きされます (デフォルトは &true;)。 + &false; の場合、変数は配列にプッシュされます。 + これは各要素を複数回リストするような、 + 設定ファイルのデータの配列を格納したい場合に役立ちます。 + + + + 設定ファイル変数の配列 + + この例では $config_overwrite = &false; とし、 + {cycle} + でテーブルの行の色を 赤/緑/青 と切り替えています。 + + 設定ファイル + + + + + + {section} ループを使用したテンプレート + + + + {section name=r loop=$rows} + + ....何かの内容.... + + {/section} + +]]> + + + + {config_load}、 + get_config_vars()、 + clear_config()、 + config_load() + および config files section + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-config-read-hidden.xml b/docs/ja/programmers/api-variables/variable-config-read-hidden.xml new file mode 100644 index 00000000..76c92d1d --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-config-read-hidden.xml @@ -0,0 +1,35 @@ + + + + + + $config_read_hidden + + &true; の場合、設定ファイル + のhiddenセクション(セクション名がピリオドで始まるもの) + をテンプレートから読み込むことができます。 + 通常はこれを &false; のままにしておきます。 + そうすると、設定ファイルにデータベースパラメータのような注意が必要なデータを格納しても、 + テンプレートがそれらのデータを読み出してしまう心配はありません。デフォルトは &false; です。 + + + diff --git a/docs/ja/programmers/api-variables/variable-debug-tpl.xml b/docs/ja/programmers/api-variables/variable-debug-tpl.xml new file mode 100644 index 00000000..6d758ac3 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-debug-tpl.xml @@ -0,0 +1,39 @@ + + + + + + $debug_tpl + + これは、デバッギングコンソールに使用するテンプレートファイルの名前です。 + デフォルトは debug.tpl という名前で、 + SMARTY_DIR + に位置します。 + + + $debugging + および + デバッギングコンソール + も参照してください。 + + + diff --git a/docs/ja/programmers/api-variables/variable-debugging-ctrl.xml b/docs/ja/programmers/api-variables/variable-debugging-ctrl.xml new file mode 100644 index 00000000..19d7f29b --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-debugging-ctrl.xml @@ -0,0 +1,59 @@ + + + + + + $debugging_ctrl + + デバッギングコンソールを有効にするための $debugging に代わる方法です。 + NONE は、これを無効にする事を意味します。 + URL は、QUERY_STRING の中にキーワード + SMARTY_DEBUG が含まれていた時に + デバッギングコンソールが有効になる事を意味します。 + + $debugging が &true; + の場合は、この設定は無視されます。 + + + localhost での $debugging_ctrl + + +debugging = false; // デフォルト +$smarty->debugging_ctrl = ($_SERVER['SERVER_NAME'] == 'localhost') ? 'URL' : 'NONE'; +?> +]]> + + + + + デバッギングコンソール + および + $debugging + も参照してください。 + + + diff --git a/docs/ja/programmers/api-variables/variable-debugging.xml b/docs/ja/programmers/api-variables/variable-debugging.xml new file mode 100644 index 00000000..0a51f82d --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-debugging.xml @@ -0,0 +1,49 @@ + + + + + + $debugging + + デバッギングコンソール + を有効にします。このコンソールは、現在のスクリプトにおける + インクルードされた + テンプレートや PHP から 割り当てられた 変数、 + 設定ファイルの変数 + といった情報を javascript のポップアップウィンドウで通知します。 + {assign} + 関数によってテンプレート内で割り当てられた変数は表示されません。 + + このコンソールは、url から + + $debugging_ctrl + を用いることで有効にすることもできます。 + + + {debug}、 + $debug_tpl、 + および $debugging_ctrl + も参照してください。 + + + diff --git a/docs/ja/programmers/api-variables/variable-default-modifiers.xml b/docs/ja/programmers/api-variables/variable-default-modifiers.xml new file mode 100644 index 00000000..a25fc355 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-default-modifiers.xml @@ -0,0 +1,35 @@ + + + + + + $default_modifiers + + テンプレート内のすべての変数に暗黙に適用される修飾子が格納された配列です。 + 例えば、 デフォルトですべての変数にHTMLエスケープ処理を施したい場合は、 + array('escape:"htmlall"') となります。 + この影響を受けない変数にするには、{$var|smarty:nodefaults} + のように nodefaults 修飾子をパラメータに持つ + smarty 修飾子を指定します。 + + + diff --git a/docs/ja/programmers/api-variables/variable-default-resource-type.xml b/docs/ja/programmers/api-variables/variable-default-resource-type.xml new file mode 100644 index 00000000..5d911f3e --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-default-resource-type.xml @@ -0,0 +1,36 @@ + + + + + + $default_resource_type + + これは、暗黙に使用されるリソースの種類を指定します。 + デフォルトの値は file で、 + これは $smarty->display('index.tpl') と + $smarty->display('file:index.tpl') + とが意味的に同じになる、ということです。 + 詳細は、リソース + の項を参照してください。 + + + diff --git a/docs/ja/programmers/api-variables/variable-default-template-handler-func.xml b/docs/ja/programmers/api-variables/variable-default-template-handler-func.xml new file mode 100644 index 00000000..4f8758ba --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-default-template-handler-func.xml @@ -0,0 +1,30 @@ + + + + + + $default_template_handler_func + + リソースからのテンプレートの取得に失敗した場合に、この関数をコールします。 + + + diff --git a/docs/ja/programmers/api-variables/variable-error-reporting.xml b/docs/ja/programmers/api-variables/variable-error-reporting.xml new file mode 100644 index 00000000..57ba796a --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-error-reporting.xml @@ -0,0 +1,44 @@ + + + + + + $error_reporting + + この値に null でない値がセットされると、その値は + display() と + fetch() の内側で + PHP の error_reporting + レベルとして使用されます。デバッグ + が有効のときはこの値は無視され、エラーレベルには全く触れられません。 + + + trigger_error()、 + デバッギングコンソール + および + トラブルシューティング + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-force-compile.xml b/docs/ja/programmers/api-variables/variable-force-compile.xml new file mode 100644 index 00000000..1c921ee9 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-force-compile.xml @@ -0,0 +1,37 @@ + + + + + + $force_compile + + テンプレートが呼び出される毎に強制的にコンパイル(再コンパイル)を行います。 + この設定は、 + $compile_check をオーバーライドします。 + デフォルトの設定では無効になっています。開発や + デバッグ の際に便利ですが、 + 決して運用環境で使用してはいけません。 + $caching + が有効の場合はキャッシュファイルは毎回再生成されます。 + + + diff --git a/docs/ja/programmers/api-variables/variable-left-delimiter.xml b/docs/ja/programmers/api-variables/variable-left-delimiter.xml new file mode 100644 index 00000000..97cfb9c4 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-left-delimiter.xml @@ -0,0 +1,38 @@ + + + + + + $left_delimiter + + これは、テンプレート言語の開始を表すデリミタです。 + デフォルトは { です。 + + + $right_delimiter + および + Smarty の構文解析を回避 + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-php-handling.xml b/docs/ja/programmers/api-variables/variable-php-handling.xml new file mode 100644 index 00000000..8c6cf6df --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-php-handling.xml @@ -0,0 +1,62 @@ + + + + + + $php_handling + + テンプレートに埋め込まれた PHP コードの扱いを設定します。 + これには4つの設定があり、デフォルトは + SMARTY_PHP_PASSTHRU です。 + テンプレート内の + {php}{/php} + タグで囲まれたPHPコードには影響を及ぼさない事に注意して下さい。 + + + + + + SMARTY_PHP_PASSTHRU - PHPコードを実行せずにそのまま出力します。 + + + + SMARTY_PHP_QUOTE - PHPコードをHTMLエンティティとして表示します。 + + + + SMARTY_PHP_REMOVE - PHPコードをテンプレートから除去します。 + + + + SMARTY_PHP_ALLOW - PHPコードを実行します。 + + + + + + テンプレート内にPHPコードを埋め込む事は、とにかく避けるべきです。 代わりに、 + カスタム関数 または + 修飾子 を使用します。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-plugins-dir.xml b/docs/ja/programmers/api-variables/variable-plugins-dir.xml new file mode 100644 index 00000000..905760a9 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-plugins-dir.xml @@ -0,0 +1,80 @@ + + + + + + $plugins_dir + + Smartyが必要とするプラグインを置くディレクトリです。デフォルトは + SMARTY_DIR + 直下の plugins/ です。 + 相対パスが指定された場合は、まず最初に + SMARTY_DIR + 直下を見ます。そこで見つからなかった場合は、 + 次にカレントディレクトリ、PHPのinclude_pathの順で見ていきます。 + $plugins_dir + がディレクトリ名の配列であった場合、Smarty + は各プラグインディレクトリを + 与えられた順に 検索します。 + + + テクニカルノート + + パフォーマンスを確保するため、$plugins_dir + には PHP のインクルードパスを使用しないでください。絶対パスを使用するか、 + SMARTY_DIR あるいはカレントディレクトリからの相対パスを使用してください。 + + + + + ローカルのプラグインディレクトリの追加 + +plugins_dir[] = 'includes/my_smarty_plugins'; + +?> + +]]> + + + + 複数の $plugins_dir + +plugins_dir = array( + 'plugins', // デフォルトは SMARTY_DIR の配下 + '/path/to/shared/plugins', + '../../includes/my/plugins' + ); + +?> + +]]> + + + + + diff --git a/docs/ja/programmers/api-variables/variable-request-use-auto-globals.xml b/docs/ja/programmers/api-variables/variable-request-use-auto-globals.xml new file mode 100644 index 00000000..7b80a1ba --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-request-use-auto-globals.xml @@ -0,0 +1,48 @@ + + + + + + $request_use_auto_globals + + Smarty が、PHP の $HTTP_*_VARS[] + を使用するのか (&false; の場合) あるいは $_*[] + を使用するのか (&true; の場合) を指定します。デフォルトでは + $_*[] を使用します。これは、テンプレートで + + {$smarty.request.*}, {$smarty.get.*} + などを使用する際に影響します。 + + + 注意 + + $request_use_auto_globals を true + に設定すると + + $request_vars_order + はこうかを及ぼさず、PHP の設定値 + gpc_order を使用します。 + + + + + diff --git a/docs/ja/programmers/api-variables/variable-request-vars-order.xml b/docs/ja/programmers/api-variables/variable-request-vars-order.xml new file mode 100644 index 00000000..3fb436ed --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-request-vars-order.xml @@ -0,0 +1,36 @@ + + + + + + $request_vars_order + + リクエスト変数が登録される順番です。php.iniのvariables_orderの設定と同様です。 + + + $smarty.request + および + $request_use_auto_globals + も参照してください。 + + + diff --git a/docs/ja/programmers/api-variables/variable-right-delimiter.xml b/docs/ja/programmers/api-variables/variable-right-delimiter.xml new file mode 100644 index 00000000..b05fa709 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-right-delimiter.xml @@ -0,0 +1,38 @@ + + + + + + $right_delimiter + + これは、テンプレート言語の終端を表すデリミタです。 + デフォルトは } です。 + + + $left_delimiter + および + Smarty の構文解析を回避 + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-secure-dir.xml b/docs/ja/programmers/api-variables/variable-secure-dir.xml new file mode 100644 index 00000000..056f6a87 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-secure-dir.xml @@ -0,0 +1,55 @@ + + + + + + $secure_dir + + これは、セキュアであるとみなすローカルファイルやディレクトリを格納する配列です。 + {include} + および {fetch} + は、$security + が有効な場合にこの設定を使用します。 + + + + +$secure_dir の例 + +secure_dir = $secure_dirs; +?> +]]> + + + + + $security_settings + および $trusted_dir + も参照してください。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-security-settings.xml b/docs/ja/programmers/api-variables/variable-security-settings.xml new file mode 100644 index 00000000..a68ed4a2 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-security-settings.xml @@ -0,0 +1,77 @@ + + + + + + $security_settings + +$security + が有効な場合に、これらを使用してセキュリティ設定の指定やオーバーライドを行います。 + 以下のような設定があります。 + + + + + PHP_HANDLING - boolean。&true; の場合は、セキュリティのための + $php_handling + のチェックを行いません。 + + + + + IF_FUNCS - 配列。 + {if} + ステートメントで使用できる PHP 関数の名前を指定します。 + + + + + INCLUDE_ANY - boolean。&true; の場合は + $secure_dir + のリストの内容にかかわらず、ファイルシステムからテンプレートを + インクルード できます。 + + + + + PHP_TAGS - boolean。&true; の場合は、 + テンプレート内で + {php}{/php} + タグが使用できるようになります。 + + + + + MODIFIER_FUNCS - 配列。 + 変数の修飾子として使用できる PHP 関数の名前を指定します。 + + + + + ALLOW_CONSTANTS - boolean。&true; の場合は、テンプレート内で + {$smarty.const.FOO} + のようにして定数を使用することができます。 + + + + + diff --git a/docs/ja/programmers/api-variables/variable-security.xml b/docs/ja/programmers/api-variables/variable-security.xml new file mode 100644 index 00000000..f3b89b6b --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-security.xml @@ -0,0 +1,71 @@ + + + + + + $security + + $security は &true; または &false; となり、 + デフォルトは &false; です。これは、 + テンプレート言語によってシステムのセキュリティが脆弱になる危険性を減らしたい場合や、 + (例えばFTPによって) テンプレートを編集するグループにあまり信用がおけない時に最適です。 + セキュリティを有効にすると、 + $security_settings + によってオーバーライドされない限りは次の規則をテンプレート言語へ適用します。 + + + +If $php_handling +が SMARTY_PHP_ALLOW に設定されていれば、 +それを暗黙のうちに SMARTY_PHP_PASSTHRU に変更します。 + + + +PHP 関数を {if} +ステートメント内で使用することができません。ただし +$security_settings +で指定されているものは除きます。 + + +テンプレートは、 +$secure_dir +配列に格納されているディレクトリからのみ取得できます。 + + +ローカルファイルは、 +$secure_dir +配列に格納されているディレクトリから +{fetch} +を使用することによってのみ取得できます。 + + +{php}{/php} タグは使用できません。 + + +PHP 関数を修飾子として使用することはできません。ただし +$security_settings +で指定されているものは除きます。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-template-dir.xml b/docs/ja/programmers/api-variables/variable-template-dir.xml new file mode 100644 index 00000000..ce2ade93 --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-template-dir.xml @@ -0,0 +1,42 @@ + + + + + + $template_dir + + これは、デフォルトのテンプレートディレクトリの名前です。 + ファイルのインクルード時にリソースの種類を指定しなかった場合は、 + このディレクトリから探します。デフォルトは + ./templates で、 + これは、実行しているスクリプトと同じ場所にある + templates/ + ディレクトリを探すということです。 + + + テクニカルノート + + このディレクトリをwebサーバのドキュメントルート下に置く事を推奨しません。 + + + + diff --git a/docs/ja/programmers/api-variables/variable-trusted-dir.xml b/docs/ja/programmers/api-variables/variable-trusted-dir.xml new file mode 100644 index 00000000..e4d8881a --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-trusted-dir.xml @@ -0,0 +1,36 @@ + + + + + + $trusted_dir + + $trusted_dir は、 + $security + が有効な場合にのみ使用します。これは、 + 信用がおけると考えられる全ディレクトリパスの配列です。 + 信用がおけるディレクトリには、テンプレートから + {include_php} + によって直接実行される PHP スクリプトを置きます。 + + + diff --git a/docs/ja/programmers/api-variables/variable-use-sub-dirs.xml b/docs/ja/programmers/api-variables/variable-use-sub-dirs.xml new file mode 100644 index 00000000..77ee93fc --- /dev/null +++ b/docs/ja/programmers/api-variables/variable-use-sub-dirs.xml @@ -0,0 +1,72 @@ + + + + + + $use_sub_dirs + +$use_sub_dirs を &true; に設定すると、 +Smarty は +テンプレートディレクトリ と +キャッシュディレクトリ +の下にサブディレクトリを作ります。デフォルトは &false; です。 +何万ものファイルが生成される可能性のある環境では、 +ファイルシステムの速度低下を抑える助けになります。 +一方、環境次第では、ディレクトリを生成するためのPHPプロセスが許容されない事があるので、 +その場合はこの変数を無効にしなければなりません。デフォルトは無効になっています。 + + +サブディレクトリは効率がよいので、可能なら使用するとよいでしょう。 +理論的には、10のディレクトリがそれぞれ100のファイルを持っているほうが、1つのディレクトリに1000 +のファイルを持っている場合よりも良いパフォーマンスを得られます。 +少なくとも Solaris 7 (UFS) の場合には確実にそうでした……。 +ext3 や reiserfs などの最近のファイルシステムでも、そんなに違いはないでしょう。 + + + +テクニカルノート + + + $use_sub_dirs=true は、 + safe_mode=On + の場合は動作しません。safe_mode は切り替え可能で、デフォルトは off です。 + + + + $use_sub_dirs=true は、Windows ではうまく動作しません。 + + + Safe_mode は、PHP6 で廃止される予定です。 + + + + + + $compile_id、 + $cache_dir + および + $compile_dir + も参照してください。 + + + + diff --git a/docs/ja/programmers/caching.xml b/docs/ja/programmers/caching.xml new file mode 100644 index 00000000..a0ddd711 --- /dev/null +++ b/docs/ja/programmers/caching.xml @@ -0,0 +1,54 @@ + + + + + + キャッシュ + + キャッシュは出力内容をファイルに保存する事によって、 + display() + 又は + fetch() + を呼び出す速度を向上させるために使用されます。キャッシュが有効の場合、 + 出力を再生成せずに表示されます。特に処理時間が長いテンプレートは、 + キャッシュを使用する事で大きく速度が上昇するでしょう。 + キャッシュされるのは + display() + 又は + fetch() + の出力結果なので、1つのキャッシュファイルが複数のテンプレートファイルや + 設定ファイル等で構成されていることもあります。 + + + テンプレートが動的コンテンツの場合、何をどれくらいの期間キャッシュするのか注意が必要です。 + 例えば、Webサイトの一面にそれほど変更されないコンテンツが表示されている場合は、 + 一時間かそれ以上、このページをキャッシュしても問題なく動作するでしょう。 + 一方、一分経過するごとに新しい情報が格納される天気図をページに表示する場合は、 + このページをキャッシュする事は意味をなさないでしょう。 + +&programmers.caching.caching-setting-up; +&programmers.caching.caching-multiple-caches; +&programmers.caching.caching-groups; + +&programmers.caching.caching-cacheable; + + diff --git a/docs/ja/programmers/caching/caching-cacheable.xml b/docs/ja/programmers/caching/caching-cacheable.xml new file mode 100644 index 00000000..2f9863a7 --- /dev/null +++ b/docs/ja/programmers/caching/caching-cacheable.xml @@ -0,0 +1,140 @@ + + + + + + キャッシュ可能なプラグインの出力の制御 + + Smarty 2.6.0 から、プラグインを登録する際にキャッシュ可能なプラグインを宣言する事が出来ます。 + register_block()、 + + register_compiler_function() および + register_function() + の第3パラメータは $cacheable と呼ばれ、デフォルトは + &true; です。この時、Smarty 2.6.0 以前のプラグインの振る舞いになります。 + + + $cacheable=false であるプラグインが登録された時、 + プラグインはページがキャッシュから読まれる場合でもページを表示する度に呼ばれます。 + プラグイン関数は + {insert} + 関数に少し似た振る舞いをします。 + + + {insert} + とは対照的に、プラグインの属性はデフォルトではキャッシュされません。 + キャッシュするためには第4パラメータ $cache_attrs + によって宣言します。$cache_attrs + はキャッシュされるべき属性の名前を格納した配列であり、 + プラグイン関数はページがキャッシュから取り出される度に + 属性はキャッシュに記述されていたものとして値を取得します。 + + + + プラグインの出力がキャッシュされるのを防ぐ + +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')) { + // データベースから $obj を取り出して割り当てる + $smarty->assign_by_ref('obj', $obj); +} + +$smarty->display('index.tpl'); +?> +]]> + + + index.tpl は次のようになります。 + + +endtime} +]]> + + + たとえページがキャッシュされていても $obj + の endtime の秒数までは各ページの表示は変更されていきます。 + その後のリクエストでページがキャッシュに書かれている時、 + endtime 属性がキャッシュされたのでオブジェクトをデータベースから取り出す必要があるだけです。 + + + + + テンプレートの一節がキャッシュされるのを防ぐ + +caching = 1; + +function smarty_block_dynamic($param, $content, &$smarty) { + return $content; +} +$smarty->register_block('dynamic', 'smarty_block_dynamic', false); + +$smarty->display('index.tpl'); +?> +]]> + + + index.tpl は次のようになります。 + + + + + + + + ページをリロードした時に、両方の日付が異なる点に注意して下さい。 + 一つは dynamic であり、もう一つは static です。 + {dynamic}...{/dynamic} 間に含まれるコンテンツ全てを動的に生成する事ができ、 + 残るコンテンツはキャッシュされない事を確認して下さい。 + + + + + diff --git a/docs/ja/programmers/caching/caching-groups.xml b/docs/ja/programmers/caching/caching-groups.xml new file mode 100644 index 00000000..27017900 --- /dev/null +++ b/docs/ja/programmers/caching/caching-groups.xml @@ -0,0 +1,109 @@ + + + + + + キャッシュのグループ + + $cache_id のグループを設定する事で、 + より複雑なグループにする事が出来ます。これは $cache_id + の値の中の | によって各サブグループに分けられる事で実現できます。 + サブグループはいくらでも持つ事が出来ます。 + + + + + ディレクトリ階層のようなキャッシュグループを考える事が出来ます。 + 例えば 'a|b|c' というキャッシュグループは、 + '/a/b/c/' というディレクトリ構造だと考えられます。 + + + + clear_cache(null,'a|b|c') + はファイル '/a/b/c/*' を、 + clear_cache(null,'a|b') はファイル + '/a/b/*' を削除するのに似ています。 + + + + $compile_id + を clear_cache(null,'a|b','foo') のように指定すると、 + それをキャッシュグループに追加して + '/a/b/c/foo/' として扱います。 + + + + テンプレート名を + clear_cache('foo.tpl','a|b|c') のように指定すると、 + Smarty は '/a/b/c/foo.tpl' を削除しようと試みます。 + + + + また、'/a/b/*/foo.tpl' のように、 + 複数のキャッシュグループの下でテンプレート名を指定して削除する事は出来ません。 + キャッシュグループは左から右へ向かう順序でのみグループ化を定義できます。 + グループとしてそれらをクリアするためには、 + 単一のキャッシュグループ階層の下でテンプレートをグループ化する必要があります。 + + + + + キャッシュのグループ化はテンプレートディレクトリ階層によって混乱させられるべきではなく、 + テンプレートがどのような構造なのかも知り得ません。例えば、 + themes/blue/index.tpl のようなテンプレート構造があり、 + blue テーマのキャッシュファイルを全てクリアしたい時、 + テンプレートファイル構造をまねた + display('themes/blue/index.tpl','themes|blue') + のような キャッシュグループ構造を作成する必要があり、それならば + clear_cache(null,'themes|blue') + によってキャッシュをクリアする事が出来ます。 + + + $cache_id groups + +caching = true; + +// はじめの2つのcache_idグループが"sports|basketball"のキャッシュを全てクリアします。 +$smarty->clear_cache(null,'sports|basketball'); + +// はじめのcache_idグループが"sports"のキャッシュを全てクリアします。 +// これは"sports|basketball"又は"sports|(anything)|(anything)|(anything)|..."を用いてインクルードされたものでしょう。 +$smarty->clear_cache(null,'sports'); + +// cache_id として"sports|basketball"を用いてfoo.tpl のキャッシュファイルをクリアします。 +$smarty->clear_cache('foo.tpl','sports|basketball'); + + +$smarty->display('index.tpl','sports|basketball'); +?> +]]> + + + + + + diff --git a/docs/ja/programmers/caching/caching-multiple-caches.xml b/docs/ja/programmers/caching/caching-multiple-caches.xml new file mode 100644 index 00000000..b4fef941 --- /dev/null +++ b/docs/ja/programmers/caching/caching-multiple-caches.xml @@ -0,0 +1,136 @@ + + + + + + ページごとに複数のキャッシュ + + display() + や fetch() + のひとつの呼び出しから、複数のキャッシュファイルを持つ事が出来ます。 + 例えば display('index.tpl') を呼び出した時、 + いくつかの状況に応じて異なった内容の出力を持っているかもしれず、 + その出力ごとに別のキャッシュを持たせたいと思うかもしれません。 + これは、関数を呼び出す時に第2パラメータとして + $cache_id を渡す事で可能です。 + + + display() に $cache_id を渡す + +caching = 1; + +$my_cache_id = $_GET['article_id']; + +$smarty->display('index.tpl', $my_cache_id); +?> +]]> + + + + 上記の例では、$cache_id として + display() + に変数 $my_cache_id を渡しました。 + それぞれにユニークな $my_cache_id + の値を与える事で、index.tpl の別々のキャッシュが生成されます。 + この例では、$cache_id として使われる + article_id は URL から渡されています。 + + + テクニカルノート + + クライアント (Web ブラウザ) から Smarty (又はいくつかの PHP アプリケーション) + に値を渡すときには用心しなくてはいけません。前の例で、URL から article_id + を扱うのは便利そうにみえましたが、それは悪い結果をもたらすかもしれません。 + $cache_id はファイルシステムにディレクトリを作成するのに使用され、 + そしてもしユーザーが article_id に極めて大きな値を渡そうとしたり、速いペースでランダムの + article_id を送信するスクリプトを記述した場合、 + これはサーバレベルの問題を引き起こすかもしれません。必ず、 + 値を利用する前に渡されたデータの汚染チェックを行って下さい。おそらくこの例では、 + あなたは article_id が10文字かつ英数字のみで構成され、データベース内に有効な + article_id が存在しなければならない事を知っています。これをチェックして下さい! + + + + is_cached() と + clear_cache() + には、第2パラメータとして同じ $cache_id + を渡すようにしましょう。 + + + is_cached() に cache_id を渡す + +caching = 1; + +$my_cache_id = $_GET['article_id']; + +if(!$smarty->is_cached('index.tpl',$my_cache_id)) { + // キャッシュが有効でないので、ここで変数の割り当てを行いますn + $contents = get_database_contents(); + $smarty->assign($contents); +} + +$smarty->display('index.tpl',$my_cache_id); +?> +]]> + + + + clear_cache() + の第1パラメータとして &null; を渡すと、指定した + $cache_id のすべてのキャッシュをクリアすることができます。 + + + 特定のcache_idの全てのキャッシュをクリアする + +caching = 1; + +// cache_idが"sports"のキャッシュをすべてクリアする +$smarty->clear_cache(null,'sports'); + +$smarty->display('index.tpl','sports'); +?> +]]> + + + + このように同じ $cache_id を与える事で、 + キャッシュをまとめて グループ化 する事が出来ます。 + + + + + diff --git a/docs/ja/programmers/caching/caching-setting-up.xml b/docs/ja/programmers/caching/caching-setting-up.xml new file mode 100644 index 00000000..c8002cf1 --- /dev/null +++ b/docs/ja/programmers/caching/caching-setting-up.xml @@ -0,0 +1,207 @@ + + + + + + キャッシュのセットアップ + + まずはじめにキャッシュを有効にします。これは、 + $caching = 1 (あるいは 2) + を設定するだけです。 + + + キャッシュを有効にする + +caching = 1; + +$smarty->display('index.tpl'); +?> +]]> + + + + いつものようにテンプレートから出力内容をパースするために + display('index.tpl') を呼び出しますが、 + キャッシュを有効にした事でその出力内容をコピーしたファイルが + $cache_dir + 内に保存されます。次回 display('index.tpl') + が呼ばれる際には、再びテンプレートをパースする代わりにキャッシュされたコピーが使用されます。 + + + テクニカルノート + + $cache_dir + 内のファイルにはテンプレート名に類似した名前が付けられます。 + 拡張子は .php ですが、実際にはPHPスクリプトとして実行されません。 + これらのファイルは編集しないで下さい! + + + + 各々のキャッシュされたページは、 + $cache_lifetime + 生存時間が限られています。デフォルト値は 3600 秒です。 + 期限が過ぎた後、キャッシュは再生成されます。 + $caching=2 + を設定する事によって、個々のキャッシュに自分自身の生存時間を与える事が可能です。詳細は、 + $cache_lifetime + を参照して下さい + + + キャッシュごとに生存時間を設定する + +caching = 2; // 生存時間はキャッシュごと + +// index.tplに5分のcache_lifetimeをセットします +$smarty->cache_lifetime = 300; +$smarty->display('index.tpl'); + +// home.tplに1時間のcache_lifetimeをセットします +$smarty->cache_lifetime = 3600; +$smarty->display('home.tpl'); + +// 注: $caching = 2の時、次のような$cache_lifetimeの設定は動作しません。 +// home.tplのキャッシュの生存時間は既に1時間にセットされているので、 +// もはや、$cache_lifetimeの値が尊重される事はありません。 +// home.tplのキャッシュは、今までどおり1時間後に満期になるでしょう。 +$smarty->cache_lifetime = 30; // 30 seconds +$smarty->display('home.tpl'); +?> +]]> + + + + + $compile_check が有効の時、 + キャッシュファイルに入り組んだすべてのテンプレートファイルと設定ファイルは + 修正されたかどうかをチェックされます。 + もしキャッシュが生成されてからいくつかのファイルが修正されていた場合、 + キャッシュは即座に再生成されます。 + これは最適なパフォーマンスのためには僅かなオーバーヘッドになるので、 + $compile_check + は &false; にして下さい。 + + + $compile_check を有効にする + +caching = 1; +$smarty->compile_check = true; + +$smarty->display('index.tpl'); +?> +]]> + + + + + $force_compile が有効の場合、 + キャッシュファイルは常に再生成されます。これは事実上、キャッシュ機能を無効にします。通常、 + $force_compile + は デバッグ + 目的でのみ使用し、キャッシュは + $caching + = 0. + にセットして無効にするのがさらに効率の良い方法です。 + + + is_cached() + 関数は、テンプレートが有効なキャッシュを持っているかどうかを調べるのに使われます。 + もしデータベースフェッチを必要とするようなテンプレートのキャッシュが存在する場合、 + フェッチ過程をスキップするためにこの関数を使う事が出来ます。 + + + is_cached() を使用する + +caching = 1; + +if(!$smarty->is_cached('index.tpl')) { + // キャッシュが有効でないので、ここで変数の割り当てを行います + $contents = get_database_contents(); + $smarty->assign($contents); +} + +$smarty->display('index.tpl'); +?> +]]> + + + + {insert} + テンプレート関数によってページの一部を動的に保つ事が出来ます。 + 例えば、すべてのページは右下に表示されるバナー以外はキャッシュが可能だとします。 + バナー部分には + {insert} + 関数を使う事によって、キャッシュされたコンテンツの中に動的な要素を保つ事ができます。 + 詳細な説明や例は、{insert} + のドキュメントを参照してください。 + + + clear_all_cache() + 関数または clear_cache() + 関数によって、個々のキャッシュファイル (そしてグループ) + をクリアする事ができます。 + + + キャッシュをクリアする + +caching = 1; + +// 全てのキャッシュファイルをクリアします +$smarty->clear_cache('index.tpl'); + +// index.tplのキャッシュファイルのみクリアします +$smarty->clear_all_cache(); + +$smarty->display('index.tpl'); +?> +]]> + + + + + + diff --git a/docs/ja/programmers/plugins.xml b/docs/ja/programmers/plugins.xml new file mode 100644 index 00000000..c5e0c54e --- /dev/null +++ b/docs/ja/programmers/plugins.xml @@ -0,0 +1,70 @@ + + + + + + プラグインによる Smarty の拡張 + + Smarty 2.0 から導入されたプラグインアーキテクチャにより、 + Smarty のほとんど全ての機能がカスタマイズ可能になりました。 + プラグインには次のものがあります。 + + テンプレート関数プラグイン + 修飾子プラグイン + ブロック関数プラグイン + コンパイラ関数プラグイン + プリフィルタプラグイン + ポストフィルタプラグイン + アウトプットフィルタプラグイン + リソースプラグイン + インサートプラグイン + + リソースを除いて、register_* API + によって関数を登録する古い方法の後方互換性はサポートされます。 + API を使わずに、代わりに $custom_funcs, + $custom_mods や その他のクラス変数を変更していたなら、 + API を使用するか、行った拡張をプラグインに変換するようにスクリプトを調整する必要があります。 + + +&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/ja/programmers/plugins/plugins-block-functions.xml b/docs/ja/programmers/plugins/plugins-block-functions.xml new file mode 100644 index 00000000..9c22d831 --- /dev/null +++ b/docs/ja/programmers/plugins/plugins-block-functions.xml @@ -0,0 +1,123 @@ + + + + + ブロック関数プラグイン + + + void smarty_block_name + array $params + mixed $content + object &$smarty + boolean &$repeat + + + + ブロック関数は、{func} .. {/func} 形式の関数です。 + この関数によって囲まれたテンプレートのブロックの内容を処理します。 + ブロック関数は、同じ名前の + カスタム関数 + より優先されます。つまり、テンプレート関数 + {func} とブロック関数 + {func}..{/func} の両方を定義することはできません。 + + + + + デフォルトでは、実装された関数はSmartyによって2度 + (1度目は開始タグ、2度目は終端タグによって)呼び出されます + (この動作の変更方法は次の $repeat を参照)。 + + + ブロック関数の開始タグのみ 属性 + を持つ場合があります。全ての属性はテンプレートからテンプレート関数に、 + 連想配列として $params に格納された状態で渡されます。 + また、終端タグを処理している時に開始タグの属性にアクセスする事が可能です + + + 変数 $content の値は、 + 関数が開始タグ又は終端タグのどちらから呼ばれるかによって変わります。 + 開始タグの場合は &null;、終端タグの場合はテンプレートブロックのコンテンツです。 + テンプレートブロックが Smarty によって既に処理されている事に注意して下さい。 + つまり、受け取るのはテンプレートソースではなくテンプレートの出力です。 + + + + $repeat パラメータは実装された関数に参照によって渡され、 + そのブロックが何回表示されるのかを操作する事ができます。 + デフォルトでは、最初のブロック関数の呼び出し(開始タグ)のとき + $repeat は &true; で、その後に呼び出される場合(終端タグ)は、 + &false; となります。 実装された関数で $repeat を &true; + とする事で、{func}...{/func} 間のコンテンツが再度評価され、 + $content パラメータに新しいブロックコンテンツが格納された状態で、 + 再び呼び出されます。 + + + + + ネストしたブロック関数がある場合、変数 + $smarty->_tag_stack + にアクセスする事で親のブロック関数を見つける事が可能です。 + var_dump() + を行い、構造をはっきりと理解すべきべきです。 + + + + ブロック関数プラグイン + + +]]> + + + + + register_block() + および + unregister_block() + も参照してください。 + + + + + diff --git a/docs/ja/programmers/plugins/plugins-compiler-functions.xml b/docs/ja/programmers/plugins/plugins-compiler-functions.xml new file mode 100644 index 00000000..ff27e26e --- /dev/null +++ b/docs/ja/programmers/plugins/plugins-compiler-functions.xml @@ -0,0 +1,98 @@ + + + + + コンパイラ関数プラグイン + + コンパイラ関数プラグインはテンプレートのコンパイル時にのみ呼び出されます。 + これらのプラグインは、PHPコードまたは時間に依存する静的コンテンツをテンプレートに含める時に便利です。 + コンパイラ関数と カスタム関数 + が双方とも同じ名前で登録された場合は、コンパイラ関数が優先されます。 + + + + mixed smarty_compiler_name + string $tag_arg + object &$smarty + + + + コンパイラ関数には2つのパラメータを渡します。 + これらのパラメータは、タグ内の文字列(基本的に関数名から終端デリミタまでの全ての文字列)と、 + Smartyのオブジェクトです。戻り値には、コンパイルされたテンプレートに挿入されるPHPコードを返します。 + + + + シンプルなコンパイラ関数プラグイン + +_current_file . " compiled at " . date('Y-m-d H:M'). "';"; +} +?> +]]> + + + この関数はテンプレートから次のように呼ばれます。 + + + + + + コンパイルされたテンプレートの結果として生じるPHPコードは次のようになります。 + + + +]]> + + + + + + register_compiler_function() + および + + unregister_compiler_function() + も参照してください。 + + + + + diff --git a/docs/ja/programmers/plugins/plugins-functions.xml b/docs/ja/programmers/plugins/plugins-functions.xml new file mode 100644 index 00000000..82641577 --- /dev/null +++ b/docs/ja/programmers/plugins/plugins-functions.xml @@ -0,0 +1,132 @@ + + + + + テンプレート関数プラグイン + + + void smarty_function_name + array $params + object &$smarty + + + + テンプレートからテンプレート関数に渡された全ての + 属性 は、 + 連想配列として $params に格納されます。 + + + 関数の出力(戻り値)はテンプレート関数のタグの部分と置き換えられます(例: + {fetch} + 関数)。 あるいは何も出力せずに単に他のタスクを実行する事ができます(例: + + {assign} 関数)。 + + + 関数によっていくつかの変数をテンプレートに割り当てる必要がある、 + もしくは Smarty に提供された他の機能を使う必要がある場合は、 + 提供された $smarty オブジェクトを使用して + $smarty->foo() のようにします。 + + + + + 出力ありのテンプレート関数プラグイン + + +]]> + + + + + 次のようにテンプレートで使用する事ができます。 + + +質問: 将来、タイムトラベルは実現可能でしょうか? +答え: {eightball}. + + + + 出力なしのテンプレート関数プラグイン + +trigger_error("assign: パラメータ 'var' がありません"); + return; + } + + if (!in_array('value', array_keys($params))) { + $smarty->trigger_error("assign: パラメータ 'value' がありません"); + return; + } + + $smarty->assign($params['var'], $params['value']); +} +?> +]]> + + + + + register_function() + および + unregister_function() + も参照してください。 + + + + diff --git a/docs/ja/programmers/plugins/plugins-howto.xml b/docs/ja/programmers/plugins/plugins-howto.xml new file mode 100644 index 00000000..c55236dd --- /dev/null +++ b/docs/ja/programmers/plugins/plugins-howto.xml @@ -0,0 +1,46 @@ + + + + + + プラグインの動作原理 + + プラグインは要求があると常に読み込まれます。テンプレートから呼び出された + 修飾子・関数・リソース等のプラグインだけが読み込まれます。 + さらに各プラグインは同じリクエスト内に Smarty + の異なるインスタンスが複数実行されていても、読み込まれるのは一度だけです。 + + + プリフィルタ/ポストフィルタとアウトプットフィルタは少し特殊です。 + これらはテンプレートから呼び出されないので、テンプレートが処理される前に + API 関数を経由して明示的に登録または読み込まれる必要があります。 + 同じ種類の複数のフィルタが実行される順序は、それらが登録または読み込まれる順序によって決まります。 + + + プラグインディレクトリ + は、単一のパスを示す文字列または複数のパスを格納した配列でとなります。 + プラグインのインストールは、単にプラグインファイルをいずれかのプラグインディレクトリ内に置くだけです。 + そうすれば Smarty はそれを自動的に使用します。 + + + + diff --git a/docs/ja/programmers/plugins/plugins-inserts.xml b/docs/ja/programmers/plugins/plugins-inserts.xml new file mode 100644 index 00000000..4d2a7bfd --- /dev/null +++ b/docs/ja/programmers/plugins/plugins-inserts.xml @@ -0,0 +1,72 @@ + + + + + インサートプラグイン + + インサートプラグインは、テンプレートの + {insert} + タグによって呼び出される関数を実装するために使用されます。 + + + + string smarty_insert_name + array $params + object &$smarty + + + + この関数の第1パラメータは、insert タグに渡される属性の連想配列です。 + + + インサートプラグイン関数は戻り値として、 + テンプレートの {insert} タグの部分を置き換える結果を返します。 + + + インサートプラグイン + +trigger_error("insert time: missing 'format' parameter"); + return; + } + return strftime($params['format']); +} +?> +]]> + + + + + diff --git a/docs/ja/programmers/plugins/plugins-modifiers.xml b/docs/ja/programmers/plugins/plugins-modifiers.xml new file mode 100644 index 00000000..7a531483 --- /dev/null +++ b/docs/ja/programmers/plugins/plugins-modifiers.xml @@ -0,0 +1,118 @@ + + + + + 修飾子プラグイン + + 修飾子プラグイン + は、テンプレートの変数が表示される前または他のコンテンツに使用される前に適用される関数です。 + + + + mixed smarty_modifier_name + mixed $value + [mixed $param1, ...] + + + + 修飾子プラグインへの第1パラメータは、この修飾子によって影響を受ける値です。 + 残りのパラメータはどのような動作が行われるかによって任意です。 + + + 修飾子プラグインは処理の結果を + 返す + 必要があります。 + + + + シンプルな修飾子プラグイン + + このプラグインは、基本的に組み込みの PHP 関数の名前を変えただけのものです。 + 追加のパラメータはありません。 + + + +]]> + + + + + 更に複雑な修飾子プラグイン + + $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; +} +?> +]]> + + + + register_modifier() + および + unregister_modifier() + も参照してください。 + + + + diff --git a/docs/ja/programmers/plugins/plugins-naming-conventions.xml b/docs/ja/programmers/plugins/plugins-naming-conventions.xml new file mode 100644 index 00000000..435b3f66 --- /dev/null +++ b/docs/ja/programmers/plugins/plugins-naming-conventions.xml @@ -0,0 +1,99 @@ + + + + + + 命名規約 + + プラグインファイルとその関数が Smarty + によって認識されるためには特有の命名規約に従わなければなりません。 + + + プラグインファイル は次のように指定します。 +
      + + + type.name.php + + +
      +
      + + + + type は次のプラグインタイプのうちのいずれか1つです。 + + function + modifier + block + compiler + prefilter + postfilter + outputfilter + resource + insert + + + + + + name には英数字とアンダースコアのみ使用できます。 + PHP の変数 + を参照してください。 + + + + 例: function.html_select_date.php、 + resource.db.php、 + modifier.spacify.php。 + + + + + + + PHP ファイル内で定義する プラグイン関数 + は次のように指定します。 +
      + + smarty_type_name + +
      +
      + + + + type および name + の意味は前述したものと同じです。 + + + たとえば foo という名前の修飾子の場合は、 + function smarty_modifier_foo() となります。 + + + + 必要なプラグインファイルが見当たらないか、 + ファイル名又はプラグイン関数名が不正な場合 Smarty は適切なエラーメッセージを出力します。 + +
      + + diff --git a/docs/ja/programmers/plugins/plugins-outputfilters.xml b/docs/ja/programmers/plugins/plugins-outputfilters.xml new file mode 100644 index 00000000..198367f0 --- /dev/null +++ b/docs/ja/programmers/plugins/plugins-outputfilters.xml @@ -0,0 +1,75 @@ + + + + + アウトプットフィルタプラグイン + + アウトプットフィルタプラグインは、テンプレートが読み込まれて実行された後 + (しかしその出力が表示される前)にテンプレートの出力を操作します。 + + + + string smarty_outputfilter_name + string $template_output + object &$smarty + + + + アウトプットフィルタの第1パラメータは、処理を行うテンプレート出力です。 + 第2パラメータは、プラグインを呼び出したSmartyのインスタンスです。 + このプラグインは戻り値に、修正されたテンプレート出力を返すようにして下さい。 + + + アウトプットフィルタプラグイン + + +]]> + + + + + register_outputfilter() + および + + unregister_outputfilter() + も参照してください。 + + + + diff --git a/docs/ja/programmers/plugins/plugins-prefilters-postfilters.xml b/docs/ja/programmers/plugins/plugins-prefilters-postfilters.xml new file mode 100644 index 00000000..f33f1456 --- /dev/null +++ b/docs/ja/programmers/plugins/plugins-prefilters-postfilters.xml @@ -0,0 +1,118 @@ + + + + + + プリフィルタ/ポストフィルタプラグイン + + プリフィルタ/ポストフィルタプラグインは概念において非常によく似ています。 + それらの違いは実行されるタイミングにあります。 + + + + string smarty_prefilter_name + string $source + object &$smarty + + + + プリフィルタは、テンプレートソースをコンパイルする直前に何らかの処理を行うために使用されます。 + プリフィルタ関数への第1パラメータはテンプレートソースであり、 + これは他のプリフィルタによって既に修正されている可能性があります。 + このプラグインは戻り値に、修正されたテンプレートソースを返すようにして下さい。 + また、このテンプレートソースはどこにも保存されず、コンパイルする目的だけに使用される事に注意して下さい。 + + + + string smarty_postfilter_name + string $compiled + object &$smarty + + + + ポストフィルタは、テンプレートのコンパイルが行われてファイルシステムに保存される前に、 + そのテンプレートのコンパイル結果(PHPスクリプト)に何らかの処理を行うために使用されます。 + ポストフィルタへの第1パラメータはコンパイルされたテンプレートソースであり、 + これは他のポストフィルタによって既に修正されている可能性があります。 + このプラグインは戻り値に、修正されたテンプレートソースを返すようにして下さい。 + + + プリフィルタプラグイン + +]+>!e', 'strtolower("$1")', $source); + } +?> +]]> + + + + + ポストフィルタプラグイン + +\nget_template_vars()); ?>\n" . $compiled; + return $compiled; + } +?> +]]> + + + + + register_prefilter()、 + + unregister_prefilter()、 + + register_postfilter() + および + + unregister_postfilter() + も参照してください。 + + + + diff --git a/docs/ja/programmers/plugins/plugins-resources.xml b/docs/ja/programmers/plugins/plugins-resources.xml new file mode 100644 index 00000000..f1f357e9 --- /dev/null +++ b/docs/ja/programmers/plugins/plugins-resources.xml @@ -0,0 +1,168 @@ + + + + + リソースプラグイン + + リソースプラグインは、テンプレートソースやPHPスクリプトのコンポーネントを + Smarty に提供する一般的な方法と意図されています + (例: データベース, LDAP, 共有メモリ, ソケット等)。 + + + + 各種リソースのために4つの関数を登録する必要があります。 + これらの関数の最初のパラメータには要求されたリソースが渡され、 + 最後のパラメータには Smarty のオブジェクトが渡されます。 + 残りのパラメータは関数によって異なります。 + + + + + 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 + + + + + + 1つめの関数 source() ではリソースを取得します。 + 第2パラメータ $source + は参照で渡され、ここに結果が格納されます。 + 戻り値は、リソースの取得に成功すれば &true;、 + それ以外は &false; となります。 + + + + 2つめの関数 timestamp() は、 + 要求されたリソースが最後に修正された時間(UNIXタイムスタンプ)を取得します。 + 第2パラメータ $timestamp は参照で渡され、 + ここにタイムスタンプが格納されます。タイムスタンプが取得できれば + &true;、それ以外は &false; を返します。 + + + + 3つめの関数 secure() は、 + 要求されたリソースがセキュアであるかどうかに応じて &true; 又は &false; を返します。 + この関数はテンプレートリソースのためにだけ用いられますが、定義する必要があります。 + + + + 4つめの関数 trusted() は、 + 要求されたリソースが信用できるかどうかに応じて &true; 又は &false; を返します。 + この関数を使用するのは、 + {include_php} タグあるいは + {insert} + タグで src 属性によって要求された PHP + スクリプトコンポーネントのみです。 + しかし、テンプレートリソースであっても定義する必要があります。 + + + + + + リソースプラグイン + +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) +{ + // ここでデータベースを呼び出し、$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) +{ + // 全てのテンプレートがセキュアであるとみなします + return true; +} + +function smarty_resource_db_trusted($tpl_name, &$smarty) +{ + // テンプレートでは使用しません +} +?> +]]> + + + + + register_resource() + および + unregister_resource() + も参照してください。 + + + + + diff --git a/docs/ja/programmers/plugins/plugins-writing.xml b/docs/ja/programmers/plugins/plugins-writing.xml new file mode 100644 index 00000000..d09925b2 --- /dev/null +++ b/docs/ja/programmers/plugins/plugins-writing.xml @@ -0,0 +1,62 @@ + + + + + + プラグインの記述 + + プラグインは Smarty によってファイルシステムから自動的に読み込まれるか、 + register_* API 関数のうちの1つを経由して動的に登録する事ができます。 + また、それらは unregister_* API 関数を使う事によって未登録にする事ができます。 + + + 動的に登録されるプラグインについてはプラグイン関数の命名規約に従う必要はありません。 + + + Smarty にバンドルされたいくらかのプラグインに関する場合と同様に、 + プラグインが別のプラグインによって提供される機能に依存する場合は次の方法で必要とされるプラグインを読み込みます。 + + +_get_plugin_filepath('function', 'html_options'); +?> +]]> + + + 基本的に、Smarty のオブジェクトは常に最後のパラメータとしてプラグインに渡されます。 + ただし、例外が2つあります。 + + + + 変数の修飾子は Smarty オブジェクトを渡しません。 + + + ブロックの場合は Smarty オブジェクトの後に $repeat + が渡されます。これは、以前のバージョンの Smarty + との後方互換性を保つためのものです。 + + + + + + diff --git a/docs/ja/programmers/smarty-constants.xml b/docs/ja/programmers/smarty-constants.xml new file mode 100644 index 00000000..030d641c --- /dev/null +++ b/docs/ja/programmers/smarty-constants.xml @@ -0,0 +1,91 @@ + + + + + +定数 + + + SMARTY_DIR + + この定数には、Smarty のクラスファイルが置かれた場所への + システム上でのフルパス を指定します。 + 定義されていない場合、Smarty は自動的に適切な値に決定しようと試みます。 + 定義した場合、必ずスラッシュで終わるようにします。 + + + SMARTY_DIR + + +]]> + + + + $smarty.const + および + $php_handling 定数 + も参照してください。 + + + + + SMARTY_CORE_DIR + + この定数には、Smarty のコアファイルの置かれた場所への + フルパス を指定します。定義されていない場合、Smartyは + SMARTY_DIR. + の下の internals/ サブディレクトリをデフォルトとします。 + 定義した場合は、必ずスラッシュで終わるようにします。 + 手動で core.* ファイルをインクルードするような時にはこの定数を使用して下さい。 + + + SMARTY_CORE_DIR + + +]]> + + + + + $smarty.const + も参照してください。 + + + + diff --git a/docs/ja/translation.xml b/docs/ja/translation.xml new file mode 100644 index 00000000..94fa16ac --- /dev/null +++ b/docs/ja/translation.xml @@ -0,0 +1,25 @@ + + + + + このファイルは、Smarty 日本語マニュアルの翻訳状況を示すものです。 + このファイルは、smarty/docs/scripts/revcheck.php によって自動的に作成されます。 + + + + + + + + + + + + + + + + + + + \ No newline at end of file