12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- /**
- * Discussion reply view for an entity returned in a search
- *
- * Display largely controlled by a set of overrideable volatile data:
- * - search_icon (defaults to entity icon)
- * - search_matched_title
- * - search_matched_description
- * - search_matched_extra
- * - search_url (defaults to entity->getURL())
- * - search_time (defaults to entity->time_updated or entity->time_created)
- *
- * @uses $vars['entity'] Entity returned in a search
- */
- $entity = $vars['entity'];
- if (empty($entity) || !elgg_instanceof($entity, 'object', 'discussion_reply')) {
- return;
- }
- $topic = $entity->getContainerEntity();
- if (empty($topic) || !elgg_instanceof($topic, 'object', 'groupforumtopic')) {
- return;
- }
- $icon = $entity->getVolatileData('search_icon');
- if (!$icon) {
- // display the entity's owner by default if available.
- // @todo allow an option to switch to displaying the entity's icon instead.
- $type = $entity->getType();
- if ($type == 'user' || $type == 'group') {
- $icon = elgg_view_entity_icon($entity, 'tiny');
- } elseif ($owner = $entity->getOwnerEntity()) {
- $icon = elgg_view_entity_icon($owner, 'tiny');
- } else {
- // display a generic icon if no owner, though there will probably be
- // other problems if the owner can't be found.
- $icon = elgg_view_entity_icon($entity, 'tiny');
- }
- }
- $title = $entity->getVolatileData('search_matched_title');
- $description = $entity->getVolatileData('search_matched_description');
- $extra_info = $entity->getVolatileData('search_matched_extra');
- $url = $entity->getVolatileData('search_url');
- if (!$title) {
- $title = elgg_echo('discussion:search:title', array($topic->title));
- }
- if (!$url) {
- $url = $topic->getURL();
- }
- $title = "<a href=\"$url\">$title</a>";
- $time = $entity->getVolatileData('search_time');
- if (!$time) {
- $tc = $entity->time_created;
- $tu = $entity->time_updated;
- $time = elgg_view_friendly_time(($tu > $tc) ? $tu : $tc);
- }
- $body = "<p class=\"mbn\">$title</p>$description";
- if ($extra_info) {
- $body .= "<p class=\"elgg-subtext\">$extra_info</p>";
- }
- $body .= "<p class=\"elgg-subtext\">$time</p>";
- echo elgg_view_image_block($icon, $body);
|