Поле, которое просили на форуме. В рамках изучения системы написал строго по ТЗ. Позволяет выводить ссылки на социальные сети. ОБласть применения — различная, но больше наверное подойдет для профилей пользователей, хотя можно использовать и в группах, и в типах контента.
Настройки — минимальны. Позволяют выбрать, какие соцсети будут доступны в поле, а также можно задать заголовок:
В типе контента поле выглядит так:
В самой записи выглядит так:
Иконки берутся из системного набора иконок brands.svg, но если это кого-то не устроит — могу переписать механизм выбора соцсетей. Поле бесплатное и писалось больше для знакомства с системой, нежели для какого-то отклика сообщества.
Реклама #
Fuze 2 дня назад #
Неплохое начинание. Понимаю, что писалось быстро, но всё же позволю себе прокомментировать.
Преобразования json_decode я бы вынес в отдельный метод, вы дублируете механизм всё время.
Вместо
Лучше использовать
Поскольку так вы подключите независимо от шаблона.
Иконки лучше подключать так:
Что так же подключит их независимо, учитывая наследование в шаблонах. И в целом, будет учитываться возможность того, что CMS установлена в поддиректории.
Вы не используете языковые фразы, это лишнее.
Методы storeCachedValue и hookAfterAdd в поле лишние, вы не используете денормализацию. Это же касается и метода applyFilter:
Не критики ради и без негатива, исключительно пояснения, чтобы вы быстрее разобрались с InstantCMS.
Печора 2 дня назад #
Благодарю за пояснения, обязательно это учту в будущем.
Да, это тоже разумно. Буду тренироваться на новом функционале поля, буду признателен за пояснения к коду
Fuze 2 дня назад #
Без проблем :) Вот ещё на скорую руку.
Зачем в default вы ставите строку через implode, так и оставили бы массив array_keys($this->network_titles), вы же указали is_multiple.
Александр 2 дня назад #
спасибо, а для профиля пользователя использовать можно?
Shuma 16 часов назад #
Можно
Shuma 16 часов назад #
Было бы хорошо, если бы при заполнении поля ссылка можно было вводить логин/никнейм, а не полностью ссылка
Печора 14 часов назад #
Да, уже обсуждали это на форуме. Добавлю такую возможность.