Теперь, что бы использовать смайлы в своем модуле, нет необходимости писать собственный класс управления смайлами, создавать административные страницы, копировать из модуля в модуль картинки и обучать парсер сообщений.
Мы поддерживаем
[spoiler]
"Смайлы в главном модуле это хорошо, а что делать если мы уже расширили и изменили смайлы во всех местах?" - спросите вы.
Мы поступим следующим образом:
1. Вводим переходный период, до выхода 13 версии продукта (если он будет так называться ), до этого момента мы будем поддерживать работу одновременно и со старым механизмом и с новым.
2. Для новых установок и Битрикс24, мы сразу переходим на новый механизм смайлов.
Это наиболее оптимальный вариант, вы успеете перенести смайлы в новый механизм, а нам не придется делать синхронизацию смайлов, которая по сути понадобится всего один раз.
Для удобной работы со смайлами, мы добавили пару интересных фич
Инлайн-редактирование часто изменяемых свойств, теперь не нужно заходить в редактирование, каждый раз когда захочется поменять название.
Наборы смайлов (сеты), в будущем наши интерфейсы редакторов будут иметь окно выбора смайлов исходя из наборов.
Умный импорт смайлов. Мы решили сделать этот инструмент, т.к. добавлять галерею смайлов даже из 100 штук, довольно не весёлое занятие.
У нас доступно два варианта импорта смайлов:
1. Архив с служебными файлами описания и локализаций (в формате csv, пример такого архива можно скачать из административного раздела);
2. Архив без служебных файлов (просто картинки в архиве), импорт будет произведен по списку файлов с использованием меток в названии файла;
Вы сможете закодировать название смайлов таким образом, что бы наш импорт по-умному обработал их и вам потребовалось минимум манипуляций по настройке.
Например при импорте в категорию с кодом "test", файл smile_green_hr.png будет интерпретирован как "Смайл в высоком разрешении", а код вставки в редактор будет :test/green:
Документация по методам уже доступа по адресу
В данный момент смайлы главного модуля не работают в модулях "блог", "форум" и "социальная сеть", но уже скоро выйдут обновления модулей с поддержкой смайлов.
К примеру, есть обычные смайлы, колобки, и есть эмо-стиль - кто выбирает эту опцию, у того везде будут показываться эмо-смайлы.
Есть событие для функции CSmileSet::getConfigSetId которое позволяет подменить результат настройки (на основе настройки работает парсер и геттеры смайлов - по умолчанию), вот пример:
AddEventHandler("main", "OnBeforeSmileGetConfigSetId", "___OnBeforeSmileGetConfigSetId";);
function ___OnBeforeSmileGetConfigSetId($setId)
{
return 16;
}
echo CSmileSet::getConfigSetId(); // return 16
Только важно не забывать, что данный код будет вызываться на каждой странице, хорошо что бы там была статическая проверка (без базы данных), если обойти это ограничение невозможно необходимо использовать кеширование методом бакетов (по 100 штук данных в одном кеше, т.к. это кеш для пользователей, а их может быть много.)