Cra*_*aig 2 requirements controller silverstripe
我使用灯箱和效果构建了一个图库模块.我想要做的是在GalleryController而不是PageController上包含css和js要求,但它似乎不起作用.
我有一个扩展DataExtension的Gallery,然后我有一个扩展Extension的GalleryController.然后在我的_config文件中,我将ContentController指向我的GalleryController:
SiteTree::add_extension('Gallery');
Object::add_extension('ContentController', 'GalleryController');
Run Code Online (Sandbox Code Playgroud)
GalleryController工作正在为我获取Gallery对象.这个控制器的要求不起作用.
GalleryController:
public function init() {
parent::init();
//Load CSS requirements
Requirements::css("ImageGallery/css/lightgallery.min.css");
//Load Javascript requirements
Requirements::javascript("ImageGallery/js/lightgallery.min.js");
Run Code Online (Sandbox Code Playgroud)
我是否需要执行其他操作才能将要求包含在另一个非PageController的控制器上?
SilverStripe中的扩展不允许您重载公共API,您只能扩充它.看起来这就是您尝试使用GalleryController扩展.
在这种情况下,您将看到它在SiteTree对象上ContentController::init提供了一个扩展点 contentcontrollerInit - 您应该使用它来添加您的需求.这可以添加到您的Gallery DataExtension类:
# Class: Gallery.php
public function contentcontrollerInit()
{
Requirements::javascript('...');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |