concrete5で誤ってファイルを削除してしまったブロックタイプのアンインストール方法
Posted by admin at 18:25 日時 2013/09/19
例によってメモ程度に。WordPressに慣れた方はついアドオンやテーマ、ブロックタイプなどをフォルダごとサーバーから削除してしまいがちですが、concrete5ではそれぞれ管理画面からアンインストールを行う必要があります。今回はこのうちブロックタイプを誤って削除してしまった場合の対処法です。Designer Contentアドオンなどを使ってブロックタイプを自作することがあると思いますが、ブロックタイプの作成後に要らないやと思ってサーバーからファイルを削除してしまうと、管理画面のブロックタイプ一覧でこのようなエラーがでることがあります。
Fatal error: require_once() [function.require]: Failed opening required '/path/to/blocks/my_block/controller.php' ...
この場合の復旧方法ですが、とりあえず削除してしまったブロックタイプのcontroller.phpさえ復旧すればエラーは解消します。
ファイルを消してしまったブロックタイプのハンドルが my_block だった場合、消してしまった
/blocks/my_block/
ディレクトリーを再度作成し、その中に controller.php を作成し、中身は以下のようにします。
<?php defined('C5_EXECUTE') or die("Access Denied."); class MyBlockBlockController extends BlockController {}
ディレクトリ名の my_block と class 名の MyBlock が対応していることに注意してください。名前が一致していないと認識されません。class の中身は空なので機能的には何もなしですが、アンインストールするには支障ありません。
ここまでで管理画面のブロックタイプ一覧が復旧しますので、あとは管理画面から不要なブロックタイプをクリックして[削除]ボタンをクリックしてください。
ちなみに、この方法でもデータベースにブロックタイプ用のテーブルは残りっぱなしなのでphpMyAdminなどを使って削除しておきましょう。