gpt4 book ai didi

sorting - 十月 CMS - 排序记录 - 工具栏图标部分示例?

转载 作者:行者123 更新时间:2023-12-04 01:13:28 26 4
gpt4 key购买 nike

我很高兴十月 CMS 最近添加了用于在 ListView 中对记录进行排序的后端功能。但是我在让它工作时遇到了一些麻烦。文档是 here .我遵循了这样的方向:

在我的 Controller 中,我实现了 ReorderController :

<?PHP namespace BTruchan\Team\Controllers;

use Backend;
use BackendMenu;
use BackendAuth;
use Backend\Classes\Controller;
use System\Classes\SettingsManager;

class Members extends \Backend\Classes\Controller
{
public $implement = [
'Backend.Behaviors.FormController',
'Backend.Behaviors.ListController',
'Backend.Behaviors.ReorderController'
];

public $formConfig = 'config_form.yaml';
public $listConfig = 'config_list.yaml';
public $reorderConfig = 'config_reorder.yaml';

public $requiredPermissions = ['btruchan.team.manage'];

public function __construct()
{
parent::__construct();
BackendMenu::setContext('BTruchan.Team', 'team');
}

public function index()
{
$this->makeLists();
$this->makeView('reorder');
}
}

?>

我创建了重新排序 View 文件( reorder.htm ),其中包含:
<?= $this->reorderRender() ?>

我的 config_reorder.yaml文件包含:
# ===================================
# Reorder Behavior Config
# ===================================

# Reorder Title
title: Reorder Members

# Attribute name
nameFrom: name

# Model Class name
modelClass: BTruchan\Team\Models\Members


# Toolbar widget configuration
#toolbar:
# Partial for toolbar buttons
# buttons: reorder_toolbar

您会注意到 reorder_toolbar部分被注释掉。那是因为我真的不知道该工具栏中应该放什么。我找不到任何显示 _reorder_toolbar.htm 文件内容的文档。

不出所料,注释掉代码后,它会抛出一个错误:

Undefined variable: reorderToolbarWidget



一些附加信息:

有人建议我阅读列表工具栏 here .

所以我添加了以下工具栏部分(名为 _reorder_toolbar.htm ):
<div data-control="toolbar">
<a
href="<?= Backend::url('btruchan/team/members/create') ?>"
class="btn btn-primary oc-icon-plus">
New Team Member
</a>
<button
class="btn btn-default oc-icon-trash-o"
disabled="disabled"
onclick="$(this).data('request-data', {
checked: $('.control-list').listWidget('getChecked')
})"
data-request="onDelete"
data-request-confirm="Delete Team Member: Are you sure?"
data-trigger-action="enable"
data-trigger=".control-list input[type=checkbox]"
data-trigger-condition="checked"
data-request-success="$(this).prop('disabled', false)"
data-stripe-load-indicator>
Delete
</button>
</div>

但我仍然收到一个错误:

Undefined variable: reorderToolbarWidget /var/www/terrasearch/public/modules/backend/Behaviors/reordercontroller/partials/_container.htm line 1



该错误消息所指的 10 月 CMS 中的代码是:
<?php if ($reorderToolbarWidget): ?>
<!-- Reorder Toolbar -->
<div id="<?= $this->getId('reorderToolbar') ?>" class="reorder-toolbar">
<?= $reorderToolbarWidget->render() ?>
</div>
<?php endif ?>

<!-- Reorder List -->
<?= Form::open() ?>
<div
id="reorderTreeList"
class="control-treelist"
data-control="treelist"

我试图追踪这个错误。似乎,在 \public\modules\backend\behaviors\ReorderController.php , reorder()函数没有被调用,这意味着 prepareVars()函数也没有被调用。这可以防止执行以下代码:
$this->vars['reorderToolbarWidget'] = $this->toolbarWidget;

ReorderController.php:: makeToolbarWidget() 正在被调用并且似乎没问题。我检查了 $this->toolbarWidget,它似乎包含非常好的数据。 (它不是 NULL)。

最佳答案

ReorderController 是一种行为,因此它应该被称为 Controller 目标(例如 example.com/backend/btruchan/team/members/reorder )。它没有被编码为 View ,就像您在 index 中拥有它的方式一样。功能。

在 ReorderController 源代码中,reorder函数是唯一调用 prepareVars 的方法 protected 函数是reorderToolbarWidget 唯一的地方是为页面定义的。那个prepareVars功能在主机 Controller 中不可用。

因此,与其尝试使用 $this->makeView('reorder'); 创建 View ,在_list_toolbar.htm中创建一个工具栏按钮指向 reorder 的部分目标网址。例如:

<div data-control="toolbar">
<a href="<?= Backend::url('btruchan/team/members/create') ?>" class="btn btn-primary oc-icon-plus">New Member</a>
<a href="<?= Backend::url('btruchan/team/members/reorder') ?>" class="btn btn-primary oc-icon-sort">Reorder Members</a>
</div>

当您单击“重新排序成员”按钮时,您将被定向到一个包含可以重新排序的记录的新页面。

您可以使用 _reorder_toolbar.htm部分在重新排序页面的顶部添加您想要的任何内容。或者,根本不使用它。

关于sorting - 十月 CMS - 排序记录 - 工具栏图标部分示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32341621/

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