winter/modules/backend/ServiceProvider.php

228 lines
8.7 KiB
PHP
Raw Normal View History

<?php namespace Backend;
2014-05-14 23:24:20 +10:00
use App;
use Lang;
use Backend;
use BackendMenu;
use BackendAuth;
use Backend\Classes\WidgetManager;
use System\Models\MailTemplate;
use System\Classes\CombineAssets;
use System\Classes\SettingsManager;
use October\Rain\Support\ModuleServiceProvider;
class ServiceProvider extends ModuleServiceProvider
{
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
parent::register('backend');
2014-05-14 23:24:20 +10:00
$this->registerMailer();
$this->registerAssetBundles();
// Disabled for now
// if (App::runningInBackend()) {
$this->registerBackendNavigation();
$this->registerBackendWidgets();
$this->registerBackendPermissions();
$this->registerBackendSettings();
// }
}
/**
* Bootstrap the module events.
*
* @return void
*/
public function boot()
{
parent::boot('backend');
}
/**
* Register mail templates
*/
protected function registerMailer()
{
MailTemplate::registerCallback(function ($template) {
$template->registerMailTemplates([
'backend::mail.invite' => 'Invitation for newly created administrators.',
'backend::mail.restore' => 'Password reset instructions for backend-end administrators.',
]);
});
}
/**
* Register asset bundles
*/
protected function registerAssetBundles()
{
CombineAssets::registerCallback(function($combiner) {
$combiner->registerBundle('~/modules/backend/assets/less/october.less');
$combiner->registerBundle('~/modules/backend/assets/js/october.js');
$combiner->registerBundle('~/modules/backend/widgets/table/assets/js/build.js');
$combiner->registerBundle('~/modules/backend/formwidgets/datepicker/assets/js/build.js');
$combiner->registerBundle('~/modules/backend/formwidgets/richeditor/assets/less/richeditor.less');
$combiner->registerBundle('~/modules/backend/formwidgets/richeditor/assets/js/build.js');
$combiner->registerBundle('~/modules/backend/formwidgets/codeeditor/assets/less/codeeditor.less');
$combiner->registerBundle('~/modules/backend/formwidgets/codeeditor/assets/js/build.js');
});
}
/*
* Register navigation
*/
protected function registerBackendNavigation()
{
BackendMenu::registerCallback(function ($manager) {
$manager->registerMenuItems('October.Backend', [
'dashboard' => [
'label' => 'backend::lang.dashboard.menu_label',
'icon' => 'icon-dashboard',
'url' => Backend::url('backend'),
'permissions' => ['backend.access_dashboard'],
'order' => 1
]
]);
});
}
/*
* Register permissions
*/
protected function registerBackendPermissions()
{
BackendAuth::registerCallback(function ($manager) {
$manager->registerPermissions('October.Backend', [
'backend.access_dashboard' => [
'label' => 'system::lang.permissions.view_the_dashboard',
'tab' => 'system::lang.permissions.name'
],
'backend.manage_users' => [
'label' => 'system::lang.permissions.manage_other_administrators',
'tab' => 'system::lang.permissions.name'
],
'backend.manage_branding' => [
'label' => 'system::lang.permissions.manage_branding',
'tab' => 'system::lang.permissions.name'
]
]);
});
}
/*
* Register widgets
*/
protected function registerBackendWidgets()
{
2014-10-10 23:16:22 +02:00
WidgetManager::instance()->registerFormWidgets(function ($manager) {
2014-05-14 23:24:20 +10:00
$manager->registerFormWidget('Backend\FormWidgets\CodeEditor', [
'label' => 'Code editor',
'code' => 'codeeditor'
2014-05-14 23:24:20 +10:00
]);
$manager->registerFormWidget('Backend\FormWidgets\RichEditor', [
'label' => 'Rich editor',
'code' => 'richeditor'
2014-05-14 23:24:20 +10:00
]);
$manager->registerFormWidget('Backend\FormWidgets\FileUpload', [
'label' => 'File uploader',
'code' => 'fileupload'
2014-05-14 23:24:20 +10:00
]);
$manager->registerFormWidget('Backend\FormWidgets\Relation', [
'label' => 'Relationship',
'code' => 'relation'
2014-05-14 23:24:20 +10:00
]);
$manager->registerFormWidget('Backend\FormWidgets\DatePicker', [
2014-05-14 23:24:20 +10:00
'label' => 'Date picker',
'code' => 'datepicker'
2014-05-14 23:24:20 +10:00
]);
$manager->registerFormWidget('Backend\FormWidgets\TimePicker', [
'label' => 'Time picker',
'code' => 'timepicker'
]);
$manager->registerFormWidget('Backend\FormWidgets\ColorPicker', [
'label' => 'Color picker',
'code' => 'colorpicker'
]);
2014-06-20 19:29:03 +10:00
$manager->registerFormWidget('Backend\FormWidgets\DataGrid', [
'label' => 'Data Grid',
'code' => 'datagrid'
2015-02-04 19:31:41 +11:00
]); // @deprecated if year >= 2016
2015-01-03 10:04:06 +11:00
$manager->registerFormWidget('Backend\FormWidgets\DataTable', [
'label' => 'Data Table',
'code' => 'datatable'
2014-06-19 21:42:18 +10:00
]);
2014-07-02 20:48:45 +10:00
$manager->registerFormWidget('Backend\FormWidgets\RecordFinder', [
'label' => 'Record Finder',
'code' => 'recordfinder'
2014-07-02 20:48:45 +10:00
]);
$manager->registerFormWidget('Backend\FormWidgets\Repeater', [
'label' => 'Repeater',
'code' => 'repeater'
]);
2014-05-14 23:24:20 +10:00
});
}
2014-05-14 23:24:20 +10:00
/*
* Register settings
*/
protected function registerBackendSettings()
{
2014-10-10 23:16:22 +02:00
SettingsManager::instance()->registerCallback(function ($manager) {
$manager->registerSettingItems('October.Backend', [
'branding' => [
'label' => 'backend::lang.branding.menu_label',
'description' => 'backend::lang.branding.menu_description',
'category' => SettingsManager::CATEGORY_SYSTEM,
'icon' => 'icon-paint-brush',
'class' => 'Backend\Models\BrandSettings',
'permissions' => ['backend.manage_branding'],
2015-01-22 09:06:30 +01:00
'order' => 500
],
'myaccount' => [
'label' => 'backend::lang.myaccount.menu_label',
'description' => 'backend::lang.myaccount.menu_description',
'category' => SettingsManager::CATEGORY_MYSETTINGS,
'icon' => 'icon-user',
'url' => Backend::URL('backend/users/myaccount'),
'order' => 500,
'context' => 'mysettings',
'keywords' => 'backend::lang.myaccount.menu_keywords'
],
'backend_preferences' => [
'label' => 'backend::lang.backend_preferences.menu_label',
'description' => 'backend::lang.backend_preferences.menu_description',
'category' => SettingsManager::CATEGORY_MYSETTINGS,
'icon' => 'icon-laptop',
'class' => 'Backend\Models\BackendPreferences',
'order' => 510,
'context' => 'mysettings'
],
'editor' => [
'label' => 'backend::lang.editor.menu_label',
'description' => 'backend::lang.editor.menu_description',
'category' => SettingsManager::CATEGORY_MYSETTINGS,
'icon' => 'icon-code',
'url' => Backend::URL('backend/editorpreferences'),
'order' => 520,
'context' => 'mysettings'
],
'access_logs' => [
'label' => 'backend::lang.access_log.menu_label',
'description' => 'backend::lang.access_log.menu_description',
'category' => SettingsManager::CATEGORY_LOGS,
'icon' => 'icon-lock',
'url' => Backend::url('backend/accesslogs'),
'permissions' => ['system.access_logs'],
'order' => 920
2015-01-22 09:06:30 +01:00
]
]);
});
}
}