concrete5.7で出たエラー

2016年11月20日 13:34
カテゴリ: ConcreteCMS

Call to a member function setBlockObject

珍しくconcrete5で困ったエラーが出ました。

原因は不明ですが、いつもの使い方と違うのは、エリア追加を多用したことかな。

それがダメだったのかはわかりません。

解決法

concrete5のフォーラムにこのエラーのことがあったので助かりました。

/application/blocks
の中に
core_area_layoutフォルダを作って、その中に

①controller.php
②view.php

を置く。

controller.phpの中身は

<?php
namespace 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の中身は

<?php
defined('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ヶ所あったので、そこが何かエラーになったのでしょうね。



 

この記事が少しでも役立ったらハートを押してね!

執筆者

大岩智将

大岩 智将 OHIWA Tomoyuki

兵庫県加古川市を拠点に活動するWebディレクター / デザイナー。「縁グラフィクション」代表。 お客様との「縁」を大切に、心に響くクリエイティブを提案しています。 日々の制作の裏側や、役立つTipsをブログで発信中。→詳しい紹介

【レンタルサーバーご検討中の方へ】
このブログはエックスサーバーを使用しています。
さくらインターネットも使いやすいですよ。