}
/**
 * Convert 'hjfile' to 'file'
 */
$subtypeIdFrom = add_subtype('object', 'hjfile');
$subtypeIdTo = add_subtype('object', 'file');
$dbprefix = elgg_get_config('dbprefix');
$query = "\tUPDATE {$dbprefix}entities e\r\n\t\t\t\tJOIN {$dbprefix}metadata md ON md.entity_guid = e.guid\r\n\t\t\t\tJOIN {$dbprefix}metastrings msn ON msn.id = md.name_id\r\n\t\t\t\tJOIN {$dbprefix}metastrings msv ON msv.id = md.value_id\r\n\t\t\t\tSET e.subtype = {$subtypeIdTo}\r\n\t\t\t\tWHERE e.subtype = {$subtypeIdFrom} AND msn.string = 'handler' AND msv.string = 'hjwall' ";
$wall_files = new ElggBatch('elgg_get_entities_from_metadata', array('types' => 'object', 'subtypes' => 'file', 'metadata_name_value_pairs' => array('name' => 'handler', 'value' => 'hjwall'), 'limit' => false));
foreach ($wall_files as $file) {
    // Regenerate icons
    if ($file->simpletype == 'image') {
        $thumb_sizes = array('tiny' => 16, 'small' => 25, 'medium' => 40, 'large' => 100, 'preview' => 250, 'master' => 500, 'full' => 1024);
        foreach ($thumb_sizes as $ths => $dim) {
            $thumb = new ElggFile();
            $thumb->setFilenameOnFilestore("hjfile/{$file->getGUID()}{$ths}.jpg");
            unlink($thumb->getFilenameOnFilestore());
        }
        $file->icontime = time();
        $thumbnail = get_resized_image_from_existing_file($file->getFilenameOnFilestore(), 60, 60, true);
        if ($thumbnail) {
            $thumb = new ElggFile();
            $thumb->setFilename($prefix . "thumb" . $filestorename);
            $thumb->open("write");
            $thumb->write($thumbnail);
            $thumb->close();
            $file->thumbnail = $prefix . "thumb" . $filestorename;
            unset($thumbnail);
        }
        $thumbsmall = get_resized_image_from_existing_file($file->getFilenameOnFilestore(), 153, 153, true);
        if ($thumbsmall) {
Пример #2
0
 public function upgrade20140211()
 {
     $ia = elgg_set_ignore_access(true);
     /**
      * Wall owner should become the container of the wall post
      * wall_owner relationship should go away
      */
     $wall_posts = new \ElggBatch('elgg_get_entities_from_relationship', array('types' => 'object', 'subtypes' => 'hjwall', 'relationship' => 'wall_owner', 'limit' => false));
     foreach ($wall_posts as $wall_post) {
         $relationships = get_entity_relationships($wall_post->guid, true);
         foreach ($relationships as $relationship) {
             if ($relationship->relationship !== 'wall_owner') {
                 continue;
             }
             if ($relationship->guid_one !== $wall_post->container_guid) {
                 $wall_post->container_guid = $relationship->guid_one;
                 if ($wall_post->save()) {
                     $relationship->delete();
                 }
             }
         }
     }
     /**
      * Convert attachment metadata to 'attached' relationship for entities
      * and 'html' metadata for the rest
      */
     $wall_posts = new \ElggBatch('elgg_get_entities_from_metadata', array('types' => 'object', 'subtypes' => 'hjwall', 'metadata_names' => 'attachment', 'limit' => false));
     foreach ($wall_posts as $wall_post) {
         $attachment = $wall_post->attachment;
         if (is_numeric($attachment) && ($attached_entity = get_entity($attachment))) {
             add_entity_relationship($attached_entity->guid, 'attached', $wall_post->guid);
         } else {
             $wall_post->html = $attachment;
         }
         unset($wall_post->attachment);
     }
     /**
      * Convert 'hjfile' to 'file'
      */
     $subtypeIdFrom = add_subtype('object', 'hjfile');
     $subtypeIdTo = add_subtype('object', 'file');
     $dbprefix = elgg_get_config('dbprefix');
     $query = "\tUPDATE {$dbprefix}entities e\n\t\t\t\tJOIN {$dbprefix}metadata md ON md.entity_guid = e.guid\n\t\t\t\tJOIN {$dbprefix}metastrings msn ON msn.id = md.name_id\n\t\t\t\tJOIN {$dbprefix}metastrings msv ON msv.id = md.value_id\n\t\t\t\tSET e.subtype = {$subtypeIdTo}\n\t\t\t\tWHERE e.subtype = {$subtypeIdFrom} AND msn.string = 'handler' AND msv.string = 'hjwall' ";
     $wall_files = new \ElggBatch('elgg_get_entities_from_metadata', array('types' => 'object', 'subtypes' => 'file', 'metadata_name_value_pairs' => array('name' => 'handler', 'value' => 'hjwall'), 'limit' => false));
     foreach ($wall_files as $file) {
         // Regenerate icons
         if ($file->simpletype == 'image') {
             $thumb_sizes = array('tiny' => 16, 'small' => 25, 'medium' => 40, 'large' => 100, 'preview' => 250, 'master' => 500, 'full' => 1024);
             foreach ($thumb_sizes as $ths => $dim) {
                 $thumb = new ElggFile();
                 $thumb->setFilenameOnFilestore("hjfile/{$file->getGUID()}{$ths}.jpg");
                 unlink($thumb->getFilenameOnFilestore());
             }
             $file->icontime = time();
             $thumbnail = get_resized_image_from_existing_file($file->getFilenameOnFilestore(), 60, 60, true);
             if ($thumbnail) {
                 $thumb = new ElggFile();
                 $thumb->setFilename($prefix . "thumb" . $filestorename);
                 $thumb->open("write");
                 $thumb->write($thumbnail);
                 $thumb->close();
                 $file->thumbnail = $prefix . "thumb" . $filestorename;
                 unset($thumbnail);
             }
             $thumbsmall = get_resized_image_from_existing_file($file->getFilenameOnFilestore(), 153, 153, true);
             if ($thumbsmall) {
                 $thumb->setFilename($prefix . "smallthumb" . $filestorename);
                 $thumb->open("write");
                 $thumb->write($thumbsmall);
                 $thumb->close();
                 $file->smallthumb = $prefix . "smallthumb" . $filestorename;
                 unset($thumbsmall);
             }
             $thumblarge = get_resized_image_from_existing_file($file->getFilenameOnFilestore(), 600, 600, false);
             if ($thumblarge) {
                 $thumb->setFilename($prefix . "largethumb" . $filestorename);
                 $thumb->open("write");
                 $thumb->write($thumblarge);
                 $thumb->close();
                 $file->largethumb = $prefix . "largethumb" . $filestorename;
                 unset($thumblarge);
             }
         }
     }
     /**
      * Set file folder guids as plugin setting
      */
     $folders = new \ElggBatch('elgg_get_entities_from_metadata', array('types' => 'object', 'subtypes' => 'hjfilefolder', 'metadata_name_value_pairs' => array('name' => 'handler', 'value' => 'hjwall'), 'limit' => false));
     foreach ($folders as $folder) {
         elgg_set_plugin_user_setting('wall_collection', $folder->guid, $folder->owner_guid, 'hypeWall');
     }
     /**
      * Convert 'hjfilefolder' to 'wall_collection'
      */
     $subtypeIdFrom = add_subtype('object', 'hjfilefolder');
     $subtypeIdTo = add_subtype('object', 'wallcollection');
     $dbprefix = elgg_get_config('dbprefix');
     $query = "\tUPDATE {$dbprefix}entities e\n\t\t\t\tJOIN {$dbprefix}metadata md ON md.entity_guid = e.guid\n\t\t\t\tJOIN {$dbprefix}metastrings msn ON msn.id = md.name_id\n\t\t\t\tJOIN {$dbprefix}metastrings msv ON msv.id = md.value_id\n\t\t\t\tSET e.subtype = {$subtypeIdTo}\n\t\t\t\tWHERE e.subtype = {$subtypeIdFrom} AND msn.string = 'handler' AND msv.string = 'hjwall' ";
     elgg_set_ignore_access($ia);
 }