updated core to 7.58 (right after the site was hacked)
This commit is contained in:
166
sites/all/modules/examples/image_example/image_example.pages.inc
Normal file
166
sites/all/modules/examples/image_example/image_example.pages.inc
Normal file
@@ -0,0 +1,166 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Page/form showing image styles in use.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Form for uploading and displaying an image using selected style.
|
||||
*
|
||||
* This page provides a form that allows the user to upload an image and choose
|
||||
* a style from the list of defined image styles to use when displaying the
|
||||
* the image. This serves as an example of integrating image styles with your
|
||||
* module and as a way to demonstrate that the styles and effects defined by
|
||||
* this module are available via Drupal's image handling system.
|
||||
*
|
||||
* @see theme_image_style()
|
||||
*
|
||||
* @ingroup image_example
|
||||
*/
|
||||
function image_example_style_form($form, &$form_state) {
|
||||
// If there is already an uploaded image display the image here.
|
||||
if ($image_fid = variable_get('image_example_image_fid', FALSE)) {
|
||||
$image = file_load($image_fid);
|
||||
$style = variable_get('image_example_style_name', 'thumbnail');
|
||||
$form['image'] = array(
|
||||
'#markup' => theme('image_example_image', array('image' => $image, 'style' => $style)),
|
||||
);
|
||||
}
|
||||
|
||||
// Use the #managed_file FAPI element to upload an image file.
|
||||
$form['image_example_image_fid'] = array(
|
||||
'#title' => t('Image'),
|
||||
'#type' => 'managed_file',
|
||||
'#description' => t('The uploaded image will be displayed on this page using the image style chosen below.'),
|
||||
'#default_value' => variable_get('image_example_image_fid', ''),
|
||||
'#upload_location' => 'public://image_example_images/',
|
||||
);
|
||||
|
||||
// Provide a select field for choosing an image style to use when displaying
|
||||
// the image.
|
||||
$form['image_example_style_name'] = array(
|
||||
'#title' => t('Image style'),
|
||||
'#type' => 'select',
|
||||
'#description' => t('Choose an image style to use when displaying this image.'),
|
||||
// The image_style_options() function returns an array of all available
|
||||
// image styles both the key and the value of the array are the image
|
||||
// style's name. The function takes on paramater, a boolean flag
|
||||
// signifying whether or not the array should include a <none> option.
|
||||
'#options' => image_style_options(TRUE),
|
||||
'#default_value' => variable_get('image_example_style_name', ''),
|
||||
);
|
||||
|
||||
// Submit Button.
|
||||
$form['submit'] = array(
|
||||
'#type' => 'submit',
|
||||
'#value' => t('Save'),
|
||||
);
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that the user supplied an image with the form..
|
||||
*
|
||||
* @ingroup image_example
|
||||
*/
|
||||
function image_example_style_form_validate($form, &$form_state) {
|
||||
if (!isset($form_state['values']['image_example_image_fid']) || !is_numeric($form_state['values']['image_example_image_fid'])) {
|
||||
form_set_error('image_example_image_fid', t('Please select an image to upload.'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Form Builder; Display a form for uploading an image.
|
||||
*
|
||||
* @ingroup image_example
|
||||
*/
|
||||
function image_example_style_form_submit($form, &$form_state) {
|
||||
// When using the #managed_file form element the file is automatically
|
||||
// uploaded an saved to the {file} table. The value of the corresponding
|
||||
// form element is set to the {file}.fid of the new file.
|
||||
//
|
||||
// If fid is not 0 we have a valid file.
|
||||
if ($form_state['values']['image_example_image_fid'] != 0) {
|
||||
// The new file's status is set to 0 or temporary and in order to ensure
|
||||
// that the file is not removed after 6 hours we need to change it's status
|
||||
// to 1. Save the ID of the uploaded image for later use.
|
||||
$file = file_load($form_state['values']['image_example_image_fid']);
|
||||
$file->status = FILE_STATUS_PERMANENT;
|
||||
file_save($file);
|
||||
|
||||
// When a module is managing a file, it must manage the usage count.
|
||||
// Here we increment the usage count with file_usage_add().
|
||||
file_usage_add($file, 'image_example', 'sample_image', 1);
|
||||
|
||||
// Save the fid of the file so that the module can reference it later.
|
||||
variable_set('image_example_image_fid', $file->fid);
|
||||
drupal_set_message(t('The image @image_name was uploaded and saved with an ID of @fid and will be displayed using the style @style.',
|
||||
array(
|
||||
'@image_name' => $file->filename,
|
||||
'@fid' => $file->fid,
|
||||
'@style' => $form_state['values']['image_example_style_name'],
|
||||
)
|
||||
));
|
||||
}
|
||||
// If the file was removed we need to remove the module's reference to the
|
||||
// removed file's fid, and remove the file.
|
||||
elseif ($form_state['values']['image_example_image_fid'] == 0) {
|
||||
// Retrieve the old file's id.
|
||||
$fid = variable_get('image_example_image_fid', FALSE);
|
||||
$file = $fid ? file_load($fid) : FALSE;
|
||||
if ($file) {
|
||||
// When a module is managing a file, it must manage the usage count.
|
||||
// Here we decrement the usage count with file_usage_delete().
|
||||
file_usage_delete($file, 'image_example', 'sample_image', 1);
|
||||
|
||||
// The file_delete() function takes a file object and checks to see if
|
||||
// the file is being used by any other modules. If it is the delete
|
||||
// operation is cancelled, otherwise the file is deleted.
|
||||
file_delete($file);
|
||||
}
|
||||
|
||||
// Either way the module needs to update it's reference since even if the
|
||||
// file is in use by another module and not deleted we no longer want to
|
||||
// use it.
|
||||
variable_set('image_example_image_fid', FALSE);
|
||||
drupal_set_message(t('The image @image_name was removed.', array('@image_name' => $file->filename)));
|
||||
}
|
||||
|
||||
// Save the name of the image style chosen by the user.
|
||||
variable_set('image_example_style_name', $form_state['values']['image_example_style_name']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Theme function displays an image rendered using the specified style.
|
||||
*
|
||||
* @ingroup image_example
|
||||
*/
|
||||
function theme_image_example_image($variables) {
|
||||
$image = $variables['image'];
|
||||
$style = $variables['style'];
|
||||
|
||||
// theme_image_style() is the primary method for displaying images using
|
||||
// one of the defined styles. The $variables array passed to the theme
|
||||
// contains the following two important values:
|
||||
// - 'style_name': the name of the image style to use when displaying the
|
||||
// image.
|
||||
// - 'path': the $file->uri of the image to display.
|
||||
//
|
||||
// When given a style and an image path the function will first determine
|
||||
// if a derivative image already exists, in which case the existing image
|
||||
// will be displayed. If the derivative image does not already exist the
|
||||
// function returns an <img> tag with a specially crafted callback URL
|
||||
// as the src attribute for the tag. When accessed, the callback URL will
|
||||
// generate the derivative image and serve it to the browser.
|
||||
$output = theme('image_style',
|
||||
array(
|
||||
'style_name' => $style,
|
||||
'path' => $image->uri,
|
||||
'getsize' => FALSE,
|
||||
)
|
||||
);
|
||||
$output .= '<p>' . t('This image is being displayed using the image style %style_name.', array('%style_name' => $style)) . '</p>';
|
||||
return $output;
|
||||
}
|
||||
Reference in New Issue
Block a user