From b6ccae4fcde10809993a08dfe1af96738b3b2aea Mon Sep 17 00:00:00 2001 From: marcus Date: Wed, 8 Oct 2008 14:30:58 +0000 Subject: Closes #417 & #418 git-svn-id: https://code.elgg.org/elgg/trunk@2223 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/entities.php | 14 +++---- mod/groups/graphics/defaultlarge.jpg | Bin 10840 -> 0 bytes mod/groups/graphics/defaultmedium.jpg | Bin 2517 -> 0 bytes mod/groups/graphics/defaultsmall.jpg | Bin 1117 -> 0 bytes mod/groups/graphics/defaulttiny.jpg | Bin 965 -> 0 bytes mod/groups/start.php | 66 ++++++++++++++++++++++++++++++- mod/groups/views/default/groups/icon.php | 2 +- 7 files changed, 71 insertions(+), 11 deletions(-) delete mode 100644 mod/groups/graphics/defaultlarge.jpg delete mode 100644 mod/groups/graphics/defaultmedium.jpg delete mode 100644 mod/groups/graphics/defaultsmall.jpg delete mode 100644 mod/groups/graphics/defaulttiny.jpg diff --git a/engine/lib/entities.php b/engine/lib/entities.php index 3a6e3c035..aca26ddd5 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -1869,8 +1869,6 @@ // Step one, see if anyone knows how to render this in the current view $url = trigger_plugin_hook('entity:icon:url', $entity->getType(), array('entity' => $entity, 'viewtype' => $viewtype, 'size' => $size), $url); - if(!@getimagesize($url)) - $url = false; // If not exist then don't use the url // Fail, so use default if (!$url) @@ -1966,15 +1964,15 @@ $viewtype = $params['viewtype']; $size = $params['size']; - $url = $CONFIG->url . "views/$viewtype/graphics/icons/$type/$subtype/$size.png"; + $url = "views/$viewtype/graphics/icons/$type/$subtype/$size.png"; - if(!@getimagesize($url)) - $url = $CONFIG->url . "views/$viewtype/graphics/icons/$type/default/$size.png"; + if (!@getimagesize($CONFIG->path . $url)) + $url = "views/$viewtype/graphics/icons/$type/default/$size.png"; - if(!@getimagesize($url)) - $url = $CONFIG->url . "views/$viewtype/graphics/icons/default/$size.png"; + if(!@getimagesize($CONFIG->path . $url)) + $url = "views/$viewtype/graphics/icons/default/$size.png"; - return $url; + return $CONFIG->url . $url; } } diff --git a/mod/groups/graphics/defaultlarge.jpg b/mod/groups/graphics/defaultlarge.jpg deleted file mode 100644 index 8b7576c47..000000000 Binary files a/mod/groups/graphics/defaultlarge.jpg and /dev/null differ diff --git a/mod/groups/graphics/defaultmedium.jpg b/mod/groups/graphics/defaultmedium.jpg deleted file mode 100644 index 996efac47..000000000 Binary files a/mod/groups/graphics/defaultmedium.jpg and /dev/null differ diff --git a/mod/groups/graphics/defaultsmall.jpg b/mod/groups/graphics/defaultsmall.jpg deleted file mode 100644 index 3bda4a3c7..000000000 Binary files a/mod/groups/graphics/defaultsmall.jpg and /dev/null differ diff --git a/mod/groups/graphics/defaulttiny.jpg b/mod/groups/graphics/defaulttiny.jpg deleted file mode 100644 index a83495ee6..000000000 Binary files a/mod/groups/graphics/defaulttiny.jpg and /dev/null differ diff --git a/mod/groups/start.php b/mod/groups/start.php index 51fcf9fda..780e06d6f 100644 --- a/mod/groups/start.php +++ b/mod/groups/start.php @@ -36,7 +36,7 @@ register_entity_url_handler('groups_url','group','all'); // Register an icon handler for groups - register_page_handler('icon','groups_icon_handler'); + register_page_handler('groupicon','groups_icon_handler'); // Register some actions register_action("groups/edit",false, $CONFIG->pluginspath . "groups/actions/edit.php"); @@ -78,7 +78,10 @@ 'interests' => 'tags', 'website' => 'url', - ); + ); + + // Now override icons + register_plugin_hook('entity:icon:url', 'group', 'groups_groupicon_hook'); } /** @@ -194,6 +197,27 @@ } } + } + + /** + * Handle group icons. + * + * @param unknown_type $page + */ + function groups_icon_handler($page) { + + global $CONFIG; + + // The username should be the file we're getting + if (isset($page[0])) { + set_input('group_guid',$page[0]); + } + if (isset($page[1])) { + set_input('size',$page[1]); + } + // Include the standard profile index + include($CONFIG->pluginspath . "groups/graphics/icon.php"); + } /** @@ -310,6 +334,44 @@ return true; + } + + /** + * This hooks into the getIcon API and provides nice user icons for users where possible. + * + * @param unknown_type $hook + * @param unknown_type $entity_type + * @param unknown_type $returnvalue + * @param unknown_type $params + * @return unknown + */ + function groups_groupicon_hook($hook, $entity_type, $returnvalue, $params) + { + global $CONFIG; + + if ((!$returnvalue) && ($hook == 'entity:icon:url') && ($params['entity'] instanceof ElggGroup)) + { + $entity = $params['entity']; + $type = $entity->type; + $viewtype = $params['viewtype']; + $size = $params['size']; + + if ($icontime = $entity->icontime) { + $icontime = "{$icontime}"; + } else { + $icontime = "default"; + } + + $filehandler = new ElggFile(); + $filehandler->owner_guid = $entity->owner_guid; + $filehandler->setFilename("groups/" . $entity->guid . $size . ".jpg"); + + if ($filehandler->exists()) { + $url = $CONFIG->url . "pg/groupicon/{$entity->guid}/$size/$icontime.jpg"; + + return $url; + } + } } // Register a handler for create groups diff --git a/mod/groups/views/default/groups/icon.php b/mod/groups/views/default/groups/icon.php index a7535b256..ebfa862a6 100644 --- a/mod/groups/views/default/groups/icon.php +++ b/mod/groups/views/default/groups/icon.php @@ -38,7 +38,7 @@ ?>
- title="" /> + title="" />