public function saveImage($name, $title, $index) { if ($_FILES[$name]['error'] != 0) { return FALSE; } $info = $_FILES[$name]; // delete original image if exists $options = array('relationship_guid' => $this->getGUID(), 'relationship' => 'image', 'metadata_name_value_pair' => array('name' => 'project_image', 'value' => "{$index}")); if ($old_image = elgg_get_entities_from_relationship($options)) { if ($old_image[0] instanceof ElggFile) { $old_image[0]->delete(); } } $image = new ElggFile(); $prefix = "plugins/"; $store_name_base = $prefix . strtolower($this->getGUID() . "_{$name}"); $image->title = $title; $image->access_id = $this->access_id; $image->setFilename($store_name_base . '.jpg'); $image->setMimetype('image/jpeg'); $image->originalfilename = $info['name']; $image->project_image = $index; // used for deletion on replacement $image->save(); $uf = get_uploaded_file($name); if (!$uf) { return FALSE; } $image->open("write"); $image->write($uf); $image->close(); add_entity_relationship($this->guid, 'image', $image->guid); // create a thumbnail if ($this->saveThumbnail($image, $store_name_base . '_thumb.jpg') != TRUE) { $image->delete(); return FALSE; } return TRUE; }