0

Smarty 環境を正常に動作させるために独自の修飾子関数の開発を開始して以来、私は苦労してきました。具体的には、「組み込み」関数を使用できるか、独自の関数を使用できるかを選択する必要があるようですが、両方を使用することはできません。私は何かが欠けていると確信しており、誰かが私が何をする必要があるかを教えてくれることを願っています.

私が現在行ったことは次のとおりです。

  1. 組み込み関数を使用する場合-大文字化、@debug_print_varなどの修飾子-これらの組み込みスクリプトが存在するディレクトリを特に指定する必要なく、機能するようです
  2. 私が独自のスクリプトを開発したとき (現在は 2 つ持っています)、スクリプトを認識させる場所を明示する必要があったため、以下のコードを追加しました。

コード:

 public static function init () {
    $object = new Smarty();
    $object->setTemplateDir ( LG_FE_DIR . '/templates/uncompiled' );
    $object->setCompileDir ( LG_FE_DIR . '/templates/compiled'  );
    $object->setCacheDir ( LG_FE_DIR . '/templates/cache' );
    $object->setConfigDir ( LG_FE_DIR . '/templates/configs' );
    // $object->setPluginsDir ( LG_FE_DIR . '/externals/Smarty/libs/plugins');
    $object->setPluginsDir ( LG_FE_DIR . '/templates/plugins_dir' );

    return $object;
}

コメントアウトされた行からわかるように、デフォルトの Smarty ライブラリと自分自身のライブラリの両方に対して 2 つの「setPluginsDir()」呼び出しを試みましたが、明らかに 1 つのディレクトリしか登録できません。

ありとあらゆる助けをいただければ幸いです。

4

1 に答える 1

1

試してみてくださいaddPluginsDir。この方法を使用すると、既存のプラグイン ディレクトリを書き換える代わりに、1 つまたは複数のプラグイン ディレクトリを追加できます。http://www.smarty.net/docs/en/api.add.plugins.dir.tpl setPluginsDir で複数のディレクトリを設定することもできます ...setPluginsDir(array(DIR_1,DIR_2))

于 2012-10-29T10:32:20.570 に答える