Re: 管理画面でカスタムフィールドのソート

seto > Re: 管理画面でカスタムフィールドのソート @ 2018/12/5 13:27
こんにちは

ブログ記事一覧ページの縦の列に、追加したテーブルの項目の表示ができたものの、ソート機能が動作しないということでよろしかったでしょうか。

私の方で試した流れを書いてみますね。

------------------------------------------------------------------------
- Blog.BlogPost.beforeFindで、追加したテーブルとblogPostsをhasOneで紐づけ
- 一覧ページのビューに手を入れて項目を追加

-> 追加した項目のページネーションが動かない
------------------------------------------------------------------------

原因を調べると、BlogPostsControllerのadmin_index内でpaginate関数が実行される前に、アソシエーションを追加しないといけないのですが、beforeFindだとタイミングが遅すぎるということがわかりました。

そこで、もっと前の段階でアソシエーションを貼るとソート機能が動作しました。
私はControllerEventListenerのinitializeで確認しましたが、admin_index内で発火しているsearchIndexというイベントの方を使ったほうがいいかもしれません。

また、表示側の調整も、今回は確認のためにコアのビューを書き換えたのですが、以下のファイル内でShowHeadやShowRowというイベントが存在しているようなので、これを使うといい感じにプラグインからブログ記事一覧ページの表示に干渉できるかと思います。
lib/Baser/Plugin/Blog/View/Elements/admin/blog_posts/index_list.php
lib/Baser/Plugin/Blog/View/Elements/admin/blog_posts/index_row.php

<?php echo $this->BcListTable->dispatchShowHead() ?>
<?php echo $this->BcListTable->dispatchShowRow($data) ?>

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
15 人のユーザが現在オンラインです。 (15 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 15