Я хочу перезаписать функцию init () в моем Page_controller. У меня есть DataExtension для расширения контроллера. С функцией, найденной здесь http://doc.silverstripe.org/framework/en/reference/dataextension#object-extension-injection-points
Но до расширения, похоже, не существует
Fatal error: Call to undefined method PageControllerExtension::beforeExtending()
Это моя функция в расширении, чтобы достичь этого
function __construct() {
$self = $this;
$this->beforeExtending('init', function() use ($self) {
$themeFolder = $this->ThemeDir();
$tweaks = 'tweaks';
$CSSFiles = array(
$themeFolder . '/css/layout.css'
);
$JSFiles = array(
$tweaks . '/js/jquery-1.11.1.min.js',
$tweaks . '/js/jquery.unveil.js',
$tweaks . '/js/jquery.bxslider.js',
$tweaks . '/js/wow.js',
$themeFolder . '/js/load.js'
);
Requirements::set_combined_files_folder($themeFolder . '/combined');
Requirements::combine_files('screen.css', $CSSFiles);
Requirements::combine_files('screen.js', $JSFiles);
});
parent::__construct();
}
где ошибка?
Вам нужно будет расширить Extension, а не DataExtension, если вы не расширяете объект данных.
Других решений пока нет …