Я настраивал свой форк компонента Custom Profile Link Component и мне потребовались два экземпляра для разных ссылок на сайт. Однако в настоящее время отображаются только пользователи, для которых задано имя пользователя на обоих сайтах. Как сделать так, чтобы отображались оба, независимо от того, работает ли другая копия или нет?
Честно говоря, дело может быть не в data-template, но, поглядев на это немного, я предположил, что именно это.
Я не до конца понимаю, что вы делаете, но, возможно, это потому, что вы обращаетесь к одному и тому же шаблону Handlebars дважды, а не один раз (с двумя полями)?
У меня тоже возникло такое предположение, но я не уверен, как обойти эту проблему.
Неужели нельзя использовать один шаблон? Должна быть возможность настроить два поля в нём, если только я не неправильно понимаю, что вы пытаетесь сделать. Удалось ли вам настроить одно поле со ссылкой? Если да, то это отлично ![]()
Один из шаблонов предназначен для карточки пользователя, другой — для профиля пользователя, поэтому, думаю, нет.
Это работает, если выполнено одно из двух условий:
- У вас есть две копии, два поля, и у просматриваемого пользователя заполнены оба имени.
- У вас есть одна копия, одно поле, и у просматриваемого пользователя заполнено имя.
О, понятно, я неправильно понял. Думал, вы размещаете две разные ссылки на карточке пользователя. Теперь всё ясно. Да, два шаблона.
В каком-то смысле да, так как я использую одну ссылку на каждую копию компонента темы, и, как я подозреваю, именно в этом кроется корень проблемы. Хотя я могу и ошибаться насчёт этого.
Я вставил этот фрагмент кода в бота Lola без контекста, и вот её ответ:
Вы имеете в виду, что вы сделали форк темы, а затем подключили и свой форк, и оригинал? Вам нужно будет изменить все ссылки на его переменные и идентификатор, передаваемый в modify class.
Оригинальная версия больше не работала корректно в Discourse, поэтому я создал форк и доработал его до рабочего состояния. На данный момент я установил две копии моего форка, которые, похоже, конфликтуют друг с другом.
Вот именно. Вам нужно переименовать элементы, чтобы избежать конфликтов.
Скорее всего, лучше сделать одну тему, которая выполняет обе функции, вместо того чтобы иметь две копии.
Как именно это сделать? Одна из идей — добавить ID темы к handlebars-шаблонам, но я не уверен, как это реализовать.
Разве это не нарушит исходное назначение этого компонента темы?
Не знаю, но мне казалось, что оно уже сломано? ![]()
Если оно добавляет ссылку через пользовательское поле и вы хотите добавить две, то нужно написать его так, чтобы его можно было настроить на включение любого количества ссылок на пользовательские поля?
Я создал свой форк, чтобы исправить ошибки в оригинале, поэтому надеюсь, что мой не сломан.
Это могло бы сработать, но я не уверен, как это сделать.
Я начал работать над этим. Моя первая реальная проблема здесь — обработка нескольких идентификаторов. Я думаю, что сделаю это с помощью цикла foreach (как я делал выше в коде), но не уверен, как это реализовать в Handlebars.
Я не уверен, как это сделать в Handlebars
Похоже, вы на правильном пути.
Я всегда забываю и гуглю “handlebars for loop”, чтобы найти примеры.
После часа возни с этим я вынужден признать, что зашел в тупик. Этот код:
{{#each this.customProfileLink as |links|}}
<a href="{{link.[2]}}{{link.[0]}}" target="_blank">{{link.[1]}}</a>
<p>{{link}}--{{link.content}}</p>
{{/each}}
Кажется, что он должен работать, но всё, что я нахожу по теме #each, разнится, и это не работает. У кого-нибудь есть какие-то идеи?
И в этот раз я сам виноват в двойной степени.
Использовал links для элемента, а link в обработчике. И я проверял не профиль пользователя, а только карточку пользователя (профиль пользователя почему-то был верным).