Вставить вводный текст на страницу /s?

Извините, если это сообщение не по адресу в разделе поддержки.

В настоящее время главная страница /s с подписками просто отображает варианты подписки и оплаты. У каждого варианта подписки или оплаты есть лишь ограниченное количество символов для текста.

Для моих целей я хотел бы сделать страницу входа /s немного более приветливой и информативной, а не просто «только для бизнеса».

Возможно ли добавить какой-либо вступительный или информационный текст на страницу /s выше вариантов подписки/оплаты? Или это что-то, что может быть реализовано (когда-нибудь) в качестве опции, или это выходит за рамки возможностей?

По сути, просто редактируемое пользователем текстовое поле со стандартными возможностями форматирования над текущими вариантами.

Я пока не очень знаком с опциями редактирования CSS в Discourse, поэтому не уверен, что возможно при редактировании страниц, плагинов или компонентов. Прошу прощения за мою неосведомленность.

Любая информация будет очень кстати.

Спасибо.

Думаю, это можно сделать с помощью CSS. Не могли бы вы прислать скриншот с указанием места, куда нужно добавить текст? Спасибо.

Вы можете увидеть, где находятся выходы плагинов.

Затем мой Custom Components — добавить кнопку или текст в любой выход плагина позволит вам вставить произвольный текст в любой выход плагина.

Конечно. Я представляю это примерно так…

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

Это выглядит отлично и очень мощно.

Могу ли я воспользоваться этим, если мой форум размещён на хостинге? Инструкция для новых пользователей Discourse немного скудна, поэтому, вероятно, я пока не самый подходящий кандидат для использования, но я пытаюсь как можно быстрее разобраться, и это выглядит очень удобным.

Мне пришлось перейти на страницу GitHub, чтобы найти ссылку на это:

Чтобы найти точки подключения плагинов, выполните enableDevTools() в консоли JavaScript.

Благодарю вас за ответ на мой вопрос. Спасибо.

Да. Это компонент темы. (По крайней мере, большинство тарифных планов позволяют устанавливать любые компоненты темы, которые вы хотите). Вы пробовали нажать большую синюю кнопку с надписью «Установить этот компонент темы»?

Это справедливое замечание!

Я добавил ссылку на Introducing Discourse developer toolbar, чтобы вы могли найти, где находятся точки расширения плагинов.

Я даже добавил эту ссылку, прежде чем прочитал эту часть вашего сообщения! :slight_smile:

Однако, глядя на точки расширения плагинов на /s, кажется, что их там нет. Если вы хотите добавить текст над заголовком «Оплатить», вам повезло!

(Представьте, что «Оплата услуг» — это «Оплатить»). Вы можете разместить его либо в top-notices, либо в above-main-container, но, боюсь, это добавит контент на каждую страницу, а не только на страницу оплаты, если вы не сможете найти способ скрыть его на всех остальных страницах с помощью CSS. Если вы терпеливы, у вас есть хорошие шансы получить ответ на https://ask.discourse.com/, где вам подскажут, как это сделать.

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

Да. Я уже на том уровне, когда могу устанавливать компоненты темы без проблем.

Совсем не собирался критиковать. Извините, если так вышло. Это было просто наблюдение от нового пользователя.

Да, я уже наткнулся на эту ссылку раньше в своих поисках. Проблема в том, что я пока не знаю, как запустить Discourse в среде разработки (или получить к нему доступ через консоль браузера).

Поэтому мой вопрос о возможности использовать ваш компонент касался именно этого: мне нужен доступ к панели разработчика, чтобы применить его, а не установка самого компонента. Извините за путаницу.

Я не знал об этом ресурсе, спасибо.

Что касается размещения, меня устраивает любой вариант, при котором вступительный текст легко поместится над самим контентом «подписки», главное — чтобы он не отображался на каждой странице.

Я ценю ваш вдумчивый ответ.

Нет, нет. Я имел в виду именно это, да. Вы правы. Документацию нужно улучшить. Вот почему я сказал, что это «справедливо»!

Вам это не нужно. Просто откройте инструменты разработчика в браузере (F12 работает, если вы не на Mac; а на Mac мне приходится каждый раз гуглить «как открыть инструменты разработчика в браузере на Mac», даже когда сам Mac находится в двух шагах), и введите enableDevTools() в приглашение консоли. Вы можете сделать это прямо здесь, прямо сейчас, на этом сайте.

Я никогда не использовал Mac, но я помню “J” благодаря

Ах, понятно. Консоль разработчика браузера, а не какая-то консоль, зависящая от Discourse. Теперь всё начинает складываться воедино. Спасибо.

Я включил пользовательские компоненты. Включил devtools в консоли браузера. И активировал панель инструментов разработчика, чтобы видеть компоненты плагинов.

Теперь я понимаю: вы говорите, что для «Подписок» нет компонента плагина, поэтому нет *простого способа разместить текст на этой конкретной целевой странице. Понял.

*Простой в смысле: Шаг 1. Шаг 2. Шаг 3. Готово! И без необходимости тратить часы на исследования и изучение CSS и т. д.

Где-то я читал в своих недавних поисках по «Подпискам» (извините, сейчас у меня нет ссылки), что их всё равно планировали переработать. Надеюсь, моё предложение по добавлению области для вступления/текста будет учтено в будущей разработке.

Я ценю помощь в этой теме. Спасибо.

На странице подписки должен быть класс body, который присутствует только на ней. Тогда вы сможете использовать CSS, чтобы скрыть элемент, добавляемый на все страницы, кроме страницы подписки.

Да, у страницы подписки есть class="above-main-container-outlet subscriptions-campaign ember-view", поэтому вы можете скрыть класс добавляемого элемента, а затем показать его, если он находится в кампании подписки. Что-то в этом роде.

После того как я немного поискал в Google и на Stack Overflow, я собрал версию на чистом CSS:

.above-main-container-outlet.subscriptions-campaign::after {
  content: "Любой текст, который я хочу здесь разместить! \A Это новая строка! \A";
  white-space: pre;
}

Использование \A в качестве символа новой строки.

Надеюсь, это поможет?

Спасибо. Я ценю вашу помощь.

Сейчас я в пути и не смогу работать за ПК (так удобнее) до завтра…

Но я создал новый компонент и вставил ваш CSS. Включил компонент. И теперь текст появляется на каждой странице.

Значит, всё работает. Это огромная победа. Спасибо.

Теперь мне осталось только разобраться, как сделать следующее…

… когда у меня появится возможность.

А также как форматировать текст внутри самого CSS. Например…

Заголовок текста

Сам контент. И, возможно, немного усложнить оформление.

Уверен, это просто вопрос CSS, который я смогу найти в Google и со временем разобраться. Я учусь в процессе.

Благодарю за помощь. Спасибо.

Мне удалось заставить это работать только на странице подписок, и в основном с правильным форматированием, используя следующее.

Огромное спасибо @pfaffman и @NateDhaliwal за предоставленные подсказки, необходимые для полного решения моей задачи.

Примечание: Это работает для моих нужд, но это довольно хаковое решение.

  1. Перейдите в раздел «Администрирование»
  2. Перейдите в раздел «Темы и компоненты»
  3. Выберите вкладку «Компоненты»
  4. Выберите «Установить»
  5. В параметрах выберите «Новый»
  6. Вставьте CSS-код (ниже)
  7. Отредактируйте CSS в соответствии с вашими потребностями
  8. Сохраните
  9. Включите его (если он еще не включен) и убедитесь, что он активен для вашей конкретной темы (или тем) («включить этот компонент в этих темах»).

Совет: Нужна помощь в тонкой настройке CSS? Обратитесь к ИИ-модели, такой как Gemini, Claude… передайте ей CSS-код и расскажите, что вы хотите сделать.

/* ЧАСТЬ 1: Заголовок (стилизованный как нативный H1) */
body:has(.product-list) .above-main-container-outlet.subscriptions-campaign::before {
  content: "Это заголовок"; 
  display: block;
  
  /* Стилизация под заголовки 'title-wrapper' */
  font-family: var(--heading-font-family);
  font-size: var(--font-up-5);
  font-weight: bold;
  line-height: var(--line-height-small);
  color: #DDDDDD;
  
  /* Отступ между этим заголовком и текстом ниже */
  margin-bottom: 8px; 
}

/* ЧАСТЬ 2: Основной текст (с отступом снизу) */
body:has(.product-list) .above-main-container-outlet.subscriptions-campaign::after {
  content: "Это обычный текст, который идет под заголовком. \A Здесь можно использовать обратный слэш-A для новых строк.";
  display: block;
  
  /* Стилизация под стандартный основной текст */
  font-family: var(--font-family);
  font-size: var(--font-0);
  line-height: var(--line-height-medium);
  color: #DDDDDD;
  white-space: pre-wrap;
  
  /* Это создает пустое пространство (перенос строки) под вашим текстом */
  margin-bottom: 40px; 
}

Также просто нажмите ПКМ и выберите «ПРОВЕРИТЬ». PC/Mac

Я открыл PR, надеюсь, его примут :crossed_fingers:

Ох. Это очень хитро. Мои знания CSS скорее теоретические, чем практические.

@ZeroDean PR был слит! Надеюсь, это поможет!

@ZeroDean, это означает, что вы можете упростить свой CSS, используя новый плагин outlet, который доступен только на странице подписки.

Отлично. Благодарю за оперативное решение! Спасибо @NateDhaliwal

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