Fakebook Theme

Привет, Джордан,

При регистрации нового пользователя возникают ошибки. Правая боковая панель не отображает никакой информации, кроме приветственного текста и подзаголовка без имени. Я знаю, что там должны отображаться лайки (если они есть) и значки. Возможно ли исправить эту боковую панель так, чтобы она показывала лайки и значки? Имею в виду: 0 :heart: получено, 0 :heart: отдано и нет значков. Или текст вроде: У вас пока нет значков… Узнайте, как их получить… или что-то подобное. То есть текст или ссылка, если значков пока нет.

Спасибо! :slight_smile:

Код ошибки для значков:

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

Я хочу, чтобы ссылка работала для краткого содержания темы и изображения.

{{~raw-plugin-outlet name="topic-list-after-title"}}
{{#unless topic.image_url}}
  {{#if topic.hasExcerpt}}
    <a href="{{topic.lastUnreadUrl}}" class="topic-excerpt-link">
      <div class="topic-excerpt-box">
        {{raw "list/topic-excerpt" topic=topic}}
      </div>
    </a>
  {{/if}}
{{/unless}}
{{#if topic.image_url}}
<a href="{{topic.lastUnreadUrl}}" class="topic-excerpt-link">
<div class="topic-image">
  <img src="{{topic.image_url}}" />
</div>
</a>
{{/if}}

Вот сайт, который я тестирую.
https://today16.com/

Используйте это в мобильном заголовке :point_down:
<script type='text/x-handlebars' data-template-name='mobile/list/topic-list-item.raw'> . . . </script>

iPhone 6S

Я тестирую это в симуляторе Xcode на iPhone 6S, и у меня эта проблема не возникает.

У меня есть несколько вопросов:

Это скриншот того, как вы используете meta.discourse.org?
Какую версию iOS вы используете?
Какой веб-браузер?

Спасибо

1 лайк

Кто-нибудь пробовал загружать короткие видео напрямую в Discourse с темой Facebook на iPhone?

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

Все встроенные видео с YouTube работают.

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

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

Привет @Don
Да, попробуйте по ссылке ниже:
Making sure you're not a bot!

Только что проверил и убедился, что это не работает на моей iOS 11.

1 лайк

iOS 11 уже довольно устарел, и это вызывает проблему. На iOS 14 я могу воспроизводить видео без каких-либо затруднений, и всё работает отлично.

4 лайка

@Don Принято,

Спасибо

1 лайк

Это фантастика!

Кстати… можно ли добавить ссылку в область вступления боковой панели?

Где ссылка для добавления темы?

4 лайка

Привет! Я изучаю разработку тем и плагинов для Discourse. Мне очень нравится тема Fakebook, и я использую её для углубления понимания, но у меня есть несколько вопросов.

Файл “javascripts/discourse/templates/mobile/list/topic-list-item.hbr” содержит 100% дублирующийся код из файла “common/header.html”.

Мои вопросы:

  1. Разве нельзя включить файл hbr в HTML-файл, чтобы мы могли просто подключить topic-list-item.hbr в common/header.html вместо дублирования кода в двух местах?
  2. Зачем вообще нужен файл topic-list-item.hbr? Разве файлы в папке common не должны применяться и к десктопной, и к мобильной версиям?
1 лайк

Я не думаю, что это возможно… Обычно я мог бы создать компонент, использующий один шаблон, а затем включить этот компонент в оба переопределения… но наши элементы списка тем представляют собой особый тип шаблона, созданный для производительности (hbr = необработанный шаблон Handlebars), а необработанные шаблоны не могут использовать компоненты. (Некоторое предыдущее обсуждение здесь: Mounting widget in raw template? - #7 by angus)

Именно так устроены CSS-стили Discourse (а также некоторые специальные HTML-файлы для тем, такие как заголовок/подвал и т. д.), но внутри директории javascripts/discourse/templates эти шаблоны являются прямыми переопределениями шаблонов по умолчанию Discourse (если переопределения нет, используются шаблоны по умолчанию).

В Discourse существуют два шаблона: /templates/list/topic-list-item.hbr и /templates/mobile/list/topic-list-item.hbr. Поскольку шаблонов два, нам нужно два переопределения.

Возможно, существует простой способ указать мобильной версии использовать немобильный шаблон в JS… но если он есть, я о нём не знаю!

1 лайк

Рано порадовался! Я посмотрел и на самом деле разобрался с этим вскоре после того, как опубликовал ответ выше. Иногда проговаривание вслух помогает.

Я внес обновление, чтобы остался только один шаблон… По умолчанию в topic-list-item.js у нас есть код, который выглядит так:

  renderTopicListItem() {
    const template = findRawTemplate("list/topic-list-item");
    if (template) {
      this.set("topicListItemContents", template(this).htmlSafe());
    }
  },

Так что, если я переопределю const template в теме…

  renderTopicListItem() {
    const template = findRawTemplate("list/custom-topic-list-item");
    if (template) {
      this.set("topicListItemContents", template(this).htmlSafe());
    }
  },

Теперь это указывает на отдельный шаблон, и поскольку нет мобильного аналога с таким же названием… он также будет использоваться для мобильных устройств. Спасибо за вдохновение для изменений вашим вопросом @hyd504!

4 лайка

Это очень мило! :blush: Я только что изменил на своём сайте тему Fakebook Modern :slightly_smiling_face: Большое спасибо! :heart:

@awesomerobot @Don

Ребята, можете поделиться ссылками на примеры форумов, где можно увидеть эту тему в действии?

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

Конечно, вы можете увидеть тему Fakebook в конструкторе тем:

В моей версии внесено довольно много изменений, но вы можете посмотреть её здесь:

1 лайк

Спасибо, @Don.

Просто хочу перепроверить: Preview указывает на тему GitHub - discourse/fakebook-modern · GitHub?