プロジェクト

全般

プロフィール

Bug(バグ) #1859

Yuya Watanabe約12年前に更新

h3. Overview (現象)

管理画面でカテゴリ関係を下記のように定義したとする.

* A
大カテゴリA(2番目)、大カテゴリB(1番目) という大カテゴリが存在した場合に、
** a 本来であれば選択項目として大カテゴリBの小カテゴリが上に来るべきであるが、
** 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 に追加し、
既存のカテゴリ表示を行っている箇所をすべて置換する。

戻る