10 月の CMS で最近、リスト ビューでレコードを並べ替えるためのバックエンド機能が追加されたことに興奮しています。しかし、私はそれを機能させるのに問題があります。ドキュメントはこちらです。私は次のように指示に従いました:
私のコントローラーでは、次を実装しました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');
}
}
?>
以下を含む並べ替えビュー ファイル ( 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 ファイルの内容を示すドキュメントを見つけることができませんでした。
当然のことながら、コードをコメントアウトすると、エラーがスローされます。
未定義の変数: reorderToolbarWidget
いくつかの追加情報:
ここでリストツールバーを読むことをお勧めしました。
そこで、次のツールバーのパーシャル (という名前_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>
しかし、私はまだエラーが発生しています:
未定義の変数: reorderToolbarWidget /var/www/terrasearch/public/modules/backend/Behaviors/reordercontroller/partials/_container.htm 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 ではありません)。