Loadырь

Loadырь

Быть лучшим - не значит быть достаточно хорошим.
+1247
Репутация
4894
Рейтинг
#1 [ЕСТЬ РЕШЕНИЕ] Как занести в таблицу id страницы 2 июня 2016 в 23:37

Для добавления турнира используем урл — tournaments/tournaments_add — этого нету

Нико
Да, нет потому, что вы забиваете все турниры "ручками в БД".

В турнире, урл — tournaments/event/(id турнира) — список команд.

Нико
Допустим, хотя event в урле это ближе к событиям турнира, а не к списку команд участников.

Для добавления команды в турнир используем урл — tournaments/add/. тут и команду добавляешь и игрока все вместе

Нико
Вот тут у вас и начинаются проблемы. Вы, грубо говоря, заходите на страницу с турниром, нажимаете ссылку tournaments/add/ "Добавить команду" и заполняете форму.
Но в двойке есть такое понятие как структура url страницы, расписана в этой
теме.

Каждый адрес страницы состоит из нескольких сегментов:
/controller — Название компонента.
/action — Название действия. Каждый компонент может иметь несколько действий внутри себя.
/p1/p2/p3/… — Любое количество параметров, необходимых для этого действия.

у вас получается что вы вызываете контроллер tournaments, в нём запрашиваете совершить действие add, но никаких параметров ему не передаёте.
Поэтому я и предлагаю вам сделать ссылку типа tournaments/add/(id турнира), которая и передаст этот параметр (id турнира). Сама ссылка, где-то в файлах шаблона формируется в конструкции
  1. $this->addToolButton(array(
  2. 'class' => 'add',
  3. 'title' => 'Добавить команду',
  4. 'href' => $this->href_to('add', $tournament_id)
  5. ));
#2 [ЕСТЬ РЕШЕНИЕ] Вложенные типы контента в двойке (Связи типов контента) 2 июня 2016 в 23:02

Без хака ж проще?

Jestik
Но с хаком красивее.
#3 [ЕСТЬ РЕШЕНИЕ] Вложенные типы контента в двойке (Связи типов контента) 2 июня 2016 в 22:33
Отображение в админке можно сделать так:
с хаком движка yadi.sk/d/7eUsHvJOsDQca
без хаков так yadi.sk/d/NcMT_svYsDQiv
#4 [ЕСТЬ РЕШЕНИЕ] Как занести в таблицу id страницы 2 июня 2016 в 18:07

Я уже запутался (( вот файлы пожалуйста если не сложно подправьте ((

Нико
То есть сделать всё за вас? Чтобы вы так и не узнали в чём причина? Нет уж, давайте распутываться.

Составляем ТЗ:
Есть список турниров, урл — tournaments. Для добавления турнира используем урл — tournaments/tournaments_add
В турнире, урл — tournaments/(id турнира) — список команд. Для добавления команды в турнир используем урл — tournaments/items_add/(id турнира).
В команде, урл — tournaments/items/(id команды) список игроков. Для добавления игрока в команду используем урл — tournaments/players_add/(id команды).
В игроке, урл — tournaments/players/(id игрока) — информация об игроке (рост, вес количество забитых/пропущенных и тд).

Такое ТЗ или у вас другое представление о работе компонента?
#5 Инструкция: свой компонент для InstantCMS2 2 июня 2016 в 18:06
Последний визит: 9 месяцев назад. Вероятно, продолжение будет не скорым.
#6 [ЕСТЬ РЕШЕНИЕ] Как занести в таблицу id страницы 2 июня 2016 в 17:35
Вы ссылку сделали в том виде что я пытаюсь до вас донести? класс экшена поправили как я вам показал? На странице tournament/event/5 на ссылку нажали? Форму заполнили?

Я ведь не турнир добавляю турнир мне не надо добавлять

Нико
Тогда вам нужен другой экшн

то создайте другой экшн на добавление группы в турнир типа /tournament/add_items.

Loadырь
#7 [ЕСТЬ РЕШЕНИЕ] Как занести в таблицу id страницы 2 июня 2016 в 16:57
так я вам уже ответил — вам надо, чтобы ссылка на добавление команды в турнир была такого вида /tournament/add/5
хоть в шаблоне пропишите так
  1. <a href="/tournament/add/5">Добавить</a>
Нажав на которою вы попадёте на ваш класс
  1. class actionTournamentAdd extends cmsAction {
  2.  
  3. public function run($tournament_id = false){
  4. ....
в котором уже будет получена $tournament_id если она прописана в
  1. public function run($tournament_id = false){
#8 [ЕСТЬ РЕШЕНИЕ] Как занести в таблицу id страницы 2 июня 2016 в 16:37
Поставим вопрос по другому. У вас тут tournament/add что добавляется игрок в команду или команда в турнир или турнир в список турниров?
#9 [ЕСТЬ РЕШЕНИЕ] Как занести в таблицу id страницы 2 июня 2016 в 16:24
А ещё точнее можете расписать вот тут

— — — add.php — тут добавляем данные

Нико
добавляете данные для чего? Или к чему? к event.php или к team.php?
#10 [ЕСТЬ РЕШЕНИЕ] Как занести в таблицу id страницы 2 июня 2016 в 16:00

А как мне это сделать

Нико
а как вы сделали ссылку LANG_PHOTOBATTLE_ADD.

Но у меня ничего не передает (

Нико
А куда вы передаёте?
Вам надо сюда передавать
  1. class actionTournamentAdd extends cmsAction {
  2.  
  3. public function run($tournament_id = false){
Если /tournament/add занято добавлением турнира, то создайте другой экшн на добавление группы в турнир типа /tournament/add_items.
#11 [ЕСТЬ РЕШЕНИЕ] Как занести в таблицу id страницы 2 июня 2016 в 14:52
#12 [ЕСТЬ РЕШЕНИЕ] Как занести в таблицу id страницы 2 июня 2016 в 14:16
Сделайте ссылку вида /tournament/add/5 и в классе добавьте этот идентификатор
  1. class actionTournamentAdd extends cmsAction {
  2.  
  3. public function run($tournament_id = false){
  4. ....
#13 [ЕСТЬ РЕШЕНИЕ] Вложенные типы контента в двойке (Связи типов контента) 2 июня 2016 в 10:38

не стоит сотворять себе кумиров

WebMan
Я и не делаю себе кумиров, мне просто нравится, как у них "соображалка" работает smile.

у них уже есть какое-то видение связей

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

лучше сразу делать тот вариант, на который вероятнее всего будет включён в "коробку"

WebMan
Пробовали нечто подобное провернуть тут, да забуксовали.
#14 [ЕСТЬ РЕШЕНИЕ] Вложенные типы контента в двойке (Связи типов контента) 2 июня 2016 в 09:59

Думаю, Вы на том этапе, Loadырь, когда пора обсудить эту тему напрямую с Fuze или r2.

WebMan
Думаю, рано ещё писать мой ник в одной строчке с такими как Fuze и r2. laugh
Да и обсуждать то, что пока никто не знает, как применять, тоже считаю пока рано.
Есть ещё и третья реализация "перелинковки" — при создании записи указывается в какой записи её показывать. В итоге у самой записи показывается ссылка на родителя, а у родителя выводятся все дочерние записи. Но в ней пока шаблон вывода доп контента не готов.
#15 [ЕСТЬ РЕШЕНИЕ] Вложенные типы контента в двойке (Связи типов контента) 2 июня 2016 в 00:47

как это выглядит в реале.

WebMan
Да так и выглядит как демо, только ссылок в меню в записи больше.
Давайте пройдёмся по вашему примеру и посмотрим, что есть сейчас.
Заходим на страницу типа контента "Футбольные команды". Видим список разных команд, Выбираем команду "Рога и копыта", попадаем на страницу этой команды, где идёт фото всех игроков общее и каждого в "фас и профиль". Инфа о тренере и прочее. Так вот я вывел все типы привязанных контентов в виде ссылок меню с количеством их записей. То есть у меня на локалке (на демке пока нет) в типе контента "Библиотека", есть ссылки на "Статьи" (типа "Футболисты") и "Новости" (типа "Тренеры"), с указанием количества в них. Но ничто не мешает в хуке получить полную инфу об этих записях и вывести их в шаблоне.
Но тут возникает сложность, в том что нужен универсальный шаблон для типа контента-родителя в котором в цикле зациклить вывод всех типов контента с их записями в определённом виде. Так как вид списка записей "Футболисты" в типе контента "Футболисты" будет отличаться от вида списка записей в типе контента "Футбольные команды". Конечно для определённого типа контента это сделать просто, а вот файл шаблона default_item уже не изменить без изменения файлов движка.
Также соответственно, и нагрузка увеличится.
Но сделать страничку "футбольной команды" — возможно.
Что касается уровней "родитель-потомок", то сейчас в двойке, как и в России, возможно одному родителю иметь много потомков, но одному потомку можно иметь только одного родителя (европейские "ценности", где два "папы" нам не нужны laugh).

я слишком много нафантазировал?

WebMan
Однозначно. smile

Например, при просмотре страницы тренера показывать какую команду он тренирует (к какой сейчас привязан) и какие тренировал ранее.

WebMan
К кому привязан, теоретически получить из БД можно, а вот с кем был связан ранее, увы надо где-то это держать, так как ту команду может "тренировать" уже другой тренер.
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.