@@ -1,37 +1,37 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | class CustomBlockPermission extends DataExtension implements PermissionProvider { |
| 4 | - public function canConfigPageAndType($member = false) { |
|
| 5 | - return Permission::check(get_class($this->owner) . '_config_page_and_type'); |
|
| 6 | - } |
|
| 4 | + public function canConfigPageAndType($member = false) { |
|
| 5 | + return Permission::check(get_class($this->owner) . '_config_page_and_type'); |
|
| 6 | + } |
|
| 7 | 7 | |
| 8 | - public function canConfigMemberVisibility($member = false) { |
|
| 9 | - return Permission::check(get_class($this->owner) . '_config_member_visibility'); |
|
| 10 | - } |
|
| 8 | + public function canConfigMemberVisibility($member = false) { |
|
| 9 | + return Permission::check(get_class($this->owner) . '_config_member_visibility'); |
|
| 10 | + } |
|
| 11 | 11 | |
| 12 | - public function providePermissions() { |
|
| 13 | - $permissions = array(); |
|
| 14 | - foreach ($this->getClassList() as $class) { |
|
| 15 | - foreach (array( |
|
| 16 | - 'config_page_and_type', |
|
| 17 | - 'config_member_visibility' |
|
| 18 | - ) as $name) { |
|
| 19 | - $permissions[$class . '_' . $name] = $class . '_' . $name; |
|
| 20 | - } |
|
| 21 | - } |
|
| 22 | - return $permissions; |
|
| 23 | - } |
|
| 12 | + public function providePermissions() { |
|
| 13 | + $permissions = array(); |
|
| 14 | + foreach ($this->getClassList() as $class) { |
|
| 15 | + foreach (array( |
|
| 16 | + 'config_page_and_type', |
|
| 17 | + 'config_member_visibility' |
|
| 18 | + ) as $name) { |
|
| 19 | + $permissions[$class . '_' . $name] = $class . '_' . $name; |
|
| 20 | + } |
|
| 21 | + } |
|
| 22 | + return $permissions; |
|
| 23 | + } |
|
| 24 | 24 | |
| 25 | - private function getClassList() { |
|
| 26 | - $classes = array(); |
|
| 27 | - foreach (ClassInfo::subclassesFor('DataObject') as $class => $file) { |
|
| 28 | - $extensions = Config::inst()->get($class, 'extensions'); |
|
| 29 | - if (!is_null($extensions)) { |
|
| 30 | - if (in_array(get_class($this), $extensions)) { |
|
| 31 | - $classes[] = $class; |
|
| 32 | - } |
|
| 33 | - } |
|
| 34 | - } |
|
| 35 | - return $classes; |
|
| 36 | - } |
|
| 25 | + private function getClassList() { |
|
| 26 | + $classes = array(); |
|
| 27 | + foreach (ClassInfo::subclassesFor('DataObject') as $class => $file) { |
|
| 28 | + $extensions = Config::inst()->get($class, 'extensions'); |
|
| 29 | + if (!is_null($extensions)) { |
|
| 30 | + if (in_array(get_class($this), $extensions)) { |
|
| 31 | + $classes[] = $class; |
|
| 32 | + } |
|
| 33 | + } |
|
| 34 | + } |
|
| 35 | + return $classes; |
|
| 36 | + } |
|
| 37 | 37 | } |
| 38 | 38 | \ No newline at end of file |
@@ -1,46 +1,46 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | class MultiClassSelector extends GridFieldAddNewMultiClass { |
| 4 | - private static $allowed_actions = array( |
|
| 5 | - 'handleAdd' |
|
| 6 | - ); |
|
| 4 | + private static $allowed_actions = array( |
|
| 5 | + 'handleAdd' |
|
| 6 | + ); |
|
| 7 | 7 | |
| 8 | - // Should we add an empty string to the add class dropdown? |
|
| 9 | - private static $showEmptyString = true; |
|
| 8 | + // Should we add an empty string to the add class dropdown? |
|
| 9 | + private static $showEmptyString = true; |
|
| 10 | 10 | |
| 11 | - private $fragment; |
|
| 11 | + private $fragment; |
|
| 12 | 12 | |
| 13 | - private $title; |
|
| 13 | + private $title; |
|
| 14 | 14 | |
| 15 | - private $classes; |
|
| 15 | + private $classes; |
|
| 16 | 16 | |
| 17 | - private $defaultClass; |
|
| 17 | + private $defaultClass; |
|
| 18 | 18 | |
| 19 | 19 | |
| 20 | - public function getHTMLFragments($grid) { |
|
| 21 | - $classes = $this->getClasses($grid); |
|
| 20 | + public function getHTMLFragments($grid) { |
|
| 21 | + $classes = $this->getClasses($grid); |
|
| 22 | 22 | |
| 23 | - if(!count($classes)) { |
|
| 24 | - return array(); |
|
| 25 | - } |
|
| 23 | + if(!count($classes)) { |
|
| 24 | + return array(); |
|
| 25 | + } |
|
| 26 | 26 | |
| 27 | - GridFieldExtensions::include_requirements(); |
|
| 27 | + GridFieldExtensions::include_requirements(); |
|
| 28 | 28 | |
| 29 | - $field = new DropdownField(sprintf('%s[ClassName]', __CLASS__), '', $classes, $this->defaultClass); |
|
| 30 | - $field->setAttribute('id', uniqid()); |
|
| 31 | - if (Config::inst()->get('GridFieldAddNewMultiClass', 'showEmptyString')) { |
|
| 32 | - $field->setEmptyString(_t('GridFieldExtensions.SELECTTYPETOCREATE', '(Select type to create)')); |
|
| 33 | - } |
|
| 34 | - $field->addExtraClass('no-change-track'); |
|
| 29 | + $field = new DropdownField(sprintf('%s[ClassName]', __CLASS__), '', $classes, $this->defaultClass); |
|
| 30 | + $field->setAttribute('id', uniqid()); |
|
| 31 | + if (Config::inst()->get('GridFieldAddNewMultiClass', 'showEmptyString')) { |
|
| 32 | + $field->setEmptyString(_t('GridFieldExtensions.SELECTTYPETOCREATE', '(Select type to create)')); |
|
| 33 | + } |
|
| 34 | + $field->addExtraClass('no-change-track'); |
|
| 35 | 35 | |
| 36 | - $data = new ArrayData(array( |
|
| 37 | - 'Title' => $this->getTitle(), |
|
| 38 | - 'Link' => Controller::join_links($grid->Link(), 'add-multi-class', '{class}'), |
|
| 39 | - 'ClassField' => $field |
|
| 40 | - )); |
|
| 36 | + $data = new ArrayData(array( |
|
| 37 | + 'Title' => $this->getTitle(), |
|
| 38 | + 'Link' => Controller::join_links($grid->Link(), 'add-multi-class', '{class}'), |
|
| 39 | + 'ClassField' => $field |
|
| 40 | + )); |
|
| 41 | 41 | |
| 42 | - return array( |
|
| 43 | - $this->getFragment() => $data->renderWith('GridFieldAddNewMultiClass') |
|
| 44 | - ); |
|
| 45 | - } |
|
| 42 | + return array( |
|
| 43 | + $this->getFragment() => $data->renderWith('GridFieldAddNewMultiClass') |
|
| 44 | + ); |
|
| 45 | + } |
|
| 46 | 46 | } |
| 47 | 47 | \ No newline at end of file |
@@ -1,7 +1,5 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | -use SaltedHerring\Debugger as Debugger; |
|
| 4 | - |
|
| 5 | 3 | class VersionedForm extends GridFieldDetailForm { |
| 6 | 4 | |
| 7 | 5 | } |
@@ -7,47 +7,47 @@ |
||
| 7 | 7 | } |
| 8 | 8 | |
| 9 | 9 | class VersionedForm_ItemRequest extends GridFieldDetailForm_ItemRequest { |
| 10 | - private static $allowed_actions = array( |
|
| 11 | - 'edit', |
|
| 12 | - 'view', |
|
| 13 | - 'ItemEditForm', |
|
| 14 | - 'doPublish', |
|
| 15 | - 'doUnpublish' |
|
| 16 | - ); |
|
| 10 | + private static $allowed_actions = array( |
|
| 11 | + 'edit', |
|
| 12 | + 'view', |
|
| 13 | + 'ItemEditForm', |
|
| 14 | + 'doPublish', |
|
| 15 | + 'doUnpublish' |
|
| 16 | + ); |
|
| 17 | 17 | |
| 18 | - public function ItemEditForm() { |
|
| 19 | - $form = parent::ItemEditForm(); |
|
| 20 | - if ($form instanceof Form) { |
|
| 21 | - $actions = $form->Actions(); |
|
| 22 | - $record = $this->record; |
|
| 23 | - $actions->insertBefore('action_doDelete', $btnPublish = FormAction::create('doPublish','Save & Publish')); |
|
| 24 | - $btnPublish->addExtraClass('ss-ui-action-constructive'); |
|
| 25 | - if (!empty($record->ID)) { |
|
| 26 | - if ($record->isPublished()) { |
|
| 27 | - $actions->removeByName('action_doDelete'); |
|
| 28 | - $actions->push(FormAction::create('doUnpublish', 'Unpublish')->addExtraClass('ss-ui-action-destructive')); |
|
| 29 | - } |
|
| 30 | - } |
|
| 18 | + public function ItemEditForm() { |
|
| 19 | + $form = parent::ItemEditForm(); |
|
| 20 | + if ($form instanceof Form) { |
|
| 21 | + $actions = $form->Actions(); |
|
| 22 | + $record = $this->record; |
|
| 23 | + $actions->insertBefore('action_doDelete', $btnPublish = FormAction::create('doPublish','Save & Publish')); |
|
| 24 | + $btnPublish->addExtraClass('ss-ui-action-constructive'); |
|
| 25 | + if (!empty($record->ID)) { |
|
| 26 | + if ($record->isPublished()) { |
|
| 27 | + $actions->removeByName('action_doDelete'); |
|
| 28 | + $actions->push(FormAction::create('doUnpublish', 'Unpublish')->addExtraClass('ss-ui-action-destructive')); |
|
| 29 | + } |
|
| 30 | + } |
|
| 31 | 31 | |
| 32 | - $form->setActions($actions); |
|
| 33 | - } |
|
| 34 | - return $form; |
|
| 35 | - } |
|
| 32 | + $form->setActions($actions); |
|
| 33 | + } |
|
| 34 | + return $form; |
|
| 35 | + } |
|
| 36 | 36 | |
| 37 | - public function doUnpublish($data, $form) { |
|
| 38 | - $this->record->deleteFromStage('Live'); |
|
| 39 | - $controller = Controller::curr(); |
|
| 40 | - $form->sessionMessage('Block unpublished', 'good', false); |
|
| 41 | - return $this->edit($controller->getRequest()); |
|
| 42 | - } |
|
| 37 | + public function doUnpublish($data, $form) { |
|
| 38 | + $this->record->deleteFromStage('Live'); |
|
| 39 | + $controller = Controller::curr(); |
|
| 40 | + $form->sessionMessage('Block unpublished', 'good', false); |
|
| 41 | + return $this->edit($controller->getRequest()); |
|
| 42 | + } |
|
| 43 | 43 | |
| 44 | - public function doPublish($data, $form) { |
|
| 45 | - $form->saveInto($this->record); |
|
| 46 | - $this->record->write(); |
|
| 47 | - $this->record->byPass = true; |
|
| 48 | - $this->record->doPublish(); |
|
| 49 | - $form->sessionMessage('Block published', 'good', false); |
|
| 50 | - $controller = Controller::curr(); |
|
| 51 | - return $this->edit($controller->getRequest()); |
|
| 52 | - } |
|
| 44 | + public function doPublish($data, $form) { |
|
| 45 | + $form->saveInto($this->record); |
|
| 46 | + $this->record->write(); |
|
| 47 | + $this->record->byPass = true; |
|
| 48 | + $this->record->doPublish(); |
|
| 49 | + $form->sessionMessage('Block published', 'good', false); |
|
| 50 | + $controller = Controller::curr(); |
|
| 51 | + return $this->edit($controller->getRequest()); |
|
| 52 | + } |
|
| 53 | 53 | } |
| 54 | 54 | \ No newline at end of file |
@@ -1,4 +1,4 @@ |
||
| 1 | -<?php use SaltedHerring\Debugger as Debugger; |
|
| 1 | +<?php |
|
| 2 | 2 | /** |
| 3 | 3 | * @file BlocksAdmin.php |
| 4 | 4 | * |
@@ -5,60 +5,60 @@ |
||
| 5 | 5 | * Left-hand-side tab : Admin Blocks |
| 6 | 6 | * */ |
| 7 | 7 | class BlocksAdmin extends ModelAdmin { |
| 8 | - private static $managed_models = array('Block'); |
|
| 9 | - private static $url_segment = 'blocks'; |
|
| 10 | - private static $menu_title = 'Blocks'; |
|
| 11 | - private static $menu_priority = 10; |
|
| 12 | - private static $menu_icon = 'silverstripe-block/images/icon-block.png'; |
|
| 8 | + private static $managed_models = array('Block'); |
|
| 9 | + private static $url_segment = 'blocks'; |
|
| 10 | + private static $menu_title = 'Blocks'; |
|
| 11 | + private static $menu_priority = 10; |
|
| 12 | + private static $menu_icon = 'silverstripe-block/images/icon-block.png'; |
|
| 13 | 13 | |
| 14 | - public function getEditForm($id = null, $fields = null) { |
|
| 15 | - $form = parent::getEditForm($id, $fields); |
|
| 14 | + public function getEditForm($id = null, $fields = null) { |
|
| 15 | + $form = parent::getEditForm($id, $fields); |
|
| 16 | 16 | |
| 17 | - $grid = $form->Fields()->fieldByName($this->sanitiseClassName($this->modelClass)); |
|
| 17 | + $grid = $form->Fields()->fieldByName($this->sanitiseClassName($this->modelClass)); |
|
| 18 | 18 | |
| 19 | - $grid->getConfig() |
|
| 20 | - ->removeComponentsByType('GridFieldPaginator') |
|
| 21 | - ->removeComponentsByType('GridFieldAddNewButton') |
|
| 22 | - ->removeComponentsByType('GridFieldPrintButton') |
|
| 23 | - ->removeComponentsByType('GridFieldExportButton') |
|
| 24 | - ->removeComponentsByType('GridFieldDetailForm') |
|
| 25 | - ->addComponents( |
|
| 26 | - new VersionedForm(), |
|
| 27 | - new GridFieldPaginatorWithShowAll(30), |
|
| 28 | - $multiClass = new MultiClassSelector(), |
|
| 29 | - $sortable = new GridFieldOrderableRows('SortOrder') |
|
| 30 | - ); |
|
| 19 | + $grid->getConfig() |
|
| 20 | + ->removeComponentsByType('GridFieldPaginator') |
|
| 21 | + ->removeComponentsByType('GridFieldAddNewButton') |
|
| 22 | + ->removeComponentsByType('GridFieldPrintButton') |
|
| 23 | + ->removeComponentsByType('GridFieldExportButton') |
|
| 24 | + ->removeComponentsByType('GridFieldDetailForm') |
|
| 25 | + ->addComponents( |
|
| 26 | + new VersionedForm(), |
|
| 27 | + new GridFieldPaginatorWithShowAll(30), |
|
| 28 | + $multiClass = new MultiClassSelector(), |
|
| 29 | + $sortable = new GridFieldOrderableRows('SortOrder') |
|
| 30 | + ); |
|
| 31 | 31 | |
| 32 | - $subBlocks = self::getAvaiableTypes(); |
|
| 33 | - $multiClass->setClasses($subBlocks); |
|
| 34 | - $grid->setTitle('All Blcoks'); |
|
| 35 | - return $form; |
|
| 36 | - } |
|
| 32 | + $subBlocks = self::getAvaiableTypes(); |
|
| 33 | + $multiClass->setClasses($subBlocks); |
|
| 34 | + $grid->setTitle('All Blcoks'); |
|
| 35 | + return $form; |
|
| 36 | + } |
|
| 37 | 37 | |
| 38 | - public function getList() { |
|
| 39 | - $list = Versioned::get_by_stage('Block', 'Stage'); |
|
| 38 | + public function getList() { |
|
| 39 | + $list = Versioned::get_by_stage('Block', 'Stage'); |
|
| 40 | 40 | |
| 41 | - return $list; |
|
| 41 | + return $list; |
|
| 42 | 42 | } |
| 43 | 43 | |
| 44 | - public static function getAvaiableTypes() { |
|
| 45 | - $subBlocks = ClassInfo::subclassesFor('Block'); |
|
| 46 | - if (is_null($subBlocks)) { |
|
| 47 | - $subBlocks = array('Block'); |
|
| 48 | - }else{ |
|
| 49 | - $disabledTypes = Config::inst()->get('Block','DisabledBlocks'); |
|
| 50 | - if (!empty($disabledTypes)) { |
|
| 51 | - foreach ($disabledTypes as $disabledType) { |
|
| 52 | - unset($subBlocks[$disabledType]); |
|
| 53 | - } |
|
| 54 | - } |
|
| 55 | - foreach ($subBlocks as $key => &$value) { |
|
| 56 | - $value = empty($key::$singular_name) ? ucwords(trim(strtolower(preg_replace('/_?([A-Z])/', ' $1', $value)))) : $key::$singular_name; |
|
| 57 | - } |
|
| 58 | - } |
|
| 44 | + public static function getAvaiableTypes() { |
|
| 45 | + $subBlocks = ClassInfo::subclassesFor('Block'); |
|
| 46 | + if (is_null($subBlocks)) { |
|
| 47 | + $subBlocks = array('Block'); |
|
| 48 | + }else{ |
|
| 49 | + $disabledTypes = Config::inst()->get('Block','DisabledBlocks'); |
|
| 50 | + if (!empty($disabledTypes)) { |
|
| 51 | + foreach ($disabledTypes as $disabledType) { |
|
| 52 | + unset($subBlocks[$disabledType]); |
|
| 53 | + } |
|
| 54 | + } |
|
| 55 | + foreach ($subBlocks as $key => &$value) { |
|
| 56 | + $value = empty($key::$singular_name) ? ucwords(trim(strtolower(preg_replace('/_?([A-Z])/', ' $1', $value)))) : $key::$singular_name; |
|
| 57 | + } |
|
| 58 | + } |
|
| 59 | 59 | |
| 60 | - return $subBlocks; |
|
| 61 | - } |
|
| 60 | + return $subBlocks; |
|
| 61 | + } |
|
| 62 | 62 | |
| 63 | 63 | |
| 64 | 64 | } |
@@ -1,41 +1,41 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | class PrintBlocks extends Extension { |
| 3 | 3 | |
| 4 | - public function getAllBlocks() { |
|
| 5 | - $blocks = new ArrayList(); |
|
| 6 | - $blocks->merge($this->getMyBlocks()); |
|
| 7 | - $blocks->merge($this->getDockedBlocks()); |
|
| 8 | - return $blocks; |
|
| 9 | - } |
|
| 4 | + public function getAllBlocks() { |
|
| 5 | + $blocks = new ArrayList(); |
|
| 6 | + $blocks->merge($this->getMyBlocks()); |
|
| 7 | + $blocks->merge($this->getDockedBlocks()); |
|
| 8 | + return $blocks; |
|
| 9 | + } |
|
| 10 | 10 | |
| 11 | - public function getMyBlocks() { |
|
| 12 | - $blocks = $this->owner->Blocks()->sort(array('SortOrder' => 'ASC', 'ID' => 'DESC')); |
|
| 13 | - $published_blocks = new ArrayList(); |
|
| 14 | - foreach ($blocks as $block) { |
|
| 15 | - if ($block->isPublished()) { |
|
| 16 | - $published_blocks->push($block); |
|
| 17 | - } |
|
| 18 | - } |
|
| 11 | + public function getMyBlocks() { |
|
| 12 | + $blocks = $this->owner->Blocks()->sort(array('SortOrder' => 'ASC', 'ID' => 'DESC')); |
|
| 13 | + $published_blocks = new ArrayList(); |
|
| 14 | + foreach ($blocks as $block) { |
|
| 15 | + if ($block->isPublished()) { |
|
| 16 | + $published_blocks->push($block); |
|
| 17 | + } |
|
| 18 | + } |
|
| 19 | 19 | |
| 20 | - return $published_blocks; |
|
| 21 | - } |
|
| 20 | + return $published_blocks; |
|
| 21 | + } |
|
| 22 | 22 | |
| 23 | - public function getDockedBlocks() { |
|
| 24 | - $blocks = Block::get()->filter(array('showBlockbyClass' => true)); |
|
| 25 | - $blocks_map = $blocks->map('ID', 'shownInClass'); |
|
| 26 | - foreach ($blocks_map as $blockID => $Classes) { |
|
| 27 | - $Classes = explode(',', $Classes); |
|
| 28 | - if (!in_array($this->owner->ClassName, $Classes)) { |
|
| 29 | - $blocks = $blocks->exclude('ID', $blockID); |
|
| 30 | - } |
|
| 31 | - } |
|
| 32 | - $published_blocks = new ArrayList(); |
|
| 33 | - foreach ($blocks as $block) { |
|
| 34 | - if ($block->isPublished()) { |
|
| 35 | - $published_blocks->push($block); |
|
| 36 | - } |
|
| 37 | - } |
|
| 23 | + public function getDockedBlocks() { |
|
| 24 | + $blocks = Block::get()->filter(array('showBlockbyClass' => true)); |
|
| 25 | + $blocks_map = $blocks->map('ID', 'shownInClass'); |
|
| 26 | + foreach ($blocks_map as $blockID => $Classes) { |
|
| 27 | + $Classes = explode(',', $Classes); |
|
| 28 | + if (!in_array($this->owner->ClassName, $Classes)) { |
|
| 29 | + $blocks = $blocks->exclude('ID', $blockID); |
|
| 30 | + } |
|
| 31 | + } |
|
| 32 | + $published_blocks = new ArrayList(); |
|
| 33 | + foreach ($blocks as $block) { |
|
| 34 | + if ($block->isPublished()) { |
|
| 35 | + $published_blocks->push($block); |
|
| 36 | + } |
|
| 37 | + } |
|
| 38 | 38 | |
| 39 | - return $published_blocks->sort('SortOrder', 'ASC'); |
|
| 40 | - } |
|
| 39 | + return $published_blocks->sort('SortOrder', 'ASC'); |
|
| 40 | + } |
|
| 41 | 41 | } |
| 42 | 42 | \ No newline at end of file |
@@ -1,29 +1,29 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | class OrderableBlocks extends GridFieldOrderableRows { |
| 4 | - protected function reorderItems($list, array $values, array $order) { |
|
| 5 | - $pool = array_values($values); |
|
| 6 | - sort($pool); |
|
| 4 | + protected function reorderItems($list, array $values, array $order) { |
|
| 5 | + $pool = array_values($values); |
|
| 6 | + sort($pool); |
|
| 7 | 7 | |
| 8 | - foreach(array_values($order) as $pos => $id) { |
|
| 9 | - if($values[$id] != $pool[$pos]) { |
|
| 10 | - DB::query(sprintf( |
|
| 11 | - 'UPDATE "%s" SET "%s" = %d WHERE %s', |
|
| 12 | - $this->getSortTable($list), |
|
| 13 | - $this->getSortField(), |
|
| 14 | - $pool[$pos], |
|
| 15 | - $this->getSortTableClauseForIds($list, $id) |
|
| 16 | - )); |
|
| 17 | - DB::query(sprintf( |
|
| 18 | - 'UPDATE "%s_Live" SET "%s" = %d WHERE %s', |
|
| 19 | - $this->getSortTable($list), |
|
| 20 | - $this->getSortField(), |
|
| 21 | - $pool[$pos], |
|
| 22 | - $this->getSortTableClauseForIds($list, $id) |
|
| 23 | - )); |
|
| 24 | - } |
|
| 25 | - } |
|
| 8 | + foreach(array_values($order) as $pos => $id) { |
|
| 9 | + if($values[$id] != $pool[$pos]) { |
|
| 10 | + DB::query(sprintf( |
|
| 11 | + 'UPDATE "%s" SET "%s" = %d WHERE %s', |
|
| 12 | + $this->getSortTable($list), |
|
| 13 | + $this->getSortField(), |
|
| 14 | + $pool[$pos], |
|
| 15 | + $this->getSortTableClauseForIds($list, $id) |
|
| 16 | + )); |
|
| 17 | + DB::query(sprintf( |
|
| 18 | + 'UPDATE "%s_Live" SET "%s" = %d WHERE %s', |
|
| 19 | + $this->getSortTable($list), |
|
| 20 | + $this->getSortField(), |
|
| 21 | + $pool[$pos], |
|
| 22 | + $this->getSortTableClauseForIds($list, $id) |
|
| 23 | + )); |
|
| 24 | + } |
|
| 25 | + } |
|
| 26 | 26 | |
| 27 | - $this->extend('onAfterReorderItems', $list); |
|
| 28 | - } |
|
| 27 | + $this->extend('onAfterReorderItems', $list); |
|
| 28 | + } |
|
| 29 | 29 | } |
| 30 | 30 | \ No newline at end of file |
@@ -1,62 +1,62 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | class BlockinPage extends Extension { |
| 4 | - private static $belongs_many_many = array ( |
|
| 5 | - 'Blocks' => 'Block' |
|
| 6 | - ); |
|
| 4 | + private static $belongs_many_many = array ( |
|
| 5 | + 'Blocks' => 'Block' |
|
| 6 | + ); |
|
| 7 | 7 | |
| 8 | - public function updateCMSFields( FieldList $fields ) { |
|
| 9 | - $ancestry = ClassInfo::ancestry($this->owner->ClassName); |
|
| 10 | - if (!in_array('RedirectorPage', $ancestry) && !in_array('VirtualPage', $ancestry)) { |
|
| 11 | - $blocks = $this->owner->Blocks(); |
|
| 12 | - $blocks_grid = $this->gridBuilder('Blocks', $blocks, '', true,'GridFieldConfig_RelationEditor'); |
|
| 13 | - $docked_grid = $this->gridBuilder('DockedBlocks', $this->dockedBlocks(), ''); |
|
| 8 | + public function updateCMSFields( FieldList $fields ) { |
|
| 9 | + $ancestry = ClassInfo::ancestry($this->owner->ClassName); |
|
| 10 | + if (!in_array('RedirectorPage', $ancestry) && !in_array('VirtualPage', $ancestry)) { |
|
| 11 | + $blocks = $this->owner->Blocks(); |
|
| 12 | + $blocks_grid = $this->gridBuilder('Blocks', $blocks, '', true,'GridFieldConfig_RelationEditor'); |
|
| 13 | + $docked_grid = $this->gridBuilder('DockedBlocks', $this->dockedBlocks(), ''); |
|
| 14 | 14 | |
| 15 | - $fields->addFieldToTab('Root.MyBlocks', $blocks_grid); |
|
| 16 | - $fields->addFieldToTab('Root.DockedBlocks', $docked_grid); |
|
| 17 | - } |
|
| 18 | - } |
|
| 15 | + $fields->addFieldToTab('Root.MyBlocks', $blocks_grid); |
|
| 16 | + $fields->addFieldToTab('Root.DockedBlocks', $docked_grid); |
|
| 17 | + } |
|
| 18 | + } |
|
| 19 | 19 | |
| 20 | - private function gridBuilder($name, $source, $label = '', $canAdd = false, $gridHeaderType = 'GridFieldConfig_RecordEditor') { |
|
| 21 | - /* |
|
| 20 | + private function gridBuilder($name, $source, $label = '', $canAdd = false, $gridHeaderType = 'GridFieldConfig_RecordEditor') { |
|
| 21 | + /* |
|
| 22 | 22 | GridFieldConfig_Base |
| 23 | 23 | GridFieldConfig_RecordViewer |
| 24 | 24 | GridFieldConfig_RecordEditor |
| 25 | 25 | GridFieldConfig_RelationEditor |
| 26 | 26 | */ |
| 27 | - if ($label == '') { $label = $name; } |
|
| 28 | - $grid = new GridField($name, $label, $source); |
|
| 29 | - $config = $gridHeaderType::create(); |
|
| 30 | - $config->removeComponentsByType('GridFieldAddNewButton'); |
|
| 31 | - if ( $canAdd ) { |
|
| 32 | - $config |
|
| 33 | - ->removeComponentsByType('GridFieldPaginator') |
|
| 34 | - ->removeComponentsByType('GridFieldDetailForm') |
|
| 35 | - ->addComponents( |
|
| 36 | - new VersionedForm(), |
|
| 37 | - new GridFieldPaginatorWithShowAll(30), |
|
| 38 | - $multiClass = new MultiClassSelector(), |
|
| 39 | - $sortable = new OrderableBlocks('SortOrder') |
|
| 40 | - ); |
|
| 41 | - $subBlocks = BlocksAdmin::getAvaiableTypes(); |
|
| 42 | - $multiClass->setClasses($subBlocks); |
|
| 43 | - } |
|
| 44 | - $grid->setConfig($config); |
|
| 45 | - return $grid; |
|
| 46 | - } |
|
| 27 | + if ($label == '') { $label = $name; } |
|
| 28 | + $grid = new GridField($name, $label, $source); |
|
| 29 | + $config = $gridHeaderType::create(); |
|
| 30 | + $config->removeComponentsByType('GridFieldAddNewButton'); |
|
| 31 | + if ( $canAdd ) { |
|
| 32 | + $config |
|
| 33 | + ->removeComponentsByType('GridFieldPaginator') |
|
| 34 | + ->removeComponentsByType('GridFieldDetailForm') |
|
| 35 | + ->addComponents( |
|
| 36 | + new VersionedForm(), |
|
| 37 | + new GridFieldPaginatorWithShowAll(30), |
|
| 38 | + $multiClass = new MultiClassSelector(), |
|
| 39 | + $sortable = new OrderableBlocks('SortOrder') |
|
| 40 | + ); |
|
| 41 | + $subBlocks = BlocksAdmin::getAvaiableTypes(); |
|
| 42 | + $multiClass->setClasses($subBlocks); |
|
| 43 | + } |
|
| 44 | + $grid->setConfig($config); |
|
| 45 | + return $grid; |
|
| 46 | + } |
|
| 47 | 47 | |
| 48 | - private function dockedBlocks() { |
|
| 49 | - $blocks = Block::get(); |
|
| 50 | - $IDs = array(); |
|
| 51 | - $ClassName = $this->owner->ClassName; |
|
| 52 | - $Classes = $blocks->map('ID', 'shownInClass'); |
|
| 53 | - foreach ($Classes as $BlockID => $Class) { |
|
| 54 | - $listedClasses = explode(',', $Class); |
|
| 55 | - if (in_array($ClassName, $listedClasses)) { |
|
| 56 | - $IDs[] = $BlockID; |
|
| 57 | - } |
|
| 58 | - } |
|
| 59 | - $blocks = Block::get()->filter('ID', $IDs)->sort('SortOrder','ASC'); |
|
| 60 | - return $blocks; |
|
| 61 | - } |
|
| 48 | + private function dockedBlocks() { |
|
| 49 | + $blocks = Block::get(); |
|
| 50 | + $IDs = array(); |
|
| 51 | + $ClassName = $this->owner->ClassName; |
|
| 52 | + $Classes = $blocks->map('ID', 'shownInClass'); |
|
| 53 | + foreach ($Classes as $BlockID => $Class) { |
|
| 54 | + $listedClasses = explode(',', $Class); |
|
| 55 | + if (in_array($ClassName, $listedClasses)) { |
|
| 56 | + $IDs[] = $BlockID; |
|
| 57 | + } |
|
| 58 | + } |
|
| 59 | + $blocks = Block::get()->filter('ID', $IDs)->sort('SortOrder','ASC'); |
|
| 60 | + return $blocks; |
|
| 61 | + } |
|
| 62 | 62 | } |
| 63 | 63 | \ No newline at end of file |
@@ -1,9 +1,9 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | class DualColumnBlock extends Block { |
| 4 | - private static $singular_name = 'Dual-column Block'; |
|
| 5 | - private static $db = array ( |
|
| 6 | - 'LeftColumn' => 'HTMLText', |
|
| 7 | - 'RightColumn' => 'HTMLText' |
|
| 8 | - ); |
|
| 4 | + private static $singular_name = 'Dual-column Block'; |
|
| 5 | + private static $db = array ( |
|
| 6 | + 'LeftColumn' => 'HTMLText', |
|
| 7 | + 'RightColumn' => 'HTMLText' |
|
| 8 | + ); |
|
| 9 | 9 | } |
| 10 | 10 | \ No newline at end of file |
@@ -1,8 +1,8 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | class SingleColumnBlock extends Block { |
| 4 | - private static $singular_name = 'Single-column Block'; |
|
| 5 | - private static $db = array ( |
|
| 6 | - 'Content' => 'HTMLText' |
|
| 7 | - ); |
|
| 4 | + private static $singular_name = 'Single-column Block'; |
|
| 5 | + private static $db = array ( |
|
| 6 | + 'Content' => 'HTMLText' |
|
| 7 | + ); |
|
| 8 | 8 | } |
| 9 | 9 | \ No newline at end of file |