![image](https://habrastorage.org/files/716/ace/55e/716ace55e45247a7a782503814b16a60.png)
Идея и потребность в разработке такого рода CMS возникла в университете несколько лет назад. Система была реализована и с тех пор проходила стадии улучшения и доработки, в том числе по запросам организаторов конференций.
Потребность в подобных программных системах возникает у многих вузов, поэтому было принято решение опубликовать её исходные коды под лицензией GPL. Ссылку на репозитарий можно найти на сайте http://yconfs.sfu-kras.ru.
Сайт, запущенный на YConfs, представляет собой каталог конференций, в котором для каждой конференции создан подсайт, содержащий подробную информацию о ней и предоставляющий административные функции организаторам и участникам конференции.
Выше приведен скриншот главной страницы сайта конференций СФУ, содержащей список конференций, на которые в данный момент открыта регистрация, либо которые анонсируются и будут проводиться в ближайшем будущем.
?
Подсайт конференции
Подстайт конференции имеет открытую часть, содержащую информационные страницы конференции, и закрытую, содержащую административные страницы, доступные авторизованным пользователям.
На скриншоте ниже показана страница с общей информацией о конференции.
![image](https://habrastorage.org/files/fab/5a1/7cf/fab5a17cfbb44e019978917db8708936.png)
Интерфейс сайта поддерживает многоязычность, в том числе все тексты о конференции и прикрепляемые информационные письма можно указать на нескольких языках. Сейчас выполнены переводы на английский и испанский языки, но технологически можно добавить и другие.
Для удобства наполнения все текстовые поля оснащены визуальным редактором TinyMCE со встроенным файловым менеджером RESPONSIVE Filemanager, позволяющим загрузить на сайт и опубликовать материалы различных медиаформатов.
Возможности организатора конференции
Организатор конференции после прохождения процедуры авторизации имеет следующие основные возможности:
- добавлять на сайт новые конференции;
- редактировать информационные страницы конференции и, если требуется, создавать дополнительные страницы;
- открывать онлайн-регистрацию участников, настраивать форму заявки и указывать даты регистрации на конференцию;
- выставлять статус полученных заявок на участие (принята, отклонена) и распределять их по тематическим секциям;
- выполнять рассылку писем по электронной почте участникам конференции.
Возможности участника конференции
При подаче заявки на участие в конференции автору-заявителю доклада предлагается заполнить регистрационную форму, которая обычно включает название доклада, тематическую секцию, личную информацию по каждому из авторов доклада, требуемые условия размещения и проживания и собственно текст доклада. Организаторами могут быть предусмотрены и другие формы участия в конференции, например, в качестве слушателя.
Если регистрация прошла успешно, автор получает пароль для дальнейшего доступа на сайт. Кроме того, для него создается персональная страница, на которой размещен список поданных им заявок по всем конференциям, в которых он участвовал.
Ниже приведен скриншот страницы с простой формой регистрации на конференцию.
![image](https://habrastorage.org/files/b6d/c59/629/b6dc59629ecb4b558c2048a4ca9cde5f.png)
Детали реализации
YConfs разработана на Yii версии 1.1.13 (отсюда первая буква в названии). Yii была выбрана из следующих соображений: во-первых, хотелось работать на проверенной связке PHP+MySQL, а во-вторых, привлекла продуманная современная архитектура программного кода, которую предложили разработчики Yii.
Реализация класса URL-правил: структура адреса для доступа к странице с информацией об объекте
Из предложенного инструментария, во-первых, была задействована реализация паттерна «Модель-Вид-Контроллер», дополненная классом, отвечающим за построение и разбор адресов в пределах сайта.
Модель данных YConfs содержит сущности «Конференция», «Организация», «Пользователь» и др. Адрес доступа к странице, представляющей информацию об объекте, содержит либо числовой идентификатор объекта, либо уникальный в пределах сайта символьный идентификатор, если он назначен.
Поиск объекта по идентификатору осуществляется со следующим приоритетом: сначала производится поиск конференции, затем, если конференция не найдена, организации, а затем пользователя.
Поддерживаются как расширенные адреса, включающие информацию о типе объекта (например: http://conf.sfu-kras.ru/conf/928, http://conf.sfu-kras.ru/org/1), так и адреса в свернутой форме, обрабатываемые по приведенному выше алгоритму (например: http://conf.sfu-kras.ru/928, http://conf.sfu-kras.ru/oil2016, http://conf.sfu-kras.ru/sfu-kras).
Реализация модели данных
Безусловно, была использована модель доступа к табличным данным, реализованная в классе ActiveRecord. Необходимые доработки в YConfs включают:
- Поддержку многоязычных полей, реализованную прикрепляемым поведением MultilingualBehavior: каждое многоязычное поле хранит значения на нескольких языках; физически значения многоязычных полей хранятся в отдельной связанной таблице. Список языков сайта указан в конфигурационном файле, дополнительно список языков настраивается для каждой отдельной конференции.
- Фильтрацию HTML-тэгов для задаваемого набора полей класса с настраиваемым уровнем строгости, которая аналогичным образом реализована в поведении XssFilterBehavior.
- Поддержку многоязычных файловых полей, как одиночных, так и множественных.
- В целях ускорения просмотра длинных списков нагруженных объектов были реализованы специальные облегченные классы-вьюхи, содержащие оптимизированные SQL-запросы и код разбора получаемых в результате их выполнения данных.
Разграничение прав доступа
Была задействована стандартная система проверки прав и определены права доступа для следующих групп пользователей:
- гостей,
- авторизованных пользователей,
- владельцев объектов (например, автор-заявитель по отношению к докладу, пользователь по отношению к личной странице),
- организаторов конференций,
- а также администраторов сайта.
Правила проверки, соответствующие логике работы веб-приложения, реализованы согласно архитектуре Yii в классе AuthManager.
Темизация
Был задействован механизм поддержки нескольких тем оформления. На момент написания этой статьи свободно распространяется одна тема, созданная на основе стандартной темы Yii.
Для сайта конференций Сибирского федерального университета разработана тема в общем стиле оформления сайтов университета.
Ниже приведен скриншот страницы, оформленной в стиле свободно распространяемой темы.
![image](https://habrastorage.org/files/61f/587/0a2/61f5870a25de4269a18f9e6011997e35.png)
Заключение
В начале этого года вышла первая версия YConfs, которую планируется развивать и дорабатывать в рабочем режиме.
Я, как один из разработчиков, выражаю надежду, что YConfs окажется полезной и будет востребована в организациях, деятельность которых в той или иной мере включает проведение или сопровождение конференций.
Предложения по улучшению функциональности YConfs принимаются на сайте https://bitbucket.org/SibFU/yconfs.
Спасибо за внимание!
Комментарии (6)
ru_crypt
26.04.2016 07:35Как организован процесс рецензирования трудов? Есть ли возможность слепого рецензирования? Рассылка докладов по рецензентам?
Выставление рейтинговых оценок? Ранжирование работ по поставленным оценкам? Рассылка рецензий докладчикам? Как в iChair или EasyChair? Это самое главное в системе управления конференцией.edhell
29.04.2016 07:37Сейчас ничего это нет, просто любой админ конференции принимает или отклоняет заявку на участие. До перевода на Yii была функция рецензирования, которую реализовывали для одной конференции (рецензенты заполняли форму из нескольких полей и потом админ конференции принимал или отклонял заявку на основе мнений рецензентов). На Yii не переносили этот функционал, т. к. пока не было надобности. Для статей в журнал используем OJS, где есть рецензирование.
007913
26.04.2016 11:20Может конечно не совсем по теме, но расскажите пожалуйста как на примере вашего вуза организован менеджмент конференций от лица организаторов-реальных-людей физически, то есть какие-нибудь особенности, каждая ли проходящая под эгидой вуза конференция обязана регистрироваться через YConfs?
Какие проблемы и преимущества выявляются при переводе кураторов конкретных конференций в вузе и сотрудников НИР-подразделения «с бумаги» — на «электронное управление конференциями»?
Планируется ли расширение системы для настройки средствами YConfs видео-трансляции конференций?edhell
29.04.2016 07:401) На данный момент никто не обязан, но подавляющее большинство организаторов конференций всё равно желает разместить на сайте информацию о конференции. Когда приходит информация о конференции в отдел, который сопровождает сайт, там делают страницу на YConfs (+дают права представителю организатора конференции, если это необходимо) и делают анонс конференции в новостной ленте на сайте университета.
antirek
после прочтения статьи ощущение, что на защите диплома поприсутствовал
007913
Надо признать для диплома, на мой провинциальный взгляд, — работа хорошая..:)