我认为这有点困难,因为我们无法访问用户插件工具栏来添加按钮。
但是是的我们可以做到,我们需要更加努力:)让我们开始
最终结果
要添加导出按钮,我们需要扩展 rainlab.user 插件。所以从你自己的插件中你需要它。
1.在插件的 Boot 方法中添加扩展代码
class Plugin extends PluginBase
{
use \System\Traits\ConfigMaker; // trait to read config
public function boot() {
\RainLab\Users\Controllers\Users::extend(function($controller) {
// we only extend if its not already extended with ImportExport Behavior
if(!$controller->isClassExtendedWith('Backend.Behaviors.ImportExportController')) {
$controller->implement[] = 'Backend.Behaviors.ImportExportController';
// make sure you replace this path to your plugin directory
$extensionPath = '$/hardiksatasiya/stackdemo/user_extension_files/';
$controller->addDynamicProperty(
'importExportConfig',
$extensionPath . 'config_import_export.yaml'
);
$newListConfig = $this->makeConfig(
'$/rainlab/user/controllers/users/config_list.yaml'
);
$newListConfig->toolbar['buttons'] =
$extensionPath . '_new_list_toolbar.htm';
$controller->listConfig = $newListConfig;
}
});
}
....
2。创建文件夹和文件
在插件的根目录中创建文件夹并将其命名为user_extension_files
在那个目录里面
在内容中添加config_import_export.yaml
export:
useList: true
在内容中添加_new_list_toolbar.htm [这将只是plugins/rainlab/user/controllers/users/_list_toolbar.htm 的副本,稍作修改]
添加Our Brand New Shiny Export button 不粘贴整个代码会太长,所以只粘贴它的片段。
<div data-control="toolbar">
... copied code ...
<!-- our export button -->
<a
href="<?= Backend::url('rainlab/user/users/export') ?>"
class="btn btn-primary oc-icon-sign-out">
Export
</a>
</div>
现在,当您点击导出按钮时,它应该会导出记录,它还会
尊重所有应用的过滤器。
@NOTE:我们正在将代码复制到_new_list_toolbar.htm,因此,如果将来用户插件正在更新并且他们决定在工具栏中添加新按钮,那么我们将无法拥有它变化。因此,那时我们只需将代码从plugins/rainlab/user/controllers/users/_list_toolbar.htm 复制并粘贴到我们的文件_new_list_toolbar.htm 中。我们又回来了:)。
如有任何疑问,请发表评论。