Как создать больше пунктов

#1 3 июня 2016 в 16:47
Друзья посмотрите видео возможно ли так сделать или есть другие варианты заранее спасибо youtu.be/HoE4O9dPl4c
#2 4 июня 2016 в 21:15
Нико, ваш компонент в супер-лёгкой версии, собранный на коленке с помощью этого компонента, будет выглядеть примерно так
Установка стандартная. Версия лишь для ознакомления с движком.
#3 5 июня 2016 в 00:51


Нико, ваш компонент в супер-лёгкой версии, собранный на коленке с помощью этого компонента, будет выглядеть примерно так
Установка стандартная. Версия лишь для ознакомления с движком.

Loadырь

Да именно но я уже сделал😊По другому то но то что вы сделали я именно так хотел но я сделал не самому выбирать, а игрок сам должен войти в на турнир как докончу покажу) Только я рукой пишу, а не через компонент, но некоторые вещи не знаю как сделать ((
#4 5 июня 2016 в 00:59


Нико, ваш компонент в супер-лёгкой версии, собранный на коленке с помощью этого компонента, будет выглядеть примерно так
Установка стандартная. Версия лишь для ознакомления с движком.

Loadырь

И как там можно сделать что если этого пользователя выбрали, что бы больше не могли выбрать? И на player_1 я ссылку вывожу но nicname не могу
#5 5 июня 2016 в 11:30

а игрок сам должен войти в на турнир как докончу покажу)

Нико
У меня создать команду может админ (по наводке) или любой игрок. Первый игрок автоматом прописывается в капитаны. Затем в выбранном турнире есть кнопка "Принять участие в турнире". По которой, если это админ, он может прикрепить любую команду из существующих, если это капитан, то только те команды, где он капитан. Соответственно если он капитан одной команды, то сразу автоматом присоединится его команда. Так же и убрать команду из турнира может только админ или капитан команды. Парень с улицы, может только создать команду, причём даже капитаном команды может выбрать не себя а другого.

И как там можно сделать что если этого пользователя выбрали, что бы больше не могли выбрать ?

Нико
Я уже писал где-то, в одной из ваших тем на форуме или в личке, как отфильтровать пользователей по определённому полю. Вот и примените это при получении списка пользователей.
#6 5 июня 2016 в 11:38


а игрок сам должен войти в на турнир как докончу покажу)

Нико
У меня создать команду может админ (по наводке) или любой игрок. Первый игрок автоматом прописывается в капитаны. Затем в выбранном турнире есть кнопка "Принять участие в турнире". По которой, если это админ, он может прикрепить любую команду из существующих, если это капитан, то только те команды, где он капитан. Соответственно если он капитан одной команды, то сразу автоматом присоединится его команда. Так же и убрать команду из турнира может только админ или капитан команды. Парень с улицы, может только создать команду, причём даже капитаном команды может выбрать не себя а другого.

И как там можно сделать что если этого пользователя выбрали, что бы больше не могли выбрать ?

Нико
Я уже писал где-то, в одной из ваших тем на форуме или в личке, как отфильтровать пользователей по определённому полю. Вот и примените это при получении списка пользователей.

Loadырь

Да спасибо я уже создал почти компонент как мне надо но теперь у меня к этому осталось 2 вопроса,

— Вот я вывожу игрока по ID но nicname не могу вывести

  1. <a class="user" href="<?php echo href_to('users', $tournament['player_2']); ?>">Игрок<?php echo $tournament['user_nickname']; ?></a>
Игрок это ссылка на профиль но вместо игрока у меня должен выводить ник, но он не выводит думаю что-то в модели не так, но в этом же файле

вот так выводит

  1. <a class="user" href="<?php echo href_to('users', $team['user_id']); ?>"><?php echo $team['user_nickname']; ?></a>
вот весь файл

.tpl

  1. <?php
  2.  
  3. $this->setPageTitle($tournament['tournament_name']);
  4.  
  5. $this->addBreadcrumb(LANG_PHOTOBATTLE_CONTROLLER, $this->href_to(''));
  6. $this->addBreadcrumb($tournament['tournament_name']);
  7.  
  8. if ($tournament['status'] == tournament::STATUS_PENDING){
  9.  
  10. if (!$is_user_in_tournament || cmsUser::isAdmin()){
  11.  
  12. $this->addToolButton(array(
  13. 'class' => 'user_add',
  14. 'title' => LANG_PHOTOBATTLE_JOIN,
  15. 'href' => $this->href_to('join', $tournament['id'])
  16. ));
  17.  
  18. }
  19.  
  20. }
  21.  
  22.  
  23. $is_buttons = cmsUser::isAllowed('tournament', 'edit', 'all') ||
  24. ( cmsUser::isAllowed('tournament', 'edit', 'own') && $tournament['user_id']==cmsUser::getInstance()->id );
  25. if ($is_buttons){
  26.  
  27. $this->addToolButton(array(
  28. 'class' => 'edit',
  29. 'title' => LANG_PHOTOBATTLE_EDIT,
  30. 'href' => $this->href_to('edit', $tournament['id'])
  31. ));
  32.  
  33. $this->addToolButton(array(
  34. 'class' => 'delete',
  35. 'title' => LANG_PHOTOBATTLE_DELETE,
  36. 'href' => $this->href_to('delete', $tournament['id'])
  37. ));
  38.  
  39. }
  40.  
  41. $statuses_text = array(
  42. 0 => LANG_PHOTOBATTLE_STATUS_PENDING,
  43. 1 => LANG_PHOTOBATTLE_STATUS_MODERATION,
  44. 2 => LANG_PHOTOBATTLE_STATUS_OPENED,
  45. 3 => LANG_PHOTOBATTLE_STATUS_CLOSED,
  46. );
  47.  
  48. ?>
  49.  
  50. <h1><?php html($tournament['tournament_name']); ?></h1>
  51.  
  52. <div class="photobattle-status">
  53. <strong><?php echo LANG_PHOTOBATTLE_STATUS; ?>:</strong>
  54. <?php echo $statuses_text[ $tournament['status'] ]; ?>
  55. </div>
  56. <a class="user" href="<?php echo href_to('users', $tournament['player_2']); ?>">Игрок<?php echo $tournament['user_nickname']; ?></a>
  57. <?php if ($tournament['teams']) { ?>
  58.  
  59.  
  60.  
  61.  
  62. <div class="photobattle-images">
  63. <ul>
  64. <?php foreach($tournament['teams'] as $team) { ?>
  65. <li>
  66. <a href="<?php echo $this->href_to('team', $team['id']); ?>" class="title"><?php html($team['team_name']); ?></a>
  67.  
  68.  
  69. <div class="details">
  70. <a class="user" href="<?php echo href_to('users', $team['user_id']); ?>"><?php echo $team['user_nickname']; ?></a>
  71. <a class="delete" title="<?php echo LANG_PHOTOBATTLE_PHOTO_DELETE; ?>" href="<?php echo $this->href_to('delete_team', $team['id']); ?>">X</a>
  72. <?php if ($tournament['status'] == tournament::STATUS_CLOSED) { ?>
  73. <?php } ?>
  74. </div>
  75. </li>
  76. <?php } ?>
  77. </ul>
  78. </div>
  79. <?php } ?>
  80.  
Class

  1. <?php
  2.  
  3. class actionTournamentEvent extends cmsAction {
  4.  
  5. public function run($id = false){
  6.  
  7. if (!$id) { cmsCore::error404(); }
  8.  
  9. $tournament = $this->model->getTournament($id);
  10.  
  11. if (!$tournament) { cmsCore::error404(); }
  12.  
  13. $template = cmsTemplate::getInstance();
  14.  
  15. $user = cmsUser::getInstance();
  16.  
  17. $template->render('event', array(
  18. 'tournament' => $tournament,
  19. 'is_user_in_tournament' => $this->model->isUserInTournament($user->id, $id)
  20. ));
  21.  
  22. }
  23.  
  24. }
Model

  1. <?php
  2.  
  3. class modelTournament extends cmsModel {
  4.  
  5. public function addTournament($tournament){
  6.  
  7. return $this->insert('tournaments', $tournament);
  8.  
  9. }
  10.  
  11. public function updateTournament($id, $tournament){
  12.  
  13. return $this->update('tournaments', $id, $tournament);
  14.  
  15. }
  16.  
  17. public function deleteTournament($id){
  18.  
  19. return $this->delete('tournaments', $id);
  20.  
  21. }
  22.  
  23. public function getTournament($id){
  24.  
  25. $tournament = $this->getItemById('tournaments', $id);
  26.  
  27. $this->filterEqual('tournament_id', $id);
  28.  
  29. $this->join('cms_users', 'u', 'u.id = i.user_id');
  30.  
  31. $this->select('u.nickname', 'user_nickname');
  32.  
  33. $tournament['teams'] = $this->get('team');
  34.  
  35. return $tournament;
  36.  
  37. }
  38.  
  39. public function getTournaments(){
  40.  
  41. return $this->get('tournaments');
  42.  
  43. }
  44.  
  45. public function getTournamentsCount(){
  46.  
  47. return $this->getCount('tournaments');
  48.  
  49. }
  50.  
  51. public function addTeam($team){
  52.  
  53. $team_id = $this->insert('team', $team);
  54.  
  55. $this->filterEqual('id', $team['tournament_id']);
  56.  
  57. $this->increment('tournaments','users_count');
  58.  
  59. return $team_id;
  60.  
#7 5 июня 2016 в 11:58
Для этого надо в файле экшена получить данные выводимого пользователя и передать их в шаблон как и остальные параметры.
#8 5 июня 2016 в 12:13


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

Loadырь

$user = cmsUser::getInstance(); это что? не так разве?
#9 5 июня 2016 в 13:55

$user = cmsUser::getInstance();

Нико
это получаются параметры текущего (кто сейчас авторизован на сайте) пользователя, и для каждого пользователя содержимое этих данных постоянное. Чтобы получить список пользователей привязанных к этому турниру надо сделать такой запрос
  1. $users = cmsCore::getModel('users')->filterEqual('тут поле из таблицы пользователей с номером турнира', $tournament_id)->getUsers();
а затем в шаблоне в цикле команд из этого массива пользователей выбирать нужные данные.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.