Возможность изменения группы пользователем

 
Посетитель
small user social cms
Медаль
Сообщений: 275
Как сделать так, чтобы пользователи могли менять свою группу.
Например: "Художник" меняет свою группу на "Музыкант".
Спасибо.
Посетитель
small user social cms
Медаль
Сообщений: 165
Пока никак. Только админ это сделать может. Возможно в будущем будет такая возможность. Для меня это тоже больной вопрос.
Реклама
cms
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1035
если очень нужно, обращайтесь в личку
Посетитель
small user social cms
Медаль
Сообщений: 427
для какой ветки? если для первой - то было уже решение на форуме, и вроде бы как обсуждалось и не раз.
от 16% в месяц на автопилоте
Недорогой и надежный хостинг Промокод 20% скидка - 841de7-20
Посетитель
small user social cms
Медаль
Сообщений: 275
Для версии 2.хх
Посетитель
small user social cms
Сообщений: 66
C помощью Биллинга это легко реализовать
Посетитель
small user social cms
Медаль
Сообщений: 275
В файл /system/controllers/users/actions/profile_edit.php я добавил

Код PHP:
  1.  
  2. //
  3. // Добавляем поле выбора группы,
  4. // при наличии публичных групп
  5. //
  6. $public_groups = $users_model->getPublicGroups();
  7.  
  8. if ($public_groups) {
  9.  
  10. $pb_items = array();
  11. foreach($public_groups as $pb) { $pb_items[ $pb['id'] ] = $pb['title']; }
  12.  
  13. $form->addFieldToBeginning('basic',
  14. new fieldList('group_id', array(
  15. 'title' => LANG_USER_GROUP,
  16. 'items' => $pb_items
  17. )
  18. )
  19. );
  20.  
  21. }
  22.  
Выдает ошибку Fatal error: Call to a member function getPublicGroups() on a non-object in /сайт.ru/system/controllers/users/actions/profile_edit.php on line 24

Понятно что нет такой функции, а вот где и что еще прописать не знаю. Подскажите плиз
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Azami:
Выдает ошибку 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 вы получали ранее?
как то так:
Код PHP:
  1. $users_model = cmsCore::getModel('users');
Посетитель
small user social cms
Медаль
Сообщений: 275
Val,
в /system/controllers/users/actions/profile_edit.php добавил

Код PHP:
  1. // Добавляем поле выбора группы,
  2. // при наличии публичных групп
  3. //
  4.  
  5. $users_model = cmsCore::getModel('users');
  6. $public_groups = $users_model->getPublicGroups();
  7.  
  8. if ($public_groups) {
  9.  
  10. $pb_items = array();
  11. foreach($public_groups as $pb) { $pb_items[ $pb['id'] ] = $pb['title']; }
  12.  
  13. $form->addFieldToBeginning('basic',
  14. new fieldList('group_id', array(
  15. 'title' => LANG_USER_GROUP,
  16. 'items' => $pb_items
  17. )
  18. )
  19. );
  20.  
  21. }
в /templates/default/controllers/users/profile_edit.tpl.php добавил
Код PHP:
  1. <script>
  2.  
  3. function toggleGroups(){
  4.  
  5. if ($('select#group_id').length == 0){ return false; }
  6.  
  7. var group_id = $('select#group_id').val();
  8.  
  9. $('.groups-limit').hide();
  10.  
  11. $('.group-' + group_id).show();
  12.  
  13. $('fieldset').each(function(){
  14.  
  15. if ($('.field:visible', $(this)).length==0) {
  16. $(this).hide();
  17. }
  18.  
  19. if ($('.group-' + group_id, $(this)).length>0) {
  20. $(this).show();
  21. }
  22.  
  23. });
  24.  
  25. }
  26.  
  27. $(document).ready(function(){
  28.  
  29. if ($('select#group_id').length == 0){ return false; }
  30.  
  31. $('select#group_id').change(function(){ toggleGroups(); });
  32.  
  33. });
  34.  
  35. toggleGroups();
  36.  
  37. </script>
Fatal error: Unsupported operand types in system/core/form.php on line 187
Редактировалось: 3 раз (Последний: 2 января 2016 в 16:37)
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Azami:
Fatal error: Unsupported operand types in system/core/form.php on line 187
1. эту ошибку что вызывает (какая строка)?
2. просто добавить поле с выбором группы скорее всего будет недостаточно)), нужно еще обработчик изменения группы писать. А это еще дополнительные хаки.
может проще по заявкам пользователей админу через панель управления менять пока и ждать когда функционал допилят?)))
Посетитель
small user social cms
Медаль
Сообщений: 275
Val:

Azami:
Fatal error: Unsupported operand types in system/core/form.php on line 187
1. эту ошибку что вызывает (какая строка)?
2. просто добавить поле с выбором группы скорее всего будет недостаточно)), нужно еще обработчик изменения группы писать. А это еще дополнительные хаки.
может проще по заявкам пользователей админу через панель управления менять пока и ждать когда функционал допилят?)))

ошибку вызывает строка
Код PHP:
  1. $this->structure[ $fieldset_id ]['childs'] = array($field->name => $field) + $this->structure[ $fieldset_id ]['childs'];
Обработчик сам не явно не напишу. Могу бартером что-нибудь сверстать. В этом я плаваю. Кодить не умею.
Через админ панель не удобно. Времени много уходит от заявки до исполнения.
У меня зависимость вывода информации от типа пользователей.
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Val:
1. эту ошибку что вызывает (какая строка)?
Azami, я другое имел ввиду))) Ладно... Вот:

меняете ваш код в ../system/controllers/users/actions/profile_edit.php на следующий (62-63 строка)

Код PHP:
  1. $users_model = cmsCore::getModel('users');
  2. $public_groups = $users_model->getGroups();
  3. if ($public_groups) {
  4.  
  5. $pb_items = array();
  6. foreach($public_groups as $pb) { $pb_items[ $pb['id'] ] = $pb['title']; }
  7.  
  8. $fieldset_id = $form->addFieldset( LANG_USER_GROUP );
  9. $form->addFieldToBeginning($fieldset_id,
  10. new fieldList('groups', array(
  11. 'items' => $pb_items
  12. )
  13. )
  14. );
  15. }
и добавляете чуть ниже вот это (97-98 строка)
Код PHP:
  1. if (!$errors && !empty($new['groups'])){
  2. $profile['groups'] = array($new['groups']);
  3. }
Посетитель
small user social cms
Медаль
Сообщений: 275
Val, Замечательно работает.

Но

В списке показываются группы, вступление в которые недоступно. А так же группа "Новые"
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Знамените на $public_groups = $users_model->getPublicGroups(); Возможно то что вам нужно.
У себя тестировал ставил getGroups(), и забыл исправить)) Надо ночами меньше сидеть...
Посетитель
small user social cms
Медаль
Сообщений: 275
Val, Замечательный вы человек! Спасибо.
Нашел одну неприятную вещь. В списке не сохраняется текущая группа. Т.е., верояно, будучи в группе "музыкант", пользователь, обновив основную информацию и снова не указав группу автоматом сохраняет группу "пользователь"
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: