2011-08-31 2 views
0

modx의 큰 팬이 아니라 슬프게도 우리가 직장에서 사용하는 것입니다.Modx Evolution : 저장하기 전에 템플릿 변수 (tv)에 액세스하고 수정하는 방법은 무엇입니까?

modx evolution (1.0.5)에서 수정 된 템플릿 변수를 저장하는 데 문제가 있습니다.

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

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

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

이 작동하지 않는 것으로 보입니다 다음 OnBeforeDocFormSave 이벤트로 호출 내 플러그인에서

, 내가 얻고 TV를 수정하려면이하고 있어요. $ foo는 설정되었지만 TV는 저장되지 않습니다.

$ TV_ID는 내가 수행하는 템플릿 변수의 리소스 ID입니다.

API 호출로 TV를 수신하는 데는 여러 가지 방법이 있지만 저장하기 전에 수정하려면 어떻게해야합니까?

도움을 주시면 감사하겠습니다.

+0

당신이 팬이 아닌 것은 수치 스럽습니다. modx는 제가 사용했던 CMS 중 가장 좋아하는 CMS입니다. (Drupal, Wordpress, Joomla) – Fishcake

+0

일반적으로 Cmses의 팬이 아닙니다 :) 어느 날 멋진 프레임 워크를 제공합니다. – thelastshadow

답변

0

:

가에 플러그인에 의해 불려 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는 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 

- 션

이 솔루션은 작업 표시
+0

나는 진화를 사용하고 있습니다. – thelastshadow

+0

hmmm - 죄송합니다. 진화 구문이 무엇인지 모르겠습니다. modx 커뮤니티 포럼에 게시하거나 rtfm.modx.com을 확인해 보셨습니까? –

관련 문제