public static function ImageItem::generateSampleValue in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/image/src/Plugin/Field/FieldType/ImageItem.php \Drupal\image\Plugin\Field\FieldType\ImageItem::generateSampleValue()
Generates placeholder field values.
Useful when populating site with placeholder content during site building or profiling.
Parameters
\Drupal\Core\Field\FieldDefinitionInterface $field_definition: The field definition.
Return value
array An associative array of values.
Overrides FileItem::generateSampleValue
File
- core/
modules/ image/ src/ Plugin/ Field/ FieldType/ ImageItem.php, line 332 - Contains \Drupal\image\Plugin\Field\FieldType\ImageItem.
Class
- ImageItem
- Plugin implementation of the 'image' field type.
Namespace
Drupal\image\Plugin\Field\FieldTypeCode
public static function generateSampleValue(FieldDefinitionInterface $field_definition) {
$random = new Random();
$settings = $field_definition
->getSettings();
static $images = array();
$min_resolution = empty($settings['min_resolution']) ? '100x100' : $settings['min_resolution'];
$max_resolution = empty($settings['max_resolution']) ? '600x600' : $settings['max_resolution'];
$extensions = array_intersect(explode(' ', $settings['file_extensions']), array(
'png',
'gif',
'jpg',
'jpeg',
));
$extension = array_rand(array_combine($extensions, $extensions));
// Generate a max of 5 different images.
if (!isset($images[$extension][$min_resolution][$max_resolution]) || count($images[$extension][$min_resolution][$max_resolution]) <= 5) {
$tmp_file = drupal_tempnam('temporary://', 'generateImage_');
$destination = $tmp_file . '.' . $extension;
file_unmanaged_move($tmp_file, $destination, FILE_CREATE_DIRECTORY);
if ($path = $random
->image(drupal_realpath($destination), $min_resolution, $max_resolution)) {
$image = File::create();
$image
->setFileUri($path);
$image
->setOwnerId(\Drupal::currentUser()
->id());
$image
->setMimeType('image/' . pathinfo($path, PATHINFO_EXTENSION));
$image
->setFileName(drupal_basename($path));
$destination_dir = static::doGetUploadLocation($settings);
file_prepare_directory($destination_dir, FILE_CREATE_DIRECTORY);
$destination = $destination_dir . '/' . basename($path);
$file = file_move($image, $destination, FILE_CREATE_DIRECTORY);
$images[$extension][$min_resolution][$max_resolution][$file
->id()] = $file;
}
else {
return array();
}
}
else {
// Select one of the images we've already generated for this field.
$image_index = array_rand($images[$extension][$min_resolution][$max_resolution]);
$file = $images[$extension][$min_resolution][$max_resolution][$image_index];
}
list($width, $height) = getimagesize($file
->getFileUri());
$values = array(
'target_id' => $file
->id(),
'alt' => $random
->sentences(4),
'title' => $random
->sentences(4),
'width' => $width,
'height' => $height,
);
return $values;
}