Работа на конкурс по разработке описания софта VIZWP

07.11.2018 07:32:03

Предлагаю свое видение WP-плагина, с учетом ошибок, совершенных при интеграции rblogger.ru с медиа-блокчейнами «Голос», Steemit и Viz World. Публикация в рамках конкурса.

Задачи, решаемые ПО

Полностью автономное приложение, позволяющее использовать все функции БЧ без обращения к сторонним сервисам.

Проблемы

Основная проблема разработки полнофункционального Вордпресс-плагина для подавляющего большинстве сайтов использующих Вордпресс — отсутствие возможности запуска скриптов Node.js на стороне сервера. Без этой возможности (средствами WP + JS на стороне браузера пользователя) не могут быть реализованы такие функции, как регистрация новых пользователей через делегирование и отложенный постинг. Если реализовать механизм регистрации с помощью заранее подготовленных инвайтов, то страдает только функционал отложенного постинга.

Проблема отложенного постинга может быть решена путем создание доверенного, стабильного сервиса, который по API сможет выполнять действия, требующие авторизации в БЧ. При наступлении времени публикации сервис обрабатывает запрос от WP, отправляя пост в БЧ.

Кроме того, стоит подумать о том, что на базе такого сервиса можно реализовать гораздо более безопасное хранение ключей пользователей, не подвергая их риску компрометации при взломе сайта/сервера, где установлен плагин.

В случае отказа от такого усложнения архитектуры, можно урезать функционал отложенного постинга: пост будет опубликован в БЧ только при открытии любой страницы консоли WP одним из пользователей, обладающих правами администратора/редактора.

В любом случае, небольшое уменьшение функциональности CMS гораздо менее важно, чем доступность установки на всех сайтах с WP. То есть лучше отказаться от использования Node.js для взаимодействия плагина с БЧ.

Список функций

Публикации
- размещение опубликованных постов в БЧ
- обновление постов при изменении
- экспорт публикаций БЧ > WP
-- проверка «владения» аккаунтом по постинг-ключу
-- копирование публикаций из БЧ в БД Вордпресса, с сохранением тегов и прочих параметров.
- кастомизация формы создания/редактирования поста
--добавление поля картинки-превью
-- добавление поля «короткого описания»

Кошелек
- авторизация по active-key с сохранением на стороне браузера
- переводы токенов на другие аккаунты
- переводы VIZ < SHARES
- старт конвертации SHARES < VIZ
- остановка конвертации SHARES < VIZ
- обзор транзакций с фильтрами по аккаунтам/датам/типам

Голосование (реализация в виде виджета внутри single.php установленной темы)
- отправка/«снятие» голоса за публикацию
- отображение текущего значения будущей/сложившейся выплаты
- возможность присоединиться к «паровозу», голосующему за редакционные посты
- возможность присоединиться к «паровозу», голосующему за все посты, опубликованные через приложение

Комментирование (реализация в виде виджета внутри single.php установленной темы)
- отправка комментариев
- редактирование комментариев
- голосование за комментарии
- отображение будущей/сложившейся выплаты при наличии голосов

Регистрация аккаунтов
- генерация инвайтов с заданными параметрами
- хранение инвайтов
- уведомления об исчерпании доступных инвайтов

Менеджер аккаунтов
Аккаунты БЧ разделены на две логические группы: «аккаунты редакции» и аккаунты пользователей. Пользователь/редактор добавляет/удаляет аккаунты и их постинг-ключи. Виджет менеджера аккаунтов находится в профиле пользователя или на главной странице консоли.

Батарейка (возможное место размещения — admin bar)
- отображение текущего значения Voting Power текущего аккаунта
- периодическое обновление значения

Голосование за делегатов
- список делегатов с отображением текущих голосов
- возможность поставить/снять голос

Описание взаимодействия VIZ.world и WordPress с т.з. редакции

Установка и настройка
- Установка плагина осуществляется с помощью штатных механизмов WP. После установки администратор добавляет в менеджер аккаунтов один или несколько редакционных VIZ аккаунтов и их постинг-ключи.
- Если предполагается регистрация новых пользователей, администратор сайта заранее создает инвайты в менеджере аккаунтов.

Сценарий: публикация
Перед публикацией администратор/редактор выбирает аккаунт БЧ, из аккаунтов добавленных в менеджере аккаунтов (редакционные + свои). После публикации поста на уровне WP, выполняется скрипт в на стороне браузера: выводится уведомление, «блокирующее страницу»: «Дождитесь публикации в БЧ». После успешной/неуспешной публикации в БЧ выводится соответствующее уведомление. И блокируется возможность менять permalink.

Описание взаимодействия VIZ.world и WordPress с т.з. пользователя

Сценарий: регистрация, пользователь без аккаунта в БЧ
После создания учетной записи WP для нового пользователя, WP выводит в области уведомлений приглашение создать VIZ аккаунт, если есть доступные инвайты. Пользователь выбирает имя VIZ аккаунта, и если оно свободно, происходит активация инвайта с созданием нового аккаунта. Ключи отправляются на указанный при регистрации адрес почты, имя аккаунта и постинг-ключ сохраняется в менеджере аккаунтов.

Сценарий: регистрация, с аккаунтом в БЧ
Вариант 1: регистрация по постинг-ключу. Пользователь на отдельной страницу регистрации вводит имя аккаунта и постинг-ключ. WP проверяет постинг-ключ и создает учетную запись. Имя аккаунта и постинг-ключ сохраняются в менеджере аккаунтов.

Вариант 2: штататная регистрация WP, после которой внутри консоли выводится уведомление указать существующий аккаунт в менеджере аккаунтов.

Сценарий: Голосование за пост, незарегистрированный пользователь
При нажатии на кнопку голосования, WP предлагает создать аккаунт WP или зарегистрироваться с постинг-ключем.

Сценарий: публикация
Перед публикацией пользователь выбирает аккаунт БЧ, из аккаунтов добавленных в менеджере аккаунтов. После публикации поста на уровне WP. Выполняется скрипт в на стороне браузера пользователя: выводится уведомление, «блокирующее страницу»: «Дождитесь публикации в БЧ». После успешной/неуспешной публикации в БЧ выводится соответствующее уведомление. И блокируется возможность менять permalink.

Сценарий: удаление поста
После удаления пост на уровне WP штатными средствами помечается как удаленный, но блокируется возможность удалить пост из корзины, чтобы не нарушалась «связь» между постами внутри WP и постами, размещенными в БЧ.

Заключение

Разработка плагина должна подчиняться принципам максимального удобства установки, настройки и использования администраторами, не имеющими опыта по взаимодействию с БЧ. Необходимо вести разработку в open source формате и опубликовать плагин в штатном «магазине» плагинов WP.


4
12 наград
0 Ƶ
Отобразить форму комментирования
Комментарии

07.11.2018 20:24:15

Получил, спасибо!

Очень полезный плагин будет для сообщества!

15.11.2018 16:52:24

кстати об анеке .