Система голосования - Tabella

Автор: Федорченко Антон (antf@inbox.ru)

Версия: 3.0

Язык: PHP4

Тип лицензии: GPL

Последнее обновление: 15.03.2005


Название скрипта:

Tabella (лат.) - дощечка, на которой древние римляне писали имя выбранного кандидата во время голосования.


Практические цели, которые преследовал автор при написании скрипта:

  1. Знакомство с особенностями систем голосования как вида веб-приложений.
  2. Практическое применение сессий и технологии cookie.
  3. Развитие своего стиля программирования.
  4. Освоить GDLib и JpGraph.
  5. Знакомство с ООП в PHP

Модули сторонних разработчиков:

В систему включена объектно-ориентированная библиотека JpGraph версии 1.4, которая позволяет представлять различную информацию в виде графиков. Официальный сайт: http://www.aditus.nu/jpgraph/


Особенности:

  1. Два вида голосования: обычное, где посетитель может выбрать только один вариант, и рейтинговое, где посетитель может выбрать несколько вариантов.
  2. Система поддерживает несколько форм представления результатов голосования. Различаются простые (которые не требуют GDLib) формы и JpGraph-элементы. К простым формам относятся: таблицы, однотонные гистограммы, однотонные линейчатые диаграммы. JpGraph-элементы: круговая диаграмма, круговая диаграмма 3D, 3 вида гистограмм
  3. Возможность активировать сразу несколько голосований на сайте.
  4. Возможность посмотреть архив голосований.
  5. Несколько режимов защиты от накрутки.
    1. Стандартный
      1. cookie (опционально)
      2. сессии (опционально)
      3. ip (опционально)
    2. Стандартный + один пароль для всех (md5). Естественно их нужно предварительно разослать участникам.
    3. Логин и пароль (md5) для каждого (предварительно разослать по email).
  6. Возможность установить режим защиты от накрутки для каждого голосования отдельно.
  7. Данные хранятся в двухмерных (текстовых) файлах. Для каждого голосования создается основой файл, где хранятся сам вопрос, варианты ответа и метаданные: файл для записи ip, файл для записи пароля, файл для записи логинов и паролей. Отдельно создается файл для общей базы логинов и паролей.
  8. Возможность добавить в систему другие языки. Для полной локализации системы необходимо перевести файлы (admin/lng/*_lng.inc - сообщения и надписи административной панели, admin/tips/*_tips.inc, lng/*_lng.inc - локализация клиентской части, _*_readme.txt)

Возможности системы администрирования:

  1. Система подсказок (отключается).
  2. Возможность добавлять новое голосование.
  3. Возможность изменить тип голосование: обычное / рейтинговое
  4. Возможность установить минимальное и максимальное количество вариантов ответа, которые могут выбрать пользователи в режиме рейтинговое голосование (пункт меню пределы).
  5. Возможность редактировать голосование.
  6. Возможность изменять режим защиты от накрутки (повторного голосования).
  7. Возможность скрыть/отобразить голосование.
  8. Возможность удалить голосование. Основной файл не удаляется, а копируется в файл txt/backup.txt.
  9. Возможность изменить позицию голосования (поднять опустить).
  10. Интерфейс добавления/изменения пароля для режима один пароль для всех, снабженный развитой системой рассылки писем-приглашений.
  11. Развитый интерфейс для режима один пароль для каждого, который позволяет:
    1. Добавить логин и пароль. Особый интерфейс дает возможность загрузить целую серию логинов и паролей из файла (образец файла прилагается). Поддерживается отправка логина и пароля на адрес получателя (данная возможность не тестировалась).
    2. Удалить добавленные логины и пароли.
    3. Генерировать пароли автоматически. Данная функция использует базу пользователей (логинов). Созданные логины и пароли можно сразу же разослать участникам голосования. (данная функция не тестировалась).
    4. Настроить параметры электронной почты для рассылки. Можно указать тему сообщения, адрес отправителя, а также модифицировать текст письма.
  12. Интерфейс настройки и генерации (GdLib) изображений-основ для простых форм отображения результатов.
  13. Интерфейс, позволяющий регулировать доступ посетителей к различным формам отображения результатов голосования.
  14. Интерфейсы настройки элементов JpGraph.

Инсталляция:

Установка: Распаковать содержимое архива в директорию localhost, или в директорию, которая ассоциируется с одним из виртуальных хостов. Изменить права доступа на 666 для корневого каталога системы голосования, а также для директорий graphconf, pictures, txt. Для запуска системы нужно открыть guestbook.php, для запуска административного блока – admin/index.php.


Возможные проблемы:

  1. Данная программа использует сессии, которые должны быть созданы до появления любой информации в окне браузера, поэтому подключите модуль session_start.inc (polls.php, vote.php) до вывода любой информации.
  2. Не все хостинги поддерживают стандартную PHP функцию отправки почты mail(), поэтому рассылка логинов и паролей может не работать.
  3. Не все хостинги поддерживают в полной мере (или не поддрерживают) GdLib, поэтому некоторые формы отображения результатов могут не работать. Вы можете их отключить через меню Графика -> Доступ
  4. Есть мнение, что не все версии GdLib корректно взаимодействуют с JpGraph
  5. Данная версия JpGraph работает только с PHP4 и не работает с PHP5

Возможности развития проекта:

  1. Возможно, появятся новые формы представления результатов голосования.
  2. Мультиязыковой интерфейс.

Обратная связь:

Загрузить новые версии системы голосования Tabella, а так же ряда других полезных Web-приложений можно по адресу http://www.softtime.ru/info/downloads.php На форуме нашей IT-студии по адресу http://www.softtime.ru/forum/ вы всегда можете найти поддержку по установке и сопровождению наших Web-приложений.