1.Добавляем в базу поле
ALTER TABLE `cms_user_profiles` ADD `groop` VARCHAR( 30 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `city` ;
2.1 в начало ( например после $model = new cms_model_users();) пишем
$cfg = $inCore->loadComponentConfig('users');
в // Возможные входные переменные
добавляем
$groop = cmsCore::request('groop', 'str');
if ($do=='editprofile'){...
if ($opt == 'edit'){...
перед
cmsPage::initTemplate('components', 'com_users_edit_profile')->
$groop = cmsCore::request('groop','str'); if($cfg['group_access']){ $groops = $inDB->get_table('cms_user_groups','id IN('.$group_access.')','*'); } else { $groops = cmsUser::getGroups(); }
cmsPage::initTemplate('components', 'com_users_edit_profile')->
assign('groops', $groops)->
в if ($opt == 'save'){...
$profiles['groop'] = cmsCore::request('groop', 'str');
$inDB->update('cms_user_profiles', cmsCore::callEvent('UPDATE_USER_PROFILES', array_merge(array('id'=>$usr['pid'], 'user_id'=>$usr['id']), $profiles)), $usr['pid']);
$usr['grp'] = $profiles['groop']; $groops_id = $inUser-> getGroupId($usr['grp']); $usr['group_id'] = $groops_id; $users['group_id'] = $usr['group_id'];
вставляем в первую форму
<tr> <td valign="top"> <strong>Выберете группу:</strong> </td> <td valign="top"> <select name="groop" > <option value="{$grup.title}"{if $grup.title==$usr.groop} selected {/if}> {$grup.title}</option> {/foreach} </select> </td> </tr>
4.1 после
$model = new cms_model_users();
пишем
$cfg = $model->config;
4.1 в if ($opt=='saveconfig'){...
$is_access = cmsCore::request('is_access', 'int', ''); if (!$is_access){ $cfg['group_access'] = cmsCore::request('allow_group', 'array_int', ''); } else { $cfg['group_access'] = ''; }
<tr> <td valign="top"> <strong>Выберите доступные группы:</strong> <span class="hinttext">Из каких групп может<br> выбирать пользователь</span> </td> <td valign="top"> <table width="100%" cellpadding="0" cellspacing="0" border="0" class="checklist" style="margin-top:5px"> <tr> <td width="20"> <?php $groups = cmsUser::getGroups(); $style = 'disabled="disabled"'; $public = 'checked="checked"'; if ($cfg['group_access']){ $public = ''; $style = ''; } ?> <input name="is_access" type="checkbox" id="is_access" onclick="checkGroupList()" value="1" <?php echo $public?> /> </td> <td><label for="is_access"><strong>Все групы</strong></label></td> </tr> </table> <div style="margin-top:10px;padding:5px;padding-right:0px;" id="grp"> <div> <strong><?php echo $_LANG['AD_ALL_GROUPS_ONLY']; ?></strong><br /> <span class="hinttext"> <?php echo $_LANG['AD_SELECT_MULTIPLE_CTRL']; ?> </span> </div> <div> <?php echo '<select style="width: 245px" name="allow_group[]" id="showin" size="6" multiple="multiple" '.$style.'>'; if ($groups){ foreach($groups as $group){ if($group['alias'] != 'guest' && !$group['is_admin']){ echo '<option value="'.$group['id'].'"'; if ($cfg['group_access']){ if (inArray($cfg['group_access'], $group['id'])){ echo 'selected'; } } echo '>'; echo $group['title'].'</option>'; } } } echo '</select>'; ?> </div> </div> <script type="text/javascript"> function checkGroupList(){ if($('input#is_access').prop('checked')){ $('select#showin').prop('disabled', true); } else { $('select#showin').prop('disabled', false); } } </script> </td> </tr>
добавляем
public static function getGroupId($user_id){ return cmsDatabase::getInstance()->get_field('cms_user_groups', "title='{$user_id}'", 'id'); }
6.1 в $cfg = array(
пишем
'group_access' => '',
6.2 в public function getUser($login){
добавляем
p.groop as groop,
Всё.
Кому лень писать здесь архив с файлами на замену.