gpt4 book ai didi

php - 奏鸣曲管理员 : Add custom triggers/actions to list/edit action

转载 作者:可可西里 更新时间:2023-10-31 22:19:40 25 4
gpt4 key购买 nike

我正在使用 SonataAdminBundle 来管理我的应用程序中的实体。该网站的管理员可以添加视频,其中一些视频首先需要得到演讲者的批准。已经有一个授权系统在工作 - 我有工作代码,它会生成一个特殊链接并通知发言人,他可以批准或不批准视频,并自动通知管理员。

我想自定义我的管理部分,因此视频旁边会有一个按钮请求授权。我可以在列表操作 (/admin/acme/videos/list) 或在右侧导航 (/admin/acme/videos/) 某处的编辑操作中使用它x/编辑/ )

执行此操作的最佳方法是什么?该文档很少提及 block 自定义,但我发现了 this example这可能是我正在寻找的东西,但我不知道如何使用它。

一种选择是使用 preUpdate 钩子(Hook),并在编辑操作中添加一个复选框,但按钮会更好。

最佳答案

为编辑表单添加 Action

添加到您的管理类:

protected function configureSideMenu(MenuItemInterface $menu, $action, Admin $childAdmin = null)
{
if (!$childAdmin && !in_array($action, array('edit'))) {
return;
}
$admin = $this->isChild() ? $this->getParent() : $this;
$id = $admin->getRequest()->get('id');
$menu->addChild('My action', array('uri' => 'http://google.com?id=' . $id));
}

它将为/admin/acme/videos/x/edit/等操作创建左侧菜单。拥有当前项目的 id 允许您构建任何自定义 URL。

为列表添加一个 Action :在你的管理文件中添加

protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('_action', 'actions', array(
'actions' => array(
'act' => array('template' => 'AcmeBundle:Video:my_temp.html.twig'),
)
))
;
}

它将添加一个带有链接的列,然后您需要为您的列创建一个模板,例如

<a href="{{ admin.generateObjectUrl('delete', object) }}" class="delete_link" title="{% trans from 'SonataAdminBundle' %}action_delete{% endtrans %}">
<img src="{{ asset('bundles/sonataadmin/famfamfam/delete.png') }}" alt="{% trans from 'SonataAdminBundle' %}action_delete{% endtrans %}" />
</a>

所有示例均取自您提供的链接。希望对你有帮助

关于php - 奏鸣曲管理员 : Add custom triggers/actions to list/edit action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11482910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com