/** * {@inheritdoc} */ public function create($object) { $files = $this->getRequest()->getFiles(); if (!$files) { throw new BadRequestException('No files sent with the request.'); } $ids = array(); foreach ($files as $file_info) { // Populate the $_FILES the way file_save_upload() expects. $name = $file_info['name']; foreach ($file_info as $key => $value) { $files['files'][$key][$name] = $value; } if (!($file = $this->fileSaveUpload($name, $files))) { throw new BadRequestException('Unacceptable file sent with the request.'); } // Required to be able to reference this file. file_usage_add($file, 'restful', 'files', $file->fid); $ids[] = $file->fid; } $return = array(); foreach ($ids as $id) { // The access calls use the request method. Fake the view to be a GET. $old_request = $this->getRequest(); $this->getRequest()->setMethod(RequestInterface::METHOD_GET); try { $return[] = array($this->view($id)); } catch (ForbiddenException $e) { // A forbidden element should not forbid access to the whole list. } // Put the original request back to a POST. $this->request = $old_request; } return $return; }
/** * Create and save files. * * @return array * Array with a list of file IDs that were created and saved. * * @throws \Exception */ public function createEntity() { if (!$_FILES) { throw new \RestfulBadRequestException('No files sent with the request.'); } $ids = array(); foreach ($_FILES as $file_info) { // Populate the $_FILES the way file_save_upload() expects. $name = $file_info['name']; foreach ($file_info as $key => $value) { $_FILES['files'][$key][$name] = $value; } $file = $this->fileSaveUpload($name); // Change the file status from temporary to permanent. $file->status = FILE_STATUS_PERMANENT; file_save($file); // Required to be able to reference this file. file_usage_add($file, 'restful', 'files', $file->fid); $ids[] = $file->fid; } $return = array(); foreach ($ids as $id) { $return[] = $this->viewEntity($id); } return $return; }
function az_commercial_settings_form_submit(&$form, $form_state) { $image_fid = $form_state['values']['main_background']; $image = file_load($image_fid); if (is_object($image)) { if ($image->status == 0) { $image->status = FILE_STATUS_PERMANENT; file_save($image); file_usage_add($image, 'az_gov', 'theme', 1); } } }
private static function addFile($imageFileId, $moduleName, $fieldName) { /* if our file is already in use, then we don't need to re-do this and increase the count */ $count = db_query('SELECT `count` FROM {file_usage} WHERE fid=:fid', array('fid' => $imageFileId))->fetchField(); $file = file_load($imageFileId); if (empty($count)) { $file->status = FILE_STATUS_PERMANENT; file_save($file); file_usage_add($file, $moduleName, $fieldName, $imageFileId); } return $file; }
/** * Submit handler for system_theme_settings(). */ function sizzle_form_system_theme_settings_submit($form, &$form_state) { $values = $form_state['values']; // Save images. foreach ($values as $name => $value) { if (preg_match('/_image$/', $name)) { if (!empty($values[$name])) { $file = file_load($values[$name]); $file->status = FILE_STATUS_PERMANENT; file_save($file); file_usage_add($file, 'sizzle', 'theme', 1); variable_set($name, $file->fid); } } } }
function puzzle_settings_form_submit(&$form, &$form_state) { $image_fid = $form_state['values']['background_image']; $image = file_load($image_fid); if (is_object($image)) { // Check to make sure that the file is set to be permanent. if ($image->status == 0) { // Update the status. $image->status = FILE_STATUS_PERMANENT; // Save the update. file_save($image); // Add a reference to prevent warnings. file_usage_add($image, 'puzzle', 'theme', 1); } } }
function brafton_admin_form_submit($form, &$form_state) { //reset the error report if ($form_state['values']['brafton_clear_report']) { variable_set('brafton_e_log', ''); //variable_set('brafton_clear_report', 0); } //runs importer if archive is loaded //Handles background image for videos if ($form_state['values']['brafton_video_end_cta_background'] != '') { $file = file_load($form_state['values']['brafton_video_end_cta_background']); // Change status to permanent. $file->status = FILE_STATUS_PERMANENT; // Save. $newfile = file_save($file); $name = basename('brafton.module', '.module'); file_usage_add($newfile, $name, $name, $newfile->fid); variable_set('brafton_video_end_cta_background_url', $newfile->uri); variable_set('brafton_video_end_cta_background_id', $newfile->fid); } else { if (!$form_state['values']['brafton_video_end_cta_background']['fid']) { variable_set('brafton_video_end_cta_background_url', ''); variable_del('brafton_video_end_cta_background_id'); } } //Handles Button Image for videos if ($form_state['values']['brafton_video_end_cta_button_image'] != '') { $file = file_load($form_state['values']['brafton_video_end_cta_button_image']); // Change status to permanent. $file->status = FILE_STATUS_PERMANENT; // Save. $newfile = file_save($file); $name = basename('brafton.module', '.module'); file_usage_add($newfile, $name, $name, $newfile->fid); variable_set('brafton_video_end_cta_button_image_url', $newfile->uri); variable_set('brafton_video_end_cta_button_image_id', $newfile->fid); } else { if (!$form_state['values']['brafton_video_end_cta_button_image']['fid']) { variable_set('brafton_video_end_cta_button_image_url', ''); variable_del('brafton_video_end_cta_button_image_id'); } } //Ensure that the run manual imports $form_state['values']['brafton_clear_report'] = 0; }
function kurr_settings_form_submit(&$form, $form_state) { $testimonials_bg_image_fid = $form_state['values']['testimonials_bg']; $testimonials_bg_image = file_load($testimonials_bg_image_fid); if (is_object($testimonials_bg_image)) { // Check to make sure that the file is set to be permanent. if ($testimonials_bg_image->status == 0) { // Update the status. $testimonials_bg_image->status = FILE_STATUS_PERMANENT; // Save the update. file_save($testimonials_bg_image); // Add a reference to prevent warnings. file_usage_add($testimonials_bg_image, 'kurr', 'theme', 1); } } $quote_bg_image_fid = $form_state['values']['quote_bg']; $quote_bg_image = file_load($quote_bg_image_fid); if (is_object($quote_bg_image)) { // Check to make sure that the file is set to be permanent. if ($quote_bg_image->status == 0) { // Update the status. $quote_bg_image->status = FILE_STATUS_PERMANENT; // Save the update. file_save($quote_bg_image); // Add a reference to prevent warnings. file_usage_add($quote_bg_image, 'kurr', 'theme', 1); } } $social_bg_image_fid = $form_state['values']['social_bg']; $social_bg_image = file_load($social_bg_image_fid); if (is_object($social_bg_image)) { // Check to make sure that the file is set to be permanent. if ($social_bg_image->status == 0) { // Update the status. $social_bg_image->status = FILE_STATUS_PERMANENT; // Save the update. file_save($social_bg_image); // Add a reference to prevent warnings. file_usage_add($social_bg_image, 'kurr', 'theme', 1); } } }
/** * Save settings data. */ function surreal_settings_submit(&$form, &$form_state) { $settings = array(); // Region parallax upload for ($i = 1; $i <= 6; $i++) { $fg = 'parallax_fg_region' . $i . '_image'; if ($file = file_load($form_state['values'][$fg])) { $file->status = FILE_STATUS_PERMANENT; file_save($file); file_usage_add($file, 'user', 'user', 1); variable_set($fg, $file->fid); } $bg = 'parallax_bg_region' . $i . '_image'; if ($file = file_load($form_state['values'][$bg])) { $file->status = FILE_STATUS_PERMANENT; file_save($file); file_usage_add($file, 'user', 'user', 1); variable_set($bg, $file->fid); } } // Update image field foreach ($form_state['input']['images'] as $image) { if (is_array($image)) { $image = $image['image']; if ($image['image_delete']) { // Delete banner file file_unmanaged_delete($image['image_path']); // Delete banner thumbnail file file_unmanaged_delete($image['image_thumb']); } else { // Update image $settings[] = $image; } } } // Check for a new uploaded file, and use that if available. if ($file = file_save_upload('image_upload')) { $file->status = FILE_STATUS_PERMANENT; if ($image = _surreal_save_image($file)) { // Put new image into settings $settings[] = $image; } } // Save settings surreal_set_banners($settings); }
public function approveFileSubmission($id) { $nexcloud = filedepot_nexcloud(); $query = db_query("SELECT * FROM {filedepot_filesubmissions} WHERE id=:fid", array('fid' => $id)); $rec = $query->fetchObject(); $newfid = 0; // @TODO: Check if there have been multiple submission requests for the same file and thus have same new version # if ($rec->version == 1) { $private_destination = "private://filedepot/{$rec->cid}/"; // Best to call file_prepare_directory() - even if you believe directory exists file_prepare_directory($private_destination, FILE_CREATE_DIRECTORY); $file = file_load($rec->drupal_fid); $private_uri = $private_destination . $rec->fname; $file = file_move($file, $private_uri, FILE_EXISTS_RENAME); // Get name of new file in case it was renamed after the file_move() list($scheme, $target) = explode('://', $file->uri, 2); $filename = str_replace("filedepot/{$rec->cid}/", '', $target); if (isset($rec->title) and !empty($rec->title)) { $filetitle = $rec->title; } else { $filetitle = $rec->fname; } // Load the node for the folder and then update the file usage table $nid = db_query("SELECT nid FROM {filedepot_categories} WHERE cid=:cid", array(':cid' => $rec->cid))->fetchField(); $node = node_load($nid); file_usage_add($file, 'filedepot', 'node', $node->nid); // Remove the record for the core file module from the file usage table file_usage_delete($file, 'file'); $query = db_insert('filedepot_files'); $query->fields(array('cid', 'fname', 'title', 'description', 'version', 'drupal_fid', 'size', 'mimetype', 'submitter', 'status', 'date', 'version_ctl', 'extension')); $query->values(array('cid' => $rec->cid, 'fname' => $filename, 'title' => $filetitle, 'description' => $rec->description, 'version' => $rec->version, 'drupal_fid' => $file->fid, 'size' => $file->filesize, 'mimetype' => $file->filemime, 'submitter' => $rec->submitter, 'status' => 1, 'date' => $rec->date, 'version_ctl' => $rec->version_ctl, 'extension' => $rec->extension)); $query->execute(); // Get fileid for the new file record $newfid = db_query_range("SELECT fid FROM {filedepot_files} WHERE cid=:cid AND submitter=:uid ORDER BY fid DESC", 0, 1, array(':cid' => $rec->cid, ':uid' => $rec->submitter))->fetchField(); $query = db_insert('filedepot_fileversions'); $query->fields(array('fid', 'fname', 'drupal_fid', 'version', 'notes', 'size', 'date', 'uid', 'status')); $query->values(array('fid' => $newfid, 'fname' => $filename, 'drupal_fid' => $file->fid, 'version' => 1, 'notes' => $rec->version_note, 'size' => $file->filesize, 'date' => time(), 'uid' => $rec->submitter, 'status' => 1)); $query->execute(); if (!empty($rec->tags) and $this->checkPermission($rec->cid, 'view', 0, FALSE)) { $nexcloud->update_tags($newfid, $rec->tags); } } if ($newfid > 0) { if ($rec->notify == 1) { filedepot_sendNotification($newfid, FILEDEPOT_NOTIFY_APPROVED); } db_delete('filedepot_filesubmissions')->condition('id', $id)->execute(); // Send out notifications of update to all subscribed users filedepot_sendNotification($newfid, FILEDEPOT_NOTIFY_NEWFILE); // Update related folders last_modified_date $workspaceParentFolder = filedepot_getTopLevelParent($rec->cid); filedepot_updateFolderLastModified($workspaceParentFolder); return TRUE; } else { return FALSE; } }
function addUsage($picture, $moduleName) { file_usage_add($picture, "CROMA - {$moduleName}", $moduleName, $picture->fid); // tells Drupal we're using the file }
/** * Implements of hook_builder_content_saved_alter($delta, $content, $bid) */ function HOOK_builder_content_saved_alter($delta = '', $content, $bid) { switch ($delta) { case 'image': if (!empty($content['settings']['image'])) { $fid = $content['settings']['image']; if ($file = file_load($fid)) { if ($file->status !== FILE_STATUS_PERMANENT) { $file->status = FILE_STATUS_PERMANENT; file_save($file); file_usage_add($file, 'builder', 'builder', $bid); } } } break; } }
function _watersportkampen_bootstrap_event_form_save_event($form, &$form_state, CultuurNet\Search\ActivityStatsExtendedEntity $location = NULL, CultuurNet\Search\ActivityStatsExtendedEntity $organiser = NULL) { $values = $form_state['values']; $performerList = new CultureFeed_Cdb_Data_PerformerList(); $mails = array(); $phones = array(); $links = array(); $performers_count = 0; $update = FALSE; if (isset($form['#event'])) { $update = TRUE; $event = $form['#event']; } else { $event = new CultureFeed_Cdb_Item_Event(); } // Reset old tags. foreach ($values['old_tags'] as $tag => $keyword) { if (!in_array($tag, array_keys($values['tags']))) { $event->deleteKeyword(new CultureFeed_Cdb_Data_Keyword($keyword['value'], $keyword['visible'])); } } // Categories. $category_options = array(); $values['categories'] = "0.57.0.0.0"; $category_options[$values['categories']] = culturefeed_search_get_eventtype_categories(array('tid' => $values['categories'])); $categories = new CultureFeed_Cdb_Data_CategoryList(); foreach ($category_options as $key => $value) { if ($value) { $categories->add(new CultureFeed_Cdb_Data_Category(CultureFeed_Cdb_Data_Category::CATEGORY_TYPE_EVENT_TYPE, $key, $value[$key])); } } $event->setCategories($categories); //add sports to db foreach ($values['sports'] as $sport) { if (isset($sport) && $sport !== 0) { $values['tags'][$sport] = array('value' => $sport, 'visible' => TRUE); } } // Put new created tags in $form_state variable for further handling. $form_state['values']['tags'] = $values['tags']; foreach ($values['wrapper'] as $extra) { if (is_array($extra)) { // Performer if (!empty($extra['performer']) || !empty($extra['role'])) { $performer = new CultureFeed_Cdb_Data_Performer(); $performer->setLabel($extra['performer']); $performer->setRole($extra['role']); $performerList->add($performer); $performers_count++; } // Contacts if (isset($extra['channel_input'])) { switch ($extra['channel']) { case '0': $phone = new CultureFeed_Cdb_Data_Phone($extra['channel_input'], CultureFeed_Cdb_Data_Phone::PHONE_TYPE_PHONE, FALSE, FALSE); array_push($phones, $phone); break; case '1': if ($extra['channel_input']) { $mail = new CultureFeed_Cdb_Data_Mail($extra['channel_input'], FALSE, FALSE); array_push($mails, $mail); } break; } } } } // Links $media_links = array(); foreach ($values['links'] as $link_data) { if ($link_data['URL']) { if (!preg_match("@^https?://@", $link_data['URL'])) { $link_data['URL'] = 'http://' . $link_data['URL']; } $mediatype = CultureFeed_Cdb_Data_File::MEDIA_TYPE_WEBRESOURCE; if (strpos($link_data['URL'], 'plus.google.com')) { $mediatype = CultureFeed_Cdb_Data_File::MEDIA_TYPE_GOOGLEPLUS; } if (strpos($link_data['URL'], 'facebook.com')) { $mediatype = CultureFeed_Cdb_Data_File::MEDIA_TYPE_FACEBOOK; } if (strpos($link_data['URL'], 'twitter.com')) { $mediatype = CultureFeed_Cdb_Data_File::MEDIA_TYPE_TWITTER; } if (strpos($link_data['URL'], 'youtube.com') || strpos($link_data['URL'], 'youtu.be')) { $mediatype = CultureFeed_Cdb_Data_File::MEDIA_TYPE_YOUTUBE; } if ($link_data['reservation']) { // Make reservation link for contact element $link = new CultureFeed_Cdb_Data_Url($link_data['URL'], FALSE, $link_data['reservation']); array_push($links, $link); // Make reservation link for media element $mediatype = CultureFeed_Cdb_Data_File::MEDIA_TYPE_RESERVATIONS; } $link = new CultureFeed_Cdb_Data_File(); $link->setHLink($link_data['URL']); $link->setMediaType($mediatype); if ($link_data['reservation']) { $link->setTitle(t('Order tickets')); } array_push($media_links, $link); } } // Age if ($values['age']) { $event->setAgeFrom($values['age'] ? $values['age'] : 0); } else { // Age Category switch ($values['age_category']) { case '1-12': $event->setAgeFrom(1); break; case '12-18': $event->setAgeFrom(12); break; case '18+': $event->setAgeFrom(18); break; case 'everyone': default: break; } } // Timestamps. if ($values['when']['date_control']['type'] == 'timestamps') { _culturefeed_entry_ui_event_save_timestamps($event, $values['when']['date_control']['timestamps']['stamps']); } // Period. if ($values['when']['date_control']['type'] == 'period') { _culturefeed_entry_ui_event_save_period($event, $values['when']['date_control']['period']); } // Weekscheme. if ($values['when']['date_control']['type'] == 'period' || $values['when']['date_control']['type'] == 'permanent') { _culturefeed_entry_ui_event_save_weekscheme($event, $values['when']['date_control']); } // Event details. $detail = new CultureFeed_Cdb_Data_EventDetail(); $detail->setTitle($values['title']); if (!empty($values['description']['sd']['short_description'])) { $detail->setShortDescription($values['description']['sd']['short_description']); } if (!empty($values['description']['ld']['long_description'])) { $detail->setLongDescription($values['description']['ld']['long_description']); } // Photo if ($values['photo']['upload']) { // Save to Drupal $drupal_file = file_load($values['photo']['upload']); $drupal_file->status = FILE_STATUS_PERMANENT; file_save($drupal_file); file_usage_add($drupal_file, 'culturefeed_entry_ui', 'event', $drupal_file->fid); // Add to detail $file = new CultureFeed_Cdb_Data_File(); $file->setMediaType($file::MEDIA_TYPE_PHOTO); $file->setCopyright($values['photo']['copyright_text']); $file->setMain(TRUE); switch ($drupal_file->filemime) { case 'image/gif': $file->setFileType($file::FILE_TYPE_GIF); break; case 'image/jpg': case 'image/jpeg': $file->setFileType($file::FILE_TYPE_JPEG); break; case 'image/png': $file->setFileType($file::FILE_TYPE_PNG); break; } $file->setHLink(file_create_url($drupal_file->uri)); $file->setFilename($drupal_file->filename); $detail->getMedia()->add($file); // Remove old image // Bug on UDB ... will be fixed soon if (isset($values['photo']['current_file_hlink'])) { try { Drupalculturefeed_EntryApi::removeLinkFromEvent($event, $values['photo']['current_file_hlink']); } catch (Exception $e) { watchdog_exception('culturefeed_entry_ui', $e); } } } // Media links if ($media_links) { foreach ($media_links as $media_link) { $detail->getMedia()->add($media_link); } } // Price if ($values['price']['free']) { $price = new CultureFeed_Cdb_Data_Price(0); $detail->setPrice($price); } else { if (!empty($values['price']['amount'])) { $price = new CultureFeed_Cdb_Data_Price(floatval(str_replace(',', '.', $values['price']['amount']))); if (!empty($values['price']['extra']['extra_info'])) { $price->setDescription($values['price']['extra']['extra_info']); } $detail->setPrice($price); } } // Performers if ($performers_count) { $detail->setPerformers($performerList); } $detail->setLanguage(culturefeed_entry_ui_get_preferred_language()); $details = new CultureFeed_Cdb_Data_EventDetailList(); $details->add($detail); // Translations Dutch. if (culturefeed_search_get_preferred_language() != 'nl') { if ($values['dutch']['language'] || $values['dutch']['short_description'] || $values['dutch']['long_description']) { $detail = new CultureFeed_Cdb_Data_EventDetail(); if ($values['dutch']['language']) { $detail->setTitle($values['dutch']['language']); } if (!empty($values['dutch']['short_description'])) { $detail->setShortDescription($values['dutch']['short_description']); } if (!empty($values['dutch']['long_description'])) { $detail->setLongDescription($values['dutch']['long_description']); } $detail->setLanguage("nl"); $details->add($detail); } } $event->setDetails($details); // Location. $address = culturefeed_entry_ui_location_form_save($event, $location, $form_state); // Event organiser. if ($organiser) { $organiser_object = new CultureFeed_Cdb_Data_Organiser(); $organiser_detail = $organiser->getEntity()->getDetails()->getDetailByLanguage(culturefeed_search_get_preferred_language()); if (!$organiser_detail) { $organiser_detail = $organiser->getEntity()->getDetails()->getDetailByLanguage("nl"); } $organiser_object->setLabel($organiser_detail->getTitle()); $organiser_object->setCdbid($organiser->getEntity()->getCdbId()); $event->setOrganiser($organiser_object); } else { if (isset($values['organiser']['new_actor'])) { $organiser_object = new CultureFeed_Cdb_Data_Organiser(); $organiser_object->setLabel($values['organiser']['new_actor']); $event->setOrganiser($organiser_object); } } // Contact info. $physical_address = $address->getPhysicalAddress(); $contact_object = new CultureFeed_Cdb_Data_ContactInfo(); $contact_object->addAddress(new CultureFeed_Cdb_Data_Address($physical_address)); foreach ($mails as $mail) { $contact_object->addMail($mail); } foreach ($phones as $phone) { $contact_object->addPhone($phone); } foreach ($links as $link) { $contact_object->addUrl($link); } $event->setContactInfo($contact_object); // Keywords. culturefeed_entry_ui_tags_form_save($event, $form_state); // Members. if ($values['members']) { $event->setPrivate(TRUE); } $form_state['submit_time'] = time(); try { if ($update) { Drupalculturefeed_EntryApi::updateEvent($event); $form_state['#event_id'] = $event->getCdbId(); watchdog('culturefeed_entry_ui', 'Event %eventid updated.', array('%eventid' => $form_state['#event_id'])); cache_clear_all('culturefeed:results:detail:event:' . $event->getCdbId(), 'cache_culturefeed_search'); } else { $form_state['#event_id'] = Drupalculturefeed_EntryApi::createEvent($event); watchdog('culturefeed_entry_ui', 'Event %eventid created.', array('%eventid' => $form_state['#event_id'])); } $form_state['#update_event'] = $update; } catch (Exception $e) { watchdog_exception('culturefeed_entry_ui', $e); form_set_error('', t('An error occurred while saving the event')); } // Delete files from file system if ($form_state['values']['photo']['upload']) { $file = file_load($form_state['values']['photo']['upload']); file_delete($file); } if (isset($form_state['values']['photo']['current_file'])) { $file = file_load($form_state['values']['photo']['current_file']); file_delete($file); } }