webbuilders-group/silverstripe-add-to-campaigns

为CMS管理员提供轻松将任何版本化对象添加到活动的功能

1.1.0 2023-07-28 16:28 UTC

This package is auto-updated.

Last update: 2024-09-17 12:27:41 UTC


README

通过CMS中的“添加到活动”按钮,轻松将任何版本化对象添加到活动中,就像页面一样,为CMS管理员提供此功能。

维护者联系方式

要求

  • SilverStripe Campaign Admin 1.2+ | 2.0+

安装

composer require webbuilders-group/silverstripe-add-to-campaigns

使用方法

默认情况下,所有SilverStripe\Forms\GridField\GridFieldDetailForm_ItemRequest实例都将获得一个扩展,该扩展将自动为所有允许的类配置“添加到活动”功能的GridFieldDetailForm_ItemRequest编辑表单。要在config.yml中添加类以支持允许的类,您必须添加以下内容。必须将DataObject包含SilverStripe\Versioned\Versioned扩展。

WebbuildersGroup\AddToCampaigns\Control\Admin\AddToCampaignController:
  campaignable_classes:
    - 'Full\DataObject\ClassName\Including\Namespace'

如果您没有修改您的GridFieldDetailForm_ItemRequest操作从默认的GridFieldDetailForm_ItemRequest::getFormActions(),“添加到活动”按钮应自动添加到所有允许的类中。如果您已修改,您可以在设置您的DataObjectGridFieldDetailForm_ItemRequest扩展中的表单操作时添加以下内容。

use SilverStripe\CampaignAdmin\AddToCampaignHandler_FormAction;

/** ... **/

if (($myDataObject->isPublished() || $myDataObject->isOnDraft()) && $myDataObject->canPublish()) {
    $moreOptions->push(
        AddToCampaignHandler_FormAction::create()
            ->removeExtraClass('btn-primary')
            ->addExtraClass('btn-secondary')
    );
}