NUE - Network Utterance Environment

■TODO
・テストコード作成。
・タグ階層を使ったパンくず機能。
・記事のユーザ指定ソート。
・権限システム実装により、管理者以外も記事投稿可能にする。
・アンインストーラ。
・記事の番号付きリスト/youtube/ニコ動対応。
・リストの仕様上「リストのネスト化」が難しい。→スペース挿入とか、+挿入とか
・複数タグによる絞込み。
・RSS出力。

■BUGS
・子タグのソート問題。

======================================================================
■2011/6/20 - Version 0.4.73
ページャ機能を実装完了。
全件表示機能を削除。
記事の詳細表示中も、カテゴリタグリストを表示するようにした。
内部的にDBパラメータの型を厳格に持つようにした。

■2011/6/19 - Version 0.4.69
段落に任意のCSSクラスを設定する機能を追加。
ファイル容量を取得する機能を追加。
HLMLのcaptionタグはparamsに名称変更。captionも暫くはエイリアスとして残し。
HLMLパーサにおいて、属性の値が存在しない場合落ちる不具合を修正。
サンプル用新XSLにおいて、記事ごとに画像が1枚しか表示できない不具合を修正。
古いIEだと表示されなくなっていた不具合を修正。
記事全件検索を行うとソート順が逆になる不具合を修正。
日本語タグを設定すると化ける不具合を修正。
記事書き込み時にゴミログが吐かれる不具合を修正。

■2011/6/18 - Version 0.4.67
タグ検索機能が、?t=hogeの代わりに?/hogeで呼び出せるようにした。
ページャ実装の下準備。

■2011/6/17 - Version 0.4.65
サンプル用新XSLの実装ほぼ完了したので適用してみた。
タグ検索機能が、?t=hogeの代わりに?/hogeで呼び出せるようにした。
ページャ実装の下準備。
@@リスト区切りにて、@が余計に表示されてしまう不具合を修正。

■2011/6/15 - Version 0.4.63
XSLT処理をクライアントサイドに丸投げする設定を追加した。
サンプル用新XSLの実装の続き。

■2011/6/14 - Version 0.4.62
タグのスペース対策のミスで、記事作成時に落ちてしまっていた不具合を修正。
サンプル用新XSLをガワだけ作成。

■2011/6/13 - Version 0.4.61
先頭に@@をつけることで、その場で一旦リストを切ることが出来るようにした。
タグをニコ動っぽく、1つのフィールドに複数個設定できるようにした。
タグのクリーンアップ中に存在しない子タグ親タグも削除するようにした。
リストに対して、サブタイトルを設定できない不具合を修正。

---------------------------------------------------------------------

■2011/6/13 - Version 0.3.60
先頭に@をつけることで、リスト記事作成に対応。
HLMLで使用可能な要素を追加、画像表示に対応。
全件ソートの並び順を作成日時順に変更した。
タグツリー キャッシュのクリア時に割り当てられてないタグを同時に削除する機能を実装。
ルートユーザ情報をXMLに出力するようにした。

■2011/6/12 - Version 0.3.59
記事の作成日時機能追加。(ブログの過去ログごと引っ越しも考慮して改竄可能に)
アンインストーラ実装に先立ち、DROP SQLを追加。
HLMLで使用可能な要素を増やすことで、記事のサブタイトル機能対応。
タグ一覧表示リンクをロジック側からXSL側へと移行/統一した。
記事の日時表示をロジック側からXSL側へと移行/統一した。
記事のXML組立機能が記事一覧と詳細でバラバラだったのを統一した。
カテゴリが全く存在しない状態でタグ検索を行うと落ちる不具合を修正。
疑似HTMLの複数使用や、ネストをすると正常に表示されない不具合を修正。
タグツリーDAOにおいて、カテゴリまでの深度を保存できない不具合を修正。

■2011/6/11 - Version 0.3.58
カテゴリタグ一覧表示に対応。
タグの親子関係ツリー構造キャッシュDAOを実装完了。
デバッグ用メッセージをXSLTの段階の前のXML生成段階で出力するようにした。
タグDAOのキー名Typoを修正。

■2011/6/10 - Version 0.3.57
タグの親子関係ツリー構造キャッシュDAOを半分ほど作成。
一部DDLの主キー設定がデータ構造と矛盾する不具合を修正。

■2011/6/9 - Version 0.3.55
タグ設定機能を追加。タグの親子関係、カテゴリタグ指定が可能になった。
サインアップ画面にちょっとだけ説明文追加。
フォームの一部コントロール出力ロジックを共通化した。
0.3.51におけるXSLの記述ミスにより、ログオンリンクが出現しない不具合を修正。
インクルードミスにより、タグ全件一覧表示が表示できない不具合を修正。
故意に出しているエラーに対し、スタックトレースが吐き出されてしまう不具合を修正。

■2011/6/8 - Version 0.3.51
タグ検索表示をハードコードロジックからXSLへ移行。
タグ全件一覧表示を割り当て数順に並び替えた。
タグ設定ページへのリンク追加。(ページ自体は未実装)

---------------------------------------------------------------------

■2011/6/8 - Version 0.2.50
タグ全件表示画面を追加。
新規投稿時にもタグを設定可能になった。
タグリンクを押すと、そのタグを使っている全ページを表示できるようになった。

■2011/6/7 - Version 0.2.48
記事のタグ一覧表示/タグ編集フォーム追加。(リンクは押しても反応しません)
ガワだけだったタグ割り当てDAOを実装した。
データベース接続機能において、切断時にコミットするのをやめた。
記事DAOに割り当てられたタグ一覧を取得する機能を追加。
タグDAOに記事へ割り当てられた一覧を取得する機能を追加。
既存の記事編集時エラーで帰ってきた場合、新規作成扱いとなってしまう不具合を修正。
リダイレクト時のURL指定不備が原因で二重リダイレクトが発生していた不具合を修正。
上書きコミット時にユーザ数/日記数の不整合が発生してしまうことがある不具合を修正。

■2011/6/6 - Version 0.2.43
HLMLでtitle属性のみ自動的に許容するようになった。
HLMLで使用可能な要素を増やした。
ユーザDAOに実体IDからエイリアス一覧を取得する機能を追加。
記事DAOから作者ユーザ オブジェクトを取得する機能を追加。
ガワだけだったタグDAOを実装した。
タグ割り当てDAOをガワだけ実装。
記事テーブルと実体テーブルとの型で整合性が取れていない不具合を修正。

---------------------------------------------------------------------

■2011/6/5 - Version 0.1.40
疑似HTML(HLML:Html Like Markup Languageと勝手に命名)による記事投稿に対応。
特殊文字/複数段落投稿に対応。
トップページはサイト名のみ出力出力するようにした。
管理者ユーザは削除できないようにした。
ユーザIDと名前の空白は削除するようにした。
0.1.36以前のDB互換を想定して、プログラム側でも64KBチェックを施した。
空のテキスト追加を無視するようにした。

■2011/6/4 - Version 0.1.38
タグDAOをガワだけ作成。

■2011/6/3 - Version 0.1.37
アカウント削除(退会)機能を実装。
タグ実装に先駆けたSQLを作成。
ユーザDAOにおいて、削除時のSQLファイル指定が誤っていた不具合を修正。

■2011/6/2 - Version 0.1.36
記事の編集/削除機能を実装。
記事一覧の日付・投稿者表示に対応。
投稿やユーザ登録などにおけるエラーを拾った場合、問答無用でメッセージを表示するようにした。
記事周りのクラス配置を整理した。
63KBを超える記事を作成するとデータがクラッシュする不具合を、
実体の文字列長を64KBから16MBに増やすことで修正。
記事一覧表示画面において、変数上書きによって落ちていた不具合を修正。
記事DAOにおいて、削除時のSQLファイル指定が誤っていた不具合を修正。

■2011/6/1 - Version 0.1.32
記事詳細のページを作成。
記事の投稿日時表示に対応。
記事投稿に不備があった場合、戻るべきでない場所に戻ってしまう不具合を修正。
記事一覧表示画面において、ログオンしていない状態だと落ちる不具合を修正。

---------------------------------------------------------------------

■2011/6/1 - Version 0.0.30
管理者権限ユーザが記事投稿できる機能を実装。
投稿された記事を表示する機能を実装。
セッションの開始/終了状態をシーン側で保持するようにした。
ログオン セッションを取得できなかった場合、特定の状態へ遷移する機能を追加。

■2011/5/31 - Version 0.0.28
ユーザDAO、および記事DAOにて、トランザクション書き込みに対応した。
全DAOにて、現在の記事がDBに存在するかどうかを取得する機能を追加。
記事DAOの基底フォーマットを一部変更。
各種インデックスDAOにて、実体の巻き添え削除、およびインデックスの上書き保存を
想定しなかったことに起因する幾つかの不具合を修正。

■2011/5/30 - Version 0.0.26
インデックスDAO共通クラスを作成。
記事DAOを作成。
ユーザDAOのデシリアライズ時コンストラクタが呼ばれないことを
想定しなかったことに起因する幾つかの不具合を修正。

■2011/5/29 - Version 0.0.24
ログオン/ログオフ機能追加。
ログオン セッションへの読み書きを分散して行っていたが一本化した。
プログラム側では更新日時を全てUNIX時間で管理するようにした。
記事表示機能周りにおけるフォルダ構成の整理。
トップページへ戻るリンクを設置した。
HTML5対応及びXSLレベルでブラウザ依存対応しやすいよう、XML出力にUA情報を追加した。
その他XSL周りの細部の不具合を修正。

■2011/5/28 - Version 0.0.22
最低限のユーザ作成機能を実装完了。
最低限のユーザ情報変更画面を追加。
ログイン中情報表示に対応。
リダイレクト機能追加。
実体DAOの記憶領域に既定のフォーマットを設定する機能を追加。
モード切替処理において、ディレクトリトラバーサル攻撃される脆弱性がある不具合を修正。
その他DAO周りの細部の不具合を修正。
XML Schema及びサンプルXML出力追加。

■2011/5/27 - Version 0.0.20
初回表示画面を最低限必要な分だけ実装。
ユーザ作成画面をガワだけ作成。
XML構築機能において、テキストを追加する機能を追加。
XML構築機能において、HTMLタグ埋め込み機能を強化。

■2011/5/26 - Version 0.0.18
ページカテゴリ新規作成画面をガワだけ作成。
ユーザDAO実装完了。
XML構築機能において、デバッグログ出力機能と埋め込みHTMLを作成する機能を追加。
DB接続クラスに単一値を取得する機能を追加。
DB接続クラスで明示的にcloseしないと再接続できないようにした。
DB接続クローズ時に例外が飛ぶ不具合を修正。
DB接続失敗時の例外取得機能が常にnullを返してしまう不具合を修正。
DB接続失敗時にエラーメッセージではなく「エラー」が発生してしまう不具合を修正。
実体DAOにおいて、更新日時をロールバックするのを忘れていた不具合を修正。
ファイル キャッシュ機能にてベースクラスのコンストラクタを呼び出せない不具合を修正。

■2011/5/25 - Version 0.0.16
実体DAOクラスを実装完了。
ファイル キャッシュ機能をほぼ完全に作り直し。
DB接続処理をシーンではなく実体側に持つようにした。
MySQLクラス解放時に例外が飛ぶ不具合を修正。
実体周りで不足していたSQLを追加。
ユーザ周りで余計なSQLを削除。

■2011/5/24 - Version 0.0.12
データベース接続機能を実装完了。
ユーザDAO実装の続き。
実体DAO・ファイル キャッシュをガワだけ追加。
SQLの配置やパラメータの指定方法を大幅に変更。
ファイル同士のインクルード関係がカオスになっていた不具合を修正。

■2011/5/23 - Version 0.0.8
DB接続失敗時にエラーメッセージを表示するようにした。
DB解放時にコミットするようにした。
XML構築機能の小規模な改良。
バージョン情報をPHP側でも持つようにした。
XSLスキンの小規模な改良。
スタイルシート追加。
ユーザDAOをガワだけ追加。

■2011/5/22 - Version 0.0.4
DOMを使用したXML構築機能を実装。
サーバサイドXSLT機能を実装。
0.0.1で実装したガワだけデータベース接続機能を半分ほど実装。
index.phpのダミー出力を削除。
ページ出力をGZIP圧縮するようにした。

■2011/5/21 - Version 0.0.2
内部的にStateパターンを構築。
初期化処理としてクエリをパースする処理を実装。
クエリ結果に応じて動的に次の状態を読み込む機能を実装。
無効な状態を設定するとエラーXMLを吐くようにした。
index.phpの内容をHello, worldからアプリケーション名に置き換えた。

■2011/5/20 - Version 0.0.1
管理者サイトの表示がぶっ壊れているため、プロジェクト再開。
v0.0.0のデータ構造をスキーマレスに変更。
データベース接続機能をガワだけ実装。
index.php追加。Hello, worldを表示するのみ。

■2010/8/20 - Version 0.0.0
プロジェクト開始。この時は用件定義と大雑把なデータ設計のみ。
