2016年11月20日 13:34
カテゴリ: ConcreteCMS
カテゴリ: ConcreteCMS
INDEX - 目次 -
Call to a member function setBlockObject
珍しくconcrete5で困ったエラーが出ました。
原因は不明ですが、いつもの使い方と違うのは、エリア追加を多用したことかな。
それがダメだったのかはわかりません。
解決法
concrete5のフォーラムにこのエラーのことがあったので助かりました。
/application/blocks
の中に
core_area_layoutフォルダを作って、その中に
①controller.php
②view.php
を置く。
controller.phpの中身は
<?phpnamespace Application\Block\CoreAreaLayout;use Concrete\Core\Area\Layout\Layout as AreaLayout;class Controller extends \Concrete\Block\CoreAreaLayout\Controller {public function getAreaLayoutObject(){if ($this->arLayoutID) {$arLayout = AreaLayout::getByID($this->arLayoutID);$b = $this->getBlockObject();if (is_object($arLayout) && is_object($b)) {$arLayout->setBlockObject($b);}return $arLayout;}}}
view.phpの中身は
<?phpdefined('C5_EXECUTE') or die("Access Denied.");$a = $b->getBlockAreaObject();if(isset($formatter)) {$container = $formatter->getLayoutContainerHtmlObject();foreach($columns as $column) {$html = $column->getColumnHtmlObject();$container->appendChild($html);}print $container;}
だそうです。
見事直りました。
直ってからこのエラーが出ていたページの編集モードに入ると、消せない&表示もされないエリアが1ヶ所あったので、そこが何かエラーになったのでしょうね。
この記事が少しでも役立ったらハートを押してね!
【レンタルサーバーご検討中の方へ】
このブログはエックスサーバーを使用しています。
さくらインターネットも使いやすいですよ。
