1: <?php defined('_JOOS_CORE') or exit();
2:
3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
16: class modelAdminUsers extends modelUsers
17: {
18: public function get_fieldinfo()
19: {
20: return array(
21: 'id' => array(
22: 'name' => 'ID',
23: 'editable' => false,
24: 'sortable' => false,
25: 'in_admintable' => true,
26: 'html_table_element' => 'value',
27: 'html_table_element_param' => array(
28: 'width' => '20px',
29: 'align' => 'center'
30: )
31: ),
32: 'user_name' => array(
33: 'name' => 'Логин',
34: 'editable' => true,
35: 'sortable' => true,
36: 'in_admintable' => true,
37: 'html_edit_element' => 'edit',
38: 'html_table_element' => 'editlink',
39: ),
40: 'real_name' => array(
41: 'name' => 'Настоящее имя',
42: 'editable' => true,
43: 'sortable' => true,
44: 'in_admintable' => true,
45: 'html_edit_element' => 'edit',
46: 'html_table_element' => 'value',),
47: 'state' => array(
48: 'name' => 'Разрешен',
49: 'editable' => true,
50: 'sortable' => true,
51: 'in_admintable' => true,
52: 'editlink' => true,
53: 'html_edit_element' => 'checkbox',
54: 'html_table_element' => 'status_change',
55: 'html_edit_element_param' => array(
56: 'tooltip' => 'Активирован',
57: ),
58: ),
59: 'email' => array(
60: 'name' => 'email адрес',
61: 'editable' => true,
62: 'in_admintable' => true,
63: 'html_edit_element' => 'edit',
64: 'html_table_element' => 'value',
65: 'hide_on'=>'edit',
66: ),
67: 'openid' => array(
68: 'name' => 'Адрес OpenID',
69: 'editable' => false,
70: 'in_admintable' => true,
71: 'html_edit_element' => 'edit',
72: 'html_table_element' => 'value',),
73: 'password' => array(
74: 'name' => 'Пароль',
75: 'editable' => true,
76: 'in_admintable' => true,
77: 'html_edit_element' => 'extra',
78: 'html_edit_element_param' => array(
79: 'call_from' => function ($user) {
80: $name = $user->id ? 'new_password' : 'password';
81:
82: return joosHtml::input(array('name' => $name, 'value' => '', 'class' => 'text_area'));
83: }
84: ),
85: 'html_table_element' => 'value',
86: ),
87: 'group_multi' => array(
88: 'name' => 'Состоит в группах',
89: 'editable' => true,
90: 'sortable' => true,
91: 'in_admintable' => false,
92: 'html_edit_element' => 'extra',
93: 'html_edit_element_param' => array(
94: 'call_from' => 'modelAdminUsers::get_users_group_multi'
95: ),
96: 'hide_on'=>'create',
97: ),
98: 'register_date' => array(
99: 'name' => 'Дата регистрации',
100: 'editable' => true,
101: 'in_admintable' => true,
102: 'html_edit_element' => 'value',
103: 'html_table_element' => 'value',
104: 'hide_on'=>'create',
105: ),
106: 'lastvisit_date' => array(
107: 'name' => 'Последнее посещение',
108: 'editable' => true,
109: 'sortable' => true,
110: 'in_admintable' => true,
111: 'html_edit_element' => 'value',
112: 'html_table_element' => 'date_format',
113: 'html_table_element_param' => array(
114: 'date_format' => 'd F в H:m',
115: 'width' => '200px',
116: 'align' => 'center'
117: ),
118: 'hide_on'=>'create',
119: ),
120: 'activation' => array(
121: 'name' => 'Код активации',
122: 'editable' => false,
123: 'in_admintable' => false,
124: 'html_edit_element' => 'edit',
125: 'html_table_element' => 'value',
126: ),
127: );
128: }
129:
130: public function get_tableinfo()
131: {
132: return array(
133: 'header_main'=>'Пользователи',
134: 'header_list' => 'Все пользователи',
135: 'header_new' => 'Создание пользователя',
136: 'header_edit' => 'Редактирование данных пользователя'
137: );
138: }
139:
140: public function get_extrainfo()
141: {
142: return array(
143: 'search' => array('user_name', 'real_name', 'email'),
144: );
145: }
146:
147: protected function before_store()
148: {
149:
150: parent::before_store();
151:
152:
153: $user_groops = joosRequest::array_param('user_groups');
154: if ($user_groops !==null) {
155: $this->save_one_to_many('#__users_acl_groups_users', 'user_id', 'group_id', $this->id, $user_groops);
156: }
157: }
158:
159: public static function get_users_group_multi($current_obj)
160: {
161: if ($current_obj->id) {
162:
163: $g = new modelUsersAclGroupsUsers;
164: $active_groups = $g->get_selector(
165: array('key' => 'group_id', 'value' => 'group_id'), array('where' => 'user_id=' . $current_obj->id)
166: );
167: } else {
168: $active_groups = array();
169: }
170:
171: return $current_obj->get_one_to_many_selectors('user_groups', '#__users_acl_groups', '#__users_acl_groups', 'user_id', 'group_id', $active_groups);
172: }
173:
174: }
175: