ページコピーからブロックの移動について

2015年9月29日 at 11:34

「ページをコピーしてからブロックの移動をすると、コピー元のブロックも一緒に移動してしまう」という現象が出たのですが、同じような症状になったかたおられますか?
------------------------
ver 5.7.5.1
------------------------

テーブルを見ますと、以下のデータ処理になっているようです。
(1)ページコピー
└>CollectionVersionBlocks に、同じbIDを持つレコードが作られる

 | cID | bID | cbDisplayOrder |
| 1 | 1 | 1 | ←コピー元
| 2 | 1 | 1 | ←コピー先

(2)コピー先でブロックの場所移動
└>CollectionVersionBlocks テーブルのbIDのみを条件にしているようで、同じbIDを持つレコードのソート順が全部変わる

 | cID | bID | cbDisplayOrder |
| 1 | 1 | 2 | ←コピー元(こっちのソートが変わった)
| 2 | 1 | 2 | ←コピー先


(1)は、過去バージョンもコピーしているので「複製」と考えれれば、コピーの仕様として合点がいくのですが、(2)のソート時にbIDのみを条件としているのが問題ありそうに感じています。

(2)の移動時は、bIDだけではなく、cIDも条件に入れるようにするべきかどうか判断したく、ご意見いただけないでしょうか。

タグ:

Re: ページコピーからブロックの移動について

2015年9月29日 at 12:31
同意です
 

Re: ページコピーからブロックの移動について

2015年9月29日 at 20:50
ブロックの順番変更処理時に、Where句条件に cID と bID として、他に影響でないか様子を見てみます。

ページコピーしてからブロックの順番を変更せずにブロックの更新をかけると、新たにbIDが発行されるので問題ないですが、コピーしてからすぐに順番を変更すると、コピー元に影響しますね。
 

Re: ページコピーからブロックの移動について

2015年10月27日 at 23:22
Remoが同じ問題を見つけたみたい…
http://github.com/concrete5/concrete5/issues/3064