本文整理汇总了PHP中Drupal\views\Plugin\views\display\DisplayPluginBase::render方法的典型用法代码示例。如果您正苦于以下问题:PHP DisplayPluginBase::render方法的具体用法?PHP DisplayPluginBase::render怎么用?PHP DisplayPluginBase::render使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Drupal\views\Plugin\views\display\DisplayPluginBase
的用法示例。
在下文中一共展示了DisplayPluginBase::render方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: render
/**
* Render this view for a certain display.
*
* Note: You should better use just the preview function if you want to
* render a view.
*
* @param string $display_id
* The machine name of the display, which should be rendered.
*
* @return string|null
* Return the output of the rendered view or NULL if something failed in the process.
*/
public function render($display_id = NULL)
{
$this->execute($display_id);
// Check to see if the build failed.
if (!empty($this->build_info['fail'])) {
return;
}
if (!empty($this->build_info['denied'])) {
return;
}
$exposed_form = $this->display_handler->getPlugin('exposed_form');
$exposed_form->preRender($this->result);
$module_handler = \Drupal::moduleHandler();
// @TODO In the longrun, it would be great to execute a view without
// the theme system at all. See https://www.drupal.org/node/2322623.
$active_theme = \Drupal::theme()->getActiveTheme();
$themes = array_keys($active_theme->getBaseThemes());
$themes[] = $active_theme->getName();
// Check for already-cached output.
if (!empty($this->live_preview)) {
$cache = FALSE;
} else {
/** @var \Drupal\views\Plugin\views\cache\CachePluginBase $cache */
$cache = $this->display_handler->getPlugin('cache');
}
// Run preRender for the pager as it might change the result.
if (!empty($this->pager)) {
$this->pager->preRender($this->result);
}
// Initialize the style plugin.
$this->initStyle();
if (!isset($this->response)) {
// Set the response so other parts can alter it.
$this->response = new Response('', 200);
}
// Give field handlers the opportunity to perform additional queries
// using the entire resultset prior to rendering.
if ($this->style_plugin->usesFields()) {
foreach ($this->field as $id => $handler) {
if (!empty($this->field[$id])) {
$this->field[$id]->preRender($this->result);
}
}
}
$this->style_plugin->preRender($this->result);
// Let each area handler have access to the result set.
$areas = array('header', 'footer');
// Only call preRender() on the empty handlers if the result is empty.
if (empty($this->result)) {
$areas[] = 'empty';
}
foreach ($areas as $area) {
foreach ($this->{$area} as $handler) {
$handler->preRender($this->result);
}
}
// Let modules modify the view just prior to rendering it.
$module_handler->invokeAll('views_pre_render', array($this));
// Let the themes play too, because pre render is a very themey thing.
foreach ($themes as $theme_name) {
$function = $theme_name . '_views_pre_render';
if (function_exists($function)) {
$function($this);
}
}
$this->display_handler->output = $this->display_handler->render();
$exposed_form->postRender($this->display_handler->output);
if ($cache) {
$cache->postRender($this->display_handler->output);
}
// Let modules modify the view output after it is rendered.
$module_handler->invokeAll('views_post_render', array($this, &$this->display_handler->output, $cache));
// Let the themes play too, because post render is a very themey thing.
foreach ($themes as $theme_name) {
$function = $theme_name . '_views_post_render';
if (function_exists($function)) {
$function($this);
}
}
return $this->display_handler->output;
}
示例2: render
/**
* Render this view for a certain display.
*
* Note: You should better use just the preview function if you want to
* render a view.
*
* @param string $display_id
* The machine name of the display, which should be rendered.
*
* @return string|null
* Return the output of the rendered view or NULL if something failed in the process.
*/
public function render($display_id = NULL)
{
$this->execute($display_id);
// Check to see if the build failed.
if (!empty($this->build_info['fail'])) {
return;
}
if (!empty($this->build_info['denied'])) {
return;
}
$exposed_form = $this->display_handler->getPlugin('exposed_form');
$exposed_form->preRender($this->result);
$module_handler = \Drupal::moduleHandler();
// Check for already-cached output.
if (!empty($this->live_preview)) {
$cache = FALSE;
} else {
$cache = $this->display_handler->getPlugin('cache');
}
if ($cache && $cache->cacheGet('output')) {
} else {
if ($cache) {
$cache->cacheStart();
}
// Run preRender for the pager as it might change the result.
if (!empty($this->pager)) {
$this->pager->preRender($this->result);
}
// Initialize the style plugin.
$this->initStyle();
if (!isset($this->response)) {
// Set the response so other parts can alter it.
$this->response = new Response('', 200);
}
// Give field handlers the opportunity to perform additional queries
// using the entire resultset prior to rendering.
if ($this->style_plugin->usesFields()) {
foreach ($this->field as $id => $handler) {
if (!empty($this->field[$id])) {
$this->field[$id]->preRender($this->result);
}
}
}
$this->style_plugin->preRender($this->result);
// Let each area handler have access to the result set.
$areas = array('header', 'footer');
// Only call preRender() on the empty handlers if the result is empty.
if (empty($this->result)) {
$areas[] = 'empty';
}
foreach ($areas as $area) {
foreach ($this->{$area} as $handler) {
$handler->preRender($this->result);
}
}
// Let modules modify the view just prior to rendering it.
$module_handler->invokeAll('views_pre_render', array($this));
// Let the themes play too, because pre render is a very themey thing.
if (isset($GLOBALS['base_theme_info']) && isset($GLOBALS['theme'])) {
foreach ($GLOBALS['base_theme_info'] as $base) {
$module_handler->invoke($base->getName(), 'views_pre_render', array($this));
}
$module_handler->invoke($GLOBALS['theme'], 'views_pre_render', array($this));
}
$this->display_handler->output = $this->display_handler->render();
if ($cache) {
$cache->cacheSet('output');
}
}
$exposed_form->postRender($this->display_handler->output);
if ($cache) {
$cache->postRender($this->display_handler->output);
}
// Let modules modify the view output after it is rendered.
$module_handler->invokeAll('views_post_render', array($this, &$this->display_handler->output, $cache));
// Let the themes play too, because post render is a very themey thing.
if (isset($GLOBALS['base_theme_info']) && isset($GLOBALS['theme'])) {
foreach ($GLOBALS['base_theme_info'] as $base) {
$module_handler->invoke($base->getName(), 'views_post_render', array($this));
}
$module_handler->invoke($GLOBALS['theme'], 'views_post_render', array($this));
}
return $this->display_handler->output;
}