Как запретить пользователю вступать еще раз ?

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#16 7 июня 2016 в 16:27


Вам просто надо сделать проверку на заполненность поля cmsUser::get('tournament_id').

  1. if(cmsUser::get('tournament_id')){
  2. cmsUser::addSessionMessage('Вы уже в команде', 'error');
  3. $this->redirectBack();
  4. }

Loadырь

Все равно вступает игрок может я что-то не правильно делаю но я все файлы послал ((
#17 7 июня 2016 в 16:33
А вы куда это прописываете?
#18 7 июня 2016 в 16:35


А вы куда это прописываете?

Loadырь

Join.php в class вступления
#19 7 июня 2016 в 16:35
В нём много строк приведите листинг
#20 7 июня 2016 в 16:37


В нём много строк приведите листинг

Loadырь

  1.  
  2.  
  3.  
  4. <?php
  5.  
  6. class actionTournamentJoin extends cmsAction {
  7.  
  8. public function run($tournament_id){
  9.  
  10. if (!$tournament_id) { cmsCore::error404(); }
  11.  
  12. $tournament = $this->model->getTournament($tournament_id);
  13.  
  14. if (!$tournament || $tournament['status'] != tournament::STATUS_PENDING) {
  15. cmsCore::error404();
  16. }
  17. if(cmsUser::get('tournament_id')){
  18. cmsUser::addSessionMessage('Вы уже в команде', 'error');
  19. $this->redirectBack(); -***********Вот код
  20. }
  21.  
  22. $user = cmsUser::getInstance();
  23. $is_user_in_tournament = $user->is_admin ? false : $is_max;
  24.  
  25. if ($is_user_in_tournament){
  26. cmsCore::error404();
  27. }
  28.  
  29. $errors = false;
  30.  
  31. $form = $this->getForm('join');
  32.  
  33. $is_submitted = $this->request->has('submit');
  34.  
  35. $team = $form->parse($this->request, $is_submitted);
  36.  
  37. $user = cmsUser::getInstance();
  38.  
  39.  
  40. if ($is_submitted){
  41.  
  42. $errors = $form->validate($this, $team);
  43.  
  44. if (!$errors){
  45.  
  46. $team['tournament_id'] = $tournament_id;
  47. $team['user_id'] = $user->id;
  48. $this->model->addTeam($team);
  49.  
  50. $tournament = $this->model->getTournament($tournament_id);
  51.  
  52. if ($tournament['users_count'] >= $tournament['min_users']){
  53.  
  54. $this->model->setTournamentStatus($tournament_id, tournament::STATUS_MODERATION);
  55.  
  56.  
  57. }
  58.  
  59.  
  60. $this->redirectToAction('event', array($tournament_id));
  61. }
  62.  
  63. if ($errors){
  64. cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error');
  65. }
  66.  
  67. }
  68.  
  69. $template = cmsTemplate::getInstance();
  70.  
  71. $template->render('form_join', array(
  72. 'form' => $form,
  73. 'errors' => $errors,
  74. 'team' => $team,
  75. 'tournament' => $tournament
  76. ));
  77.  
  78. }
  79.  
  80. }
  81.  
  82.  
  83.  
#21 7 июня 2016 в 16:39
Вопрос а в БД в cms_users есть поле tournament_id?
#22 7 июня 2016 в 16:39


Вопрос а в БД в cms_users есть поле tournament_id ?

Loadырь
нет там нету
#23 7 июня 2016 в 16:40
Поэтому и не работает, а почему нету? Много вопросов бы решило.
#24 7 июня 2016 в 16:41


Поэтому и не работает, а почему нету? Много вопросов бы решило.

Loadырь

сам не знаю я компонент создавал по видео фотобатл там этого не сделали поэтому (
#25 7 июня 2016 в 16:42


Поэтому и не работает, а почему нету? Много вопросов бы решило.

Loadырь

Сейчас создам
#26 7 июня 2016 в 16:42
smile
#27 7 июня 2016 в 16:44
Помимо этого при вступлении в группу оно должно заполняться номером группы. По этому полю можно потом фильтровать пользователей при выводе списков свободных игроков. Также можно по этому полю выводить инфу в какой он команде и в каком турнире сейчас "парится".
#28 7 июня 2016 в 16:46


Помимо этого при вступлении в группу оно должно заполняться номером группы. По этому полю можно потом фильтровать пользователей при выводе списков свободных игроков. Также можно по этому полю выводить инфу в какой он команде и в каком турнире сейчас "парится".

Loadырь

Добавил, а как туда отправлять данные?
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.