147 lines
5.1 KiB
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'
|
|
]
|
|
]);
|
|
});
|
|
}
|
|
}
|