Привет, этот компонент работает нормально, но как добавить класс active к ссылкам, созданным им, когда они находятся на Discourse (то же самое)? У моих элементов по умолчанию есть класс active, но не у тех, что созданы этим компонентом.
Это несколько запутанная тема, так как оригинальный пост (OP) обновлён как вики, но большинство обсуждений относятся к старой версии компонента.
Тема и оригинальный пост предполагают, что это поддерживает графические иконки в дополнение к текстовым ссылкам. Однако в Редакторе настроек объекта нет поля для определения иконки. Я попытался добавить SVG-иконку вручную:
"icon": "https://foo.svg",
Графическая кнопка не отображается — вместо неё появляется кнопка текстовой ссылки, основанная на других параметрах пользовательской ссылки. Старое обсуждение между этим постом и оригинальным постом предполагает, что мне, возможно, нужно добавить что-то где-то, чтобы включить SVG-иконку, но что именно и где?
Привет,
Вы имеете в виду этот компонент темы?
У этого компонента темы Custom Header Links (icons) нет настройки Object.
Возможно, вам стоит использовать этот, если вам нужны ссылки в заголовке с поддержкой иконок. ![]()
Обратите внимание, что я только что мигрировал этот компонент в наши новые настройки объектов:
Теперь изменять настройки должно быть гораздо проще.
Привет! При попытке обновить компонент Custom Header Links я получаю следующую ошибку: «Произошла ошибка: вы передали недопустимые параметры для запроса: свойство по указателю JSON ‘/3/url’ должно быть корректным URL-адресом».
Да, я вижу, что могло вызвать это… В схеме указано url: true, и на самом деле мы разрешаем относительные URL-адреса, поэтому это просто строка и считается недопустимым URL-адресом.
Я разберусь с этим.
Можете, пожалуйста, показать настройки вашего компонента? Если удобнее, можете отправить их в личные сообщения.
Сейчас нет дома, сделаю как можно скорее.
Я решил эту проблему напрямую с Патриком в личном сообщении. Если у кого-то возникла та же проблема, то дело в том, что с новыми настройками проверка URL стала строже.
Любой URL, который вы вводите в настройках, должен быть корректно закодирован. Простейшее решение — использовать encodeURI в консоли браузера:
Возьмём, к примеру, этот URL: “/some-url?title=Foo bar:baz”
encodeURI("/some-url?title=Foo bar:baz")
Это выдаст:
/some-url?title=Foo%20bar:baz
Привет! Хотя изменить порядок иконок напрямую невозможно, вы можете сделать это, отредактировав скрипт: нажмите кнопку «Редактор» в компоненте и переставьте строки кода в нужном порядке:
Запущена версия 3.5.0.beta2-dev (137e8a0fa0). Отстаю на 14 коммитов.
При попытке обновления возникает ошибка:
Произошла ошибка: Вы передали недопустимые параметры запроса: Свойство по JSON Pointer '/1/title' должно присутствовать. Свойство по JSON Pointer '/1/icon' должно присутствовать. Свойство по JSON Pointer '/1/url' должно присутствовать.
Есть ли способ это исправить?
Можете сообщить нам свои настройки, нажав Редактор настроек?
Если они конфиденциальны, вы можете написать мне в личные сообщения.
Отправлено вам, спасибо!
Просто небольшое дополнение. Как и предполагалось, миграция для Wingtip не удалась по каким-то причинам. Я предоставил ему правильные настройки. Интересно, при каких условиях миграции могут не удаваться. ![]()
РЕДАКТИРОВАНИЕ:
На самом деле сначала это не сработало, поэтому я предложил ему следующее:
Также, по какой-то причине, программа не принимала корректные настройки: мне пришлось сбросить настройки, обновить систему, а затем заново настроить всё с правильными параметрами. Не такая уж большая проблема, так как конфигурация требовалась минимальная. Ещё раз спасибо за помощь!
Здравствуйте, я не могу отобразить пользовательскую SVG-иконку и буду благодарен за помощь в выявлении моей ошибки.
Я загрузил SVG-файл в тему по умолчанию:
Затем я добавил следующее в компонент этой темы:


Я пробовал использовать icons-sprite, fa-icons-sprite и fab-icons-sprite, но SVG не отображается. Плейсхолдер присутствует, на него можно кликнуть, и ссылка работает, но в прямоугольнике нет иконки.
Инспектор показывает следующее:
<svg class="fa d-icon d-icon-fab-icons-sprite svg-icon svg-string" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><use href="#fab-icons-sprite"></use></svg>
Думаю, это стоит перенести в новую тему Development.
@icaria36
Можешь поделиться содержимым Three_asterisks?
Спрайтовый лист следует определённому формату.
Затем вы можете использовать my-theme-icon-1, my-theme-icon-2 в качестве своих идентификаторов.
Дополнительная информация доступна по адресу Replace Discourse's default SVG icons with custom icons in a theme.
@Arkshine большое спасибо! Я попал на эту страницу, но, видимо, слишком быстро прокрутил вниз. Нет, я ещё не выполнял это задание с SVG-файлом. Попробую (в первый раз редактирую текст в SVG-файле; у всего бывает первое)
, и надеюсь, что этого будет достаточно. ![]()
Мне удалось загрузить иконки Facebook, Instagram и TikTok с помощью этого компонента, но, несмотря на все попытки, не удаётся загрузить ни оригинальную иконку Twitter, ни новую иконку X.
Есть какие-либо подсказки?




