Home > Internet > Movabletype > ウェブページをブログからウェブサイトに移動させる時の関連アイテムパス変更

ウェブページをブログからウェブサイトに移動させる時の関連アイテムパス変更

他人のエントリーに相乗りシリーズ・その1(って、絶対続かないと思うけど・・・)
SQLで特定のブログのブログ記事を別のブログのウェブページに変更する - かたつむりくんのWWW
ブログのウェブページだったものを、ウェブサイトに移動した時に、関連するアイテムパスをSQLでゴニョゴニョするです。

ウェブサイトのURLが http://hoge.com/ な時に、そこにぶら下がるブログのURLが http://hoge.com/fuga/ だったします。
その時に、ブログで登録したアイテムのURLが http://hoge.com/fuga/image/gazo.jpg だったとすると、そのアイテムのmt_assetテーブル上のasset_urlカラムでは「%r/image/gazo.jpg」として保存されています。(絶対ではなく違う場合もあるのですが、通常はそうです。)
また、asset_file_pathも同じく「%r/image/gazo.jpg」として保存されて居ることが多いです。(こちらは、OSに依存したパス区切り文字に変更されている場合もあります。例:「%r\image\gazo.jpg」)
この%rはブログの公開URL/ブログの公開パスをそれぞれ表しています。
つまり、ブログルートを基準とした相対パスで記述されているということです。

このアイテムをウェブサイトのアイテムに変更する場合、ブログ(正しくはウェブサイト)の公開パスが変更されるので、必然的に相対パスも変わってきます。
この場合は「%r/fuga/image/gazo.jpg」になります。このパス変更を行うSQLは以下になります。

UPDATE `mt_asset` SET `asset_url`=REPLACE(`asset_url`,"%r/","%r/fuga");

実際には、asset_urlと共にasset_file_pathの変更も必要ですし、大抵はasset_blog_idの変更も必要なはずです。
それらを含めて、以下のようなSQLで変更が可能になります。

UPDATE `mt_asset`
SET
`asset_blog_id` = ウェブサイトのブログID,
`asset_url` = REPLACE(`asset_url`, "%r/", "%r/fuga"),
`asset_file_path` = REPLACE(`asset_file_path`, "%r/", "%r/fuga")
WHERE `asset_blog_id` = 現在のブログのブログID

ただし、これらは細かい条件指定をしていないので、ブログに属する全てのアイテムが対象になっています。適切なWHERE句で対象を指定するか、phpMyAdminの検索機能などを使って絞り込んだ上でSQLを実行するとよいでしょう。

関連アイテムとしてウェブページに関連付けが行われている場合は、もちろんそこも修正が必要です。
こちらはアイテムID(objectasset_asset_id)、ブログID(objectasset_blog_id)、エントリーID(objectasset_object_id)の組み合わせなので、変更先ブログIDへと書き換えが必要です。
ブログIDが「1」のブログ・ウェブサイトにある、ウェブページの関連付けデータを、ブログID「2」のブログに変更したい場合は以下のSQLで実行できます。

UPDATE `mt_objectasset`
SET `objectasset_blog_id` = '2'
WHERE `objectasset_blog_id` = '1'
AND `objectasset_object_ds` = 'page';

ping a Trackback

TrackBack URL for this entry.(1)

Comments:(6)

Onozaki Naoaki`s user-pic LinkedInAuthed Onozaki Naoaki said November 5, 2011 7:03 PM | ReplyThis!

LinkedInでのログインテスト。・・・

naoaki`s user-pic BrowserIDAuthed naoaki said November 6, 2011 10:24 PM | ReplyThis!

BrowserIDでログインテスト

naoaki011`s user-pic TwitCommentAuthed naoaki011 said November 7, 2011 10:35 PM | ReplyThis!

Twitterログインは、戻り時にサインイン状態にならない。
もう一度サインイン処理をしないと反映されないなぁ。

MTでのログインは問題なし。
なんか全体に変だなぁ。

oscar`s user-pic TypeKeyAuthed oscar said November 7, 2011 11:57 PM | ReplyThis!

TypePadは安定してるなぁ

Naoaki`s user-pic FacebookAuthed Naoaki said November 16, 2011 3:38 PM | ReplyThis!

Facebookでログイン(プラグイン差し替えた)

スクリプトの読み込みが完了していません。

Sign in Sign in Sign in

メールフォーム(Javascriptを使用していません)や、twitter.pngTwitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。

Comment Form

QuickTagsHere

EmoticonHere

(入力しない場合「Anonymous」で代替されます)
(公開はされませんが、Gravatarアイコンの取得や、Comment Subscribeの送信先アドレスとして使われます)
(入力すると、コメント表示でユーザー名にリンクが貼られます)
(この情報は、JavascriptによりCookieに保存されます。)

NotifyMail Powered by Comment Subscribe

はてブコメント:

Home > Internet > Movabletype > ウェブページをブログからウェブサイトに移動させる時の関連アイテムパス変更

MT5Techniques

MT5Techniques

2冊目の共著「Movable Type 5 実践テクニック」(シックスアパート監修)が出版されました。(ソフトバンク クリエイティブ刊)

検索
(5)
(6)

別ページに遷移します。

Powered by Hyper Estraier

Feeds
Link Status
In One

なかのひと

位置情報ブログパーツ「なかのひと」

Links
Powered By

Return to page top