Skip to content

Commit c8dff56

Browse files
author
helpfulrobot
committed
Converted to PSR-2
1 parent d2eb9eb commit c8dff56

5 files changed

Lines changed: 530 additions & 495 deletions

File tree

code/Admin/ModuleManager.php

Lines changed: 44 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,44 @@
1-
<?php
2-
3-
class ModuleManager extends DataObject {
4-
5-
public function getCMSFields() {
6-
$fields = FieldList::create( $tabSet = TabSet::create('Root'));
7-
return $fields;
8-
}
9-
10-
public function setRequest($req){
11-
return false;
12-
}
13-
14-
public function requireDefaultRecords() {
15-
parent::requireDefaultRecords();
16-
$moduleManager = ModuleManager::get()->First();
17-
if(!$moduleManager) {
18-
self::make_module_manager();
19-
DB::alteration_message("Added default module manager","created");
20-
}
21-
}
22-
23-
static public function make_module_manager() {
24-
$moduleManager = ModuleManager::create();
25-
$moduleManager->write();
26-
return $moduleManager;
27-
}
28-
29-
public static function CurrentModuleManager(){
30-
$current = ModuleManager::get()->First();
31-
return $current;
32-
}
33-
34-
public function CMSEditLink() {
35-
return singleton('ModuleManagerController')->Link();
36-
}
37-
38-
}
1+
<?php
2+
3+
class ModuleManager extends DataObject
4+
{
5+
6+
public function getCMSFields()
7+
{
8+
$fields = FieldList::create($tabSet = TabSet::create('Root'));
9+
return $fields;
10+
}
11+
12+
public function setRequest($req)
13+
{
14+
return false;
15+
}
16+
17+
public function requireDefaultRecords()
18+
{
19+
parent::requireDefaultRecords();
20+
$moduleManager = ModuleManager::get()->First();
21+
if (!$moduleManager) {
22+
self::make_module_manager();
23+
DB::alteration_message("Added default module manager", "created");
24+
}
25+
}
26+
27+
public static function make_module_manager()
28+
{
29+
$moduleManager = ModuleManager::create();
30+
$moduleManager->write();
31+
return $moduleManager;
32+
}
33+
34+
public static function CurrentModuleManager()
35+
{
36+
$current = ModuleManager::get()->First();
37+
return $current;
38+
}
39+
40+
public function CMSEditLink()
41+
{
42+
return singleton('ModuleManagerController')->Link();
43+
}
44+
}
Lines changed: 116 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,116 @@
1-
<?php
2-
class ModuleManagerController extends LeftAndMain {
3-
4-
static $url_segment = 'module-manager';
5-
static $url_rule = '/$Action/$ID/$OtherID';
6-
static $menu_priority = -1;
7-
static $url_priority = 40;
8-
static $menu_title = 'Module Manager';
9-
static $tree_class = 'ModuleManager';
10-
static $menu_icon = 'module-manager/images/cms-icon.png';
11-
12-
public function init() {
13-
parent::init();
14-
Requirements::javascript(CMS_DIR . '/javascript/CMSMain.EditForm.js');
15-
}
16-
17-
public function getResponseNegotiator() {
18-
$neg = parent::getResponseNegotiator();
19-
$controller = $this;
20-
$neg->setCallback('CurrentForm', function() use(&$controller) {
21-
return $controller->renderWith($controller->getTemplatesWithSuffix('_Content'));
22-
});
23-
return $neg;
24-
}
25-
26-
public function getEditForm($id = null, $fields = null) {
27-
28-
// get the cmsfields from ModuleManager DataObject
29-
$moduleManager = ModuleManager::CurrentModuleManager();
30-
$fields = $moduleManager->getCMSFields();
31-
32-
// what pages is this module active on
33-
$modulesGridField = GridField::create(
34-
"Modules_Gridfield",
35-
"Modules",
36-
Module::get(),
37-
$modulesGridFieldConfig = GridFieldConfig_RecordEditor::create()
38-
);
39-
$modulePositionsGridField = GridField::create(
40-
"ModulePositions_Gridfield",
41-
"Module Positions",
42-
ModulePosition::get(),
43-
GridFieldConfig_RecordEditor::create()
44-
);
45-
46-
// add multiclass dropdown for modules
47-
$modulesGridFieldConfig->removeComponentsByType('GridFieldAddNewButton');
48-
$modulesGridFieldConfig->addComponent(new GridFieldAddNewMultiClass());
49-
50-
// add the fields
51-
$fields->addFieldToTab('Root.Modules', $modulesGridField);
52-
$fields->addFieldToTab('Root.ModulePositions', $modulePositionsGridField);
53-
$fields->addFieldToTab('Root.ModulePositions', LiteralField::create('html','<em>To load a position into your template, simply write <code>$ModulePosition(Alias)</code> where <code>Alias</code> is your position alias</em>'));
54-
55-
// actions
56-
$actions = $moduleManager->getCMSActions();
57-
$form = CMSForm::create(
58-
$this, 'EditForm', $fields, $actions
59-
)->setHTMLID('Form_EditForm');
60-
$form->setResponseNegotiator($this->getResponseNegotiator());
61-
$form->addExtraClass('cms-content center cms-edit-form');
62-
// don't add data-pjax-fragment=CurrentForm, its added in the content template instead
63-
64-
if($form->Fields()->hasTabset()) $form->Fields()->findOrMakeTab('Root')->setTemplate('CMSTabSet');
65-
$form->setHTMLID('Form_EditForm');
66-
$form->loadDataFrom($moduleManager);
67-
$form->setTemplate($this->getTemplatesWithSuffix('_EditForm'));
68-
69-
// Use <button> to allow full jQuery UI styling
70-
$actions = $actions->dataFields();
71-
if($actions) foreach($actions as $action) $action->setUseButtonTag(true);
72-
73-
return $form;
74-
}
75-
76-
public function getSilverStripeNavigator() {
77-
return $this->renderWith('CMSSettingsController_SilverStripeNavigator');
78-
}
79-
80-
public function Breadcrumbs($unlinked = false) {
81-
$defaultTitle = self::menu_title_for_class(get_class($this));
82-
return new ArrayList(array(
83-
new ArrayData(array(
84-
'Title' => _t("{$this->class}.MENUTITLE", $defaultTitle),
85-
'Link' => false
86-
))
87-
));
88-
}
89-
90-
// builds a list of all the module types (classes that extend Module)
91-
public function ModuleTypes() {
92-
$moduleTypes = array();
93-
$modules = Module::get();
94-
foreach( $modules as $module ){
95-
$moduleTypes[$module->ClassName] = array(
96-
'ClassName' => $module->ClassName,
97-
'Name' => $module->ModuleName(),
98-
'Description' => $module->ModuleDescription()
99-
);
100-
}
101-
return $moduleTypes;
102-
}
103-
104-
}
1+
<?php
2+
class ModuleManagerController extends LeftAndMain
3+
{
4+
5+
public static $url_segment = 'module-manager';
6+
public static $url_rule = '/$Action/$ID/$OtherID';
7+
public static $menu_priority = -1;
8+
public static $url_priority = 40;
9+
public static $menu_title = 'Module Manager';
10+
public static $tree_class = 'ModuleManager';
11+
public static $menu_icon = 'module-manager/images/cms-icon.png';
12+
13+
public function init()
14+
{
15+
parent::init();
16+
Requirements::javascript(CMS_DIR . '/javascript/CMSMain.EditForm.js');
17+
}
18+
19+
public function getResponseNegotiator()
20+
{
21+
$neg = parent::getResponseNegotiator();
22+
$controller = $this;
23+
$neg->setCallback('CurrentForm', function () use (&$controller) {
24+
return $controller->renderWith($controller->getTemplatesWithSuffix('_Content'));
25+
});
26+
return $neg;
27+
}
28+
29+
public function getEditForm($id = null, $fields = null)
30+
{
31+
32+
// get the cmsfields from ModuleManager DataObject
33+
$moduleManager = ModuleManager::CurrentModuleManager();
34+
$fields = $moduleManager->getCMSFields();
35+
36+
// what pages is this module active on
37+
$modulesGridField = GridField::create(
38+
"Modules_Gridfield",
39+
"Modules",
40+
Module::get(),
41+
$modulesGridFieldConfig = GridFieldConfig_RecordEditor::create()
42+
);
43+
$modulePositionsGridField = GridField::create(
44+
"ModulePositions_Gridfield",
45+
"Module Positions",
46+
ModulePosition::get(),
47+
GridFieldConfig_RecordEditor::create()
48+
);
49+
50+
// add multiclass dropdown for modules
51+
$modulesGridFieldConfig->removeComponentsByType('GridFieldAddNewButton');
52+
$modulesGridFieldConfig->addComponent(new GridFieldAddNewMultiClass());
53+
54+
// add the fields
55+
$fields->addFieldToTab('Root.Modules', $modulesGridField);
56+
$fields->addFieldToTab('Root.ModulePositions', $modulePositionsGridField);
57+
$fields->addFieldToTab('Root.ModulePositions', LiteralField::create('html', '<em>To load a position into your template, simply write <code>$ModulePosition(Alias)</code> where <code>Alias</code> is your position alias</em>'));
58+
59+
// actions
60+
$actions = $moduleManager->getCMSActions();
61+
$form = CMSForm::create(
62+
$this, 'EditForm', $fields, $actions
63+
)->setHTMLID('Form_EditForm');
64+
$form->setResponseNegotiator($this->getResponseNegotiator());
65+
$form->addExtraClass('cms-content center cms-edit-form');
66+
// don't add data-pjax-fragment=CurrentForm, its added in the content template instead
67+
68+
if ($form->Fields()->hasTabset()) {
69+
$form->Fields()->findOrMakeTab('Root')->setTemplate('CMSTabSet');
70+
}
71+
$form->setHTMLID('Form_EditForm');
72+
$form->loadDataFrom($moduleManager);
73+
$form->setTemplate($this->getTemplatesWithSuffix('_EditForm'));
74+
75+
// Use <button> to allow full jQuery UI styling
76+
$actions = $actions->dataFields();
77+
if ($actions) {
78+
foreach ($actions as $action) {
79+
$action->setUseButtonTag(true);
80+
}
81+
}
82+
83+
return $form;
84+
}
85+
86+
public function getSilverStripeNavigator()
87+
{
88+
return $this->renderWith('CMSSettingsController_SilverStripeNavigator');
89+
}
90+
91+
public function Breadcrumbs($unlinked = false)
92+
{
93+
$defaultTitle = self::menu_title_for_class(get_class($this));
94+
return new ArrayList(array(
95+
new ArrayData(array(
96+
'Title' => _t("{$this->class}.MENUTITLE", $defaultTitle),
97+
'Link' => false
98+
))
99+
));
100+
}
101+
102+
// builds a list of all the module types (classes that extend Module)
103+
public function ModuleTypes()
104+
{
105+
$moduleTypes = array();
106+
$modules = Module::get();
107+
foreach ($modules as $module) {
108+
$moduleTypes[$module->ClassName] = array(
109+
'ClassName' => $module->ClassName,
110+
'Name' => $module->ModuleName(),
111+
'Description' => $module->ModuleDescription()
112+
);
113+
}
114+
return $moduleTypes;
115+
}
116+
}

0 commit comments

Comments
 (0)