この種のCMSの開発のアイデアと必要性は、数年前に大学で発生しました。 このシステムは実装されて以来、会議の主催者の要求を含め、改善と改良の段階を経てきました。
このようなソフトウェアシステムの必要性は多くの大学で発生するため、GPLライセンスの下でソースコードを公開することが決定されました。 リポジトリへのリンクはhttp://yconfs.sfu-kras.ruで見つけることができます。
YConfsで立ち上げられたサイトは会議カタログであり、各会議に対してサブサイトが作成されます。サブサイトには詳細な情報が含まれ、会議の開催者と参加者に管理機能を提供します。
上記は、 シベリア連邦大学の会議サイトのメインページのスクリーンショットです。現在登録されている会議、または近日中に発表および開催される会議のリストが含まれています。
会議サブサイト
会議サブステートには、会議の情報ページを含む開いた部分と、承認されたユーザーが利用できる管理ページを含む閉じた部分があります。
以下のスクリーンショットは、会議に関する一般情報を含むページを示しています。
サイトインターフェイスは、すべての会議テキストおよび添付のニュースレターを含む多言語をサポートし、複数の言語で指定できます。 英語とスペイン語への翻訳は現在完了していますが、他の翻訳は技術的に追加できます。
簡単に入力できるように、すべてのテキストフィールドには、さまざまなメディア形式の素材をアップロードおよび公開できる、応答性の高いFilemanagerファイルマネージャーが組み込まれたTinyMCEビジュアルエディターが装備されています。
会議主催者の機能
承認手順に合格すると、会議の主催者は次の主要な機能を使用できます。
- サイトに新しい会議を追加します。
- 会議情報ページを編集し、必要に応じて追加のページを作成します。
- 参加者のオンライン登録を開き、申請書を構成し、会議の登録日を示します。
- 受信した参加申請のステータスを設定し(承認、拒否)、テーマごとに配布します。
- 会議の参加者にメールを送信します。
会議参加者の機能
会議への参加を申請する場合、レポートの作成者は、通常はレポートのタイトル、主題セクション、レポートの各作成者の個人情報、必要な宿泊施設と宿泊条件、およびレポートの実際のテキストを含む登録フォームに記入するように求められます。 主催者は、会議への他の形式の参加、たとえばリスナーとしての参加も提供できます。
登録が成功した場合、作成者はサイトにさらにアクセスするためのパスワードを受け取ります。 さらに、彼のために個人ページが作成され、そこには彼が参加したすべての会議のために彼によって提出されたアプリケーションのリストがあります。
以下は、会議の簡単な登録フォームを含むページのスクリーンショットです。
実装の詳細
YConfsはYiiバージョン1.1.13で開発されました(名前の最初の文字です)。 Yiiは次の考慮事項から選択されました。まず、実績のあるPHP + MySQLの組み合わせで作業したかった。次に、Yii開発者によって提案されたプログラムコードの思慮深い現代アーキテクチャに惹かれました。
URLルールのクラスの実装:オブジェクトに関する情報を含むページにアクセスするためのアドレスの構造
提案されたツールキットから、最初に、Model-View-Controllerパターンの実装が使用され、サイト内のアドレスの構築と解析を担当するクラスによって補完されました。
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のアタッチ可能な動作によって実装される多言語フィールドのサポート:各多言語フィールドは複数の言語で値を保存します。 物理的には、多言語フィールドの値は個別の関連テーブルに保存されます。 サイトの言語のリストは構成ファイルで指定されており、さらに、個々の会議ごとに言語のリストが構成されています。
- XssFilterBehaviorの動作で同様に実装されるカスタムレベルの厳密さで、クラスフィールドの特定のセットのHTMLタグをフィルター処理します。
- 単一および複数の多言語ファイルフィールドのサポート。
- 読み込まれたオブジェクトの長いリストの表示を高速化するために、最適化されたSQLクエリと実行結果として受信したデータの解析コードを含む特別な軽量ビュークラスが実装されました。
アクセス権の差別化
権利の検証の標準システムが使用され、次のユーザーグループのアクセス権が決定されました。
- ゲスト
- 許可ユーザー
- オブジェクトの所有者(たとえば、レポートに関連する作成者-申請者、個人ページに関連するユーザー)、
- 会議主催者
- サイト管理者も同様です。
Webアプリケーションのロジックに対応する検証ルールは、AuthManagerクラスのYiiアーキテクチャに従って実装されます。
テーマ
いくつかのテーマのサポートメカニズムが使用されました。 この記事の執筆時点では、標準のYiiテーマに基づいて1つのテーマが自由に配布されています。
シベリア連邦大学の会議サイトでは、大学サイトのデザインの一般的なスタイルでテーマが開発されました。
以下は、無料のテーマのスタイルで設計されたページのスクリーンショットです。
おわりに
今年の初めに、YConfsの最初のバージョンがリリースされました。これは、作業モードで開発および完成する予定です。
開発者の1人として、YConfsが有用であり、ある程度の活動には会議の開催や支援が含まれる組織で需要があることを期待しています。
YConfsの機能を改善するための提案はhttps://bitbucket.org/SibFU/yconfsで受け付けています 。
ご清聴ありがとうございました!