1

modxの大ファンではありませんが、悲しいことに、それは私たちが仕事で使用しているものです。

modx Evolution(1.0.5)で変更されたテンプレート変数を保存するのに問題があります。

OnBeforeDocFormSaveイベントで呼び出される私のプラグインでは、テレビを取得して変更するためにこれを行っています。

//include global variables
global $content,$default_template,$tmplvars;

$foo = $tmplvars[$TV_ID][1] . "bar";

$tmplvars[$TV_ID][1] = $foo;

これは機能していないようです。$ fooが設定されていますが、テレビが保存されていません。

$ TV_IDは、私が求めているテンプレート変数のリソースIDです。

API呼び出しを使用してテレビを取得する方法は多数ありますが、保存する前にテレビを変更するにはどうすればよいですか?

助けていただければ幸いです。

4

2 に答える 2

1

Evo ot Revoを使用していますか?

次のようなOnWebPageCompleteイベントのプラグインを使用して、revoでページカウンターを更新します。

<?php

$docID = $modx->resource->get('id'); //get the page id

$tvId = 9; //the tv id I want to change

$tv = $modx->getObject('modTemplateVar',$tvId); // get the obj.

$tv->setValue($docID, $tv->getValue($docID) + 1 ); // set it's new value

$tv->save(); // save the new value

-sean

于 2011-08-31T16:58:28.437 に答える
1

このソリューションは機能しているようです。

OnBeforeDocFormSaveイベントでプラグインによって呼び出されます

//include global variables
global $content,$default_template,$tmplvars;

$foo = $tmplvars[$TV_ID][1] . "bar";

$tmplvars[$TV_ID][0] = $TV_ID; //added this line
$tmplvars[$TV_ID][1] = $foo;

ここで、$ TV_IDは、変更しようとしているテンプレート変数のIDです。

于 2011-09-01T16:32:42.057 に答える