3

vbulletin 内の別のページで {vb:raw human_verify} を使用したいですか?

この変数を別のテンプレートで使用すると、機能しません。

一部のテンプレート(登録、検索など)では完全に機能しますが、別のテンプレートでは機能しません..

vars をグローバルにする新しいプラグインを追加しようとしました:

vB_Template::preRegister('activity_home',array('includedphp ' => $includedphp));  

しかし、これは新しい (カスタム) vbulletin vb:raw 変数でのみ機能します。

これを克服する方法は?

前もって感謝します

4

2 に答える 2

2

vb4を使用していて、変数がincludedphpに設定されていると仮定します。次に、変更する必要があります:

activity_home

変数を使用する必要があるテンプレートの名前 (複数のテンプレートに追加する場合は、複数回実行します)。基本的に、「FORUMHOME」を使用してフォーラムのホームに配置するか、「ヘッダー」を使用してヘッダーに配置します...

このリンクが役立つ場合があります (「アレイに保存し、既存/ストック テンプレートで使用するために事前登録する」セクションを参照してください)。それが役立つことを願っています。

編集 :

$templater = vB_Template::create('mytemplate'); // Define a template
$templater->register('my_var', $my_var); // define some variables
$templater->register('my_array', $my_array);
$templatevalues['my_insertvar'] = $templater->render(); // Save the template into a variable, "note that the data needs to be saved into an array a simple variable will throw an error"
vB_Template::preRegister('FORUMHOME', $templatevalues);  // "insert" your variable into the FORUMHOME template

次に、その行を使用して FORUMHOME テンプレートに新しいテンプレートを追加できます。

{vb:raw my_insertvar}
于 2013-07-22T08:14:50.807 に答える
1

私はこれにあまりにも長い間取り組んできました...その例はひどいものです。Niakのせいではありません。元の作成者は、単純な変数を既存のテンプレートに登録する方法についてあまり明確ではなかったと思います。

上記の例を文字通りコピーしてプラグインに貼り付け、$my_var を「test」に設定し{vb:raw my_insertvar}ましたが、FORUMHOMEテンプレートでは機能しませんでした。最初に試したコードは次のとおりです。

$my_var = "test";

$templater = vB_Template::create('mytemplate'); // Define a template
$templater->register('my_var', $my_var); // define some variables
$templatevalues['my_insertvar'] = $templater->render();
vB_Template::preRegister('FORUMHOME', $templatevalues);

元の例の の値にアクセスできないことで私が間違っていることを誰かが知っている場合はmy_var、お知らせください! 私はそれを私の人生のために働かせることはできません。吐き出すだけ<!-- BEGIN TEMPLATE: mytemplate --><!-- END TEMPLATE: mytemplate -->

=============================== 作業例 ================= ==============

次に、より良い例を見つけました。これが機能するために必要なのは 2 行だけです。

  1. Plugins & Products>に移動しますPlugin Manager
  2. 一番下までスクロールしてクリック[Add New Plugin]
  3. 私が選んだフックはglobal_bootstrap_init_start
  4. 次の 2 行を挿入します (navbarは登録先のテンプレートですtestVar_output)。

    $testVar = "This is a test.";
    
    vB_Template::preRegister('navbar',array('testVar_output' => $testVar));
    
  5. このコードを次の場所に配置しますnavbar

    {vb:生の testVar_output}

  6. vb:raw変数名は の左側の値であることに注意してくださいarray()
  7. $templater->render()私が見たすべての例は、あなたがそれを必要としていると言っていますが、変数を事前登録するために関数を使用する必要はないようです。変数を登録して、変数を使用するだけです。それはとても簡単です!
  8. これではテンプレートのキャッシュが許可されないことに気付きました。そのため、元の例を機能させることができないのではないかと心配しています... (助けて!?)
于 2014-05-28T17:19:13.670 に答える