Как стать автором
Обновить

Комментарии 13

А остался первоначальный проект (то что на PHP, MySQL, jQuery и Bootstrap)?

И что там работало и не работало?

Наверное, я не совсем внятно написал.


В самих чарниках PHP не было никогда — чарник представляет собой HTML страничку, которая общается с API. А именно API и прочие системные функции вроде логина, работы с БД и шаринга написаны на PHP. И до сих пор на нём написаны. И работает там всё что есть и перечислено в посте.

Чем плох старый-добрый Google Drive с его таблицами?

В смысле — с Google Sheets? Ну так некрасиво же, и при распечатывании выйдет таблица, а не бумажный чарник. А если отдельно хранить таблицу для совместной работы и отдельно чарник для игры, то это куча геморроя по сверке и синхронизации.

Ага. Но там есть всего несколько сеттингов, в которых нет Мира Тьмы, и скриншоты с чарниками показывают, что оные весьма просты и схематичные. Возможно, это так там и принято, не знаю. Как бы то ни было, мне этот генератор бесполезен, и он не отвечают большинству требований — в том числе ревизиям, шарингу, онлайновому редактированию и так далее.

Сколько примерно по времени может занять добавления чарника по 5й редакции?

Одностраничный чарник без особых украшательств можно при наличии некоторого скилла сверстать за день. Это в первый раз. Во второй и дальше уйдёт имхо 2-4 часа.

Не совсем понятно вот что. Одно дело просто «редактировать страничку» — изменять, переносить элементы, менять цвета и т.п. А если я хочу сделать чарник для вообще другой системы, не имеющей ничего общего с МТ, насколько мне придется углубиться в реализацию? Ведь, грубо говоря, в Мире Тьмы нет понятия «уровень», а в ДнД есть, соответственно надо как-то добавить поле в БД, и т.п.?

Здесь всё просто. Грубо говоря, у вас есть два метода, которые вам (чарнику) предоставляет сервис — загрузка объекта данных и его сохранение. При этом внутри там может быть что угодно — уровни, цвета радуги, биографии на сотни страниц, и так далее. Минус только в том, что раскидывание полей объекта по контролем и обратное сохранение из контроля в объект придётся делать самостоятельно.

Интересно. У меня когда то был свой электронный чарлист для своей системы, которым я пользовался до тех пор, пока тот безнадежно не устарел. А новый написать все никак времени не найду лень. Надо попробовать, спасибо :)
Что вы имеете в виду под «делать самостоятельно»? Если имена у инпутов в верстке совпадают с названиями полей в базе, или если в базу пишется просто сериализированный массив, то «раскидывание по контролам» делается в три строчки, а обратный сбор — в одну.

// load data to form
for (let fieldName in data) {
  let input = document.querySelector('input[name='+fieldName+']')
  input.value = data[fieldName]
}

// serialize form
let form = document.querySelector('form')
let serialized = new FormData(form) // send it with AJAX

Live demo: https://jsfiddle.net/1yr4vh0h/

UPD: ну ок, нужно еще пару строк дописать для поддержки textarea или select-ов. Хотя, если jQuery еще не выбросили, то все очень просто.

Ага. Только есть некоторое число "но". Это то, что часто приходится использовать нестандартные контролы, иногда есть последовательность инициализации, есть инициализация дефолтными значениями и сохранёнными, и так далее. В общем, практика несколько отличается. Это не какой-то космос, и само самой разумеется для любого, кто пишет на JS — просто уточнение было для тех, кто умеет только HTML.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории