aboutsummaryrefslogtreecommitdiff
path: root/mod/search/views/default/search/entity.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/search/views/default/search/entity.php')
-rw-r--r--mod/search/views/default/search/entity.php79
1 files changed, 47 insertions, 32 deletions
diff --git a/mod/search/views/default/search/entity.php b/mod/search/views/default/search/entity.php
index 2b08384d5..b65bad888 100644
--- a/mod/search/views/default/search/entity.php
+++ b/mod/search/views/default/search/entity.php
@@ -2,6 +2,14 @@
/**
* Elgg search entity
*
+ * 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)
+ *
* @package Elgg
* @subpackage Core
* @author Curverider Ltd
@@ -10,46 +18,53 @@
$entity = $vars['entity'];
-// 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('profile/icon', array('entity' => $entity, 'size' => 'tiny'));
-} elseif ($owner = $entity->getOwnerEntity()) {
- $icon = elgg_view('profile/icon', array('entity' => $owner, 'size' => '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(
- 'graphics/icon', array(
- 'entity' => $entity,
- 'size' => 'tiny',
- ));
+$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('profile/icon', array('entity' => $entity, 'size' => 'small'));
+ } elseif ($owner = $entity->getOwnerEntity()) {
+ $icon = elgg_view('profile/icon', array('entity' => $owner, 'size' => 'small'));
+ } 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(
+ 'graphics/icon', array(
+ 'entity' => $entity,
+ 'size' => 'small',
+ ));
+ }
}
$title = $entity->getVolatileData('search_matched_title');
$description = $entity->getVolatileData('search_matched_description');
$extra_info = $entity->getVolatileData('search_matched_extra');
-$url = $entity->getURL();
-
-if (!$title) {
- $title = elgg_echo('untitled');
+$url = $entity->getVolatileData('search_url');
+if (!$url) {
+ $url = $entity->getURL();
}
-
$title = "<a href=\"$url\">$title</a>";
-$tc = $entity->time_created;
-$tu = $entity->time_updated;
-$time = friendly_time(($tu > $tc) ? $tu : $tc);
-
-echo <<<___END
+$time = $entity->getVolatileData('search_time');
+if (!$time) {
+ $tc = $entity->time_created;
+ $tu = $entity->time_updated;
+ $time = friendly_time(($tu > $tc) ? $tu : $tc);
+}
+?>
<div class="search_listing clearfloat">
- <div class="search_listing_icon">$icon</div>
+ <div class="search_listing_icon"><?php echo $icon; ?></div>
<div class="search_listing_info">
- <p class="entity_title">$title</p>$description
- <p class="entity_subtext">$time $extra_info</p>
+ <p class="item_title"><?php echo $title; ?></p>
+ <p class="item_description"><?php echo $description; ?></p>
+<?php
+if ($extra_info) {
+?>
+ <p class="item_extra"><?php echo $extra_info; ?></p>
+<?php
+}
+?>
+ <p class="item_timestamp"><?php echo $time; ?></p>
</div>
</div>
-___END;
-
-// php bug. must have close tag after heredocs
-?> \ No newline at end of file