Универсальный баннер

:discourse: Краткое описание Компонент Versatile Banner добавляет на ваш сайт настраиваемый баннер.
:eyeglasses: Предпросмотр Предпросмотр в конструкторе тем Discourse
:hammer_and_wrench: Ссылка на репозиторий https://github.com/discourse/discourse-versatile-banner
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

Установить этот компонент темы

Возможности

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

Ниже приведены ключевые возможности:

  • Ограничение отображения только для авторизованных пользователей или анонимов
  • Ограничение отображения исключительно для мобильных устройств или настольных компьютеров
  • Ограничение отображения для конкретных страниц
  • Варианты: закрываемый, расширяемый и всегда видимый
  • Опция на всю ширину браузера
  • Управление цветами
  • Настройка заголовка и колонок с использованием HTML (см. ниже подробности)
  • Опция постоянного состояния (см. ниже подробности)

Настройка содержимого баннера

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

Использование опции постоянного состояния

Опция постоянного состояния будет использовать до двух файлов cookie. Эти файлы cookie будут содержать имя баннера и значение true/false, относящееся к состоянию баннера. Если у вас есть опасения по поводу использования файлов cookie на вашем сайте, лучше не использовать эту настройку. Выбор относительного времени для настройки cookie_lifespan гарантирует, что баннер останется закрытым/расширенным/свернутым в течение этого времени после нажатия пользователем соответствующей кнопки. Без этой настройки баннер сбрасывается при каждой полной перезагрузке страницы. Если вы внесли изменения в баннер и хотите, чтобы все пользователи увидели эти изменения, даже те, кто ранее закрыл баннер, обязательно измените «имя файла cookie». Это фактически сбросит любое постоянное состояние, после чего пользователь сможет снова закрыть баннер.

Настройки

Имя Описание
show for members Отображать баннер для пользователей, вошедших в форум
show for anon Отображать баннер для анонимных пользователей
display on mobile Отображать баннер на мобильных устройствах
display on desktop Отображать баннер на настольных компьютерах
display on homepage Отображать баннер на главной странице
url must contain Введите пути, на которых должен отображаться баннер. Добавьте * в конец пути как подстановочный знак
dismissible Разрешить пользователям закрывать баннер
collapsible Разрешить пользователям разворачивать и сворачивать баннер
default collapsed state Состояние по умолчанию (свернут) при включении настройки collapsible
cookie lifespan Срок жизни файла cookie, используемого для запоминания, был ли баннер закрыт, развернут или свернут. Если установлено значение «none», файлы cookie не будут использоваться с этим компонентом, и любые ранее созданные файлы cookie, связанные с баннером, будут удалены при следующей полной перезагрузке страницы пользователем. Значения измеряются в единицах времени, поэтому установка «year» означает один год, «week» — одну неделю и т. д.
cookie name При внесении важных изменений в баннер необходимо изменить имя файла cookie, чтобы все пользователи увидели изменения.
full width banner Отображать баннер на всю ширину браузера
swap default positioning Если активен другой компонент, связанный с баннерами, используйте эту настройку для замены его позиции на позицию Versatile Banner
plugin outlet below-site-header размещает его над боковой панелью, above-main-container — над контентом сбоку от боковой панели
banner background image Исходный URL для фонового изображения. Совет: вы можете загрузить изображение в свою основную тему и использовать URL оттуда, но убедитесь, что вы не используете раздел «Uploads» этого компонента. Все загрузки, добавленные в этот компонент, будут удалены при каждом обновлении.
banner background image dark Исходный URL для фонового изображения при обнаружении темной темы системы.
background color Используется вместо фонового изображения
background color dark Используется вместо фонового изображения при обнаружении темной темы системы.
primary text color Основной цвет текста баннера
primary text color dark Основной цвет текста баннера при обнаружении темной темы системы
secondary text color Цвет текста иконок и заголовков, а также цвет фона кнопки.
secondary text color dark Цвет текста иконок и заголовков, а также цвет фона кнопки при обнаружении темной темы системы.
link text color Цвет текста ссылок внутри баннера
link text color dark Цвет текста ссылок внутри баннера при обнаружении темной темы системы.
Перевод По умолчанию
close.title Закрыть баннер
close.label Закрыть
toggle.title Развернуть/свернуть баннер
toggle.collapse_label Свернуть
toggle.expand_label Развернуть

:discourse2: Размещено нами? Компоненты тем доступны для использования в наших тарифах Pro, Business и Enterprise.

101 лайк
Homepage Banner
Homepage specific design and content
Showing two banners: one to anonymous users, and one for logged-in members
Discourse Theme Creation
Activated child Component and broke Discourse!
How to add a simple Banner
Adding a new banner just above the logo
Banner on Discourse
Landing page customization
Message to display to only users without accounts/logged in?
Turned my Discourse into a successful ecommerce platform!
Adding a new banner just above the logo
Ideas for highlighting content on our forum
Impact of component positioning with 2.5.0.beta6
Using an Image for a Global Banner Topic - Dimensions?
Showing a Warning to Non-Registered Users
Customise home login page
Enhancing My engineering Community Landing Page - Technology Support Category
How to add top welcome message to the board
How is the Banner at meta.discourse.org created?
Is it possible to change the order of topics?
Can the new About page be more visible?
Need help to emulate old forum
Creating a banner that only 1 group can see, while the other groups don't
Sticky global notice
Banner text customization for Subscriptions plugin
How to I stop topics automatically un-pinning when a user reaches the bottom?
How to insert Versatile Banner before the content of the post.?
Need guidance for adding description bar
Customizing your site with existing theme components
Homepage Feature
How to Set a Closable Banner at the Top of site?
Order of two items in the same plugin outlet
How to add this type of banner?
Customize Your Site Branding
Can the new About page be more visible?
Asking for advice on "How to create a Banner on the main page"/
No HTML in global notice
Welcome Link Banner theme-component with photos
How to apply CSS code only in the discourse home page?
How to make the automatic dark theme the same as the selected dark theme?
Make the Welcome Banner less intrusive
Your own banner with a link
I want add photo for download my app
How to add title and buttons naturally above forum topics?
Where shall I put this code for a top banner?
Is it possible to insert a box of text between the header and topic list?
How do I create a welcome banner like the one on this site?
Customizing the groups page
What are good plugins or theme components for a forum emphasizing pictures?
Creating a banner to display at the top of your site
Horizon Theme
Missing margin in the .banner- box for Versatile Banner TC
What Are Some Good Welcome Banner Designs?
App interviewer
How minimal is your forum?
How to add a header image and customize it
Category Banners
Как сделать заголовок H1 на главной странице
Как поставить Банер на главной странице
Hover preview and quote of the day
Creating a "Featured Categories" homepage banner
Making my discourse site look a certain way
Help with alignment in the "versatile banner" plugin
Make Banner Undismissable
Can I add a banner only on my homepage?
Welcome message at the top
Globally pinned topic only appears in one category
Pin a post even in the categories home page
How do i turn of unpin/pin option for my forum users?
[PAID] Assistance to Set-up My Forum
Custom HTML on Groups page
Banner diference mobile/web
Help me code menu top same image
Publish a notification at top of the page
How to create a welcome banner/section?
Landing page customization

Всем привет! Я хочу выровнять весь текст по левому краю, но CSS-тема у меня не работает. Подскажите, пожалуйста, как именно это сделать?

3 лайка

Это то, что вы искали?

Если да, вот быстрый и простой CSS, который, надеюсь, поможет вам начать:

.banner-box {
  h1,
  h2,
  h3,
  .row .single-box {
    text-align: left;
    & .banner-list {
      display: block;
      ul {
        margin: 0 0 9px 25px;
      }
    }
  }

  .section-header {
    .x-title {
      padding: 25px 15px;
    }
    .description p {
      text-align: left;
    }
  }
}

Вам нужно создать новый компонент под названием «Versatile Banner Customizations» и добавить вышеуказанный CSS в раздел Common. Обязательно добавьте новый компонент во все активные темы, использующие Versatile Banner, чтобы применить эту настройку.

5 лайков

У меня это сработало. Большое спасибо.

3 лайка

Здравствуйте,

Возможно ли сделать фоновое изображение кликабельным?

Спасибо за ваш ответ.

Можете привести пример?
Зачем вам это нужно?
Я имею в виду… всё фоновое изображение станет ссылкой?
Если пользователь кликнет в любом месте баннера, его перенаправит по этой ссылке.
Не представляю, зачем это может понадобиться.

1 лайк

Как я могу изменить высоту баннера?

1 лайк

Привет @tshenry, я использую компонент темы Versatile Banner, но он исчезает, когда я снимаю галочку «Отображать на компьютере». На самом деле я хочу показывать баннер только на мобильных устройствах.

Однако, когда я снимаю галочку «Отображать на компьютере»… исчезают оба баннера Versatile Banner — и на компьютере, и на мобильном.
Вот ссылка на сайт, если хотите проверить: https://hec.fm

Не упустил ли я что-то?

1 лайк

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

1 лайк

Спасибо за сообщение! Извините за задержку с ответом. Я смог воспроизвести описанную вами проблему. Я почти уверен, что понимаю, в чём дело. Я займусь этим в конце этой недели и вернусь к вам с ответом.

Высота баннера в первую очередь зависит от его содержимого, но при необходимости вы можете настроить всё с помощью собственного CSS. Я не уверен, насколько удачно вам удастся разместить три колонки горизонтально на мобильном устройстве, но вы определённо можете попробовать это сделать с помощью пользовательского CSS! Ознакомьтесь с рекомендациями по адресу Making custom CSS changes on your site.

4 лайка

Кажется, у меня возник баг на сайте, связанный с временем жизни куки при сохранении состояния развёрнутого/свёрнутого элемента. Я хочу, чтобы мой сайт запоминал, когда пользователи сворачивают или разворачивают баннер, и сохранял это состояние независимо от действий. На главной странице или при переходе по темам всё работает как ожидалось. Однако, как только я захожу в панель администратора, настройки пользователя, FAQ, раздел «О нас», условия использования, политику конфиденциальности или документацию, а затем возвращаюсь на главную, начинаются странные вещи: иногда баннер оказывается в противоположном состоянии, а иногда даже иконка стрелки, указывающая на сворачивание или разворачивание, отображается неверно.

Вот, иконка стрелки направлена вверх:

Но после перехода в раздел документации и возвращения на главную иконка стрелки оказывается в противоположном направлении.

Это выглядит довольно странно…

2 лайка

Только что обнаружил, что универсальный баннер больше не отображается на странице входа в наш форум (это закрытый форум), как это было раньше.

В настройках компонента отмечена опция «Показывать баннер для анонимных пользователей».

При просмотре HTML-кода вижу div с классом ‘banner-box’ внутри вложенных div с классами ‘emberX’, но внутри div с классом ‘banner-box’ ничего нет — в отличие от HTML-кода для авторизованных пользователей.

Есть какие-то идеи, что может быть не так?

1 лайк

Я только что выкатил небольшое обновление для компонента.

Это должно быть исправлено с помощью обновления выше. Мне очень жаль, что так долго пришлось ждать исправления. Ещё раз спасибо за ваш отчёт!

Вам нужно добавить /login в настройку темы «URL должен содержать». Подробнее см. этот пост.

Об этом уже сообщали один или два раза ранее. К сожалению, мне так и не удалось воспроизвести эту проблему. Я попробую снова, когда будет возможность, используя ваши точные шаги, и посмотрю, получится ли у меня что-то.

3 лайка

Я использую Versatile Banner и пытаюсь превратить его в гигантскую ссылку, которая перенаправляет на другой сайт. Как это сделать?

Пытался изменить это через скрипт: api.changeWidgetSetting('banner-content-widget', 'href', '<site_address>'), но Versatile Banner перестал работать.

1 лайк

Спасибо, это отлично! Теперь всё работает идеально! :folded_hands:t2:

2 лайка

Вы, возможно, сможете сделать что-то вроде:

<script type="text/discourse-plugin" version="0.10.0">
  // Добавить ссылку на заголовок
  api.reopenWidget("banner-box-widget", {
    html(attrs) {
      let bannerBox = this._super();
      bannerBox[0].children[1].tagName = "A";
      bannerBox[0].children[1].properties.href = "https://meta.discourse.org";
      return bannerBox;
    }
  });
  
  // Добавить ссылку на остальной контент
  api.reopenWidget("banner-content-widget", {
    html(attrs) {
      let bannerContent = this._super();
      bannerContent.tagName = "A";
      bannerContent.properties.href = "https://meta.discourse.org";
      return bannerContent;
    }
  });
</script>

И добавить правило CSS для настройки цвета ссылки:

.banner-box a {
    color: var(--primary);
}

Если вам не нужна какая-то конкретная функциональность, которую предлагает Versatile Banner, возможно, вам будет проще создать свой собственный простой HTML-баннер в новом компоненте. Примерный вариант:

Добавьте следующее в раздел Common “After Header”:

<a href="https://meta.discourse.org">
  <div class="custom-banner">
    <h2>Это пользовательский баннер!</h2>
  </div>
</a>

А следующее — в раздел Common “CSS”:

 .custom-banner {
   display: flex;
   justify-content: center;
   align-items: center;
   width: $large-width; // 1110px
   height: 200px;
   margin-bottom: 15px;
   background: grey;
   color: white;
 }

Это создаст простой баннер, который полностью кликабелен:

3 лайка

Я устанавливаю этот компонент из git, но, похоже, не получил последний код. Коммит FIX: Work with new sticky header and move away from deprecated $.cookie · discourse/discourse-versatile-banner@0939120 · GitHub не обновился на моём сайте https://ygobbs.com/.

1 лайк

Это связано с тем, что вы используете версию Discourse 2.6.0.beta2. Указанный вами коммит требует версии 2.6.0.beta3 и выше. Обратите внимание, что в этом коммите добавлен файл discourse-compatibility, чтобы предотвратить обновление до коммита, несовместимого с вашей версией Discourse.

5 лайков

Вау, это потрясающе, что Discourse находит для меня более старую версию, вместо того чтобы запрещать установку компонента. Спасибо!

3 лайка

Привет, @tshenry
Я хочу установить компонент несколько раз, чтобы использовать каждый экземпляр для отображения разных баннеров в разных категориях. Поэтому я отключил опцию «Показывать на главной странице» и использовал условие «URL должен содержать», но это мешает работе основного экземпляра, который я использую для отображения компонента только на главной странице. Можете ли вы предложить другое решение или это баг? Спасибо! (:

1 лайк