суббота, 22 октября 2011 г.

Система учета посещаемости гильдии (часть 2)

На следующей стадии написания системы добавилось несколько задач:
  • Переработать систему ввода информации, чтобы уйти от использования csv файлов.
  • Сделать возможным видеть посещения рейдов по дням
  • Сделать возможность изменять информацию (да, изначально информация не менялась, т.к. было всего 2 информативных поля,и те получались вычислениями)
  • Кроме того, добавить возможность просматривать информацию о каждом персонаже по отдельности

Первое что я сделал, это переработал существующий аддон под свои нужды. Да, изменять готовое гораздо проще, чем писать самому, но тем не менее.... Собственно, немного изменил структуру собираемой информации и добавил флаг проверки подлинности (набор символов, который генерирует аддон, без которые данные не смогут засубмититься в форме) дабы избежать ввода некондиционной информации.

От одной проблемы избавились: теперь для добавление данных из игры, достаточно одной операции копипаста из окошка аддона в окошко ввода.

Вторая задача оказалась немного большей по объему чем первая, ведь пришлось в корне перерабатывать систему хранения информации. Теперь у каждого игрока есть информация примерно в таком формате:
*01.2011#111101110101*02.2011#10007LLLL*....
*01.2011#777777777111*02.2011#101111001*....
Каждая позиция отвечает за состояния присутствия в конкретный день, т.е. номер рейда в текущем месяце. Соответственно, данные по датам проведения рейдов в отдельной таблице.
По сути зашифровать туда можно все что угодно, но у меня:
  • 1 - присутсвовал в рейде
  • 0 - отсутсвовал в рейде
  • L - покинул гильдию (игрок из БД не удаляется, после исключения)
  • 7 - еще не вступил в гильдию, т.е. для сохранения порядка дат сохранения рейдов - у всех в каждом месяце одинаковое количество записей. Опять же, семерками заполняется только текущий месяц, и если до прихода персонажа были рейды.
Т.е. в итоге по этим данным уже можно строить таблицу и наглядно видеть что происходит и как:


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

Решение со страничкой персонажа основывалось вокруг таблицы. Собственно ради нее данная страница и делалась. Однако какой-то минимум о персонаже было решено добавить. Ну и заодно изображение из армори забрать, как по мне получилось адекватно, но, как дойдут руки, добавлю больше информации из БД.

 Ну в общем, как-то так. Работает и хорошо. Модифицировать и улучшить можно. даже есть список улучшений, но все упирается в лень, а совершенству нет предела

Комментариев нет:

Отправить комментарий