0

私はMODXrevo2.2で次のものを持っています:

価格体系を表す5つのテンプレート変数を定義しました。テレビの1つは基本価格を表し、ユーザーによって(マネージャーで)維持されますが、他のテレビは基本価格の既知のパーセンテージとして自動的に計算される必要があります。だから私が欲しいのは、ユーザーが基本価格を変更すると、他の4台のテレビが自動的に(再)計算されることです。

4台のテレビのバインディングを定義し@EVALてスニペットを呼び出すことでこれを実装しようとしましたが、そのアプローチでは成功しませんでした。単純なものでも@EVAL return 100;、テレビは空白のままになります。

また、これを解決するためのプラグインを調べたところ、テレビで作業しているときに発生するさまざまなシステムイベントが見つかりました。これは、これがこれを実装する方法であることを示唆しています。

これに対処する方法について何かアイデアはありますか?

4

2 に答える 2

1

いくつかのコードを見ることができますか?他の4台のテレビはテレビである必要はまったくないように思えますが(リソースごとに変更する必要がない限り)、1つの基本価格から計算を実行するテンプレートでスニペットとして提供する方がよい場合があります。テレビ。また、システムイベントには注意してください。処理するものはかなりありますが、すべてが実際に実装されているわけではありません。[難しい方法を見つけました]– </ p>

ロジャーに感謝します。テレビは処理に非常に費用がかかる可能性があるため、テレビを使用しない方法を見つけるために多くの時間を費やしています。いつでもテレビを見て、それがスニペット[またはチャンクまたはプラグイン]として機能すると思うなら、それはおそらく行く方法になるでしょう。私見では。

うまくいったことをうれしく思います。

于 2012-09-11T20:18:10.070 に答える
0

これは、MODXEvolution1.0.3の2つのテンプレート変数の内容を合計するのに役立ちました。

@EVAL $tvs=array('Fee_year_1','Fee_year_2');$tarifs=$modx->getTemplateVarOutput($tvs,'39');return $tarifs['Fee_year_1']+$tarifs['Fee_year_2'];

これは、タイプ「Number」のテンプレート変数に入れられ、Dittoチャンクのプレースホルダーとして表示されます:[+ Total_2_years +]

TVをプレースホルダーとして使用する場合は、ドキュメントIDを明示的に指定する必要があります。欠点は、ドキュメント識別子を手動で設定する必要があったことです。[+ id +]もstrval($ modx-> documentIdentifier)も機能しませんでした。

この場合、スニペットを使用する方がはるかに優れていると思います。

于 2013-02-13T17:57:04.577 に答える