Ostrova

Ostrova

+3
Репутация
37
Рейтинг
#1 [ЕСТЬ РЕШЕНИЕ] Перенести набор "моих друзей" из ленты активности в другие ТК 2 февраля 2024 в 01:04

Почему фильтруется в ленте активности и не фильтруется в других ТК по этому методу?

Ostrova

Всё фильтруется, просто наборы в ленте и в ТК по разному вставляются.

Вставьте сюда github.com/instantsoft/icms2/blob/master/system/controllers/content/frontend.php#L1527 этот код

  1. if (cmsUser::isLogged()){
  2. $datasets['subscribers'] = [
  3. 'id' => 100500,
  4. 'ctype_id' => $ctype['id'],
  5. 'name' => 'subscribers',
  6. 'title' => 'Подписчики',
  7. 'description' => '',
  8. 'ordering' => 1000,
  9. 'is_visible' => true,
  10. 'filters' => [
  11. [
  12. 'field' => 'id',
  13. 'condition' => 'lk',
  14. 'value' => false,
  15. 'callback' => function($model, $dataset){
  16. return $model->filterSubscribe(cmsUser::get('id'));
  17. }
  18. ]
  19. ],
  20. 'sorting' => [
  21. [
  22. 'by' => 'date_pub',
  23. 'to' => 'desc',
  24. ]
  25. ],
  26. 'index' => false,
  27. 'groups_view' => [],
  28. 'groups_hide' => [],
  29. 'seo_keys' => '',
  30. 'seo_desc' => '',
  31. 'seo_title' => '',
  32. 'seo_h1' => '',
  33. 'cats_view' => [],
  34. 'cats_hide' => [],
  35. 'max_count' => 0,
  36. 'target_controller' => '',
  37. 'list' => [
  38. 'show' => false,
  39. 'hide' => false,
  40. ],
  41. 'first_ds' => false,
  42. ];
  43. }
  44.  

Хотя в целом лучше для этого действия использовать хуки движка, но для проверки работоспособности «и так сойдет» ))

Loadырь

Супер, спасибо, все работает ✌️

Только в моем случае поменял filterSubscribe на filterFriendsAndSubscribe

Буду разбираться с хуками.

#2 [ЕСТЬ РЕШЕНИЕ] Перенести набор "моих друзей" из ленты активности в другие ТК 31 января 2024 в 12:21

Ну же, коллективный разум, помогите разобраться 🙏 Почему фильтруется в ленте активности и не фильтруется в других ТК по этому методу? Не получает значение user_id ? 

#3 Вывод списка людей, на которых подписан пользователь 30 января 2024 в 10:31

Всем здравствуйте. Если мы в настройках социальности отключаем возможность добавлять пользователей в друзья, то остается только возможность подписаться\отписаться от пользователя. Собственно, пропадает страничка «друзья», а страница «подписки» отображает только подписки на обновления из компонента «подписки», но не людей на которых мы подписаны. Возможно ли как-то вывести на отдельной странице список пользователей, на которых подписан юзер? 

Спасибо.

Ostrova

На данный момент действую  так:  в файле system/controllers/users/actions/profile_friends.php убираю строки:

  1. if (!isset($this->tabs['friends'])){
  2. cmsCore::error404();
  3. }

Страница снова начинает отображаться. 

Далее меняю 

  1. $this->model->filterFriends($profile['id'])->disableDeleteFilter();

на 

  1. $this->model->filterFriendsAndSubscribe($profile['id'])->disableDeleteFilter();

и страница начинает выводит список аккаунтов на которых подписан пользователь. Поменять справа ссылки «Удалить из друзей Оставить в подписчиках» — уже мелочи. 

Вроде работает. Остается 3 вопроса. Чем такой метод чреват? Как изменить url страницы c friends на follows? И как снова включить отображение вкладки в профиле пользователя?

#4 [ЕСТЬ РЕШЕНИЕ] Перенести набор "моих друзей" из ленты активности в другие ТК 30 января 2024 в 10:21

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

Zau4man

Насколько я пытался разобраться, в фронте ленты активности фильтры выводит этот код

  1. public function getDatasets(){
  2.  
  3. $user = $this->cms_user;
  4.  
  5. $datasets = array();
  6.  
  7. // Все (новые)
  8. $datasets['all'] = array(
  9. 'name' => 'all',
  10. 'title' => LANG_ACTIVITY_DS_ALL,
  11. );
  12.  
  13. if ($user->is_logged){
  14. // Мои друзья
  15. $datasets['friends'] = array(
  16. 'name' => 'friends',
  17. 'title' => LANG_ACTIVITY_DS_FRIENDS,
  18. 'filter' => function($model) use($user){
  19. return $model->filterFriendsAndSubscribe($user->id);
  20. }
  21. );
  22. // Только мои
  23. $datasets['my'] = array(
  24. 'name' => 'my',
  25. 'title' => LANG_ACTIVITY_DS_MY,
  26. 'filter' => function($model) use($user){
  27. return $model->filterEqual('user_id', $user->id);
  28. }
  29. );
  30. }

Что хорошо — он фильтрует записи не только от друзей, но и от людей, на которых подписан пользователь, если функция добавления в друзья отключена в настройках социальности сайта. 

Что плохо — прямая подстановка этого кода в фронт вывода контента не дает нам тот же результат)) Значок дата-сета появляется, страница выводится, но фильтрация не происходит. 

#1 [ЕСТЬ РЕШЕНИЕ] Перенести набор "моих друзей" из ленты активности в другие ТК 30 января 2024 в 00:59

Здравствуйте. Кто подскажет, возможно ли перенести набор «Моих друзей» из ленты активности во все остальные типы контента? Чтобы фильтровать записи только от друзей. Спасибо.

Добавлено спустя 14 часов

Ребят, ну хоть кто-то дайте наводку, плиз. Хоть убей, не понимаю почему узкоспециализированные темы на форуме находят отклик, а действительно важные (а ведь фильтровать контент от друзей важно, ведь правда?) остаются без ответа. 

#1 Вывод списка людей, на которых подписан пользователь 28 января 2024 в 23:43

Всем здравствуйте. Если мы в настройках социальности отключаем возможность добавлять пользователей в друзья, то остается только возможность подписаться\отписаться от пользователя. Собственно, пропадает страничка «друзья», а страница «подписки» отображает только подписки на обновления из компонента «подписки», но не людей на которых мы подписаны. Возможно ли как-то вывести на отдельной странице список пользователей, на которых подписан юзер? 

Спасибо.

#5 Связь только с одной записью родительского ТК 11 января 2024 в 11:18

Присоединяюсь к вопросу, очень актуально  Ограничение одной записью родительского контента во многих случаях логично и необходимо. 

#6 Запрет редактирования свойств категорий 4 декабря 2023 в 13:22

Самое простое чего может быть достаточно, это скрыть стилями на странице редактирования это поле.

Но вредные люди могут посмотреть в код (а надо им оно?) сделать видимым и исправить.

В каких то случаях это должно помочь, не знаем ваших масштабов.

Александр Kreator

Направление понял, попробую этот путь. Спасибо. Изначально думал об опциях в БД, как у полей на запрет редактирования определённым группам  

#1 Запрет редактирования свойств категорий 4 декабря 2023 в 11:59

Всем доброго дня. Требуется помощь зала ✋ Возможно ли каким-то образом запретить редактировать свойство категории после того, как запись уже опубликована? Например: есть категория «Трактора» и в ней свойство «Модель трактора». Там пользователь выбирает «Синий трактор» и успешно публикует запись. Так вот как запретить изменение этого свойства в редактировании записи после публикации? Не запрещая при этом редактирование всей записи. 

#7 Автоматическое формирование поля контента на основе значений других полей по шаблону 26 октября 2023 в 21:11

не хотелось бы править систему через БД, ставить новое поле, потом что-то делать с его стилями. Ведь штатное поле title есть и настроено для всех типов контента

bestit

Вам и не придется ничего делать со стилями. Да и правка в БД минимальная и делается один раз. Надо в таблице cms_con_типконтента_fields заменить у поля заголовка в столбце type тип caption на seostring. Ну и добавить дополнительное поле в админке, например, name, куда вы будете вводить название приюта или столовой. А поле title вы не сможете заполнять при создании и редактировании записи, так как оно будет генерироваться автоматически из значений других полей. При этом на сайте оно будет выводиться так же, как и сейчас. Но дело ваше, конечно)) Можно хотеть, а можно делать — выбирайте сами.

&$!#%

Подниму тему. Сделал нужные изменения в БД, но вместо заголовка выводится просто цифра 1. При этом URL формируется так, так будто заголовок является seo-полем и получает нужные данные с других полей. Не подскажите в чем может быть причина? Спасибо.

#8 Увеличение изображений перестало открываться в popup 17 октября 2023 в 02:37

Здравствуйте. Сайт на локальном сервере.

Ostrova

Посмотрите ошибки в консоле, когда кликаете по ссылке

Lora

Uncaught TypeError: $(...).jqPhotoSwipe is not a function
    at Array.<anonymous> (modal.js?1660154061:121:25)
    at icms.events.run (core.js?1660154061:846:53)
    at el.onload (core.js?1660154061:798:37)

Вот такую ошибку выдает

Добавлено спустя 25 минут

Нашел проблему. Конфликтовали jquery. Стоял слайдер Owl, после его удаления проблема ушла. 

#9 Увеличение изображений перестало открываться в popup 16 октября 2023 в 15:30

Ссылку на страницу дайте.

Lora

Здравствуйте. Сайт на локальном сервере.

#10 Увеличение изображений перестало открываться в popup 16 октября 2023 в 15:00

Всем здравствуйте. Перестали открываться увеличенные изображения в попапе. При клике на миниатюру отправляет прямиком к файлу увеличенного изображения. И так во всех типах контента. Сайт на локалсервер, на параллельном домене на чистой системе все работает. Возможно кто-то сталкивался и сможет подсказать в чем ошибка?

Ostrova

У вас в поле изображения установлено «Размер в записи при клике» ?

Scythian

Да. Галочки на превью тоже везде проставлены. Эта проблема на всем сайте, не в каком-то конкретном типе контента. 

#1 Увеличение изображений перестало открываться в popup 16 октября 2023 в 14:55

Всем здравствуйте. Перестали открываться увеличенные изображения в попапе. При клике на миниатюру отправляет прямиком к файлу увеличенного изображения. И так во всех типах контента. Сайт на локалсервер, на параллельном домене на чистой системе все работает. Возможно кто-то сталкивался и сможет подсказать в чем ошибка?

#11 Фоновая подгрузка превью и гео-разделение 1 октября 2023 в 13:52

По второму вопросу:

instantcms.ru/addons/goroda.html

Ostrova

это немного не то решение, топик стартеру если я правильно понял нужно автоматически включать фильтр записей по его региону. 

Готовых решении вроде нет, так как первое решение это нужно делать плагины для редакторов, а второе решение если правильно понял нужно писать, готовых нет.

maxisoft

А насколько я понял, это решение именно то, что запрашивал ТС. Указываем в профиле город, или регион, и записи автоматически фильтруются по региону из профиля. 

🍪Мы используем файлы cookie для работы сайта. Читать подробнее.