Re: 使っているブロックと不要になったブロックの判定はできるのか

2012年5月26日 at 17:18

isActiveっていうメソッドはあるようですが…

Re: 使っているブロックと不要になったブロックの判定はできるのか

2012年5月27日 at 8:27
ありがとうございました。調べてみます。

データベースのBlocksというテーブルに、bIsActiveというのがあるんですが、全部 "1" となっているのでこれを参照してるならだめですね。
 

Re: 使っているブロックと不要になったブロックの判定はできるのか

2012年5月27日 at 17:05
CollectionVersions テーブルの cvIsApproved が現在承認されたバージョン
cvIsApprovedが 1 のものの CollectionVersionBlocks を 取り出し、
CollectionVersionBlocks の bID と 合致しない Blocks を 取り出す。
というSQLを書けばチェックできると思います。
left join など使わないといけない???

ただ、不要ということですが、ページをバージョン管理しているため、前のバージョンのブロックも保存されています。削除や変更などはされないほうがいいと思います。
また、不要なバージョンを削除すればブロックも削除されます。
 

Re: 使っているブロックと不要になったブロックの判定はできるのか

2012年5月28日 at 11:17
ありがとございます。

確認できました。

利用中の最新のフォームブロックを特定したかったんです。

FORMブロックのテーブルを絡めると3つのテーブルのJOINとなります。
勉強がてらSQL文を作ってみます。
 

Re: 使っているブロックと不要になったブロックの判定はできるのか

2012年5月28日 at 15:33
JOINができました。
見よう見まねでしたが、意外に簡単にできました。
これで実際に使われている有効なフォームブロックの最新のリストが得られたようです。

"SELECT * FROM CollectionVersionBlocks INNER JOIN CollectionVersions ON CollectionVersionBlocks.cID=CollectionVersions.cID AND CollectionVersionBlocks.cvID=CollectionVersions.cvID INNER JOIN btForm ON CollectionVersionBlocks.bID=btForm.bID WHERE CollectionVersions.cvIsApproved=1";