Вложенные типы контента в двойке (Связи типов контента)

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Каталог со связанными типами контента

Насколько актуален для вас компонент Связи типов контента?

Очень актуально
Не нужен вовсе
Двойка из коробки все может
Нужен срочно, готов скинуться
Всего 54 голоса Опрос завершён
#76 31 мая 2016 в 14:26

а так бы хотелось то...

Jestik
Понимаю, но без правок ядра движка вашу мечту-хотелку не осуществить.

екарный бабай

Денис Васильевич
Залог екарности — днём не спать smoke, ночью не есть popcorn.
#77 31 мая 2016 в 20:11
Loadырь, еще чуть чуть и пора выдавать услугу, интересно интересующиеся будут благодарны?!
#78 31 мая 2016 в 21:13

еще чуть чуть

PIN
ещё чуть чуть и я расшифрую исходный код по видео из ютуба yadi.sk/d/aU3UPuJasA2ZB v
#79 31 мая 2016 в 21:16

ещё чуть чуть и я расшифрую исходный код по видео из ютуба yadi.sk/d/aU3UPuJasA2ZB

Loadырь
Затаили дыхание!!!
#80 1 июня 2016 в 00:19

Затаили дыхание !!!

rookee
Выдыхайте.
Сцепил посты с новостями. Теперь так выглядит пост — добавилась ссылка на список новостей этого поста (как в группах), а также в меню действий ссылка на добавление новости, рядом с редактированием поста.
а так, соответственно, новость созданная со страницы поста
Пожалуй это всё что успел сделать, за время своего безделья. Пойду закрою тему одну. smile
#81 1 июня 2016 в 21:28
Во то что и добавляет гибкости, все четко! И первый и второй вариант, вот такие связи и распространены в очень частых случаях.
#82 1 июня 2016 в 22:12
А есть ли какие данные по поводу, как это отражается на скорости загрузки страницы? насколько оптимизированы запросы?
#83 1 июня 2016 в 22:57

А есть ли какие данные по поводу, как это отражается на скорости загрузки страницы?

Project-S
Я пошёл немного дальше кина на ютубе и запилил возможность привязки нескольких типов контента к одному.
Страницы категорий ни как не изменяются, кроме как в заголовках добавляется ссылка на родителя
На страницах записи если не выводить это меню
то тоже на нагрузку не влияет. А если выводить, то на каждый пункт меню добавляется по одному запросу на подсчёт количества записей.
В итоге, для двух дочерних типов контента так выглядит "до" -
а так выглядит "после" -
Кстати, если это меню не выводить, то вообще можно обойтись без хаков. Хак используется только в файле роутов контента для обработки урла, где выводится список подзависимых из выбранного типа контента.
#84 1 июня 2016 в 23:50

Я пошёл немного дальше кина на ютубе

Loadырь
Я сразу полез на демо, чтобы посмотреть, как это выглядит в реале. Но на Вашем демо этого нет. Вот облом. 😊

Наворотили Вы много и интересно. Осталось понять, как это можно использовать и для каких задач. scratchlaugh

Когда я говорил про подобные связи, я имел ввиду чуток другое применение. Например, есть тип контента "Футбольные команды". А есть другой — "Футболисты", дочерний по отношению к первому. При открытии страницы команды под её контентом показывается список её футболистов с минимальной инфой и ссылкой для перехода на страницу каждого футболиста.

Если развивать тему множественных связей, то добавляем ещё один дочерний тип — "Тренеры". И ставим его в списке связей выше "Футболистов". Тогда при просмотре страницы команды после материала о ней будет показан список её тренеров, а потом список футболистов. Списки могут быть уже открытыми подставленными на страницу. А могут быть спрятаны за вкладками/табами, но их данные показываются без открытия новой страницы.

Можно ли в Вашей текущей реализации сделать такое?

Далее. Поскольку связи отображаются как двухуровневые (родитель — потомок), то можно ещё расширить и даже зациклить связи.
Например, при просмотре страницы тренера показывать какую команду он тренирует (к какой сейчас привязан) и какие тренировал ранее. Аналогично и с футболистами. То есть, в итоге можно связывать любые типы контента с любыми другими в отношении "один ко многим" (как минимум) или "многие ко многим" (в идеале) и на странице родителя показывать также и его потомков ближайшего уровня. А может быть и его непосредственного родителя. Или я слишком много нафантазировал? 😉

В очередной раз поражаюсь Вашей работоспособностью, Loadырь!
#85 2 июня 2016 в 00:47

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

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

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

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

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

WebMan
К кому привязан, теоретически получить из БД можно, а вот с кем был связан ранее, увы надо где-то это держать, так как ту команду может "тренировать" уже другой тренер.
#86 2 июня 2016 в 01:16

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

Loadырь
Реализация уже интересная. Мне нравится, хотя я ещё не знаю, где лично я в ближайшем проекте смогу это использовать. Но тут главное — иметь классый инструмент. А что им пилить уже придумается походу. 😊

нужен универсальный шаблон для типа контента-родителя в котором в цикле зациклить вывод всех типов контента с их записями в определённом виде

Loadырь
Это вполне реализуемо. В настройках полей рядом с галками "Показывать в записи", "Показывать в списке" и "Показывать в фильтре" можно добавить галку "Показывать в списке связанных материалов". В шаблоне сделать перебор связанных типов контента в том порядке, в котором они в Админке. В этих типах перебирать записи (надо подумать как задавать их сортировку), а внутри записей выводить только поля с этой новой галкой. При этом если связанных типов нет, то даже внешний цикл не запустится. То есть, получится действительно шустрое решение, не тормозящее проекты без связей.

Думаю, Вы на том этапе, Loadырь, когда пора обсудить эту тему напрямую с Fuze или r2. Так как подобные универсальные связи типов контента во многих случаях могут заменить написание собственных компонентов. Даже если получится добавить "в коробку" только связи "один ко многим" — это уже будет большим прорывом.
#87 2 июня 2016 в 09:59

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

WebMan
Думаю, рано ещё писать мой ник в одной строчке с такими как Fuze и r2. laugh
Да и обсуждать то, что пока никто не знает, как применять, тоже считаю пока рано.
Есть ещё и третья реализация "перелинковки" — при создании записи указывается в какой записи её показывать. В итоге у самой записи показывается ссылка на родителя, а у родителя выводятся все дочерние записи. Но в ней пока шаблон вывода доп контента не готов.
#88 2 июня 2016 в 10:15

Думаю, рано ещё писать мой ник в одной строчке с такими как Fuze и r2. laugh

Loadырь

Думаю, что не стоит сотворять себе кумиров и тем более принижать себя даже в шутку. 😉 Fuze и r2 — такие же люди, как и остальные. Просто талантливые в своей области и очень работоспособные, как и Вы.
Кроме того, речь не идёт о сравнении разработчиков. Речь о том, что во-первых, у них уже есть какое-то видение связей и это может Вам помочь. Во-вторых, лучше сразу делать тот вариант, на который вероятнее всего будет включён в "коробку", а уже потом тратить силы и время на дополнительные варианты. ИМХО.
#89 2 июня 2016 в 10:38

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

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

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

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

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

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