P

Petrovich

+1
Репутация
4
Рейтинг
#1 Комментарии - отображение доп. полей вместо/вместе с ником 14 октября 2025 в 06:51

Задача — кастомизировать шапку комментария, добавив туда другие поля из профиля пользователя. В моем случае — фамилию и имя.

Я сделал в лоб:

В профиле пользователя создал поля firstname, surname;

В /system/controllers/comments/model.php в функциях getComment($id) и  getComments($actions = false) добавил в $item['user'] поля

  1. $item['user'] = [
  2. 'id' => $item['user_id'],
  3. 'slug' => $item['user_slug'],
  4. 'nickname' => $item['user_nickname'],
  5. 'is_online' => $item['is_online'],
  6. 'avatar' => $item['user_avatar'],
  7. 'is_deleted' => empty($item['user_date_log']) || $item['user_is_deleted'],
  8. 'surname' => $this->getField('cms_users', $item['user_id'], 'surname'),
  9. 'firstname' => $this->getField('cms_users', $item['user_id'], 'firstname')
  10. ];

Потом в /templates/modern/controllers/comments/comment.tpl.php поменял шаблон вывода заголовка коммента

  1. <a href="<?php echo $author_url; ?>" class="user <?php if($entry['user_id'] && $target_user_id == $entry['user_id']){?>btn btn-success btn-sm border-0<?php } ?>">
  2. <?php echo $entry['user']['nickname'].' ('.$entry['user']['surname'].' '.$entry['user']['firstname'].')'; ?></a>

Ну и получаем

Изображение

Вроде бы то, что нужно.

Вопрос: есть ли более корректный способ это реализовать? Может без настолько жесткой привязки к именам полей и с возможностью не вносить правки после каждого обновления instantcms?

#2 [ЕСТЬ РЕШЕНИЕ] Главная страница сайта становится доступной для незарегистрированных пользователей 19 сентября 2025 в 08:13

Спасибо. Поправил, всё работает как надо.

#3 [ЕСТЬ РЕШЕНИЕ] Главная страница сайта становится доступной для незарегистрированных пользователей 18 сентября 2025 в 10:00

Спасибо большое.

Стоит такое писать на гитхаб или отсюда заберут? :)

#4 [ЕСТЬ РЕШЕНИЕ] Главная страница сайта становится доступной для незарегистрированных пользователей 18 сентября 2025 в 09:27

я из нее не выходил. Админка — в хроме. Проверка, что происходит — в другом браузере.

Пока не разлогинишься же всё работает.

#5 [ЕСТЬ РЕШЕНИЕ] Главная страница сайта становится доступной для незарегистрированных пользователей 18 сентября 2025 в 09:10

Вернул через БД

Lora

Это, судя по всему, всё как раз чинит. На боевом сервере в рабочий день бэкап накатывать кажется не лучшей идеей. Получается, что ломается что-то в бд, что ли...

Добавлено спустя Только что

Если вернуть из админки без восстановления бэкапов, а просто изменением настроек — оно ломается.

#6 [ЕСТЬ РЕШЕНИЕ] Главная страница сайта становится доступной для незарегистрированных пользователей 18 сентября 2025 в 08:35

Изображение

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

Это настройки по умолчанию. Если этот модуль убрать и оставить пустой список — для незалогиненых будет ошибка.

Если вернуть назад — им станет доступна главная страница

#7 [ЕСТЬ РЕШЕНИЕ] Главная страница сайта становится доступной для незарегистрированных пользователей 18 сентября 2025 в 08:17

Ещё раз. Из коробки все работает корректно. Не требуется отключать сайт или настраивать права для виджетов. Просто ставится галочка, что сайт доступен только зареганным пользователям. Тогда с любой, в т.ч. главной страницы, перекидывает на логин.

Если после этого «случайно» убрать все пункты из «Ограничения и запреты», попытаться зайти на сайт, получить ошибку и вернуть в «Ограничения и запреты» раздел «Авторизация и регистрация» — главная страница становится доступной для всех и не редиректит на логин.

Это баг. Хочется починить и вернуть поведение из коробки. 

#8 [ЕСТЬ РЕШЕНИЕ] Главная страница сайта становится доступной для незарегистрированных пользователей 18 сентября 2025 в 07:23

Как костылями решить проблему я понимаю. Все виджеты можно скорректировать по правам доступа.

Тема по сути — багрепорт. Функционал ломается после определенных действий.

#9 [ЕСТЬ РЕШЕНИЕ] Главная страница сайта становится доступной для незарегистрированных пользователей 18 сентября 2025 в 07:08

Это внутренний блог компании для сотрудников. Его не надо продвигать в интернетах:)

#1 [ЕСТЬ РЕШЕНИЕ] Главная страница сайта становится доступной для незарегистрированных пользователей 18 сентября 2025 в 06:58

После обновления на 2.18 шарился в настройках авторизации и в разделе «Ограничения и запреты» случайно убрал блок «Авторизация и регистрация». Т.е. не оставил ничего доступного для незарегистрированных юзеров.

Что привело к ошибке, вроде бы вполне ожидаемо — показывать же ничего нельзя.

Проблема появляется дальше. Если вернуть «Авторизация и регистрация», то главная страница сайта отображается всем и больше не перекидывает на `/auth/login/`

Для всех остальных страниц логика отрабатывает нормально.

Я это повторил на тестовой машине с чистой Instantcms, обновленной с 2.17.3 до 2.18.0. Был ли раньше такой косяк — неизвестно.

Главный вопрос — как на боевом сервере починить назад запрет просмотра сайта для незарегистрированных?

#11 [ЕСТЬ РЕШЕНИЕ] Автоматически подписать автора на новые комментарии 8 августа 2025 в 12:45
Создайте файл \system\controllers\comments\hooks\content_after_add_approve.php и внутри добавить <?
My-InstantCMS.Ru

Предполагаю, что отслеживать — это в true надо щелкать. Пошел пробовать. Работает. Большое спасибо за оперативность.

  1. toggleTracking(true, $item['user_id'], 'content', $ctype_name, $item['id']);
Создайте файл \system\controllers\comments\hooks\content_after_add_approve.php и внутри добавить <?My-InstantCMS.Ru Подскажите ваш код для всех типов контента будет работать, или только страницы?
Vasa

Это хук на добавление любого ТК. Так что без разницы, что будут добавлять.

#1 [ЕСТЬ РЕШЕНИЕ] Автоматически подписать автора на новые комментарии 8 августа 2025 в 09:57

Был уверен, что это либо есть по умолчанию, либо можно включить в настройках. Но нигде не нашел. В итоге у нас люди статьи пишут, а на вопросы в комментариях не отвечают:(

Задача максимально простая: я, как автор, хочу знать, что под моим постом/новостью/любым другим ТК кто-то написал коммент. Но каждый раз нажимать «подписаться» в блоке комментариев под своими постами я забываю.

В компоненте «Подписки» и «Комментарии» ничего такого не нашел. Может кто подскажет, что в каком модуле надо добавить, чтобы это реализовать?

ЗЫ. В идеале, конечно, в профиле пользователя сделать галочку «Автоматически следить за комментариями к ТК, где я автор». Но это потом. Пока можно и в коде просто подправить.

#13 [ЕСТЬ РЕШЕНИЕ] Ломается отображение цветного текста/таблиц при включении полнотекстового поиска по полю 18 июля 2025 в 12:37
А попробуйте в этой строке github.com/instantsoft/icms2/blob/master/system/controllers/search/frontend.php#L23 поменять регулярку на такую \B(?<!\<.
Loadырь

Спасибо, как будто помогло. Будем наблюдать.

#14 [ЕСТЬ РЕШЕНИЕ] Ломается отображение цветного текста/таблиц при включении полнотекстового поиска по полю 10 июля 2025 в 12:50

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

#1 [ЕСТЬ РЕШЕНИЕ] Ломается отображение цветного текста/таблиц при включении полнотекстового поиска по полю 10 июля 2025 в 11:45

Версия 2.17.3, развернута на сервере компании и у меня локально.

Отличается БД, версия PHP и Apache

Изображение

Так вот, при одинаковых настройках поля типа «Текст HTML», если нарисовать, например, цветную таблицу, получаем следующее (внимание на окно на заднем фоне):

Изображение

Настройки полей

Изображение

На заднем фоне сервер с MariaDB / php 7.4. На переднем — MySQL / php 8

  • Если цвет начинается с "# + Буква", например #F1C40F — всё ломается, как на картинке выше.
  • Если цвет начинается с "# + Цифра", например #236FA1 — таблица рисуется корректно (верхняя таблица на фото).
  • Если цвет указать текстом, например «red» — таблица рисуется корректно.
  • Если выключить «Участвует в полнотекстовом поиске» у поля, то отображение работает корректно на любых цветах.
  • Если включить «Участвует в полнотекстовом поиске» у поля, то отображение ломается. Достаточно просто обновить страницу с постом.

Вопрос: Как вычислить виновного?

Может, будут идеи, как всё починить, не перенося сервер на новое ПО:) Полнотекстовый поиск, конечно же, нужен.

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

PPS. Отображение цветного текста ломается точно так же.

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