ppBlog フォーラム

No.4813  カテゴリーが壊れてしまいました
☆アルファ☆@Nov 27, 2010 09:13   URL
いつもppBlogを利用させていただいております。

新しくサブカテゴリーを作ろうと思って、
「サブカテ追加」のページで編集していたら、
今までに作ったカテゴリーやサブカテゴリーが半分くらい無くなってしまいました。

バックアップデータなどから復元する方法がありましたら、
ご教示ください。

自分にとっては重大事態なので、かなり焦っています。
よろしくお願いいたします。


追記:仕様上、作成できるカテゴリーやサブカテゴリーの数に上限があるのでしょうか?
   

4813-1 Re:カテゴリーが壊れてしまいました martin @ Nov 27, 2010 12:09 URL

こんばんは。ご不便をおかけして申し訳ありません。
残念ながら、カテゴリーに関しては、これまでその手の報告がなかったこともあり、カテゴリーの定義ファイル(owner/category.ini.php)自体のバックアップが自動的に作られていることはありません。記事ログやタグ定義ファイルは、自動的にバックアップファイルがcacheディレクトリに作成されていますが。。

とりあえず、これまでの記事を走査して、そこからカテゴリー名を抽出し、新たなカテゴリー定義ファイルを作成するスクリプトを書きました。使い方は、
 1. まず既存のサーバー上のカテゴリー定義ファイルであるowner/category.ini.phpをお手元にダウンロードしておく(バックアップ)。
 2. http://p2b.jp/demo/cat.txt をダウンロード。拡張子を.phpに変更して、文字コードはUTF-8で保存。
 3. サーバー上のindex.phpがあるディレクトリにアップロード。ブログ本体のほうで、ログインした状態で、cat.phpにアクセス。
 4. 「owner/category2.ini.php を作成しました。」という表示が出てきたら、FTPソフト上で、ownerディレクトリの中にある、元の定義ファイル(category.ini.php)を適当に改名(category.ini.backとか)、新たに作成されたcategory2.ini.phpcategory.ini.phpに改名します。
 5. ブログの管理画面で、カテゴリー管理のカテゴリー名の編集で、適宜リンク名などを修正(リンク名は、只のエンコードされた英数字になっているので)。あと、カテゴリーの順序変更など。

これで、少なくとも記事で指定されているカテゴリーに関しては、消えたものであっても復元できる可能性が高いです。上の手順は、あくまでひとつのやり方です。新たに作成されたcategory2.ini.phpをFTPソフトでダウンロードして、お手元に前もってDLしておいたcategory.ini.phpとを目で見比べて、消えた部分を、category2.ini.phpからcategory2.ini.phpにコピペしていくというやり方もあります。「目で見比べて」と書きましたが、http://www.yokkasoft.net/にあるフリーのタブ型エディタDeuxEditorなどでは、F11キー一発で、二つのファイルの差分を表示してくれるので、こういうのを利用するのもよいでしょう。

「仕様上、作成できるカテゴリーやサブカテゴリーの数に上限があるのでしょうか?」ですが、特に制限を設けているわけではありませんので、理論上はいくらでも可能かと思います。ppBlogのプログラムのバグであれば、ある特定の手順を踏むと再現するなどの情報があれば良いのですが(その手順を踏むのを実際のブログでやるのはちょっと…、という感じではありますが)。とりあえず、こちらでも「サブカテ追加」あたりで試行してみます。

 次期バージョンでは、カテゴリーの編集時には、自動的にバックアップをとるような設計にしたいと思います。
   

4813-2 Re:Re:カテゴリーが壊れてしまいました ☆アルファ☆ @ Nov 27, 2010 15:11 URL

martin様

さっそくスクリプトを作っていただきありがとうございます。

教えていただいたとおりに、
ブログ本体のほうで、ログインした状態で、cat.phpにアクセスして、
「owner/category2.ini.php を作成しました。」という表示が出たのですが……

ownerのディレクトリの中を探しても、
category2.ini.phpができていません。


ところで、ブラウザに表示された
「owner/category2.ini.php を作成しました。」の下に、
以下の内容がでました。

これを頼りに、
既存のowner/category.ini.phpを手で編集するという方法は
どうでしょうか?

ただ、既存のowner/category.ini.phpの中の
# category name | no. of subcategory
の no. of subcategoryの意味がよく分かりません。

このの数字は、0、-1、-2、-3がありますが、
どういう意味なのでしょうか?

よろしくご教示ください。

-----------------------------------------------------------------------
Array
(
[0] => 撮鉄5pKu6YmE-E|11|

[1] => 撮鉄,世田谷線5pKu6YmE-E/5LiW55Sw6LC357ea-E|11|

[3] => 撮鉄,中央線快速5pKu6YmE-E/5Lit5aSu57ea5b-r6YCf-E|11|

[5] => 撮鉄,中央西線5pKu6YmE-E/5Lit5aSu6KW_57ea-E|11|

[7] => 撮鉄,京浜急行線5pKu6YmE-E/5Lqs5rWc5oCl6KGM57ea-E|11|

[9] => 撮鉄,内房線5pKu6YmE-E/5YaF5oi_57ea-E|11|

[11] => 撮鉄,小田急線5pKu6YmE-E/5bCP55Sw5oCl57ea-E|11|

[13] => 撮鉄,明知線5pKu6YmE-E/5piO55-l57ea-E|11|

[15] => 撮鉄,江ノ電5pKu6YmE-E/5rGf44OO6Zu7-E|11|

[17] => 撮鉄,紀勢本線5pKu6YmE-E/57SA5Yui5pys57ea-E|11|

[19] => 撮鉄,荒川線5pKu6YmE-E/6I2S5bed57ea-E|11|

[21] => 撮鉄,関西本線5pKu6YmE-E/6Zai6KW_5pys57ea-E|11|

[22] => 東京ケンチク5p2x5Lqs44Kx44Oz44OB44Kv-E|26|

[23] => 東京ケンチク,三鷹市5p2x5Lqs44Kx44Oz44OB44Kv-E/5LiJ6be55biC-E|26|

[25] => 東京ケンチク,世田谷区5p2x5Lqs44Kx44Oz44OB44Kv-E/5LiW55Sw6LC35Yy6-E|26|

[27] => 東京ケンチク,中央区5p2x5Lqs44Kx44Oz44OB44Kv-E/5Lit5aSu5Yy6-E|26|

[29] => 東京ケンチク,中野区5p2x5Lqs44Kx44Oz44OB44Kv-E/5Lit6YeO5Yy6-E|26|

[31] => 東京ケンチク,八王子市5p2x5Lqs44Kx44Oz44OB44Kv-E/5YWr546L5a2Q5biC-E|26|

[33] => 東京ケンチク,千代田区5p2x5Lqs44Kx44Oz44OB44Kv-E/5Y2D5Luj55Sw5Yy6-E|26|

[35] => 東京ケンチク,台東区5p2x5Lqs44Kx44Oz44OB44Kv-E/5Y-w5p2x5Yy6-E|26|

[37] => 東京ケンチク,品川区5p2x5Lqs44Kx44Oz44OB44Kv-E/5ZOB5bed5Yy6-E|26|

[39] => 東京ケンチク,国立市5p2x5Lqs44Kx44Oz44OB44Kv-E/5Zu956uL5biC-E|26|

[41] => 東京ケンチク,墨田区5p2x5Lqs44Kx44Oz44OB44Kv-E/5aKo55Sw5Yy6-E|26|

[43] => 東京ケンチク,多摩市5p2x5Lqs44Kx44Oz44OB44Kv-E/5aSa5pGp5biC-E|26|

[45] => 東京ケンチク,大田区5p2x5Lqs44Kx44Oz44OB44Kv-E/5aSn55Sw5Yy6-E|26|

[47] => 東京ケンチク,小金井市5p2x5Lqs44Kx44Oz44OB44Kv-E/5bCP6YeR5LqV5biC-E|26|

[49] => 東京ケンチク,文京区5p2x5Lqs44Kx44Oz44OB44Kv-E/5paH5Lqs5Yy6-E|26|

[51] => 東京ケンチク,新宿区5p2x5Lqs44Kx44Oz44OB44Kv-E/5paw5a6_5Yy6-E|26|

[53] => 東京ケンチク,杉並区5p2x5Lqs44Kx44Oz44OB44Kv-E/5p2J5Lim5Yy6-E|26|

[55] => 東京ケンチク,武蔵野市5p2x5Lqs44Kx44Oz44OB44Kv-E/5q2m6JS16YeO5biC-E|26|

[57] => 東京ケンチク,江戸川区5p2x5Lqs44Kx44Oz44OB44Kv-E/5rGf5oi45bed5Yy6-E|26|

[59] => 東京ケンチク,江東区5p2x5Lqs44Kx44Oz44OB44Kv-E/5rGf5p2x5Yy6-E|26|

[61] => 東京ケンチク,渋谷区5p2x5Lqs44Kx44Oz44OB44Kv-E/5riL6LC35Yy6-E|26|

[63] => 東京ケンチク,港区5p2x5Lqs44Kx44Oz44OB44Kv-E/5riv5Yy6-E|26|

[65] => 東京ケンチク,目黒区5p2x5Lqs44Kx44Oz44OB44Kv-E/55uu6buS5Yy6-E|26|

[67] => 東京ケンチク,練馬区5p2x5Lqs44Kx44Oz44OB44Kv-E/57e06aas5Yy6-E|26|

[69] => 東京ケンチク,西東京市5p2x5Lqs44Kx44Oz44OB44Kv-E/6KW_5p2x5Lqs5biC-E|26|

[71] => 東京ケンチク,調布市5p2x5Lqs44Kx44Oz44OB44Kv-E/6Kq_5biD5biC-E|26|

[73] => 東京ケンチク,豊島区5p2x5Lqs44Kx44Oz44OB44Kv-E/6LGK5bO25Yy6-E|26|

)

   

4813-3 Re:Re:Re:カテゴリーが壊れてしまいました martin @ Nov 27, 2010 19:14 URL

こんにちは。
こちらでは、ownerディレクトリに出来ていたのですが、ちょっと修正して
テキストボックスに表示するようにしました。
カテゴリーの定義ファイルの仕様ですが、
メインカテゴリーのみの場合は、基本的には、
パリ便り44OR44Oq5L6_44KK-E|0|

のようになり、最後の数字は、サブカテの数を表します。
サブカテ付きの場合は、そのサブカテの数が来ます。
'パリ便り44OR44Oq5L6_44KK-E|2|',
'パリ便り,美術館44OR44Oq5L6_44KK-E/576O6KGT6aSo-E|2|',
'パリ便り,飲食系44OR44Oq5L6_44KK-E/6aOy6aOf57O7-E|2|',


cat.phpにアクセスすると定義ファイルの内容がテキストボックスに表示されるので、
それをコピーして、お手元のテキストエディタに貼りつけて下さい。
そのまま、category.ini.phpで保存すれば、そのままppBlogで使える仕様になっています。
http://p2b.jp/demo/cat.txt
   

4813-4 Re:Re:Re:Re:カテゴリーが壊れてしまいました ☆アルファ☆ @ Nov 27, 2010 20:29 URL

カテゴリーが無事復活しました。

一時はどうなるかと焦りましたが、
ほんとに助かりました。

どうも、ありがとうございました。