arillo/silverstripe-utils
SilverStripe CMS 的工具和辅助函数。
Requires
This package is auto-updated.
Last update: 2024-09-24 08:55:32 UTC
README
SilverStripe CMS 的工具和辅助函数。
要求
SilverStripe CMS ^4.0
安装
composer require arillo/silverstripe-utils
使用
此模块是一组用于更改 CMS 功能的类。
Arillo\Utils\HiddenLeftAndMain
将 Arillo\Utils\HiddenLeftAndMain
附加到您想要隐藏的任何 LeftAndMain 子类,例如在 config.yml
中
SilverStripe\CampaignAdmin\CampaignAdmin:
extensions:
- Arillo\Utils\HiddenLeftAndMain
Arillo\Utils\FluentFilteredHelper
如果您使用 silverstripe-fluent
与 TractorCow\Fluent\Extension\FluentFilteredExtension
,则可以将 Arillo\Utils\FluentFilteredHelper
添加到您的翻译数据对象中,它将在记录创建时附加所有区域,并在记录删除时删除区域条目。在配置中,例如添加
MyDataObject:
# will create locale entries for this record on first save, default: true
auto_create_locales: true
# will delete locale entries on record deletion, default: false
auto_delete_locales: true
extensions:
- 'TractorCow\Fluent\Extension\FluentFilteredExtension'
- 'Arillo\Utils\FluentFilteredHelper'
Arillo\Utils\FluentHelper
使用 Arillo\Utils\FluentHelper::force_delete
可以在记录删除时提高 CMS 的用户体验。目前 Fluent 要求您在每个区域中删除页面,才能将其从 SiteTree 中删除。示例用法
<?php
use SilverStripe\CMS\Model\SiteTree;
use Arillo\Utils\FluentHelper;
class Page extends SiteTree
{
public function onBeforeDelete()
{
parent::onBeforeDelete();
FluentHelper::force_delete($this); // insert this
}
}
Arillo\Utils\CMS
一些未排序的功能。
从菜单中删除与活动相关的操作
<?php
use SilverStripe\CMS\Model\SiteTree;
use Arillo\Utils\CMS;
class Page extends SiteTree
{
public function getCMSActions()
{
return CMS::remove_campaign_actions(parent::getCMSActions());
}
}
用于网格字段使用的缩略图辅助函数
<?php
use SilverStripe\ORM\DataObject;
use SilverStripe\Assets\Image;
use Arillo\Utils\CMS;
class MyDataObject extends DataObject
{
private static $has_one = [ 'Image' => Image::class ];
private static $summary_fields = [ 'Thumbnail' => 'Image' ];
public function getThumbnail()
{
return CMS::thumbnail($this->Image());
}
}
Arillo\Utils\AlertField
在 CMS 中显示消息(bootstrap alert style)。例如。
<?php
use SilverStripe\CMS\Model\SiteTree;
use Arillo\Utils\AlertField;
class Page extends SiteTree
{
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->addFieldToTab(
'Root.Main',
AlertField::create('PageInfo', "Page type: {$this->ClassName}", 'dark')
, 'Title');
return $fields;
}
}
Arillo\Utils\SortableDataObject
将此扩展添加到数据对象以使其可排序
use SilverStripe\ORM\DataObject;
use Arillo\Utils\SortableDataObject;
class MyDataObject extends DataObject
{
private static $extensions = [
SortableDataObject::class,
];
}
您可以使用以下辅助函数将 GridFieldOrderableRows
应用于管理 GridField
use Arillo\Utils\SortableDataObject;
...
..
.
SortableDataObject::make_gridfield_sortable($gridField);
Arillo\Utils\Env
有 3 个全局辅助函数用于模板使用
Is DEV: <% if $IsDev %>yes<% else %>no<% end_if %> <br>
Is TEST: <% if $IsTest %>yes<% else %>no<% end_if %> <br>
Is PROD: <% if $IsProd %>yes<% else %>no<% end_if %> <br>
在 php 中
Arillo\Utils\Env::is_dev();
Arillo\Utils\Env::is_prod();
Arillo\Utils\Env::is_test();
Arillo\Utils\PageHelper
页面和模板功能的辅助函数。
添加 PageInstance
和 PageControllerInstance
模板方法。当需要只有一个 SiteTree 子类实例时非常有用
<%-- access a page by classname in templates --%>
$PageInstance(SomeSiteTreeSubClassName).Title
$PageInstance(SomeSiteTreeSubClassName).Link
<%-- e.g. render a Form from a diffrent controller --%>
$PageControllerInstance(SomeSiteTreeSubClassName).Form