]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #4634: Restores pre 1.7 group profile pics after update
authorSteve Clay <steve@mrclay.org>
Fri, 29 Jun 2012 01:52:30 +0000 (21:52 -0400)
committerSteve Clay <steve@mrclay.org>
Fri, 29 Jun 2012 01:52:30 +0000 (21:52 -0400)
engine/classes/ElggGroup.php
mod/groups/icon.php
mod/groups/start.php

index f7f67bf41a7ef03f3200f467ef4b990f16208182..121186196a1c8709cd97dea80fc052344f1932e2 100644 (file)
@@ -16,8 +16,6 @@ class ElggGroup extends ElggEntity
         * Sets the type to group.
         *
         * @return void
-        *
-        * @deprecated 1.8 Use initializeAttributes
         */
        protected function initializeAttributes() {
                parent::initializeAttributes();
index f86f84fa5c1b8669912328c59a2e7b9a4753d9f1..1bd240ea64c24bd17a9d1e8c943df581f7dbcbe4 100644 (file)
@@ -8,7 +8,13 @@
 require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
 
 $group_guid = get_input('group_guid');
+
+/* @var ElggGroup $group */
 $group = get_entity($group_guid);
+if (!($group instanceof ElggGroup)) {
+       header("HTTP/1.1 404 Not Found");
+       exit;
+}
 
 // If is the same ETag, content didn't changed.
 $etag = $group->icontime . $group_guid;
index c8198371bee4a4565aba97707d9bc0030313a9aa..d6c2a47d25eeeecccfa7a4292cd354a80d09d69e 100644 (file)
@@ -284,12 +284,21 @@ function groups_url($entity) {
  * @return string Relative URL
  */
 function groups_icon_url_override($hook, $type, $returnvalue, $params) {
+       /* @var ElggGroup $group */
        $group = $params['entity'];
        $size = $params['size'];
 
-       if (isset($group->icontime)) {
+       $icontime = $group->icontime;
+       // handle missing metadata (pre 1.7 installations)
+       if (null === $icontime) {
+               $file = new ElggFile();
+               $file->owner_guid = $group->owner_guid;
+               $file->setFilename("groups/" . $group->guid . "large.jpg");
+               $icontime = $file->exists() ? time() : 0;
+               create_metadata($group->guid, 'icontime', $icontime, 'integer', $group->owner_guid, ACCESS_PUBLIC);
+       }
+       if ($icontime) {
                // return thumbnail
-               $icontime = $group->icontime;
                return "groupicon/$group->guid/$size/$icontime.jpg";
        }