Работа на конкурс по разработке описания софта 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
11 голосов
516.861 VIZ + 516.123566 SHARES
Оставить комментарий
Комментарии

07.11.2018 20:24:15

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

13.11.2018 20:57:48

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

15.11.2018 16:52:24

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