Skip to content

fix #3238 【ブログカテゴリ】並び替え機能 追加#4443

Open
kaburk wants to merge 2 commits into
baserproject:5.2.xfrom
kaburk:5.2.x-#3238
Open

fix #3238 【ブログカテゴリ】並び替え機能 追加#4443
kaburk wants to merge 2 commits into
baserproject:5.2.xfrom
kaburk:5.2.x-#3238

Conversation

@kaburk

@kaburk kaburk commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

作成してみました。どうでしょうか?

コアに入れるべきでなさそうでしたら、別途プラグイン化しようと思います。

スクリーンショット 2026-07-06 11 15 54 スクリーンショット 2026-07-06 11 16 02

@ryuring

ryuring commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

@kaburk おおお、ツリー形式になってる、便利になりますね。問題としてはメンテナンススコープが増えることぐらいですかね。
@seto1 @katokaisya いかがでしょう?

@seto1

seto1 commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

是非コアで欲しい機能です。
けっこう求められている機能だと思います。

触ってみて気になった点は以下です。

  • 「子カテゴリを追加」からカテゴリを追加しても、親カテゴリが設定されない
  • ツリー形式だとカテゴリの削除が失敗する
    • 削除に失敗しました。CSRF token from either the request body or request headers did not match or is missing.

  • カテゴリを追加後、表形式に切り替わる
  • ブログが複数あるときに、カテゴリの移動に失敗する場合がある
    • 例:
      • ブログ1にカテゴリを追加
      • ブログ2にカテゴリを追加
      • ブログ1にカテゴリを追加
      • → 最後に追加したカテゴリを最初に追加したカテゴリの上に移動後、画面をリロードすると元の位置に戻る
      • 再度同じ操作をすると変更できる

あとは、コンテンツ管理のようにツリー構造のチェックやリセット機能が必要になってくるかもしれません。

@kaburk

kaburk commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator Author

とりあえず不具合的なところを修正して、ツリー構造のチェックやリセット機能(既存のコンテンツ管理と同等の機能)も追加しています。(リセット機能の改造構造維持についての改善は別チケットで検討中です)

@seto1

seto1 commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

@kaburk ありがとうございます。いずれの問題も修正されていることを確認しました!
あとは、新規追加になったカテゴリ移動用のアクションも、初期の権限は許可で良いと思います。
既存の、初期で許可になっているカテゴリの編集と似たような操作のためです。

https://github.com/kaburk/basercms/blob/863927fac65eb5f1850d85ac3e6dc2756581cd40/plugins/bc-blog/config/permission.php#L87

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

ブログカテゴリ管理に「ツリー表示+ドラッグ&ドロップでの並び替え/再親付け」を追加し、ツリー破損時の検査・リセット機能をユーティリティ画面から実行できるようにする変更です。bc-blog のカテゴリを TreeBehavior(lft/rght)前提で扱う運用を強化し、管理画面の操作性と復旧手段を提供します。

Changes:

  • 管理画面のブログカテゴリ一覧に「表形式/ツリー形式」切替を追加し、ツリー形式では jstree による DnD 並び替え・再親付けを実装
  • API/Service/Table にカテゴリ移動ロジック(move / moveOffset / getOrderSameParent)を追加し、複数ブログで lft/rght が交錯するケースの回帰テストを追加
  • ユーティリティ画面にブログカテゴリツリーの「検査(verity)/リセット」導線を追加し、共通のツリー検査ロジックを UtilitiesService に抽出

Reviewed changes

Copilot reviewed 24 out of 27 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
plugins/bc-blog/tests/TestCase/Service/BlogCategoriesServiceTest.php move/verityTree/resetTree 等のサービス層テストを追加
plugins/bc-blog/tests/TestCase/Model/BlogCategoriesTableTest.php getOrderSameParent/moveOffset/resetTree のテーブル層テストを追加
plugins/bc-blog/tests/TestCase/Controller/Api/Admin/BlogCategoriesControllerTest.php API move エンドポイントの結合テストを追加
plugins/bc-blog/tests/TestCase/Controller/Admin/BlogCategoriesControllerTest.php 管理画面の表示切替、ツリー検査/リセット、親指定追加のテストを追加
plugins/bc-blog/src/Service/BlogCategoriesServiceInterface.php getNew の引数拡張と move/verityTree/resetTree をI/Fに追加
plugins/bc-blog/src/Service/BlogCategoriesService.php カテゴリ移動(並び替え・再親付け)とツリー検査/リセットのサービス実装を追加
plugins/bc-blog/src/Service/Admin/BlogCategoriesAdminServiceInterface.php 一覧用 viewVars に listType を追加
plugins/bc-blog/src/Service/Admin/BlogCategoriesAdminService.php 一覧テンプレート切替(ツリー/表)とツリー取得(threaded)を追加
plugins/bc-blog/src/Model/Table/BlogCategoriesTable.php 同一親内順位取得・オフセット移動・ツリーリセットを追加
plugins/bc-blog/src/Event/BcBlogViewEventListener.php Utilities 画面にブログカテゴリツリー関連セクションを差し込むイベントを追加
plugins/bc-blog/src/Controller/Api/Admin/BlogCategoriesController.php カテゴリ移動 API(move)を追加
plugins/bc-blog/src/Controller/Admin/BlogCategoriesController.php 一覧表示形式のセッション保持、親ID指定追加、ツリー検査/リセットアクションを追加
plugins/bc-blog/config/permission.php ツリー検査/リセット用の権限定義を追加
plugins/bc-admin-third/webroot/bc_blog/js/admin/blog_categories/index.bundle.js.map 管理画面カテゴリ一覧JSのビルド成果物(map)更新
plugins/bc-admin-third/webroot/bc_blog/js/admin/blog_categories/index.bundle.js 管理画面カテゴリ一覧JSのビルド成果物更新
plugins/bc-admin-third/templates/plugin/BcBlog/Admin/element/Utilities/blog_categories_tree.php Utilities 画面のブログカテゴリツリー検査/リセットUI要素を追加
plugins/bc-admin-third/templates/plugin/BcBlog/Admin/element/BlogCategories/index_view_setting.php 一覧の表示形式(ツリー/表)切替UIを追加
plugins/bc-admin-third/templates/plugin/BcBlog/Admin/element/BlogCategories/index_tree.php ツリー表示テンプレートを追加
plugins/bc-admin-third/templates/plugin/BcBlog/Admin/element/BlogCategories/index_setup.php 一覧ページのJS/CSS読込とi18n文言定義を追加
plugins/bc-admin-third/templates/plugin/BcBlog/Admin/element/BlogCategories/index_list.php 表形式側の行に sortable クラス付与
plugins/bc-admin-third/templates/plugin/BcBlog/Admin/element/BlogCategories/index_list_tree.php jstree 用の再帰ツリーHTML(data-jstree)を追加
plugins/bc-admin-third/templates/plugin/BcBlog/Admin/BlogCategories/index.php 一覧をテンプレート切替(tree/list)前提に変更し、表示切替UI等を組込
plugins/bc-admin-third/templates/Admin/Utilities/index.php afterUtilitiesIndex イベントを dispatch して拡張セクションを描画可能に
plugins/bc-admin-third/src/bc_blog/js/admin/blog_categories/index.js ツリー表示・DnD移動・右クリックメニュー等の実装を追加
plugins/baser-core/src/Service/UtilitiesServiceInterface.php 任意テーブル向けのツリー検査メソッド(verityTree)を追加
plugins/baser-core/src/Service/UtilitiesService.php verityContentsTree を共通化し、verityTree(Table) を実装

Comment thread plugins/bc-blog/src/Model/Table/BlogCategoriesTable.php Outdated
Comment thread plugins/bc-blog/src/Model/Table/BlogCategoriesTable.php
Comment thread plugins/bc-blog/src/Service/BlogCategoriesService.php


# Conflicts:
#	plugins/bc-admin-third/webroot/css/admin/style.css
@ryuring

ryuring commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

@kaburk @seto1 こちらマージしてもいいですか?可能であれば、次の5.3でリリースしたい思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants