-
Для более интересного отображения сообщений пользователей, находящихся на форуме, можем выделить их сообщения например свойством box-shadow. Мы в примере используем именно этой css свойство, но вы можете использовать абсолютно любое, например сменить фон поста или цвет шрифта.
Открываем шаблон forums > front > topics > postContainer и ищем:
class='cPost
Добавляем новый класс с условием - если пользователь в сети, показываем класс monline, иначе - moffline:
{{if $comment->author()->isOnline()}}monline{{else}}moffline{{endif}}
Теперь добавим стиль для класса monline в custom.css:
article.monline {box-shadow: 0 0 5px 2px rgba(125, 214, 6, 0.31);}
-
Время от времени вы зададитесь вопросом как изменить стиль некоторого элемента на определённой странице, не меняя аналогичный элемент на других страницах. Например, представим, что вы хотите изменить отображение элемента .ipsPageHeader на странице просмотра темы форума, раскрасив его в другой цвет или изменив размер, но не затрагивать .ipsPageHeader на других страницах.
Добавление класса - неправильный путь
Одним из методов реализации может быть добавление дополнительного класса к элементу при редактировании шаблона просмотра тем и создание стилевого оформления нового класса, используя селектор. Это работает, однако, у этого способа есть серьёзный недостаток - вы изменили стандартный шаблон, а это значит, что IPS4 не сможет его автоматически обновить для вас при обновлении Invision Community до новых версий. По этой причине мы всегда предлагаем вам избегать таких способов.
Использование селекторов страниц - правильный путь
Лучший способ - каждая страница в IPS4 содержит в себе некоторые специальные атрибуты в теге body, идентифицирующие приложение, модуль и контроллер просматриваемой страницы. Вы можете использовать их для написание CSS селектора, предназначенного для целевых страниц. Обращаясь к нашему примеру, мы можем выделить .ipsPageHeader для страницы просмотра темы следующим образом:
body[data-pageapp="forums"][data-pagemodule="forums"][data-pagecontroller="topic"] .ipsPageHeader {
...стили
}
Это работает, т.к. просмотр темы генерируется контроллером темы в модуле forums приложения форумов. Все страницы в Invision Community состоят из такой же структуры - контроллер/модуль/приложение.
Вы можете смешивать их и сочетать как угодно. Если вы хотите стилизовать заголовки страниц во всём приложении Форумы, вы можете упростить код:
body[data-pageapp="forums"] .ipsPageHeader {
...стили
}
Чтобы узнать правильные значения для написания селектора, перейдите на необходимую страницу, откройте исходный код страницы и найдите тег body - посмотрите на атрибуты data-page*, использованные на этой странице.
Включая подобные стили в файл custom.css вашей темы, вы можете стилизовать элементы на определённых страницах, при этом не создавая проблем для дальнейших обновлений сайта.
-
Для страницы отображения каталога модераторов вашего сайты вы можете разрабатывать собственные макеты отображения. Для этого необходимо создать шаблон с использованием разметки HTML, поэтому вам потребуются базовые знания HTML и основы PHP логики.
В админцентре перейдите на страницу 'Кастомизация > Внешний вид > Темы' и нажмите на кнопку 'Редактировать HTML и CSS' справа от вашей темы. Далее снизу нажмите кнопку 'Новый' и выберите пункт 'HTML шаблон' из выпадающего списка. Вы можете назвать шаблон как захотите, а нижеследующие поля заполните следующими данными:
Переменные: $users
Расположение: Добавить в существующее расположение
Существующее расположение: front
Группа: Добавить в существующую группу
Существующая группа: staffdirectory
Приложение: Система
Создание своего макета для каталога модераторов в IPS 4
Теперь вам нужно открыть созданный шаблон в списке существующих шаблонов в блоке слева. Он находится в core > front > staffdirectory. Теперь необходимо написать HTML код для вашего шаблона. В коде необходимо использовать переменную $users, являющуюся объектом массива \IPS\core\StaffDirectory\User. Вы можете использовать какой-либо из существующих шаблонов для использования в качестве основы нового. Кроме того, вы можете применить логику шаблонов или теги шаблонов.
После этого вам необходимо создать другой шаблон с таким же названием (и такими же опциями), но добавить в конце имени "_preview" (например, вы создали шаблон с названием "new_layout", теперь вам нужно создать шаблон с названием "new_layout_preview"), который будет отображаться на странице выбора макета при создании или редактировании группы.
Вам нужно повторить эти шаги для каждой установленной темы (за исключением дочерних тем, т.к. они наследуют шаблоны своих родителей).
Как только вы проделали указанные шаги, вы сможете выбрать новый макет при создании новой или редактировании существующей категории.