aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/elgglib.php
diff options
context:
space:
mode:
Diffstat (limited to 'engine/lib/elgglib.php')
-rw-r--r--engine/lib/elgglib.php64
1 files changed, 64 insertions, 0 deletions
diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php
index 2aabe5c36..abfa28b35 100644
--- a/engine/lib/elgglib.php
+++ b/engine/lib/elgglib.php
@@ -277,6 +277,70 @@
return false;
}
+
+ /**
+ * Get the icon for an entity
+ *
+ * @param ElggEntity $entity The entity (passed an entity rather than a guid to handle non-created entities)
+ * @param string $size
+ */
+ function elgg_get_entity_icon_url(ElggEntity $entity, $size = 'medium')
+ {
+ global $CONFIG;
+
+ $size = sanitise_string($size);
+ switch (strtolower($size))
+ {
+ case 'master':
+ case 'large' : $size = 'large'; break;
+
+ case 'topbar' :
+ case 'tiny' : $size = 'tiny'; break;
+
+ case 'small' : $size = 'small'; break;
+
+ case 'medium' :
+ default: $size = 'medium';
+ }
+
+ $url = false;
+
+ $view = elgg_get_viewtype();
+ $location = elgg_get_view_location($view);
+
+ // Use the object/subtype
+ $type = $entity->type;
+ $subtype = $entity->subtype;
+
+ if (!$url)
+ {
+ $tmp_url = $location . "{$view}/graphics/icons/$type/$subtype/$size.png";
+ if (file_exists($tmp_url))
+ $url = $tmp_url;
+ }
+
+ // Get the default for the object
+ if (!$url)
+ {
+ $tmp_url = $location . "{$view}/graphics/icons/$type/default/$size.png";
+ if (file_exists($tmp_url))
+ $url = $tmp_url;
+ }
+
+ // If url still blank then attempt to use the view's defaults
+ if (!$url)
+ {
+ $tmp_url = $location . "{$view}/graphics/icons/default/$size.png";
+ if (file_exists($tmp_url))
+ $url = $tmp_url;
+ }
+
+ // If all else fails
+ if (!$url)
+ $url = $CONFIG->url . "_graphics/icons/default/$size.png";
+
+ return $url;
+ }
/**
* When given an entity, views it intelligently.