Помощь новичку в доступе к коду

Привет!

Я новичок в Discourse и в мире open source в целом. Я не программист (за исключением HTML/CSS), но обычно интуитивно понимаю, как скопировать и вставить код из одного места в другое, чтобы элемент появился в другом месте. Это примерно всё, что я планирую делать с кастомизацией, кроме того, что уже можно сделать в настройках.

Есть пользовательское поле, которое я создал, и я хочу, чтобы оно отображалось прямо под именем пользователя на карточке профиля, а не в обычном месте ниже стандартных полей. У меня очень небольшая задача по кастомизации, но она поднимает более общий вопрос: как получить доступ к теме/коду?

Пытаясь ответить на этот (крайне простой) вопрос, я, кажется, нашёл файл, связанный с кодом, который мне нужно изменить в моей локальной установке: discourse/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs. Однако я выбрал хостинг для своего нового форума через discourcehosting.com, поэтому не уверен, как редактировать этот файл, когда у меня нет доступа к файлам.

Извините за такой простой вопрос и за то, что, возможно, выгляжу глупо. Но обещаю, что намерения у меня добрые.

Спасибо.

Начните с Beginner's guide to using Discourse Themes и переходите по ссылкам на конкретные руководства по темам, чтобы сделать то, что вам нужно. :slight_smile:

Спасибо за ссылку, maiki. Я обещаю, что за последние несколько дней я пересматривал это руководство дюжину раз, чтобы убедиться, что не упускаю ничего очевидного. Я понимаю, как и где получить доступ к настройкам стиля и кода в head/body и т.д., но, думаю, мне нужна ясность в том, является ли то, что я планирую сделать, по сути созданием «новой темы» (когда на самом деле я просто хочу немного изменить расположение элементов в нескольких случаях).

Я бы сказал, что это компонент темы.

Не усложняй, просто создай тему. Это весело! Ты во всём разберёшься. :slight_smile:

Мне удалось внести изменения в локальный файл discourse/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs, чтобы добиться желаемого результата. Просто не уверен, как редактировать этот файл, если я не использую собственный хостинг…

Возможно переопределить шаблоны HBS с помощью компонентов темы, что можно сделать через веб-интерфейс администратора.

Вот как это сделать: Developing Discourse Themes & Theme Components

Таким образом, в вашем случае вам нужно создать новый компонент темы и вставить в него следующее:

<script type="text/x-handlebars" data-template-name="components/user-card-contents">

</script>

а затем скопировать содержимое вашего изменённого файла между этими тегами script.

Прямое редактирование файлов Discourse: а) невозможно на нашем хостинге, б) вообще не рекомендуется, так как это полностью сломает ваш сайт при обновлении. Описанный выше метод — правильный способ, независимо от того, используете ли вы наш хостинг или нет!

Если вы просто хотите добавить одно поле пользователя в карточку пользователя, рассмотрите возможность использования точки расширения плагина (plugin outlet), о которой рассказывается чуть выше в той же статье и здесь. Метод с точками расширения плагина требует меньше изменений в коде, что обеспечит лучшую совместимость при обновлении. Однако он менее гибкий, так как требует наличия доступной точки расширения плагина для ваших нужд.