Re: エラーに関して Call to a member function setBlockObject() on a non-object

2016年9月20日 at 13:07

進展がありましたので、ご報告させていただきます。
本家フォーラムに同じエラーの解決方法の投稿があったため、
試したところ解決しました。

http://www.concrete5.org/community/forums/5-7-discussion/call-to-a-member-function-setblockobject-on-a-non-object


行った内容を残しておきます。

/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;
}

タグ: