Возможность изменения группы пользователем
Например: "Художник" меняет свою группу на "Музыкант".
Спасибо.
// // Добавляем поле выбора группы, // при наличии публичных групп // $public_groups = $users_model->getPublicGroups(); if ($public_groups) { foreach($public_groups as $pb) { $pb_items[ $pb['id'] ] = $pb['title']; } $form->addFieldToBeginning('basic', 'title' => LANG_USER_GROUP, 'items' => $pb_items ) ) ); }
Понятно что нет такой функции, а вот где и что еще прописать не знаю. Подскажите плиз
а $users_model вы получали ранее?Выдает ошибку Fatal error: Call to a member function getPublicGroups() on a non-object in /сайт.ru/system/controllers/users/actions/profile_edit.php on line 24
как то так:
$users_model = cmsCore::getModel('users');
в /system/controllers/users/actions/profile_edit.php добавил
// Добавляем поле выбора группы, // при наличии публичных групп // $users_model = cmsCore::getModel('users'); $public_groups = $users_model->getPublicGroups(); if ($public_groups) { foreach($public_groups as $pb) { $pb_items[ $pb['id'] ] = $pb['title']; } $form->addFieldToBeginning('basic', 'title' => LANG_USER_GROUP, 'items' => $pb_items ) ) ); }
<script> function toggleGroups(){ if ($('select#group_id').length == 0){ return false; } var group_id = $('select#group_id').val(); $('.groups-limit').hide(); $('.group-' + group_id).show(); if ($('.field:visible', $(this)).length==0) { $(this).hide(); } if ($('.group-' + group_id, $(this)).length>0) { $(this).show(); } }); } $(document).ready(function(){ if ($('select#group_id').length == 0){ return false; } $('select#group_id').change(function(){ toggleGroups(); }); }); toggleGroups(); </script>
1. эту ошибку что вызывает (какая строка)?Fatal error: Unsupported operand types in system/core/form.php on line 187
2. просто добавить поле с выбором группы скорее всего будет недостаточно)), нужно еще обработчик изменения группы писать. А это еще дополнительные хаки.
может проще по заявкам пользователей админу через панель управления менять пока и ждать когда функционал допилят?)))
1. эту ошибку что вызывает (какая строка)?Fatal error: Unsupported operand types in system/core/form.php on line 187
2. просто добавить поле с выбором группы скорее всего будет недостаточно)), нужно еще обработчик изменения группы писать. А это еще дополнительные хаки.
может проще по заявкам пользователей админу через панель управления менять пока и ждать когда функционал допилят?)))
ошибку вызывает строка
$this->structure[ $fieldset_id ]['childs'] = array($field->name => $field) + $this->structure[ $fieldset_id ]['childs'];
Через админ панель не удобно. Времени много уходит от заявки до исполнения.
У меня зависимость вывода информации от типа пользователей.
Azami, я другое имел ввиду))) Ладно… Вот:1. эту ошибку что вызывает (какая строка)?
меняете ваш код в ../system/controllers/users/actions/profile_edit.php на следующий (62-63 строка)
$users_model = cmsCore::getModel('users'); $public_groups = $users_model->getGroups(); if ($public_groups) { foreach($public_groups as $pb) { $pb_items[ $pb['id'] ] = $pb['title']; } $fieldset_id = $form->addFieldset( LANG_USER_GROUP ); $form->addFieldToBeginning($fieldset_id, 'items' => $pb_items ) ) ); }
Но
В списке показываются группы, вступление в которые недоступно. А так же группа "Новые"
У себя тестировал ставил getGroups(), и забыл исправить)) Надо ночами меньше сидеть…
Нашел одну неприятную вещь. В списке не сохраняется текущая группа. Т.е., верояно, будучи в группе "музыкант", пользователь, обновив основную информацию и снова не указав группу автоматом сохраняет группу "пользователь"