2011-08-31 116 views
0

不是Modx的忠實粉絲,但遺憾的是這是我們在工作中使用的。Modx Evolution:如何在保存之前訪問和修改模板變量(tv)?

我無法在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調用獲得電視機,但是如何在保存之前對其進行修改?

任何幫助表示讚賞。

+0

這是一個恥辱,你不是一個風扇,modx很容易我最喜歡的那些我用過的CMS(Drupal,Wordpress,Joomla) – Fishcake

+0

不是一般的cmses粉絲:)給我一個很好的框架任何一天。 – thelastshadow

回答

0

該解決方案似乎工作:

通過在插件調用OnBeforeDocFormSave event

//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是Tem的id plate正在嘗試修改的變量。

0

您使用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

+0

我正在使用進化。 – thelastshadow

+0

嗯 - 對不起,我不知道進化語法會是什麼 - 你有沒有嘗試在modx社區論壇上發帖或查看rtfm.modx.com? –

相關問題