Возможно ли сделать так, чтобы кнопка «Нравится» не открывала форму входа? В моей сценарии она должна работать без авторизации…
Нет, это невозможно. Мы храним информацию о пользователе, который лайкнул пост, и эти данные используются во многих местах, поэтому это не то, что можно легко изменить.
Есть ли какие-то идеи для альтернативных элементов управления, таких как «звёзды» или кнопка «ОК», чтобы незарегистрированные пользователи могли взаимодействовать?
Ничего, что связано с Discourse, всё касается учётных записей пользователей. Если пользователь не вошёл в систему, нечего записывать.
Может кто-нибудь описать лучшие практики кастомизации Like-Control? Я новичок в этом стеке технологий, мои знания о Discourse ограничены опытом работы с PHP, но не с указанными выше технологиями.
Можете уточнить?
Я имею в виду, что вы можете изменить внешний вид кнопки, но за пределами этого выбор очень ограничен.
Я имел в виду функциональную кастомизацию: я хочу изменить логику, чтобы кнопка «Нравится» работала без входа в систему. Но я не знаю модульную структуру Discourse. Посоветуете ли вы плагин или прямое изменение в PHP? И где можно внести изменения, не нарушив целостность кода? Что произойдет с измененным фрагментом кода при обновлениях и т.д.?
Ядро Discourse написано не на PHP.
Вам придётся создать очень-очень кастомный плагин, чтобы заставить это работать, но тогда это будет нарушением GDPR.
Кроме того, такая функция крайне легко эксплуатируется: любой, кто обладает хотя бы минимальными знаниями о том, как реверс-инжинирить куки браузера, сможет спамить случайные посты бесконечными лайками.
Привет, Бхану, ты думаешь, что я многому научусь из этого ответа, чтобы решить проблему?
Я попытался ответить на вопросы, которые вы подняли в сообщении выше. Мой совет: не пытайтесь модифицировать основные функции, если не хотите навсегда вывести из строя свои обновления.
Ок. Спасибо, Бхану. Теперь я знаю, чего не стоит делать ![]()
Я вижу определённую ценность в клоне функции StackOverflow, где анонимные клики по кнопкам голосования сохраняются в базу данных, но не публикуются напрямую.
Прежде чем приступать к реализации, я хотел бы увидеть крайне продуманный план того, как предполагается использовать эти данные (подумайте о GDPR: «Что вы собираетесь делать с этими данными об анонимных посетителях?»). Прямая публикация на странице поста сразу отпадает, так как очень легко обмануть систему в отношении действий анонимных посетителей.
Знает ли кто-нибудь способ (лучшие практики)
a) функциональной кастомизации кнопки «Нравится» или
b) создания дополнительного элемента управления, который считает клики по нему (максимум 1 с IP-адреса), где сумма кликов может отображаться в админ-панели?
Если бы это было только на JavaScript, я бы не спрашивал, но решение должно обеспечивать сохранение данных…
Это не совсем тема поддержки, сейчас этим никто не занимается. То, о чём вы просите, довольно сложно и определённо не то, чем мы сможем вам легко помочь.
Если вы не знакомы с JavaScript и Ruby, то для реализации решения, скорее всего, понадобятся деньги
.
Если у вас есть бюджет и эта функция действительно важна для вас, возможно, стоит создать тему в канале Marketplace?
В качестве альтернативы я бы посоветовал начать заново в канале Development, поскольку вам, скорее всего, придётся создать какой-то плагин.
А, значит, в данном случае лучшая практика для изменений логики — это плагины? Понятно. Хорошо, что я это узнал. Спасибо!
Интересный факт: @sam ещё тогда выступал за эту функцию, и он был прав!
Полученные данные оказались очень интересными: если сравнивать анонимные голоса с голосами авторизованных пользователей, то большие расхождения обычно указывали на темы, требующие вмешательства модераторов.