本文整理汇总了PHP中BlockType::getInstance方法的典型用法代码示例。如果您正苦于以下问题:PHP BlockType::getInstance方法的具体用法?PHP BlockType::getInstance怎么用?PHP BlockType::getInstance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BlockType
的用法示例。
在下文中一共展示了BlockType::getInstance方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: render
/**
* Renders a particular view for a block or a block type
* @param Block | BlockType $obj
* @param string $view
* @param array $args
*/
public function render($obj, $view = 'view', $args = array())
{
if ($this->hasRendered) {
return false;
}
$this->blockObj = $obj;
$customAreaTemplates = array();
if ($obj instanceof BlockType) {
$bt = $obj;
$base = $obj->getBlockTypePath();
} else {
$bFilename = $obj->getBlockFilename();
$b = $obj;
$base = $b->getBlockPath();
$this->block = $b;
$this->c = $b->getBlockCollectionObject();
if ($bFilename == '' && is_object($this->area)) {
$customAreaTemplates = $this->area->getCustomTemplates();
$btHandle = $b->getBlockTypeHandle();
if (isset($customAreaTemplates[$btHandle])) {
$bFilename = $customAreaTemplates[$btHandle];
}
}
}
$btHandle = $obj->getBlockTypeHandle();
if (!isset($this->controller)) {
if ($obj instanceof Block) {
$this->controller = $obj->getInstance();
$this->controller->setBlockObject($obj);
} else {
$this->controller = Loader::controller($obj);
}
}
if (in_array($view, array('view', 'add', 'edit', 'composer'))) {
$_action = $view;
} else {
$_action = 'view';
}
$u = new User();
$outputContent = false;
$useCache = false;
$page = Page::getCurrentPage();
if ($view == 'view') {
if (ENABLE_BLOCK_CACHE && $this->controller->cacheBlockOutput() && $obj instanceof Block) {
if ((!$u->isRegistered() || $this->controller->cacheBlockOutputForRegisteredUsers()) && ($_SERVER['REQUEST_METHOD'] != 'POST' || $this->controller->cacheBlockOutputOnPost() == true)) {
$useCache = true;
}
if ($useCache) {
$outputContent = $obj->getBlockCachedOutput($this->area);
}
}
}
if ($outputContent == false) {
$this->controller->setupAndRun($_action);
}
extract($this->controller->getSets());
extract($this->controller->getHelperObjects());
$headerItems = $this->controller->headerItems;
extract($args);
if ($this->controller->getRenderOverride() != '') {
$_filename = $this->controller->getRenderOverride() . '.php';
}
if ($view == 'scrapbook') {
$template = $this->getBlockPath(FILENAME_BLOCK_VIEW_SCRAPBOOK) . '/' . FILENAME_BLOCK_VIEW_SCRAPBOOK;
if (!file_exists($template)) {
$view = 'view';
}
}
if (!in_array($view, array('composer', 'view', 'add', 'edit', 'scrapbook'))) {
// then we're trying to render a custom view file, which we'll pass to the bottom functions as $_filename
$_filename = $view . '.php';
$view = 'view';
}
switch ($view) {
case 'scrapbook':
$header = DIR_FILES_ELEMENTS_CORE . '/block_header_view.php';
$footer = DIR_FILES_ELEMENTS_CORE . '/block_footer_view.php';
break;
case 'composer':
case 'view':
if (!$outputContent) {
if (!isset($_filename)) {
$_filename = FILENAME_BLOCK_VIEW;
}
$bvt = new BlockViewTemplate($obj);
if ($bFilename) {
$bvt->setBlockCustomTemplate($bFilename);
// this is PROBABLY already set by the method above, but in the case that it's passed by area we have to set it here
} else {
if ($_filename != FILENAME_BLOCK_VIEW) {
$bvt->setBlockCustomRender($_filename);
}
}
$template = $bvt->getTemplate();
//.........这里部分代码省略.........