Bug(バグ) #1859
Yuya Watanabe がほぼ12年前に更新
h3. Overview (現象)
管理画面でカテゴリ関係を下記のように定義したとする.
* A
** a
** b
* B
** c
** d
** e
これを下記の順番にしたとする.
# * B
## ** c
## ** d
## ** e
# * A
## ** a
## ** b
このときに,フロントエンド側のコミュニティ新規作成画面などでコミュニティカテゴリを選択する際に表示される select タグの option の項目が c d e a b と表示されるべきだが,a b c d e と表示されてしまう.
h3. Causes (原因)
大カテゴリを考慮して小カテゴリのソートを行っていない。
h3. Way to fix (修正内容)
小カテゴリと大カテゴリを別々のクエリで取得後、PHP 側でソート処理を行う。
(2系ではJOINを使用して1クエリで取得していたが、Doctrineを使用した場合テーブルの構造上の問題で同じ方法は使えない)
この結果を Doctrine_Collection で返すメソッドを CommunityCategoryTable に追加し、
既存のカテゴリ表示を行っている箇所をすべて置換する。
管理画面でカテゴリ関係を下記のように定義したとする.
* A
** a
** b
* B
** c
** d
** e
これを下記の順番にしたとする.
# * B
## ** c
## ** d
## ** e
# * A
## ** a
## ** b
このときに,フロントエンド側のコミュニティ新規作成画面などでコミュニティカテゴリを選択する際に表示される select タグの option の項目が c d e a b と表示されるべきだが,a b c d e と表示されてしまう.
h3. Causes (原因)
大カテゴリを考慮して小カテゴリのソートを行っていない。
h3. Way to fix (修正内容)
小カテゴリと大カテゴリを別々のクエリで取得後、PHP 側でソート処理を行う。
(2系ではJOINを使用して1クエリで取得していたが、Doctrineを使用した場合テーブルの構造上の問題で同じ方法は使えない)
この結果を Doctrine_Collection で返すメソッドを CommunityCategoryTable に追加し、
既存のカテゴリ表示を行っている箇所をすべて置換する。