下午好,
我不知道我想做什么是可能的,所以这里也是如此。
我有一个扩展Page_Controller的模块,但我想通过站点根目录访问某些功能
例如:getMyDataObjectList();
目前,只有我通过正常的MVC路由结构才能工作。
我发现当我将函数'getMyDataObjectList'放在'/mysite/code/Page.php'中时它可以工作。
问题是,我不想把代码放在那里。我希望它与我的自定义模块捆绑在一起,但工作方式与在'mysite / code / Page.php'中一样
[示例场景]
网站根目录: http:// [somesite] .com
默认情况下,会加载“ Page.ss ”模板
我希望主题开发人员能够在任何模板/布局页面中调用我的模块函数(API),并从站点根目录返回结果
目前,这只有在我将“API”函数移动到'/mysite/code/Page.php'时才有效
如果代码在我的模块中,则仅在您转到时返回数据:
的的http:// [somesite]的.com / [module_controller] 的
这可以实现吗?如果是这样,怎么样?
谢谢你的帮助。
[更新 - 代码解决方案]
///>MyExtension.php
class MyExtension extends Extension{
public function getMyDataObjectList(){
return 'object list goes here!';
}
}//class
///>[Module] => _config.php
Object::add_extension('Page_Controller', 'MyExtension');
和往常一样,我做一个(/ dev / build?flush = 1)以防万一。 谢谢:'simon_w'
答案 0 :(得分:1)
是的,这是相对简单的。简单地说,使用您的方法创建一个Extension
子类,然后将其添加到Page_Controller
。 Extension
子类与DataExtension
几乎完全相同,它们只适用于DataObjects以外的类。