Всем привет! Написала небольшой компонент, который добавляет в записи типов контента возможность голосования при помощи Emodji. Такая фича есть уже во всех популярных CMS, только вот InstantCms до сих пор без нее.
Итак, как это работает. После установки компонента в настройках вашего типа контента появляются новые настройки:
Вы можете собрать необходимый набор emodji и он появится внутри записей вашего типа контента:
Теперь ваши пользователи смогут выражать свои эмоции к записям.
На данный момент настроек — совсем минимум, но — это первая бета и я выкладываю ее немножко заранее, чтобы собрать от вас фидбек и внести новый дополнительный функционал.
Часть функционала на самом деле есть, просто я пока не включила его в эту версию. Но — он обязательно появится в следующем обновлении. Процесс установки стандартный — после установки не забудьте обновить события в базе данных.
Запланированный функционал:
2) Создание своих наборов Emodji
3) Возможность создания наборов Emodji из системных иконок InstantCms
4) Возможность уведомления авторов о новых реакциях к его записи
5) Отображение проголосовавших пользователей
6) Возможность тонкой настройки блока с эмоциями
До прохождения модерации можно скачать прикрепленный к посту файл.
Буду благодарна за ваши донат, даже самый маленький — все мои разработки бесплатны.
YooMoney: 4100117625208247
Реклама #
Def 9 месяцев назад #
хорошая идея. Только под гостем при клике надо предлагать авторизоваться, чтобы юзер понимал как проголосовать
Foxman23 9 месяцев назад #
Здравствуйте! Да, видимо так и должно быть в идеале — но пока это бета, так что все предложения принимаются и внесутся в обновлении)
Panda58dev 9 месяцев назад #
Штука нужная и клёвая!
Фидбэк пожалуй будет состоять из «новых плюшек»:
— Если юзверь не авторизирован, и пытаеться поставить реакцию, не просто «return false», а появляется высплывающие уведомление с текстом вроде «Что бы оставлять реакции, вы должны быть зарегестрированы!» или вроде того. Вообще, идеально, если текст можно будет настраивать;
— Добавить в CSS, что-то вроде:
Иначе может произойти такое:
— В «beta» версии есть лайк (👍🏻), но нет дизлайка (👎🏻). Как понял, в будущем, будет поправлено;
— Имхо, выбранная реакция, лучше смотриться как в примере, в начале статьи, то бишь — увеличенная:
В идеале, если будут глобальные настройки модуля — возможность вставки произвольного css;
— И было бы круто, увидеть код на github/gitflic или т.п.
Foxman23 9 месяцев назад #
Здравствуйте! Спасибо за фидбек!
Да, это уже есть (правда пока только у меня 🤗)
В обновлении в настройках компонента будет возможность создавать свои наборы emodji -с простым указанием нужной иконки. Есть мысль подключить соответствующую библиотеку, чтобы не создавать огромный массив с emodji в системе, но пока я в размышлениях
Не совсем поняла что вы имеете ввиду, но очень интересная идея)
Думаете это кому-то будет нужно?)))
Panda58dev 9 месяцев назад #
Я про эту картинку:
Выбранная реакция, больше, относительно остальных. Подобное решение, ещё было в доке OSX:
Правда, это программы, а не реакции 😅
Ну, например, вместо того, чтобы писать код в комментариях, я и другие разработчики, могли бы прислать pull request) Но, дело ваше, тут настаивать не буду, т.к. на роль мэйнтейнера не претендую :D
Foxman23 9 месяцев назад #
Я вас поняла. Стиль самих эмодзи пока такой- символьный. Будет — как в премиум решении от вордпресса — с анимацией и lotti анимацией
maxisoft 9 месяцев назад #
Ну будет полезно если данная разработка не планируется дальше монетизировать его, то да имеет смысл сделать доступны на github, чтобы можно было строним разработчикам также принять участи в разработке. Простой пример понимаю что код еще будет дорабатываться но могу сразу указать на ряд ошибок и оптимизации в коде.
1. стоит оптимизировать код js
стоит 1 раз получить DOM элемент и потом получать сразу всю data-атрибут
2. проблема с отправкой реакции, стоит сделать проверку на ajax запрос, чтобы не постили простым POST запросом и не спамили.
3. столкнулся с тем что есть ошибка формирования запроса, например на последней версии хромиума (хром, яндекс) не будет нормально работать отправка запроса. Так как вы сделали MIXED тип отправки, сделали POST отправку даных но при этом сделали GET параметр в запросе, из за этого система не может получить данные, корректно
Foxman23 9 месяцев назад #
Спасибо за замечания, поправила код — действительно, это лучше, чем было)
Foxman23 8 месяцев назад #
Обновила прикрепленный файл с компонентом — теперь в момент голосования всплывает окно авторизации для гостей. Также появилась иконка статистики, кликнув по которой откроется окно с проголосовавшими пользователями.
F_a_R_i_D 8 месяцев назад #
Отличный компонент. Смотрю как гость, и я не вижу кто за что проголосовал. Так задумано?
Foxman23 8 месяцев назад #
Нет, видимо ошибка закралась в код) Поправлю
F_a_R_i_D 8 месяцев назад #
И ещё такой вопрос, можно ли его прикрутить к форуму?
Foxman23 8 месяцев назад #
Технически — да. На данный момент — нет.
Pawell 8 месяцев назад #
Здравствуйте. Огромное спасибо за нужный компонент!
Столкнулся с проблемой вывода его на стороннем шаблоне (не выводится). В шаблонах Modern и Default работает. Все файлы залиты в шаблон, также, как и в штатном (default) шаблоне.
Если вставлять код вызова компонента непосредственно в файле шаблона, то отображается текст (like love haha wow sad angry cool confused celebrate heart_eyes clap thinking) вместо значков. В чём может быть ошибка и как подключить компонент в стороннем шаблоне?
Foxman23 8 месяцев назад #
Здравствуйте. Я проверяла на своем шаблоне — у меня работало. Возможно, вам нужно удалить компонент полностью из системы, удалить таблицу reactions из базы данных и установить повторно, но уже с загруженными файлами в ваш шаблон. После установки не забудьте обновить события в базе данных и увеличить счетчик кеширования в настройках системы. Если проблема сохранится — напишите мне в ЛС, попробуем выяснить в чем проблема.
Pawell 8 месяцев назад #
У меня внедрён плагин подгрузки контента на примере этого instantcms.ru/blogs/lunyi-blog/ajax-podgruzka-kontenta-dlja-dvoiki.html но для самого типа контента: записей, новостей и пр. По ходу совместное использование с вашим компонентом вызывает некий конфликт скриптов, так как при подключении вашего компонента перестаёт работать подгрузка контента, работа которого основана на скрипте jquery-ias.min.js
Потому в шаблоне Modern ваш компонент выводится и работает.
Foxman23 8 месяцев назад #
Да у меня там особо ничего нет — только если небольшая библиотека confetti — вы можете ее временно заккоментировать в файле system/controllers/emotions/hooks/content_before_item.php на строке 11
А в файле reactions.js вместо вывода конфетти временно выведите какое-нибудь сообщение в консоль, вот в этом участке кода
Pawell 8 месяцев назад #
Сделал. Компонент не выводится и подгрузка пропала.
Foxman23 8 месяцев назад #
Ну, тогда здесь надо думать, так сразу ничего не скажу. Какой говорите компонент конфликтует? Он где-то есть чтобы посмотреть на него? Или сайт, в консоль заглянуть
maxisoft 8 месяцев назад #
чтобы решить проблему нужно видеть что выводиться в косоле dev-tools. Проверял на работе шаблона с ias подгрузкой, все работает нормально. Поэтому нужно смотреть не посредственно на вашем сайте.
Pawell 8 месяцев назад #
Создатель компонента видела сайт. Может поможет при обновлении компонента.
Foxman23 8 месяцев назад #
Да, видела. У вас очень-очень древний шаблон) Я вот честно не знаю, что с этим можно придумать....
Shuma 8 месяцев назад #
А почему вылезает ошибка Ошибка загрузки исходных карт?
Foxman23 8 месяцев назад #
Это указывает на то что браузер пытался загрузить файл исходной карты (source map), который обычно используется для отладки минифицированного или скомпилированного кода. К моему компоненту это никак не относится.
Shuma 8 месяцев назад #
Хм, интересно. Появилось это после установки компонента. При отключении компонента ошибка исчезает
Foxman23 8 месяцев назад #
Вы можете проверить здесь — reactions.7oz.ru/news/8-investicii-dlja-chainikov-kuda-vkladyvat.html подобных ошибок я не наблюдаю. Вообще — эта ошибка не критична и никак не влияет на работу сайта. Но, если вы уверены, что это вызвал мой компонент, то можете написать мне в ЛС и дать ссылку на ваш сайт — так, по скриншотам что-то сложно сказать.
CEH9I 8 месяцев назад #
При удалении компонента из списка компонентов, не удаляется таблица в БД и повторная установка дает ошибку
При установке версии 1.0.1 версия отображается 1.0.0
После установки не показывает в «Каталоге дополнений» что компонент установлен
CEH9I 8 месяцев назад #
Прописал в таблице БД вот так и все ок стало отображаться, но нужно вам подправить
CEH9I 8 месяцев назад #
В общем я хз, ничего не работает
События обновлены, файлы все подключились, сыроват компонент конечно.
Foxman23 8 месяцев назад #
Да, спасибо, сегодня будет обновление по всем собранным замечаниям
R161Net 8 месяцев назад #
Когда будет обновление?
Kuper 8 месяцев назад #
Замечательно, только мона еще и в списке сделать их помимо записи
TOPg 8 месяцев назад #
Добавлять бы еще в ленту активности событие
Наталья 6 месяцев назад #
Совместимость заявлена 2.14.2-2.16.3,
но на 2.15 не устанавливается
Yuran 6 месяцев назад #
Поставил на 2.16.3 — в настройках типа контента вот это
не появилось:( Может где то что то нужно прописать?
Поторопился написать. В типе контента «Новости» опция появилась. Как и где подключить кдругим типам контента, например к постам?
Yuran 6 месяцев назад #
Извиняюсь… появилось во всех типах контента, наверное кеш не сбросил как следует:)