Цель: улучшить механизм работы с наградами за коллекции
Пользователь: Аврелия
Сайт: 26661
Описание: собственно, вопрос в цели. Когда коллекций было не так много, эта проблема ощущалась не столь явственно, но на момент публикации число коллекций равно 170, и со списком по шесть коллекций на страницу работать крайне неудобно. Более того, крайне неудобно активировать коллекции — можно ошибиться, направив коллекцию не на тот сайт. Вдобавок, вводить число в поле ввода, разбитое на три, тоже крайне сомнительное удовольствие, особенно когда нужно активировать несколько коллекций.
В связи с этим ввожу набор предложений, над которыми можно подумать для того, чтобы облегчить пользователям жизнь.
1. Вместо страниц
https://rpgtop.su/cgi-bin/m.cgi?a=collection и
https://rpgtop.su/cgi-bin/m.cgi?a=collections, которые ведут соответственно на текущие коллекции пользователя и возможные коллекции пользователя, сделать одну. Вместо этого добавить выпадающий список, позволяющий выбрать тип коллекций для отображения; по умолчанию он может указывать на «Текущие коллекции», но также можно выбрать «Возможные новые коллекции» + «Коллекции, к которым не получено приза», «Коллекции, к которым получен приз, но они не были активированы», «Коллекции с уже активированными СМС-бонусами». Отдельно можно добавить, например, «Неполные коллекции, к которым не получено приза» и «Полностью собранные коллекции, к которым не получено приза», либо ещё какие-то варианты. Данное изменение вряд ли будет излишне сложным в реализации, но позволит значительно упростить навигацию.
2. К коллекциям, СМС-бонус которых ещё не был активирован, добавить кнопку «Активировать», которая будет вести на страницу выбора сайтов из Избранного пользователя. Эту страницу можно смело назначать на что-нибудь в духе
https://rpgtop.su/cgi-bin/mynewscript.cgi?a=activate&code=1234-1234-1234, чтобы в будущем её можно было расширить для активации СМС-бонусов, полученных каким-то другим путём. После выбора сайта должно выползать подтверждение «Вы действительно хотите активировать бонус 1234-1234-1234 для сайта %сайтнейм%?». Такой способ активации СМС-бонусов практически гарантирует отсутствие возможных ошибок со стороны пользователя по выкладке не на тот сайт.
3. Частично замещая №2: в коллекциях вообще можно отойти от использования кодов, если существует вероятность подбора со стороны недобропорядочных пользователей, ибо неактивированных кодов от коллекций на порядки больше кодов от покупки. Но данное изменение, очевидно, потребует значительной переделки существующего кода. Вдобавок, так как существует огромное количество пользователей, у которых коллекции собраны, но СМС-бонус не активирован, это ещё и потребует хитрых манипуляций с базой данных по удалению этих бонусов и добавлению вместо них бонусов в новом стиле, либо поддержки двух стилей бонусов сразу.
4. На странице покупки СМС-бонусов вместо разделённого натрое поля ввода можно добавить одиночное. Поскольку на сайте уже используется jQuery, на эту конкретную страницу можно подключить плагин jQuery MaskedInput, настройка которого не должна представлять никакой сложности: $(«#code»).mask(«9999-9999-
9999»,{placeholder:«0»}); — это позволит вставлять код при помощи вставки (Ctrl+V) одним нажатием. Соответственно, на стороне сервера достаточно проверить код следующим регулярным выражением: /^(\d{4})\-(\d{4})\-(\d{4})$/, дальнейшая разбивка на три числа должна быть тривиальной.