5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて

2013年2月21日 at 14:19

度々お世話になっております。
5.4系まで利用していたスクラップブックが、5.6系でどういう扱いになるのか理解しきれていないので確認させてください。

1.表示はされるがグローバルブロックではなくなる
2.グローバルブロックとしては扱えないが、全てクリップボードに格納されており、クリップボードからペーストができる
3.今までのグローバルブロックと同様の利用をするには新規でスタックを作るかグローバルエリアを設置する必要があり、手動で置換するしか方法がない

上記の認識で合っていますでしょうか?
利用しているスクラップブックが非常に多いので、今までのスクラップブックを何とか引き続きグローバルブロックとして利用したいのですが、なにかいい方法はありませんでしょうか?
よろしくお願いします。

タグ:

Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて

2013年2月22日 at 11:18
5.4系までの「スクラップブック」から、今後の 5.6系のスクラップブックの扱いについて。

5.5系では、スクラップブックから「スタック」に移行され、こちらを使ってくださいという事になりました。データー自体は取り扱いは出来ます。

ただし、自動引き継ぎはされないので、スクラップブックで作成されたブロックは、一つずつ、スクラップの引き継ぎブロックを手作業で、コピーして、スタックへ再び、新規ブロックとして、作成してあげなくてはなりません。

ご質問での回答。
1、表示はされるが、グローバルブロックではなくなる。

A :: スクラップブックは廃止の方向です。また、グローバルブロックという認識からはずれた形です。


2、全てクリップボードに格納され、クリップボードからペースト出来る。

A :: 確か出来ない筈です。(スクラップブック管理画面上では)
唯一、DetaDisplay というアドオンをお持ちの方しか出来なかったと思います。または、そういうスクリプトを書くしかないかな?

ところが、既にページ上で表示されている場合は、「ページ編集上」でなら、クリップボードにコピーされる事は出来ます。ただし、スクラップ管理画面で編集し直した際に、更新はされません。
( 変更 2013-03-01 :: ダッシュボード→システム設定→キャッシュのクリア で更新されます。訂正させていただきます。)


3、今までのグローバルブロックと同様の利用をするには、新規でスタックを作るか、グローバルエリアを設置する必要があり、手動で置換するしか、方法がない。

A :: 現在のところそのような対応しかないと思います。


私個人的に現在確認しているのは、スクラップブックで作成されたブロックは、concrete5.5.2.1ja までのバージョンなら、PHPブロックを使用するという手があります。
(なお、concrete5.6.0.2ja では表示はされますが、スクラップブック内のデーター更新は反映されません。)
( 変更 2013-03-01 :: ダッシュボード→システム設定→キャッシュのクリア で更新されます。訂正させていただきます。)

Simple PHP block /http://www.concrete5.org/marketplace/addons/simple-php-block/

ブロックソース内 記載事例:

$b = Block::getByName(' スクラップブック内の名前の部分 - 任意 ');
$b->display();

と上記に記載してあげれば、スタック内でこのSimple PHP blockを作成して、スクラップブック内のデーターを拾うことは、出来ます。

スクラップブック→スタック→Simple PHP blockのコンボ ですね。
しかしながら、concrete5.6.0.2ja からは、仕様が変わったのか、上記コンボで表示はされるものの、スクラップブック内の管理画面から、目的のブロックを編集した際に、更新はされません。ご注意ください。
( 変更 2013-03-01 :: ダッシュボード→システム設定→キャッシュのクリア で更新されます。訂正させていただきます。)


上記では、手動での置換えでの対応しかありませんが、本家で自動的にスクラップブック内のデーターを自動で処理するスクリプトが有るようなので、そちらに期待するしかありません。まだ、確認作業中なので、判り次第対応したいかと思います。
( 変更 2013-05-16 :: hissyさん スクラップブック→スタック全移行実行JOB スクリプト [download])
( 変更 2013-05-16 :: tomoya スクラップブック→クリップボードへの移動ボタン [download])
 

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年2月28日 at 10:06
スクラップブックに関しては、非常に残念な思いがあるので、出来れば、せめてデーターだけでも活用出来るようにしてほしいと考えています。例えば救済措置として、

1、スクラップブック→クリップボードへ移行する自動ボタンの設置 とか [ 解決済み!]
(訂正::下記のように、To Clipboard 移行追加ボタンスクリプトを作成! ver5602で稼働します。tomoya-website

2、スクラップブック→スタックへ全移行する自動ボタンの設置 とか [ 解決済み!]
(訂正::下記のように、hissyさんが移行Jobスクリプトを作られました! ver5602で稼働します。github

なんかが考えられます。現在本家では、2番の案件があるのですが、まだテスト中ですし、それと致命的なのが、ver5.5.2.1 までで、2番のスクリプトをしなくてはならない。という大前提があるようです。

なんとか自作で、1番が出来ないかスクリプトを作っているのでが、まだ解決してません。というか働きません。それと例え完成したとしても、スタックで、クリップボードの張り付けがないのです。これもちょっと困り者ですね。

となると、現行バージョンでは、やはり、ブラウザーのタブを利用して、1つづつ手作業で、スクラップブック→スタック間のブロックのコピペをするという、なんとも単純な解決法しかないです。(大規模サイトでは苦痛かと思われます。)


ご参考までに、[ Scrapbook Display - Basic ] という無料のアドオンがあります。
http://www.concrete5.org/marketplace/addons/scrapbook-display-basic/

ブロックひとつづつという訳ではありませんが、グローバルか、その他任意で作ったエリア部分のスクラップが表示されます。
ver5.5.2.1までなら、どうもエリアだけでなく、どのブロックを利用するかまで聞いてきてました。

注意事項:これもver5.6.0.2 では、表示はされるものの、ver5.5.0 - ver5.5.2.1 でクリップボード化したものだけが、表示されます。つまり新しくスクラップ内で更新した、ブロックは反映されないという事です。

修正:この文書はなしで!これは、もしかしたらバグなのかなとも言えますし、本家が任意で行っていたりなのかはわかりません。
 

Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて

2013年3月1日 at 4:51
本家フォーラムでスクラップブックをスタックに変換するスクリプトが紹介されていました。

http://www.concrete5.org/community/forums/usage/is-there-a-way-to-convert-to-scrapbook-to-stack/

検証しようと思いつつ時間がなくてまだできてないんです、すいません。
自分も3月中に古いconcrete5サイトのアップグレードを予定しているので色々調べているのですが…個別に分解して考えたほうがいい気がしています。

グローバルスクラップブックの使い方を考えるに、ヘッダー・フッターなどで共通パーツを管理するのに使うことが多いです。そういうものは、基本的にエリアをグローバルエリアに置き換えることで対応してしまおうと思います。

問題は複数のページで内容を共通にするためにばらばらに置いているものですね。これは5.5以降ではスタックにせざるを得ないと思います。

スクラップブックが実際にどのように扱われているかというと、管理画面内の「スクラップブック」というページの中の、スクラップブックの名前を冠したエリアの中にあるブロックというデータになっています。

上記の移行スクリプトはそのエリアの中のブロックを取得し、ブロック名と同名のスタックを作成し、ブロックを複製して新しく作ったスタックの中に入れ、データベース内の CollectionVersionBlocks, CollectionVersionBlockStyles テーブルの中の旧ブロックと新ブロックを無理やり置き換えています。この処理が、いまいちこれで合っているのか?よく分からないので、スタックが各ページでどのようにデータベースに保存されているのか調べているところです。
 

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にアップデート
・表示と編集モードは変化なし。
・管理画面内の下書きページは依然残っていて編集も可能。各ページのブロックに反映される。

●移行ジョブをインストールして実行
・全てのスクラップブックのブロックがスタックの中に移され、編集しようとするとスタックの編集画面に飛ぶようになった。
 

Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて

2013年3月1日 at 11:34
tomoyaさん、hissyさん、引き続き対応策の模索並びに紹介ありがとうございます!
今回バージョン5.6.0.2へアップグレード予定なので、hissyさんの移行スクリプトを検証してみたいと思います。
(バージョンアップ前にインストールする必要があるとのことなので、少し時間がかかりそうですが…)
このスクリプトがうまく使えればバージョンアップをためらってる方々に順次以降に踏み切れそうな気がしますね。
 

Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて

2013年3月1日 at 15:07
リンク先のGithubのページからphpをダウンロードし、jobsにアップすると、管理画面の自動実行ジョブ画面にインストール待ちで表示されますので、インストールボタンを押すとジョブの一覧に並びます。あとは▶ボタンをクリックして実行するだけです。

まだテストでインストールした5.4.2.2→5.6.0.2にアップグレードしたサイトでしか試していないのですが、多分大丈夫だと思います…。件数が多いとタイムアウトするかもしれないのが心配なくらいです。ご利用は自己責任で必ずデータベースのバックアップを。ちなみに5.6.0.2にアップグレードしてからでも大丈夫です。

やっていることは、旧スクラップブック内の全ブロックを、ブロック名と同名のスタックを作成してその中に格納。旧グローバルブロックをスタックを表示するブロックに差し替えています。
 

Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて

2013年5月15日 at 17:13
v5.4.2.2からv5.6.0.2へアップデートした後スクラップブックをスタックに移そうとしているのですが、このphpを5.6.0.2のjobsに移しても自動実行ジョブに表示されません。
 

Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて

2013年5月15日 at 17:28
jobs/ の中に move_scrapbook_blocks_to_stack.php を設置します。
concrete/jobs ではないことに注意してください wink

それでも出なかったら、一度管理画面からキャッシュをクリアしてみてください。
 

Re: Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて

2013年5月15日 at 17:48
ありがとうございました、出来ました。
最初実行してもスタックにならなかったのですが、手作業で移動させていたスタックが3つほどあったのが原因のようで、一度同じ名前のスタックを削除したら出来ました。
すばらしい!!!
 

Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて

2013年3月2日 at 10:18
ここまでの時点ですべてをお試ししてみて判った事があります。

まず、スクラップブックの件ですが、ver5602 でも、更新されることが判明しました。
スクラップブック内で、ブロックを更新後、ダッシュボード→システム設定→「キャッシュのクリア」これで、データーが更新される事がわかりましたので、恐れずに ver5602ja版の最新版へアップグレードしてみてください。

上記の私が行っている スクラップブック+スタッグ+PHP-Block+キャッシュのクリア=コンボで、以前のように幸せになれます。

さて、hissyさんの作っていただいた、Jobスクリプトは大変ありがたく優秀です。
使用方法は、1、データベースのバックアップを必ずしておく事 2、書かれている手順を踏んでいただければ、機能するかと思います。こちらも実サイトで検証済みですので、問題はありません。ただ自己責任で。

注意事項としては、大規模サイトであれば、スタック側での管理方法を考えての上で、移行すると良いでしょう。スクラップブックのブロック名は任意で名前変更が出来ますから、出来れば次のバージョンの事も考えて、
(例:ページ名-エリア名-ブロック名-番号 → PageName-AreaName-BlockName-Number )などとスタックへのエリアネームに、移行前にスクラップブック内で名前つけしておくと、後々の管理がしやすいと思います。(現状はどちらも選択はできますので任意で。日本語名か英語名かの問題です。)

それから、移行後には、スクラップブック管理画面は残りますが、スクラップブック内での編集作業は出来なくなります。この点注意が必要です。


さてスタック側では、一度 [スタック] の使い方に慣れておく事が必要です。
現在のバージョンのスタック内では、エリアでの管理となっていますので、一つのスタック内にいくつかのブロックを並べる事が(いれること)が出来ます。

呼び出しの際には、ページ編集で、追加ブロックダイアログメニューの下に、「スタックを追加する」が表示され、その際に2択の選択があり、
1、スタック内のブロック全て(エリア)呼び出し貼付け方法。
2、スタック内の一部のブロックの呼び出し貼付け方法。 
がありますから、そういう仕様になれてうまく利用出来るよう考えておくといいと思います。

最後にスタック側に無事に移行完了すると、スタック内のブロックの編集時には、「クリップボード」が選択出来るようになりますので、コピペが楽になる事も確かです。ブラウザーのタブを駆使して、ページ編集時には、「スタックの張り付け」と「クリップボード」からの張り付けが楽に出来るようになるので、大変有効です。ただし、クリップボードから「スタックへの張り付け」はまだ出来ません。

以上をふまえて、移行前に サイトのルートのフォルダーをバックアップとデーターベースのバックアップをしておく事と、バージョンアップした際に上記それぞれをバックアップするなどをしておけば、そうそう慌てる事なく、常に2択させておく事が出来るかと思いますので、自己の対策をしておくとよろしいでしょう。
 

Re: 5.6.0.2へアップグレード後、スクラップブックとグローバルブロックの扱いについて

2013年3月20日 at 17:27
お待たせ致しました。

hissyさんが、スクラップブックから一括でスタックへ [ Scrapbook-All to Stacks ] を解決してくださったので、
スクラップブック内のコンテンツをクリップボードへ [ Scrapbook-block to Clipboard ] のコピペボタンを作成しました。

ついでに、concrete5.5.2.1 / concrete5.6.0.2 バージョンとでは、管理画面(ダッシュボード)のデザインの扱いが違っているのでこれもあわせて、修正しました。詳しくは、下記のリンクまで。利用方法も記載済みです。

[ Scrapbook-block to Clipboard ] :リンク