Now all modules are in core modules folder
This commit is contained in:
parent
5ba1cdfa0b
commit
05b6a91b0c
1907 changed files with 0 additions and 0 deletions
126
modules/filefield/filefield.devel.inc
Normal file
126
modules/filefield/filefield.devel.inc
Normal file
|
@ -0,0 +1,126 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Utility functions for generating FileField content. Note that image
|
||||
* generation support requires the GD toolkit.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Private function used by filefield_content_generate().
|
||||
*/
|
||||
function _filefield_content_generate($node, $field) {
|
||||
if ($source = _filefield_generate_file($field)) {
|
||||
$file = field_file_save_file($source, array(), filefield_widget_file_path($field));
|
||||
|
||||
$item = (array) $file;
|
||||
$item['list'] = 1;
|
||||
$item['data']['alt'] = devel_create_greeking(4);
|
||||
$item['data']['title'] = devel_create_greeking(10);
|
||||
}
|
||||
else {
|
||||
$item = array();
|
||||
}
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate an image based on the properties of a field.
|
||||
*
|
||||
* This is made to work with ImageField, and inspects the minimum and maximum
|
||||
* image sizes and makes sure the generated image matches the requirements.
|
||||
*
|
||||
* @return
|
||||
* The path to the new file, in the temporary directory.
|
||||
*/
|
||||
function _filefield_generate_file($field) {
|
||||
if (empty($field['widget']['file_extensions'])) {
|
||||
$field['widget']['file_extensions'] = 'png jpg txt';
|
||||
}
|
||||
|
||||
$extensions = array_intersect(explode(' ', $field['widget']['file_extensions']), array('png', 'jpg', 'txt'));
|
||||
$extension = array_rand(drupal_map_assoc($extensions));
|
||||
|
||||
if ($extension == 'txt') {
|
||||
$filesize = empty($field['widget']['max_filesize_per_file']) ? 1024 : parse_size($field['widget']['max_filesize_per_file']);
|
||||
return _filefield_generate_textfile($filesize);
|
||||
}
|
||||
elseif (in_array($extension, array('png', 'jpg')) && function_exists('imagecreate')) {
|
||||
$min_resolution = empty($field['widget']['min_resolution']) ? '100x100' : $field['widget']['min_resolution'];
|
||||
$max_resolution = empty($field['widget']['max_resolution']) ? '600x600' : $field['widget']['max_resolution'];
|
||||
return _filefield_generate_image($extension, $min_resolution, $max_resolution);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Private function for generating a random text file.
|
||||
*/
|
||||
function _filefield_generate_textfile($filesize = 1024) {
|
||||
static $filesizes = array();
|
||||
|
||||
$temp_file = FALSE;
|
||||
if (isset($filesizes[$filesize])) {
|
||||
$temp_file = $filesizes[$filesize];
|
||||
}
|
||||
elseif ($temp_file = tempnam(file_directory_temp(), 'filefield_')) {
|
||||
file_move($temp_file, $temp_file .'.txt');
|
||||
|
||||
$fp = fopen($temp_file, 'w');
|
||||
fwrite($fp, str_repeat('01', $filesize/2));
|
||||
fclose($fp);
|
||||
$filesizes[$filesize] = $temp_file;
|
||||
}
|
||||
|
||||
return $temp_file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Private function for creating a random image.
|
||||
*
|
||||
* This function only works with the GD toolkit. ImageMagick is not supported.
|
||||
*/
|
||||
function _filefield_generate_image($extension = 'png', $min_resolution, $max_resolution) {
|
||||
static $images = array();
|
||||
|
||||
// Generate a max of 5 different images.
|
||||
if (!isset($images[$extension][$min_resolution][$max_resolution]) || count($images[$extension][$min_resolution][$max_resolution]) < 5) {
|
||||
if ($temp_file = tempnam(file_directory_temp(), 'filefield_')) {
|
||||
file_move($temp_file, $temp_file .'.'. $extension);
|
||||
|
||||
$min = explode('x', $min_resolution);
|
||||
$max = explode('x', $max_resolution);
|
||||
|
||||
$width = rand((int)$min[0], (int)$max[0]);
|
||||
$height = rand((int)$min[0], (int)$max[0]);
|
||||
|
||||
// Make a image split into 4 sections with random colors.
|
||||
$im = imagecreate($width, $height);
|
||||
for ($n = 0; $n < 4; $n++) {
|
||||
$color = imagecolorallocate($im, rand(0, 255), rand(0, 255), rand(0, 255));
|
||||
$x = $width/2 * ($n % 2);
|
||||
$y = $height/2 * (int) ($n >= 2);
|
||||
imagefilledrectangle($im, $x, $y, $x + $width/2, $y + $height/2, $color);
|
||||
}
|
||||
|
||||
// Make a perfect circle in the image middle.
|
||||
$color = imagecolorallocate($im, rand(0, 255), rand(0, 255), rand(0, 255));
|
||||
$smaller_dimension = min($width, $height);
|
||||
$smaller_dimension = ($smaller_dimension % 2) ? $smaller_dimension : $smaller_dimension;
|
||||
imageellipse($im, $width/2, $height/2, $smaller_dimension, $smaller_dimension, $color);
|
||||
|
||||
$save_function = 'image'. ($extension == 'jpg' ? 'jpeg' : $extension);
|
||||
$save_function($im, $temp_file);
|
||||
|
||||
$images[$extension][$min_resolution][$max_resolution][$temp_file] = $temp_file;
|
||||
}
|
||||
}
|
||||
// Select one of the images we've already generated for this field.
|
||||
else {
|
||||
$temp_file = array_rand($images[$extension][$min_resolution][$max_resolution]);
|
||||
}
|
||||
|
||||
return $temp_file;
|
||||
}
|
Reference in a new issue