diff options
Diffstat (limited to 'engine/lib')
-rw-r--r-- | engine/lib/views.php | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/engine/lib/views.php b/engine/lib/views.php index 23ce738a1..553c327a0 100644 --- a/engine/lib/views.php +++ b/engine/lib/views.php @@ -889,40 +889,45 @@ function elgg_view_entity_icon(ElggEntity $entity, $size = 'medium', $vars = arr * - ElggEntity 'annotation' The annotation being viewed. * * @param ElggAnnotation $annotation The annotation to display - * @param bool $full_view Display the full view? + * @param array $vars Variable array for view. * @param bool $bypass If false, will not pass to a custom * template handler. {@see set_template_handler()} * @param bool $debug Complain if views are missing * - * @return string HTML (etc) to display + * @return string/false Rendered annotation */ -function elgg_view_annotation(ElggAnnotation $annotation, $full_view = true, $bypass = true, $debug = false) { +function elgg_view_annotation(ElggAnnotation $annotation, array $vars = array(), $bypass = true, $debug = false) { global $autofeed; $autofeed = true; - $params = array( - 'annotation' => $annotation, - 'full_view' => $full_view, + $defaults = array( + 'full_view' => true, ); + $vars = array_merge($defaults, $vars); + $vars['annotation'] = $annotation; + + // @todo setting the view on an annotation is not advertised anywhere + // do we want to keep this? $view = $annotation->view; if (is_string($view)) { - return elgg_view($view, $params, $bypass, $debug); + return elgg_view($view, $vars, $bypass, $debug); } + // @todo would be better to always make sure name is initialized properly $name = $annotation->name; $intname = (int) $name; if ("{$intname}" == "{$name}") { $name = get_metastring($intname); } if (empty($name)) { - return ""; + return false; } - if (elgg_view_exists("annotation/{$name}")) { - return elgg_view("annotation/{$name}", $params, $bypass, $debug); + if (elgg_view_exists("annotation/$name")) { + return elgg_view("annotation/$name", $vars, $bypass, $debug); } else { - return elgg_view("annotation/default", $params, $bypass, $debug); + return elgg_view("annotation/default", $vars, $bypass, $debug); } } @@ -1252,8 +1257,6 @@ function elgg_view_form($action, $form_vars = array(), $body_vars = array()) { */ function elgg_view_list_item($item, array $vars = array()) { - $full_view = elgg_extract('full_view', $vars, false); - switch ($item->getType()) { case 'user': case 'object': @@ -1261,10 +1264,11 @@ function elgg_view_list_item($item, array $vars = array()) { case 'site': return elgg_view_entity($item, $vars); case 'annotation': - return elgg_view_annotation($item, $full_view); + return elgg_view_annotation($item, $vars); case 'river': - return elgg_view_river_item($item); + return elgg_view_river_item($item, $vars); default: + return false; break; } } |