Leprogress

先日言っていた進捗管理のモジュールの解説。

セクション系やニュース系のモジュールで投稿が完了したら、
XCube_DelegateUtils::call('Legacy_Progress.AddItem' $title, $dirname, $target_name, $id);
で、投稿した記事を Leprogress の進捗管理に載せることができます。簡単ですね。

審査が完了したら、Leprogress から、
XCube_DelegateUtils::call('Legacy_Progress.UpdateStatus' new XCube_Res($result), $dirname, $target_name, $id, $status);
を発行しますので、モジュール側でこのデリゲートに対する処理(記事のステータスを公開にする、など)を書くことで、「審査が終わったら公開」などのモジュールを作ることができます。

また、Leprogress が扱うデリゲートは XCL2.2 で追加される legacy/class/interface/AbstractProgressDelegate.class.php の Legacy_AbstractProgressDelegate を継承しています。もし、Leprogress とは別の進捗管理を実現したい場合、このクラスを継承したデリゲートを持つ進捗管理モジュールを作成すれば、進捗管理部分だけを差し替えることができます。