Custom Header Links (icons)

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

1 лайк

Это несколько запутанная тема, так как оригинальный пост (OP) обновлён как вики, но большинство обсуждений относятся к старой версии компонента.

Тема и оригинальный пост предполагают, что это поддерживает графические иконки в дополнение к текстовым ссылкам. Однако в Редакторе настроек объекта нет поля для определения иконки. Я попытался добавить SVG-иконку вручную:

"icon": "https://foo.svg",

Графическая кнопка не отображается — вместо неё появляется кнопка текстовой ссылки, основанная на других параметрах пользовательской ссылки. Старое обсуждение между этим постом и оригинальным постом предполагает, что мне, возможно, нужно добавить что-то где-то, чтобы включить SVG-иконку, но что именно и где?

Привет,

Вы имеете в виду этот компонент темы?

У этого компонента темы Custom Header Links (icons) нет настройки Object.

Возможно, вам стоит использовать этот, если вам нужны ссылки в заголовке с поддержкой иконок. :+1:

2 лайка

Обратите внимание, что я только что мигрировал этот компонент в наши новые настройки объектов:

Теперь изменять настройки должно быть гораздо проще.

2 лайка

Привет! При попытке обновить компонент Custom Header Links я получаю следующую ошибку: «Произошла ошибка: вы передали недопустимые параметры для запроса: свойство по указателю JSON ‘/3/url’ должно быть корректным URL-адресом».

Да, я вижу, что могло вызвать это… В схеме указано url: true, и на самом деле мы разрешаем относительные URL-адреса, поэтому это просто строка и считается недопустимым URL-адресом.

Я разберусь с этим.

1 лайк

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

Сейчас нет дома, сделаю как можно скорее.

1 лайк

Я решил эту проблему напрямую с Патриком в личном сообщении. Если у кого-то возникла та же проблема, то дело в том, что с новыми настройками проверка URL стала строже.

Любой URL, который вы вводите в настройках, должен быть корректно закодирован. Простейшее решение — использовать encodeURI в консоли браузера:

Возьмём, к примеру, этот URL: “/some-url?title=Foo bar:baz”

encodeURI("/some-url?title=Foo bar:baz")

Это выдаст:

/some-url?title=Foo%20bar:baz
5 лайков

Привет! Хотя изменить порядок иконок напрямую невозможно, вы можете сделать это, отредактировав скрипт: нажмите кнопку «Редактор» в компоненте и переставьте строки кода в нужном порядке:

1 лайк

Запущена версия 3.5.0.beta2-dev (137e8a0fa0). Отстаю на 14 коммитов.

При попытке обновления возникает ошибка:

Произошла ошибка: Вы передали недопустимые параметры запроса: Свойство по JSON Pointer '/1/title' должно присутствовать. Свойство по JSON Pointer '/1/icon' должно присутствовать. Свойство по JSON Pointer '/1/url' должно присутствовать.

Есть ли способ это исправить?

Можете сообщить нам свои настройки, нажав Редактор настроек?

Если они конфиденциальны, вы можете написать мне в личные сообщения.

1 лайк

Отправлено вам, спасибо!

1 лайк

Просто небольшое дополнение. Как и предполагалось, миграция для Wingtip не удалась по каким-то причинам. Я предоставил ему правильные настройки. Интересно, при каких условиях миграции могут не удаваться. :thinking:

РЕДАКТИРОВАНИЕ:

На самом деле сначала это не сработало, поэтому я предложил ему следующее:

Также, по какой-то причине, программа не принимала корректные настройки: мне пришлось сбросить настройки, обновить систему, а затем заново настроить всё с правильными параметрами. Не такая уж большая проблема, так как конфигурация требовалась минимальная. Ещё раз спасибо за помощь!

1 лайк

Introducing Font Awesome 5 and SVG icons

Здравствуйте, я не могу отобразить пользовательскую SVG-иконку и буду благодарен за помощь в выявлении моей ошибки.

Я загрузил SVG-файл в тему по умолчанию:

Затем я добавил следующее в компонент этой темы:

image

image

Я пробовал использовать 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.

2 лайка

@Arkshine большое спасибо! Я попал на эту страницу, но, видимо, слишком быстро прокрутил вниз. Нет, я ещё не выполнял это задание с SVG-файлом. Попробую (в первый раз редактирую текст в SVG-файле; у всего бывает первое) :sweat_smile:, и надеюсь, что этого будет достаточно. :folded_hands:

1 лайк

Мне удалось загрузить иконки Facebook, Instagram и TikTok с помощью этого компонента, но, несмотря на все попытки, не удаётся загрузить ни оригинальную иконку Twitter, ни новую иконку X.

Есть какие-либо подсказки?

Возможно, это поможет, если вы поделитесь своей конфигурацией. Без неё сложно вам помочь.

У меня всё работает отлично
image

1 лайк