我的工作在镆铘创建的网站上执行PHP代码。我需要知道的是创建的任何资源时,我可以执行PHP代码,还可以编辑关联到创建的资源模板变量的方式。镆铘:创建任何资源时
0
A
回答
0
您可以使用plugin,设为在OnDocFormSave事件上运行做到这一点。此事件具有模式属性刚刚创建要保存的文件时会被设置为新 - 你可以做一个简单的检查了这对防止插件正在运行的每一个文件保存时间。
要为当前资源电视机值,这样做:
// get the required TV object by name (or id)
$tv = $modx->getObject('modTemplateVar',array('name'=>'tvName'));
// set the new value and save it
$tv->setValue($modx->resource->get('id'), $newValue);
$tv->save();
0
答案由okyanet是正确的,但我已经添加了对那些不熟悉镆铘细节。
创建一个插件,并将其配置为在两个系统事件'onBeforeDocFormSave'和'onDocFormSave'上执行。这两个事件只是在资源被保存之前和之后被触发。当资源被保存时,$模式变量是提供给你的插件,如果它是一个新的资源它的值是modSystemEvent :: MODE_NEW如果更新它的值是modSystemEvent:MODE_UPD
我写了一个要点,其中包括完整的代码示例:
https://gist.github.com/2768300
这个例子展示了如何通过目标switch语句,以及如何进一步针对“新”或“更新”无论哪种情况行动的状态。对于使用onBeforeDocFormSave事件,你可以简单地改变任何资源字段名与$资源 - >设置(“yourFieldname”)拦截和改变资源领域,它很容易。没有$资源 - >另存为这此事件后自动发生所需的()。
由于处理tvs的方式,使用onBeforeDocFormSave事件保存电视明显要困难得多,因此该示例显示了如何使用系统事件'onDocFormSave'更新电视。再次没有需要$ resource-> save(),因为当你调用setValue时立即保存tvs。
一个插件可以被设计为仅需要其中一个系统事件,但由于使用上述两种状态都有好处,并且有助于解释,所以我已经使用了这两个。
相关问题
- 1. 镆铘非www资源 - > WWW资源
- 2. 镆铘getResources显示未上市资源
- 3. 镆铘倒计时
- 4. 镆铘getresources的foreach
- 5. 镆铘资源列表的复选框,为用户
- 6. 镆铘:占用资源展示儿童,而不是资源数量
- 7. 镆铘埃沃:无法创建images文件夹
- 8. 创建在镆铘雷沃新文章不起作用
- 9. 镆铘PHP与模板变量
- 10. 镆铘IF返回空白页
- 11. 镆铘插件手动安装
- 12. 镆铘:摘录条和解析瓦尔
- 13. 镆铘递减电视获得0
- 14. 电视输出镆铘革命
- 15. 镆铘SimpleCart单页结帐不工作
- 16. 镆铘htaccess的链接不工作
- 17. 镆铘革命的Wayfinder回空行
- 18. 镆铘登录色彩风格
- 19. 镆铘革命 - 发生超时每分钟导致退出
- 20. REST:如何在创建新资源时传递相关资源?
- 21. 镆铘p拇指如何显示图像高度正确
- 22. 镆铘1.05 - 如何在同上的号召
- 23. 如何获得在镆铘最受欢迎的文章列表?
- 24. 包装Wayfinder的菜单在镆铘:如何通过
- 25. 如何创建资源DLL
- 26. 镆铘REVO + PHP的MySQL数据插入到指定的表行
- 27. 镆铘 - 获得“PAGETITLE”,并从兄弟姐妹
- 28. 镆铘网站被黑客攻击怎么解决
- 29. 镆铘:在错误记忆电子表格输入领域
- 30. 镆铘革命FormIt传递url变量,形成