本文整理汇总了PHP中GridFieldConfig::__construct方法的典型用法代码示例。如果您正苦于以下问题:PHP GridFieldConfig::__construct方法的具体用法?PHP GridFieldConfig::__construct怎么用?PHP GridFieldConfig::__construct使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GridFieldConfig
的用法示例。
在下文中一共展示了GridFieldConfig::__construct方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
public function __construct($canAdd = true, $canEdit = true, $canDelete = true, $editableRows = false, $aboveOrBelow = false)
{
parent::__construct();
$this->blockManager = Injector::inst()->get('BlockManager');
$controllerClass = Controller::curr()->class;
// Get available Areas (for page) or all in case of ModelAdmin
if ($controllerClass == 'CMSPageEditController') {
$currentPage = Controller::curr()->currentPage();
$areasFieldSource = $this->blockManager->getAreasForPageType($currentPage->ClassName);
} else {
$areasFieldSource = $this->blockManager->getAreasForTheme();
}
// EditableColumns only makes sense on Saveable parenst (eg Page), or inline changes won't be saved
if ($editableRows) {
$this->addComponent($editable = new GridFieldEditableColumns());
$displayfields = array('TypeForGridfield' => array('title' => _t('Block.BlockType', 'Block Type'), 'field' => 'LiteralField'), 'Title' => array('title' => _t('Block.Title', 'Title'), 'field' => 'ReadonlyField'), 'BlockArea' => array('title' => _t('Block.BlockArea', 'Block Area') . '
', 'callback' => function () use($areasFieldSource) {
return DropdownField::create('BlockArea', 'Block Area', $areasFieldSource)->setHasEmptyDefault(true);
}), 'isPublishedNice' => array('title' => _t('Block.IsPublishedField', 'Published'), 'field' => 'ReadonlyField'), 'UsageListAsString' => array('title' => _t('Block.UsageListAsString', 'Used on'), 'field' => 'LiteralField'));
if ($aboveOrBelow) {
$displayfields['AboveOrBelow'] = array('title' => _t('GridFieldConfigBlockManager.AboveOrBelow', 'Above or Below'), 'callback' => function () {
return DropdownField::create('AboveOrBelow', _t('GridFieldConfigBlockManager.AboveOrBelow', 'Above or Below'), BlockSet::config()->get('above_or_below_options'));
});
}
$editable->setDisplayFields($displayfields);
} else {
$this->addComponent($dcols = new GridFieldDataColumns());
$displayfields = array('singular_name' => _t('Block.BlockType', 'Block Type'), 'Title' => _t('Block.Title', 'Title'), 'BlockArea' => _t('Block.BlockArea', 'Block Area'), 'isPublishedNice' => _t('Block.IsPublishedField', 'Published'), 'UsageListAsString' => _t('Block.UsageListAsString', 'Used on'));
$dcols->setDisplayFields($displayfields);
$dcols->setFieldCasting(array('UsageListAsString' => 'HTMLText->Raw'));
}
$this->addComponent(new GridFieldButtonRow('before'));
$this->addComponent(new GridFieldToolbarHeader());
$this->addComponent(new GridFieldDetailForm());
$this->addComponent($sort = new GridFieldSortableHeader());
$this->addComponent($filter = new GridFieldFilterHeader());
$this->addComponent(new GridFieldDetailForm());
if ($controllerClass == 'BlockAdmin' && class_exists('GridFieldCopyButton')) {
$this->addComponent(new GridFieldCopyButton());
}
$filter->setThrowExceptionOnBadDataType(false);
$sort->setThrowExceptionOnBadDataType(false);
if ($canAdd) {
$multiClass = new GridFieldAddNewMultiClass();
$classes = $this->blockManager->getBlockClasses();
$multiClass->setClasses($classes);
$this->addComponent($multiClass);
//$this->addComponent(new GridFieldAddNewButton());
}
if ($canEdit) {
$this->addComponent(new GridFieldEditButton());
}
if ($canDelete) {
$this->addComponent(new GridFieldDeleteAction(true));
}
return $this;
}
示例2: __construct
public function __construct($itemsPerPage = null)
{
parent::__construct($itemsPerPage);
if ($this->config()->get('allow_add_new') && $this->config()->get('add_new_multi_class')) {
$this->removeComponentsByType(static::ComponentAddNewButton);
$this->addComponent(\Injector::inst()->create(static::ComponentAddNewMultiClass));
// try default before we have a grid field model, this could be overridden later
if ($classes = static::limited_related_classes()) {
$this->setAddNewClasses($classes);
}
}
}
示例3: __construct
/**
* @param int $itemsPerPage - How many items per page should show up
*/
public function __construct($itemsPerPage = null)
{
parent::__construct();
$this->addComponent(new GridFieldToolbarHeader());
$this->addComponent($sort = new GridFieldSortableHeader());
$this->addComponent($filter = new GridFieldFilterHeader());
$this->addComponent(new GridFieldDataColumns());
$this->addComponent(new GridFieldPageCount('toolbar-header-right'));
$this->addComponent($pagination = new GridFieldPaginator($itemsPerPage));
$sort->setThrowExceptionOnBadDataType(false);
$filter->setThrowExceptionOnBadDataType(false);
$pagination->setThrowExceptionOnBadDataType(false);
$this->extend('updateConfig');
}
示例4: __construct
public function __construct($itemsPerPage = null)
{
parent::__construct($itemsPerPage);
$this->addComponent(new GridFieldButtonRow('before'));
$this->addComponent(new GridFieldSiteTreeAddNewButton('buttons-before-left'));
$this->addComponent(new GridFieldToolbarHeader());
$this->addComponent(new GridFieldSortableHeader());
$this->addComponent(new GridFieldFilterHeader());
$this->addComponent(new GridFieldDataColumns());
$this->addComponent(new GridFieldSiteTreeEditButton());
$this->addComponent(new GridFieldPageCount('toolbar-header-right'));
$this->addComponent($pagination = new GridFieldPaginator($itemsPerPage));
$this->addComponent(new GridFieldSiteTreeState());
$pagination->setThrowExceptionOnBadDataType(true);
}
示例5: __construct
public function __construct()
{
parent::__construct();
$this->addComponent(new GridFieldButtonRow('before'));
$this->addComponent(new GridFieldAddNewButton('buttons-before-left'));
$this->addComponent(new GridFieldToolbarHeader());
$this->addComponent($sort = new GridFieldSortableHeader());
$this->addComponent($filter = new GridFieldFilterHeader());
$this->addComponent(new GridFieldModuleColumns());
$this->addComponent(new GridFieldDataColumns());
$this->addComponent(new GridFieldEditButton());
$this->addComponent(new GridFieldDeleteAction());
$this->addComponent(new PageModuleVersionedDataObjectDetailsForm());
$sort->setThrowExceptionOnBadDataType(false);
$filter->setThrowExceptionOnBadDataType(false);
$this->extend('updateConfig');
}
示例6: __construct
/**
*
* @param int $itemsPerPage - How many items per page should show up
*/
public function __construct($itemsPerPage = null)
{
parent::__construct();
$this->addComponent(new GridFieldButtonRow('before'));
$this->addComponent(new GridFieldAddNewButton('buttons-before-left'));
$this->addComponent(new GridFieldToolbarHeader());
$this->addComponent($sort = new GridFieldSortableHeader());
$this->addComponent($filter = new GridFieldFilterHeader());
$this->addComponent(new GridFieldDataColumns());
$this->addComponent(new GridFieldEditButton());
$this->addComponent(new GridFieldDeleteAction());
$this->addComponent(new GridFieldPageCount('toolbar-header-right'));
$this->addComponent($pagination = new GridFieldPaginator($itemsPerPage));
$this->addComponent(new GridFieldDetailForm());
$sort->setThrowExceptionOnBadDataType(false);
$filter->setThrowExceptionOnBadDataType(false);
$pagination->setThrowExceptionOnBadDataType(false);
$this->extend('updateConfig');
}
示例7: __construct
/**
*
* @param array $classname Name of class who's subclasses will be added to form
* @param int $itemsPerPage - How many items per page should show up
* @param boolean | string $sorting Allow sorting of rows, either false or the name of the sort column
*/
public function __construct($classname, $itemsPerPage = null, $sort_col = false)
{
parent::__construct();
// Setup Bulk manager
$manager = new GridFieldBulkManager();
$manager->removeBulkAction("unLink");
$manager->addBulkAction('disable', 'Disable', 'CatalogueProductBulkAction');
$manager->addBulkAction('enable', 'Enable', 'CatalogueProductBulkAction');
/// Setup add new button
$add_button = new GridFieldAddNewMultiClass("buttons-before-left");
$add_button->setClasses($this->get_subclasses($classname));
$this->addComponent(new GridFieldButtonRow('before'));
$this->addComponent(new GridFieldToolbarHeader());
$this->addComponent($sort = new GridFieldSortableHeader());
$this->addComponent($filter = new GridFieldFilterHeader());
$this->addComponent(new GridFieldDataColumns());
$this->addComponent(new GridFieldEditButton());
$this->addComponent(new GridFieldDeleteAction());
$this->addComponent(new GridFieldPageCount('toolbar-header-right'));
$this->addComponent($pagination = new GridFieldPaginator($itemsPerPage));
$this->addComponent(new GridFieldExportButton("buttons-before-right"));
// If we are manageing a category, use the relevent field, else use
// product
if ($classname == "Category") {
$this->addComponent(new CatalogueCategoryDetailForm());
$add_button->setItemRequestClass("CatalogueCategoryDetailForm_ItemRequest");
} else {
$this->addComponent(new CatalogueEnableDisableDetailForm());
$add_button->setItemRequestClass("CatalogueEnableDisableDetailForm_ItemRequest");
}
$this->addComponent($add_button);
if ($sort_col) {
$this->addComponent(GridFieldOrderableRows::create($sort_col));
}
$sort->setThrowExceptionOnBadDataType(false);
$filter->setThrowExceptionOnBadDataType(false);
$pagination->setThrowExceptionOnBadDataType(false);
}
示例8: __construct
public function __construct($canAdd = true, $canEdit = true, $canDelete = true, $editableRows = false, $aboveOrBelow = false)
{
parent::__construct();
$this->blockManager = Injector::inst()->get('BlockManager');
$controllerClass = Controller::curr()->class;
// Get available Areas (for page) or all in case of ModelAdmin
if ($controllerClass == 'CMSPageEditController') {
$currentPage = Controller::curr()->currentPage();
$areasFieldSource = $this->blockManager->getAreasForPageType($currentPage->ClassName);
} else {
$areasFieldSource = $this->blockManager->getAreasForTheme();
}
// EDIT
$blockTypeArray = $this->blockManager->getBlockClasses();
// /EDIT
// EditableColumns only makes sense on Saveable parenst (eg Page), or inline changes won't be saved
if ($editableRows) {
// set project-dir in cookie to be accessible as fallback from js
Cookie::set('js-project-dir', project(), 90, null, null, false, false);
$this->addComponent($editable = new GridFieldEditableColumns());
$displayfields = array('ClassName' => array('title' => _t('Block.BlockType', 'Block Type') . '
', 'callback' => function () use($blockTypeArray) {
return DropdownField::create('ClassName', 'Block Type', $blockTypeArray)->addExtraClass('select2blocktype')->setAttribute('data-project-dir', project());
}), 'Title' => array('title' => _t('Block.TitleName', 'Block Name'), 'field' => 'TextField'), 'BlockArea' => array('title' => _t('Block.BlockArea', 'Block Area') . '
', 'callback' => function () use($areasFieldSource) {
return DropdownField::create('BlockArea', 'Block Area', $areasFieldSource)->setHasEmptyDefault(true);
}), 'isPublishedNice' => array('title' => _t('Block.IsPublishedField', 'Published'), 'field' => 'ReadonlyField'), 'UsageListAsString' => array('title' => _t('Block.UsageListAsString', 'Used on'), 'field' => 'ReadonlyField'));
if ($aboveOrBelow) {
$displayfields['AboveOrBelow'] = array('title' => _t('GridFieldConfigBlockManager.AboveOrBelow', 'Above or Below'), 'callback' => function () {
return DropdownField::create('AboveOrBelow', _t('GridFieldConfigBlockManager.AboveOrBelow', 'Above or Below'), BlockSet::config()->get('above_or_below_options'));
});
}
$editable->setDisplayFields($displayfields);
// EDIT
$this->addComponent($erow = new EditableBlockRow());
// /EDIT
} else {
$this->addComponent($dcols = new GridFieldDataColumns());
$displayfields = array('singular_name' => _t('Block.BlockType', 'Block Type'), 'Title' => _t('Block.TitleName', 'Block Name'), 'BlockArea' => _t('Block.BlockArea', 'Block Area'), 'isPublishedNice' => _t('Block.IsPublishedField', 'Published'), 'UsageListAsString' => _t('Block.UsageListAsString', 'Used on'));
$dcols->setDisplayFields($displayfields);
$dcols->setFieldCasting(array('UsageListAsString' => 'HTMLText->Raw'));
}
$this->addComponent(new GridFieldButtonRow('before'));
// EDIT
$this->addComponent(new GridFieldButtonRow('after'));
// /EDIT
$this->addComponent(new GridFieldToolbarHeader());
$this->addComponent(new GridFieldDetailForm());
// EDIT
//$this->addComponent($sort = new GridFieldSortableHeader());
//$this->addComponent($filter = new GridFieldFilterHeader());
//$this->addComponent(new GridFieldDetailForm());
//$filter->setThrowExceptionOnBadDataType(false);
//$sort->setThrowExceptionOnBadDataType(false);
// load enhancements module (eg inline editing etc, needs save action @TODO: move to SiteTree only?
if (class_exists('GF_BlockEnhancements')) {
$this->addComponent(new GF_BlockEnhancements());
}
// stuff only for BlockAdmin
if ($controllerClass == 'BlockAdmin') {
$this->addComponent($sort = new GridFieldSortableHeader());
$sort->setThrowExceptionOnBadDataType(false);
$this->addComponent($filter = new GridFieldFilterHeader());
$filter->setThrowExceptionOnBadDataType(false);
} else {
// only for GF on SiteTree
$this->addComponent(new GridFieldTitleHeader());
$this->addComponent(new GridFieldFooter());
// groupable
$this->addComponent(new GridFieldGroupable('BlockArea', 'Area', 'none', $areasFieldSource));
// var_dump($areasFieldSource);
// // Get available Areas (for page) enhancements inactive when in ModelAdmin/BlockAdmin
// if (Controller::curr() && Controller::curr()->class == 'CMSPageEditController') {
// // Provide defined blockAreas to JS
// $blockManager = Injector::inst()->get('BlockManager');
//// $blockAreas = $blockManager->getAreasForPageType( Controller::curr()->currentPage()->ClassName );
// $blockAreas = $blockManager->getAreasForPageType( Controller::curr()->currentPage()->ClassName );
// }
}
if ($canAdd) {
$multiClass = new GridFieldAddNewMultiClass('after');
$classes = $this->blockManager->getBlockClasses();
$multiClass->setClasses($classes);
$this->addComponent($multiClass);
//$this->addComponent(new GridFieldAddNewButton());
}
// /EDIT
if ($controllerClass == 'BlockAdmin' && class_exists('GridFieldCopyButton')) {
$this->addComponent(new GridFieldCopyButton());
}
if ($canEdit) {
$this->addComponent(new GridFieldEditButton());
}
if ($canDelete) {
$this->addComponent(new GridFieldDeleteAction(true));
}
return $this;
}