birzha/plugins/indikator/user/Plugin.php

147 lines
5.1 KiB
PHP

<?php namespace Indikator\User;
use System\Classes\PluginBase;
use RainLab\User\Controllers\Users as UsersController;
use RainLab\User\Models\User as UserModel;
use Lang;
class Plugin extends PluginBase
{
public $require = ['RainLab.User'];
public function pluginDetails()
{
return [
'name' => 'indikator.user::lang.plugin.name',
'description' => 'indikator.user::lang.plugin.description',
'author' => 'indikator.user::lang.plugin.author',
'icon' => 'icon-user-plus',
'homepage' => 'https://github.com/gergo85/oc-user-plus'
];
}
public function registerReportWidgets()
{
return [
'Indikator\User\ReportWidgets\Users' => [
'label' => 'indikator.user::lang.widget.title',
'context' => 'dashboard',
'permissions' => ['indikator.user.widget']
]
];
}
public function registerPermissions()
{
return [
'indikator.user.widget' => [
'tab' => 'indikator.user::lang.plugin.name',
'label' => 'indikator.user::lang.widget.permission',
'roles' => ['publisher']
]
];
}
public function boot()
{
UserModel::extend(function($model)
{
$model->addFillable([
'iu_gender',
'iu_telephone',
'iu_job',
'iu_company',
'iu_about',
'iu_webpage',
'iu_blog',
'iu_facebook',
'iu_twitter',
'iu_skype',
'iu_icq',
'iu_comment'
]);
});
UsersController::extendFormFields(function($form, $model, $context)
{
if (!$model instanceof UserModel) {
return;
}
$form->addTabFields([
'iu_gender' => [
'label' => 'indikator.user::lang.personal.gender',
'tab' => 'indikator.user::lang.personal.tab',
'type' => 'dropdown',
'options' => [
'unknown' => Lang::get('indikator.user::lang.gender.unknown'),
'female' => Lang::get('indikator.user::lang.gender.female'),
'male' => Lang::get('indikator.user::lang.gender.male')
],
'span' => 'auto'
],
'iu_telephone' => [
'label' => 'indikator.user::lang.personal.telephone',
'tab' => 'indikator.user::lang.personal.tab',
'span' => 'auto'
],
'iu_job' => [
'label' => 'indikator.user::lang.personal.job',
'tab' => 'indikator.user::lang.personal.tab',
'span' => 'auto'
],
'iu_company' => [
'label' => 'indikator.user::lang.personal.company',
'tab' => 'indikator.user::lang.personal.tab',
'span' => 'auto'
],
'iu_about' => [
'label' => 'indikator.user::lang.personal.about',
'tab' => 'indikator.user::lang.personal.tab',
'type' => 'textarea',
'size' => 'small',
'span' => 'full'
],
'iu_webpage' => [
'label' => 'indikator.user::lang.internet.webpage',
'tab' => 'indikator.user::lang.internet.tab',
'span' => 'auto'
],
'iu_blog' => [
'label' => 'indikator.user::lang.internet.blog',
'tab' => 'indikator.user::lang.internet.tab',
'span' => 'auto'
],
'iu_facebook' => [
'label' => 'indikator.user::lang.internet.facebook',
'tab' => 'indikator.user::lang.internet.tab',
'span' => 'auto'
],
'iu_twitter' => [
'label' => 'indikator.user::lang.internet.twitter',
'tab' => 'indikator.user::lang.internet.tab',
'span' => 'auto'
],
'iu_skype' => [
'label' => 'indikator.user::lang.internet.skype',
'tab' => 'indikator.user::lang.internet.tab',
'span' => 'auto'
],
'iu_icq' => [
'label' => 'indikator.user::lang.internet.icq',
'tab' => 'indikator.user::lang.internet.tab',
'span' => 'auto'
]
]);
$form->addSecondaryTabFields([
'iu_comment' => [
'label' => 'indikator.user::lang.comment',
'type' => 'textarea',
'size' => 'small'
]
]);
});
}
}