function viewreference_get_view in View reference 7.3
Same name and namespace in other branches
- 6.3 viewreference.module \viewreference_get_view()
Get an array of data and rendered HTML items that are useful in theming the formatter output.
Parameters
$element: An array of parameters used in viewing the element.
$params: An array of special features needed to be built: 'embed' - The $view->preview() of the view display 'title' - The display title of the view display 'link' - A link to the view display, or the title if link not available. 'path' - The path to the view display, or the title if path not available. 'contextual' - The contextual links.
Return value
The array of useful data about the view.
6 calls to viewreference_get_view()
- theme_viewreference_formatter_default in ./
viewreference.module - Theme function for 'default' viewreference field formatter.
- theme_viewreference_formatter_full in ./
viewreference.module - Theme function for 'full' viewreference field formatter.
- theme_viewreference_formatter_link in ./
viewreference.module - Theme function for 'link' viewreference field formatter.
- theme_viewreference_formatter_path in ./
viewreference.module - Theme function for 'path' viewreference field formatter.
- theme_viewreference_formatter_plain in ./
viewreference.module - Theme function for 'plain' viewreference field formatter.
File
- ./
viewreference.module, line 475 - Defines a field type for referencing a view from a node.
Code
function viewreference_get_view($element, $params = array()) {
if (!empty($element['item']['view_id'])) {
if (!empty($element['view'])) {
$view = $element['view'];
}
if (empty($view['view']) || empty($view['display']) || empty($view['name'])) {
$view_id_parts = explode(':', $element['item']['view_id']);
$view['name'] = $view_id_parts[0];
$view['display'] = $view_id_parts[1];
$view['view'] = views_get_view($view['name']);
}
if ($view['view'] && $view['view']
->access($view['display'])) {
// Save $_GET['q'] so it can be restored before returning from this function.
//$q = $_GET['q'];
if (empty($view['embed']) && (in_array('embed', $params) || !empty($element['field']['settings']['skip_empty']))) {
$view['args'] = viewreference_get_element_args($element);
//if (!empty($view['args'])) {
// $_GET['q'] .= '/' . implode('/', $view['args']);
//}
$view['embed'] = $view['view']
->preview($view['display'], $view['args']);
// If the view is empty and the viewreference field is configured with
// "skip empty views" enabled, skip outputting the view.
if (!empty($element['field']['settings']['skip_empty']) && empty($view['view']->result)) {
// Restore $_GET['q'] before skipping the view.
//$_GET['q'] = $q;
return FALSE;
}
}
if (in_array('title', $params) && empty($view['title']) || in_array('link', $params) && empty($view['link'])) {
$view['display_key'] = $view['display'];
$view['title'] = theme('viewreference_display_title', $view);
if (in_array('link', $params) && empty($view['link'])) {
$disabled = isset($view['view']->disabled) ? $view['view']->disabled : FALSE;
if (isset($view['view']->display[$view['display']]->display_options['path']) && !$disabled) {
$view['args'] = isset($view['args']) ? $view['args'] : viewreference_get_element_args($element);
$view['url_args'] = implode('/', $view['args']);
$view['path'] = $view['view']->display[$view['display']]->display_options['path'];
if ($view['url_args']) {
$view['path'] .= '/' . $view['url_args'];
}
$view['link'] = l($view['title'], $view['view']
->get_url($view['args'], $view['path']));
}
else {
$view['link'] = $view['title'];
}
}
}
if (in_array('contextual', $params) && empty($view['contextual'])) {
$view['contextual'] = '';
if (module_exists('contextual')) {
$contextual = contextual_element_info();
views_add_contextual_links($contextual['contextual_links'], 'special_block_-exp', $view['view'], $view['display']);
if (!empty($contextual['contextual_links']['#contextual_links'])) {
$view['contextual'] = drupal_render($contextual['contextual_links']);
}
}
}
//$_GET['q'] = $q;
return $view;
}
}
}