本家フォーラムでスクラップブックをスタックに変換するスクリプトが紹介されていました。
http://www.concrete5.org/community/forums/usage/is-there-a-way-to-convert-to-scrapbook-to-stack/
検証しようと思いつつ時間がなくてまだできてないんです、すいません。
自分も3月中に古いconcrete5サイトのアップグレードを予定しているので色々調べているのですが…個別に分解して考えたほうがいい気がしています。
グローバルスクラップブックの使い方を考えるに、ヘッダー・フッターなどで共通パーツを管理するのに使うことが多いです。そういうものは、基本的にエリアをグローバルエリアに置き換えることで対応してしまおうと思います。
問題は複数のページで内容を共通にするためにばらばらに置いているものですね。これは5.5以降ではスタックにせざるを得ないと思います。
スクラップブックが実際にどのように扱われているかというと、管理画面内の「スクラップブック」というページの中の、スクラップブックの名前を冠したエリアの中にあるブロックというデータになっています。
上記の移行スクリプトはそのエリアの中のブロックを取得し、ブロック名と同名のスタックを作成し、ブロックを複製して新しく作ったスタックの中に入れ、データベース内の CollectionVersionBlocks, CollectionVersionBlockStyles テーブルの中の旧ブロックと新ブロックを無理やり置き換えています。この処理が、いまいちこれで合っているのか?よく分からないので、スタックが各ページでどのようにデータベースに保存されているのか調べているところです。
Re: Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて
2013年2月25日 at 12:00
tomoyaさん、ご丁寧に回答していただきありがとうございます。
曖昧な理解だった部分がだいぶスッキリしました。
やはり基本は手作業によるスタックへの引き継ぎなのですね。
大規模なサイトではアップグレードそのものが現実的ではないようです。
2に関しては5.4.2.2から段階を経て5.6.0.2へアップグレードした私の環境では、スクラップブックに登録していたブロックが多数(全て?)クリップボードに格納されていました。
ただし、一部のブロックは「このブロックは使用不能です。」と表示され、削除する以外どうしようもない状態になっていましたが…
ちなみに、DetaDisplayというアドオンは導入していません。
なんにしても、以前のスクラップブックを継続して利用はできないことがはっきりしたので諦めが付きました。
PHPブロックを使った対応法は是非利用させていただきたかったのですが、5.5.2.1までしか更新が反映されないのですね…。
以前5.5.2.1にXSSの脆弱性が報告されたので5.6.0.2にしたという経緯があるため、利用はできませんが大変参考になりました。
今後の本家の動きにも注目したいと思います。
ほんとうに色々とありがとうございました。
Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて
2013年3月1日 at 8:39
本家フォーラムに投稿されていた移行スクリプトを修正しました!
http://github.com/hissy/MoveScrapbookToStackJob
以下の手順でテストして問題なかったのですが、テスト用にコピーした環境などで、試していただけますでしょうか?
ぼくの方でも、移行予定にしていた古いサイトの方でテストしてみます。ページ数が多いので時間がかかると思われます…。
●5.4.2.2でインストール
スクラップブックを使って複数のページにブロックを挿入
●5.5.2.1にアップデート
・表示されるし編集モードで編集できるが、グローバルブロックとして認識されなくなる(個別に編集できてしまう)
・管理画面内に下書きページは残っており、編集もできる。bIDは同一なので、ここからの編集は各ページのブロックに反映される(要キャッシュクリア)
●5.6.0.2にアップデート
・表示と編集モードは変化なし。
・管理画面内の下書きページは依然残っていて編集も可能。各ページのブロックに反映される。
●移行ジョブをインストールして実行
・全てのスクラップブックのブロックがスタックの中に移され、編集しようとするとスタックの編集画面に飛ぶようになった。
http://github.com/hissy/MoveScrapbookToStackJob
以下の手順でテストして問題なかったのですが、テスト用にコピーした環境などで、試していただけますでしょうか?
ぼくの方でも、移行予定にしていた古いサイトの方でテストしてみます。ページ数が多いので時間がかかると思われます…。
●5.4.2.2でインストール
スクラップブックを使って複数のページにブロックを挿入
●5.5.2.1にアップデート
・表示されるし編集モードで編集できるが、グローバルブロックとして認識されなくなる(個別に編集できてしまう)
・管理画面内に下書きページは残っており、編集もできる。bIDは同一なので、ここからの編集は各ページのブロックに反映される(要キャッシュクリア)
●5.6.0.2にアップデート
・表示と編集モードは変化なし。
・管理画面内の下書きページは依然残っていて編集も可能。各ページのブロックに反映される。
●移行ジョブをインストールして実行
・全てのスクラップブックのブロックがスタックの中に移され、編集しようとするとスタックの編集画面に飛ぶようになった。
Your post has been saved and will be published after approval by the forum moderator.
tomoya
Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて
1、スクラップブック→クリップボードへ移行する自動ボタンの設置 とか [ 解決済み!]
(訂正::下記のように、To Clipboard 移行追加ボタンスクリプトを作成! ver5602で稼働します。tomoya-website )
2、スクラップブック→スタックへ全移行する自動ボタンの設置 とか [ 解決済み!]
(訂正::下記のように、hissyさんが移行Jobスクリプトを作られました! ver5602で稼働します。github )
なんかが考えられます。現在本家では、2番の案件があるのですが、まだテスト中ですし、それと致命的なのが、ver5.5.2.1 までで、2番のスクリプトをしなくてはならない。という大前提があるようです。
なんとか自作で、1番が出来ないかスクリプトを作っているのでが、まだ解決してません。というか働きません。それと例え完成したとしても、スタックで、クリップボードの張り付けがないのです。これもちょっと困り者ですね。
となると、現行バージョンでは、やはり、ブラウザーのタブを利用して、1つづつ手作業で、スクラップブック→スタック間のブロックのコピペをするという、なんとも単純な解決法しかないです。(大規模サイトでは苦痛かと思われます。)