Я тоже присоединяюсь, локальный поиск на форуме был бы очень полезен.

Ostrova
Друзья, всем доброго дня. Как заставить работать данный код в контексте решения данного вопроса?
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>'; } } }
Друзья, все же нужна помощь зала. Критически важно вывести поля из дочерних записей в списке записей родительских. Как это можно реализовать? Спасибо.
Ostrova, для управления датами используется поле Место и время, которое в себе хранит ТОЛЬКО дату ближайшего события. Остальные даты хранятся в отдельной таблице.
В фильтре поле вывести не получится.
Но реализовать можно все. Например, так:
— поправить вывод поля в фильтре, чтобы выводились поля начала и конца мероприятий
— через промежуточный запрос найти записи типа контента, которые удовлетворяют выбранным датам
— фильтровать через IN по этому спискуКогда афишу делал, многого не учел. Но работает и поддерживается компонент до сих пор.
Выше Вы привели пример фильтра в составе набора. Он ведь как-то понимает, что событие с датами 11, 12, 13 февраля нужно вывести в наборе «сегодня», если на календаре 12е. Вот это мне оказалось не понятным. Он как-то взаимодействует с таблицей дополнительных дат?
mavleds, вот так в моем компоненте афиши настроен набор «Сегодня»
вот так популярные новости за неделю
Пробуйте. С датой точно должно сработать.
Документация по наборам docs.instantcms.ru/manual/ctypes/datasets/add
Скажите, а у вас в Афише запись может иметь несколько дат, как я вижу. Как фильтр их обрабатывает? Или там несколько дат для одной записи не через несколько полей сделаны?
Ostrova, в icms можно все.
Но «в коробке» такого точно не будет, так как это будет большой (в плане тяжелый для сервера) запрос с присоединением к записям одного (родительского) типа контента другого (дочернего).
Несложными в разработке могут быть какие-то промежуточные (ограниченные) решения, типа цеплять только заголовки, или без проверок доступа и т.п.
Логика ясна, спасибо за ответ. Промежуточное решение в виде заголовка по-сути реализовано в обратном направлении: в списке ТК дочерних выводятся заголовки родителя. В обратном направлении тяжелее реализовать? Без проверок доступа и всего прочего (контент добавляется только администратором). В идеале категория + заголовок+ фото. Не подскажите вектор?
Всем доброго дня.Кто подскажет, появилось решение данного вопроса за прошедшее время? Спасибо.
Пожалуй спрошу более развернуто. Возможно ли в теории в списке типа контента (родительском) отображать дочерний контент так же, как он отображается при просмотре записи? Т.е. когда мы заходим в запись и к ней привязан какой-то контент, то мы видим в ней список этого контента (ну либо вкладку, в зависимости от настроек связи). Так вот, можно ли такой же список выводить не только в записи, но и при просмотре списка родительского ТК?
Всем здравствуйте. Подскажите, а как вывести в публикации название сообщества, в котором мы опубликовали запись? То-ли что-то просмотрел, то-ли такой возможности нет 🧐
Вообще то если шаблон ТК не подавленный название группы по умолчанию там появляется )
Хм… Ну я шаблоны переделывал, но не то, чтобы критично. Ладно, покопаюсь тогда в стандартных шаблонах, поищу как вывести. Спасибо.
Всем здравствуйте. Подскажите, а как вывести в публикации название сообщества, в котором мы опубликовали запись? То-ли что-то просмотрел, то-ли такой возможности нет 🧐
Вообще то если шаблон ТК не подавленный название группы по умолчанию там появляется )
Все, понял в чем дело. Если отключить заголовок записи, то и группа не показывается. Придется как-то мудрить.
Необходимо стилизовать этот тег, но не помню где в модерне его искать. Подскажите плиз)
Так в общем файле темы theme.css вроде все лежит.
Всем здравствуйте. Подскажите, а как вывести в публикации название сообщества, в котором мы опубликовали запись? То-ли что-то просмотрел, то-ли такой возможности нет 🧐
Почему фильтруется в ленте активности и не фильтруется в других ТК по этому методу?
Всё фильтруется, просто наборы в ленте и в ТК по разному вставляются.
Вставьте сюда github.com/instantsoft/icms2/blob/master/system/controllers/content/frontend.php#L1527 этот код
if (cmsUser::isLogged()){ $datasets['subscribers'] = [ 'id' => 100500, 'ctype_id' => $ctype['id'], 'name' => 'subscribers', 'title' => 'Подписчики', 'description' => '', 'ordering' => 1000, 'is_visible' => true, 'filters' => [ [ 'field' => 'id', 'condition' => 'lk', 'value' => false, 'callback' => function($model, $dataset){ return $model->filterSubscribe(cmsUser::get('id')); } ] ], 'sorting' => [ [ 'by' => 'date_pub', 'to' => 'desc', ] ], 'index' => false, 'groups_view' => [], 'groups_hide' => [], 'seo_keys' => '', 'seo_desc' => '', 'seo_title' => '', 'seo_h1' => '', 'cats_view' => [], 'cats_hide' => [], 'max_count' => 0, 'target_controller' => '', 'list' => [ 'show' => false, 'hide' => false, ], 'first_ds' => false, ]; }Хотя в целом лучше для этого действия использовать хуки движка, но для проверки работоспособности «и так сойдет» ))
Супер, спасибо, все работает ✌️
Только в моем случае поменял filterSubscribe на filterFriendsAndSubscribe
Буду разбираться с хуками.
Ну же, коллективный разум, помогите разобраться 🙏 Почему фильтруется в ленте активности и не фильтруется в других ТК по этому методу? Не получает значение user_id ?
Всем здравствуйте. Если мы в настройках социальности отключаем возможность добавлять пользователей в друзья, то остается только возможность подписаться\отписаться от пользователя. Собственно, пропадает страничка «друзья», а страница «подписки» отображает только подписки на обновления из компонента «подписки», но не людей на которых мы подписаны. Возможно ли как-то вывести на отдельной странице список пользователей, на которых подписан юзер?
Спасибо.
На данный момент действую так: в файле system/controllers/users/actions/profile_friends.php убираю строки:
if (!isset($this->tabs['friends'])){ cmsCore::error404(); }
Страница снова начинает отображаться.
Далее меняю
$this->model->filterFriends($profile['id'])->disableDeleteFilter();
на
$this->model->filterFriendsAndSubscribe($profile['id'])->disableDeleteFilter();
и страница начинает выводит список аккаунтов на которых подписан пользователь. Поменять справа ссылки «Удалить из друзей Оставить в подписчиках» — уже мелочи.
Вроде работает. Остается 3 вопроса. Чем такой метод чреват? Как изменить url страницы c friends на follows? И как снова включить отображение вкладки в профиле пользователя?
Ostrova, самому никак не сделать. Но подтянуть фильтры для друзей в какой-то из наборов сторонним компонентом мне видится как несложная задача. Обязательно попробую, как будет время.
Насколько я пытался разобраться, в фронте ленты активности фильтры выводит этот код
public function getDatasets(){ $user = $this->cms_user; $datasets = array(); // Все (новые) $datasets['all'] = array( 'name' => 'all', 'title' => LANG_ACTIVITY_DS_ALL, ); if ($user->is_logged){ // Мои друзья $datasets['friends'] = array( 'name' => 'friends', 'title' => LANG_ACTIVITY_DS_FRIENDS, 'filter' => function($model) use($user){ return $model->filterFriendsAndSubscribe($user->id); } ); // Только мои $datasets['my'] = array( 'name' => 'my', 'title' => LANG_ACTIVITY_DS_MY, 'filter' => function($model) use($user){ return $model->filterEqual('user_id', $user->id); } ); }
Что хорошо — он фильтрует записи не только от друзей, но и от людей, на которых подписан пользователь, если функция добавления в друзья отключена в настройках социальности сайта.
Что плохо — прямая подстановка этого кода в фронт вывода контента не дает нам тот же результат)) Значок дата-сета появляется, страница выводится, но фильтрация не происходит.
Здравствуйте. Кто подскажет, возможно ли перенести набор «Моих друзей» из ленты активности во все остальные типы контента? Чтобы фильтровать записи только от друзей. Спасибо.
Ребят, ну хоть кто-то дайте наводку, плиз. Хоть убей, не понимаю почему узкоспециализированные темы на форуме находят отклик, а действительно важные (а ведь фильтровать контент от друзей важно, ведь правда?) остаются без ответа.