問題タブ [smarty3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - {if}{else} が smarty で正しく動作しない
テンプレートに以下の smarty コードがあります
variable$smarty.capture.diff
と$smarty.const.UPDATE_BLOCK_SECONDS
の両方を出力すると、正しい値 (98969 と 86400 など) が出力されますが、{if} ステートメントは機能せず、常に値「disable update」が出力されます。
smarty - プラグインをsmarty3構文で書き直します
エラーの原因となっているため、修飾子'truncate'の呼び出し方法を書き直す必要があります。 _getfilepathはバージョン3には存在しません
require_once $ smarty-> getPluginsDir('modifier'、'truncate');
smarty - Smarty {strip} を使用すると、パフォーマンスにどのような影響がありますか?
Smarty に {strip} 修飾子を使用することの長所と短所をいつも考えていました。
サーバーがテンプレートから空のスペースを取り除くのにかかる余分な時間は、小さなファイルでのロード時間の短縮よりも重要ですか?
php - カスタムsmartyphpプラグインの多次元配列
カスタムのsmartyphpプラグインメソッドを作成するときに、パラメータの1つとして多次元配列を渡すことは可能ですか?
おそらく次のようなもの
上記はシーケンシャル配列です。当然、連想配列のサポートも同様に壮大です。
私は何時間もドキュメントとフォーラムを精査してきましたが、残念ながら、私が見つけたものはすべて「いいえ」と言っていますが、5歳(またはそれ以上)でもあります
ありがとう。
php - Smarty 3テンプレートに変数を割り当てる
少し問題があります。smarty 3 テンプレート ファイル内でテンプレート変数を割り当てようとしていますが、登録されていないようです。
私はコントローラでこれを使用できることを知っています:
それを使いたくない。私はこれを試しました:
しかし、何らかの理由で機能していないようです。
これが使用されているテンプレートは、別のテンプレートを拡張しています。
変数のスコープをグローバルに設定しようとしました。
もう1つの奇妙なことは、すぐ下に出力されている変数を割り当てようとしても、割り当てメソッドがすべて壊れているかのように空を返すことです。エラーはありませんが。
smarty で割り当てるのは悪い習慣だと考える人もいるかもしれませんが、私の理由は、テンプレートでメタ情報を指定できるようになるからです。これは、メタ調整を実行するときに、誰かがコントローラーにアクセスするのではなく、テンプレートで実行できることを意味します。
誰かが光を当てることができることを願って、
読んでくれてありがとう。
php - プラグインが呼び出される前に、smarty プラグインからの割り当ての値を出力します。
smarty を中心に広告システムを開発しようとしています。そこで、ページに吐き出されると次のように見えるプラグインを思いつきました。
問題は、その関数内に AD_HEAD という変数が割り当てられていることです。
これで、AD_HEAD はタグの上に表示されるはずです。
したがって、基本的な html は次のようになります。
ご覧のとおり、AD_HEAD は load_ad よりも上に配置されています。
問題は、それが高く配置されているため、空のままですが、それを低くすると load_ad が機能することです。
どうすればこれを機能させることができますか、またはこれを別の方法で開発する必要がありますか?
php - smarty - 変数「{$myvar@display}」を出力する方法
賢い変数出力ブロックで「@」記号をエスケープする方法が見つからないようです。
これが私のセットアップです:
私のテンプレートファイルでは:
出力:
「@」記号を変更せずにそれを表示する方法についてのアイデア (これはアプリケーション全体で使用される規則であり、これを制御できないため、これを変更することはできません)
LAMP 5.2.17、Smarty 3 の実行
PS私は成功せずにこれを試しました...
出力
php - PHP Smarty tpl、すべてのページで同じ php コードを呼び出す
だから私は asp.net がマスターページを行うのと同じように smarty を使いたいです。すべてのページに必要なドロップダウン メニューがあり、いくつかの動的データがあります。master.tpl ファイルを使用するすべての php スクリプトでこの関数を呼び出したり再現したりしたくありません。ファイルが使用され、さらに正しいスクリプトが実行されます。
私はこれを正しい方法で行うことを検討しているので、{php} などの非推奨のものは使用しません。
ありがとう。
php - Codeigniter と Ci-Smarty の "not callable" エラーを含む Smarty 出力フィルター
現在、ci-Smarty で codeigniter 2 を使用しています。スマートな出力フィルターを追加しようとしているだけですが、うまくいきません。関数が見つからないかのように?
出力フィルター関数としてプラグインを使用しており、次のコードがあります。
場所: /libraries/Smarty.php
場所: /third_party/Smarty/plugins/function.protect_email.php
上記は、次の賢いエラーをスローするようです:
致命的なエラー: /home/something/public_html/application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php:717 でメッセージ 'outputfilter "protect_email" not callable' を伴うキャッチされない例外 'SmartyException' スタック トレース: #0 /home/something/public_html /application/libraries/Smarty.php(46): Smarty_Internal_TemplateBase->loadFilter('output', 'protect_email') #1 /home/something/public_html/system/core/Loader.php(1095): CI_Smarty->__construct(配列) #2 /home/something/public_html/system/core/Loader.php(975): CI_Loader->_ci_init_class('Smarty', '', NULL, NULL) #3 /home/something/public_html/system/core /Loader.php(216): CI_Loader->_ci_load_class('smarty', NULL, NULL) #4 /home/something/public_html/application/libraries/MY_Parser.php(29):CI_Loader->library('smarty') #5 /home/something/public_html/system/core/Loader.php(1099): MY_Parser->__construct() #6 /home/something/public_html/system/core/Loader. php(938): CI_Loader->_ci_init_class('Parser', 'MY_', NULL, NULL) #7 /home/something/public_html/system/core/Loader.php(216): CI_Loa in /home/something/public_html /application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php 行 717/home/something/public_html/application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php の 717 行目の CI_Loa/home/something/public_html/application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php の 717 行目の CI_Loa
長くなってすみません!エラー全体を見ると役立つかもしれないと思っただけです。
読んでくれてありがとう。誰かが助けてくれることを願っています。
-->EDIT また、次を使用してプラグイン ディレクトリの場所を明示的に設定しようとしました。
正しい場所をエコーアウトしましたが、それでも同じ問題が発生します:(
php - サブテンプレートとプラグインによる Smarty レンダリング
テンプレート内に通知ボックスを表示するのに苦労しています。Smarty を利用しています。
main.tpl テンプレートがあります。
notification.tpl:
smarty を強化し、クラスなどを含む私の index.php ページには、基本的なものがあります。
上記の $content 内には、以下が含まれます。
ウィジェットプラグインを処理するプラグインとクラスを作成しました-上記は完全に機能します(フォームが含まれており、ログインできます)。ただし、間違ったユーザー名/パスワードが入力された場合、メイン テンプレートの通知領域に詳細を追加しようとしていますが、何らかの理由でウィジェット プラグイン内でこれを行うことができないようです。
私の function.widget.php ファイル:
私のウィジェットクラス、widget.class.php:
レンダリングされる index.php 内に通知を追加すると、私の通知クラスは機能します。ただし、ウィジェットのプラグイン (function.widget.php) 内に追加すると、何らかの理由でこれらの通知が表示されません。すべてのサブアイテムはかなり後で処理されるようですが、すでに宣言されているため、追加されません。
だから私の質問は、ページに常に2つのウィジェットを配置できるので、すべてのエラーを2回表示したくない場合、通知部分をどこに正しく割り当てる必要があるかということです。