Как создать еще один экшен после ID ?

InstantCMS 2.X
#1 3 сентября 2017 в 10:10
Друзья доброго времени суток, как создать вот такую цепочку, забыл как это делается ?
www.test.com/sport/team/1 — на данные момент так, но мне нужно вот так — www.test.com/sport/team/1/basketball
То есть создать для id различные страницы.
Второй вопрос, как заменить id на названия? www.test.com/sport/team/test/ — там у каждой созданной страницы свое название, но ее надо сделать уникальной что бы при создание одинаковых системных ссылок писало что такое уже есть.
Спасибо!
#3 3 сентября 2017 в 12:59


1. Определение действий
2. Для примера

Loadырь

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

  1. public function run($id = false, $basketball = false)
то есть сделать отдельный basketball.tpl.php
#4 3 сентября 2017 в 13:18


1. Определение действий
2. Для примера

Loadырь

Все я понял, нужно просто прописывать массив то что передаю. например team/1/1 и в экшине перенаправлять туда.
Просто я хотел сделать что бы бы вместо цифры 1 был basketball
А как присвоить другой шаблон ?

Например я не хочу передавать данные как мне это сделать ?
  1.  
  2. <?php
  3.  
  4. class actionSportTeam extends cmsAction {
  5. public function run($id, $basketball = true){
  6. if (!$id) { cmsCore::error404(); }
  7. $tournament = $this->model->getTournament($id);
  8. if (!$tournament) { cmsCore::error404(); }
  9. $team_activ = $this->model->getTeamActiv($id); Например вот это не хочу переносить в $basketball, что я должен сделать ?
  10. $team_admin = $this->model->getTeamAdmin($id);
  11. $tournament_in_team = $this->model->getTournamentInTeam($id);
  12. $sport_schedule_team = $this->model->getSportScheduleTeam($id);
  13. $tournament_team_contest = $this->model->getTournamentTeamContest($id);
  14. $template = cmsTemplate::getInstance();
  15. $user = cmsUser::getInstance();
  16. $template->render('team', array(
  17. 'tournament' => $tournament,
  18. 'team_activ' => $team_activ,
  19. 'team_admin' => $team_admin,
  20. 'tournament_in_team' => $tournament_in_team,
  21. 'sport_schedule_team' => $sport_schedule_team,
  22. 'tournament_team_contest' => $tournament_team_contest,
  23. 'is_user_in_tournament' => $this->model->isUserInTournament($user->id, $id)
  24. ));
  25.  
  26. }
  27.  
  28. }
#5 3 сентября 2017 в 14:41
Решил вот так

<?php if (!$id_page == $ball) { ?> это в шаблон

а это экшен

  1.  
  2. <?php
  3.  
  4. class actionSportTeam extends cmsAction {
  5.  
  6. public function run($id = false, $basketball = false){
  7. if (!$id) { cmsCore::error404(); }
  8.  
  9. $ball = $basketball;
  10. $id_page = $id;
  11. $tournament = $this->model->getTournament($id);
  12. if (!$tournament) { cmsCore::error404(); }
  13. if (!$basketball == $id) {
  14. $team_activ = $this->model->getTeamActiv($id);
  15.  
  16. $team_admin = $this->model->getTeamAdmin($id);
  17.  
  18. $tournament_in_team = $this->model->getTournamentInTeam($id);
  19.  
  20. $tournament_team_contest = $this->model->getTournamentTeamContest($id);
  21.  
  22. }
  23.  
  24. $sport_schedule_team = $this->model->getSportScheduleTeam($id);
  25.  
  26. $template = cmsTemplate::getInstance();
  27.  
  28. $user = cmsUser::getInstance();
  29.  
  30. $template->render('team', array(
  31. 'ball' => $ball,
  32. 'id_page' => $id_page,
  33. 'tournament' => $tournament,
  34. 'team_activ' => $team_activ,
  35. 'team_admin' => $team_admin,
  36. 'tournament_in_team' => $tournament_in_team,
  37. 'sport_schedule_team' => $sport_schedule_team,
  38. 'tournament_team_contest' => $tournament_team_contest,
  39. 'is_user_in_tournament' => $this->model->isUserInTournament($user->id, $id)
  40. ));
  41.  
  42. }
  43.  
  44. }
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.