UNICALEは,PHPによるオープンソースのウェブカレンダーシステムです。手軽にグループのスケジュール管理ができます。


UNICALE 0.32公開

UNICALE 0.32を公開しました。

大変申し訳ありませんが,ver.0.32より,設定ファイルのデータ構造に変更があります。
バージョンアップの際は,UNICALEをインストールしたフォルダごとコピーするなどして,バックアップを取ってから作業を行うようにしてください。

features
データのエクスポート機能の実装。iCalendar形式ですべてのデータをエクスポートできます。エクスポートデータは,Googleカレンダー,iCal2.0.5,Outlook2007で読み込めることを確認しています。なるべくバックグラウンドで非同期にてデータ生成するようにしていますが,データ生成まで時間がかかる場合があります。
これにより,UNICALEを使ってみたけど期待はずれだったとか,大規模になったので他のシステムに乗り換えたいという場合にも簡単に移行できますので,気軽に使い始めることができます。
・表示開始する年と表示終了の年の設定が可能になりました。(config_init.phpファイル)
・初期状態で,config.phpファイルの名前をconfig.sample.phpとしてアーカイブしてあります。これにより,現在の設定データを上書きしてしまうことを防ぐようにしました。
休日データを1990年から2038年まで盛り込んでいます。実際に有効にしているのは2005年から2015年までです。必要に応じてコメントアウトを外してください。
・休日データの設定はこれまで年月日のすべての指定が必要でしたが,月日だけでの指定も可能になりました。会社別の特定休日などの設定が容易になりました。(config_common.phpファイル)
サーバOS側としてWindows系でも動くようにしました。
ユーザーのcottonさんから具体的な改良コードまで示していただきました。大変感謝しています。
・クライアント動作環境からZaurusを外し,iPodTouchを加えました。
・初期設定のメンバーを色設定も含めて24人に増やしています。(初期状態では非表示)
・初期設定のジャンル名を変更しました。

bugfix
・月移動ナビゲーションを表示する設定にしている場合,工数のサマリ表示時に曜日が表示されて表示が乱れるのを修正。
・月間工数のサマリ表示および,詳細工数表時の最下段の列表示のメンバー毎の色の表示がはみ出していたのを修正。
・プリント時に,月移動ナビゲーションが印刷されてしまうのを修正。

インストール方法

新規インストール
1)ダウンロードした「unicale_032.zip」を展開。
2)出来上がったフォルダ「unicale」をFTPやSFTPなどでWebサーバへ転送。
3)以下のファイル,ディレクトリのパーミッションを
「666」または「777」へ変更。
・unicale/dataディレクトリおよびその配下のファイル
・index.rdf
4) 以下のファイル名を変更
conf/config.sample.php → conf/config.php
以上でWebブラウザからアクセスし,使用可能です。

アップグレードインストール
1)必ず現在運用中のUNICALEのフォルダをローカル環境などにコピーしてバックアップ
してください。
2)ダウンロードした「unicale_032.zip」を展開。
3)出来上がったフォルダ「unicale」をFTPやSFTPなどでWebサーバへ転送。
4)config.phpファイルをテキストエディタなどで開き,サーバ設定に関する項目
をconfig_init.phpに書き写す。
5)config.phpファイルをテキストエディタなどで開き,メンバー設定に関する項目
をconfig.sample.phpに書き写す。
他,カスタマイズしていた箇所があれば,新しいファイルに書き写してください。
6)祝日データをカスタマイズしていた場合には,config_common.phpファイルを
テキストエディタなどで開き,内容に倣って書き換えてください。
ver.0.32からは,年末休暇,年始休暇等の月日指定だけでの休日設定もできる
ようになっています。
7)以下のファイル名を変更
conf/config.sample.php → conf/config.php
以上でWebブラウザからアクセスし,使用可能です。
※ver.0.28以前とver0.32以降では設定データの構造が変わっていますのでご注意く
ださい。(すみません・・・)
可変データとあまり変わらないデータを切り分けることで,将来のバージョン
アップを容易にするための構造変更です。
うまく行かない場合はバックアップからデータを復元してもう一度挑戦してみて
ください。

Pocket

7 Responses to “UNICALE 0.32公開”

  1. cotton Says:

    Windows 対応ありがとうございます。別件のメールにて Windows 環境での apache プロセス CPU 高騰の件を調査中の旨、ご報告させて頂いておりましたが、当方の PHP 実行環境に固有の問題だったようです(お騒がせいたしました)。

    無償ダウンロード可能な ZendServer-CE-4.0.2-1-Windows_x86 の CGI/FastCGI 環境にて快適に動作しております。具体的な実行環境は以下の通りです。

    UNICALE: 0.32

    OS: Windows XP SP3
    HTTPd: Apache/2.2.11 (Win32)
    Server API: CGI/FastCGI
    PHP: 5.2.9
    PHP Extensions:
    Zend Extension Manager v5.1
    Zend Data Cache v4.0
    Zend Optimizer+ v4.0

  2. cotton Says:

    先ほど修正案を配置したURLをコメントしましたがファイル読み込み時に改行コードが残る問題がありましたので、修正版を以下に再配置しました。可能であれば、前のコメントのURLを以下に変更頂きたく存じます。

    http://www.csync.net/service/file/view.cgi?id=1243840098

    お手数おかけいたしまして申し訳ございません。

  3. cotton Says:

    週数カウント処理の改善について別メールにてご連絡しておりましたが、追加でサニタイズ処理が上手く機能していなかった(サニタイズ対象文字ペアの配列の for ループが回っていなかったが、これを単純に回すと画面表示時にサニタイズ後の文字が出てしまう)部分があるので、修正案のソースを以下に保存しました。

    http://www.csync.net/service/file/view.cgi?id=1243826129

    主な修正箇所は 2009.06.01 のコメントを入れています。お手数ですが、ご確認のほどお願い申し上げます。

  4. admin Says:

    cottonさん,改造・修正ソースの提示ありがとうございます。
    なかなか私の手が回っていないので,こうして派生版を公開していただけることを推奨します。
    LGPLなので,気兼ねなく行ってください。
    こちらとしても,cottonさん提案の改良版ソースを見ながら,現在,手を入れています。

    ありがとうございます。

  5. cotton Says:

    上記の修正案について RDF の最新エントリが出力されない問題がありました。お手数ですが、上記の修正案をお使いの場合(公式サイトからのダウンロード版ではありません)は putRSS 関数を以下の URL からダウンロードしたものに、関数ごと入れ替えてください。

    http://www.csync.net/service/file/view.cgi?id=1243905433

    公式版 0.32 に対してファイル I/O が少なくなっているので、少し効率化していると思います。

  6. cotton Says:

    度々のコメントで恐れ入ります。以下の細かい変更を修正案に追加しました。バージョン 0.32 (公式版) 以降に提案・コメントさせて頂いた修正は全て反映しております。

    以下の URL からダウンロード可能にしております。

    http://www.csync.net/service/file/view.cgi?id=1244031505

    (1) PHP 5.1 以降をお使いで date.timezone を適切に(例えば Asia/Tokyo に)設定していない環境だと RDF フィード内の時刻が誤って記録されます。本来は php.ini で設定すべきですが、自由に php.ini を設定できない環境の場合と、公式版 0.32 で date_default_timezone_set 関数(PHP 5.1 以降)が iCal ファイルの生成処理に既に使用されていましたので config_init.php で指定した TIMEZONENAME の値で最初にタイムゾーンが設定されるように iCal 生成処理内で行われていた設定処理を移動しました。

    (2) iCal ファイル生成処理において、同月の日数を算出するのに、翌月の 0 日の値を用いていましたが mktime 関数に 1 未満の値を設定した際の処理コストが高いのと安定性のため変更しました。機能上の変化はありません。

    (3) 同日内の用事の登録件数は 50 件まで(実際には 51 件まで登録可能?)となっておりますが、同日に 50 件の予定が埋まる可能性が低いので(この最大件数と表示処理の時間は線形比例しますが、当方のサーバ性能が貧弱なため)、EVENT_MAX 定数を設けて同日内の用件の最大数を変更するようにしました。EVENT_MAX 定数の設定は config_init.php の中で行うことを想定しています(当方では様子見で 20 に設定しました)。何も設定しなければ、公式版の動作と同様に 50 が使用されますので、設定方法が分からない場合や、処理速度が気にならない環境の方は設定の必要はありません。運用後に EVENT_MAX の設定値を引き上げる(最大でも 99 まで)のは可能ですが、引き下げるのは注意が必要なので、ある程度は余裕のある数にした方が良いです。

  7. cotton Says:

    前回の修正案に加えて、処理速度の改善と、幾つかの不具合修正を反映した、修正案の最新バージョンを作成しました。

    以下の URL から index.php ファイルの修正案(公式版ではありません)をダウンロード出来ます。

    http://www.csync.net/service/file/view.cgi?id=1244227944

コメントをどうぞ