Как вывести связанные элементы?
В списке контента А у каждой записи можно выводить связанные (родительские) элементы Б через поле parent_id.
Вопрос, как сделать обратное. В списке контента Б выводить у каждой записи список дочерних элементов А?
Или речь о чем-то другом?
Это вы про вывод в записи. А я про вывод в списке записей, или в виджете "Список контента"
В настройках связей Б выбрать отображение не вкладкой, а списком.
Или речь о чем-то другом?
Здесь нужен новый тип поля — "дочки",
Но пока его никто не написал
Всем доброго дня.Кто подскажет, появилось решение данного вопроса за прошедшее время? Спасибо.
Пожалуй спрошу более развернуто. Возможно ли в теории в списке типа контента (родительском) отображать дочерний контент так же, как он отображается при просмотре записи? Т.е. когда мы заходим в запись и к ней привязан какой-то контент, то мы видим в ней список этого контента (ну либо вкладку, в зависимости от настроек связи). Так вот, можно ли такой же список выводить не только в записи, но и при просмотре списка родительского ТК?
Ostrova, в icms можно все.
Но «в коробке» такого точно не будет, так как это будет большой (в плане тяжелый для сервера) запрос с присоединением к записям одного (родительского) типа контента другого (дочернего).
Несложными в разработке могут быть какие-то промежуточные (ограниченные) решения, типа цеплять только заголовки, или без проверок доступа и т.п.
Ostrova, в icms можно все.
Но «в коробке» такого точно не будет, так как это будет большой (в плане тяжелый для сервера) запрос с присоединением к записям одного (родительского) типа контента другого (дочернего).
Несложными в разработке могут быть какие-то промежуточные (ограниченные) решения, типа цеплять только заголовки, или без проверок доступа и т.п.
Логика ясна, спасибо за ответ. Промежуточное решение в виде заголовка по-сути реализовано в обратном направлении: в списке ТК дочерних выводятся заголовки родителя. В обратном направлении тяжелее реализовать? Без проверок доступа и всего прочего (контент добавляется только администратором). В идеале категория + заголовок+ фото. Не подскажите вектор?
Не подскажите вектор?
не подскажу. Связями не пользуюсь, для своих нужд использую поле instantcms.ru/addons/listcontent.html
Друзья, все же нужна помощь зала. Критически важно вывести поля из дочерних записей в списке записей родительских. Как это можно реализовать? Спасибо.
Готового решения нет, надо писать. Ищите кто согласится.
Скорее всего для нужного вам типа контента создать хук content_типконтента_before_list и в нём доставать инфу от родительских записей.
Друзья, всем доброго дня. Как заставить работать данный код в контексте решения данного вопроса?
php function hookChildContent($ctype, $item, $fields){ // Проверяем, есть ли у контента дочерние элементы if(empty($ctype['childs'])){ return false; } // Получаем объект модели $model = cmsCore::getModel('content'); // Проходимся по каждому дочернему элементу foreach($ctype['childs'] as $child){ // Получаем информацию о дочернем типе контента $child_ctype = $model->getContentTypeByName($child['child_ctype_name']); // Устанавливаем фильтр на получение дочерних элементов для текущего элемента $model->filterEqual('parent_' . $child['child_ctype_name'] . '_id', $item['id']); // Получаем список дочерних элементов $child_items = $model->getContentItems($child['child_ctype_name']); // Если дочерние элементы есть, выводим их if($child_items){ echo '<h3>' . $child_ctype['title'] . '</h3>'; echo '<ul>'; foreach($child_items as $child_item){ echo '<li><a href="' . href_to($child['child_ctype_name'], $child_item['slug']) . '">' . $child_item['title'] . '</a></li>'; } echo '</ul>'; } } }