danielebarchiesi@0
|
1 <?php
|
danielebarchiesi@0
|
2
|
danielebarchiesi@0
|
3 /**
|
danielebarchiesi@0
|
4 * @file
|
danielebarchiesi@0
|
5 * Insert support for ImageField module.
|
danielebarchiesi@0
|
6 */
|
danielebarchiesi@0
|
7
|
danielebarchiesi@0
|
8 /**
|
danielebarchiesi@0
|
9 * Implementation of hook_insert_widgets().
|
danielebarchiesi@0
|
10 */
|
danielebarchiesi@0
|
11 function image_insert_widgets() {
|
danielebarchiesi@0
|
12 return array(
|
danielebarchiesi@0
|
13 'image_image' => array(
|
danielebarchiesi@0
|
14 'element_type' => 'managed_file',
|
danielebarchiesi@0
|
15 'wrapper' => '.image-widget',
|
danielebarchiesi@0
|
16 'fields' => array(
|
danielebarchiesi@0
|
17 'alt' => 'input[name$="[alt]"], textarea[name$="[alt]"]',
|
danielebarchiesi@0
|
18 'title' => 'input[name$="[title]"], textarea[name$="[title]"]',
|
danielebarchiesi@0
|
19 'description' => 'input[name$="[description]"], textarea[name$="[description]"]',
|
danielebarchiesi@0
|
20 ),
|
danielebarchiesi@0
|
21 ),
|
danielebarchiesi@0
|
22 );
|
danielebarchiesi@0
|
23 }
|
danielebarchiesi@0
|
24
|
danielebarchiesi@0
|
25 /**
|
danielebarchiesi@0
|
26 * Implementation of hook_insert_styles().
|
danielebarchiesi@0
|
27 */
|
danielebarchiesi@0
|
28 function image_insert_styles() {
|
danielebarchiesi@0
|
29 $image_styles = image_styles();
|
danielebarchiesi@0
|
30 $insert_styles = array();
|
danielebarchiesi@0
|
31 foreach ($image_styles as $style) {
|
danielebarchiesi@0
|
32 $insert_styles['image_' . $style['name']] = array(
|
danielebarchiesi@0
|
33 'label' => t($style['name']),
|
danielebarchiesi@0
|
34 );
|
danielebarchiesi@0
|
35 }
|
danielebarchiesi@0
|
36 return $insert_styles;
|
danielebarchiesi@0
|
37 }
|
danielebarchiesi@0
|
38
|
danielebarchiesi@0
|
39 /**
|
danielebarchiesi@0
|
40 * Implementation of hook_insert_content().
|
danielebarchiesi@0
|
41 */
|
danielebarchiesi@0
|
42 function image_insert_content($item, $style, $widget) {
|
danielebarchiesi@0
|
43 $style_name = preg_replace('/^image_/', '', $style['name']);
|
danielebarchiesi@0
|
44 return theme(array('image_insert_image__' . str_replace('-', '_', $style_name), 'image_insert_image'), array('item' => $item, 'widget' => $widget, 'style_name' => $style_name));
|
danielebarchiesi@0
|
45 }
|
danielebarchiesi@0
|
46
|
danielebarchiesi@0
|
47 /**
|
danielebarchiesi@0
|
48 * Theme the content that will be inserted for Image styles.
|
danielebarchiesi@0
|
49 */
|
danielebarchiesi@0
|
50 function template_preprocess_image_insert_image(&$vars) {
|
danielebarchiesi@0
|
51 $vars['file'] = file_load($vars['item']['fid']);
|
danielebarchiesi@0
|
52
|
danielebarchiesi@0
|
53 // Determine dimensions of the image after the image style transformations.
|
danielebarchiesi@0
|
54 $image_info = @image_get_info($vars['file']->uri);
|
danielebarchiesi@0
|
55 $vars['width'] = isset($image_info['width']) ? $image_info['width'] : NULL;
|
danielebarchiesi@0
|
56 $vars['height'] = isset($image_info['height']) ? $image_info['height'] : NULL;
|
danielebarchiesi@0
|
57 image_style_transform_dimensions($vars['style_name'], $vars);
|
danielebarchiesi@0
|
58
|
danielebarchiesi@0
|
59 $vars['uri'] = image_style_path($vars['style_name'], $vars['file']->uri);
|
danielebarchiesi@0
|
60 $absolute = isset($vars['widget']['settings']['insert_absolute']) ? $vars['widget']['settings']['insert_absolute'] : NULL;
|
danielebarchiesi@0
|
61 $vars['url'] = insert_create_url($vars['uri'], $absolute, variable_get('clean_url'));
|
danielebarchiesi@0
|
62
|
danielebarchiesi@0
|
63 // http://drupal.org/node/1923336
|
danielebarchiesi@0
|
64 if (function_exists('image_style_path_token')) {
|
danielebarchiesi@0
|
65 $token_query = array(IMAGE_DERIVATIVE_TOKEN => image_style_path_token($vars['style_name'], $vars['file']->uri));
|
danielebarchiesi@0
|
66 $vars['url'] .= (strpos($vars['url'], '?') !== FALSE ? '&' : '?') . drupal_http_build_query($token_query);
|
danielebarchiesi@0
|
67 }
|
danielebarchiesi@0
|
68
|
danielebarchiesi@0
|
69 $vars['class'] = !empty($vars['widget']['settings']['insert_class']) ? $vars['widget']['settings']['insert_class'] : '';
|
danielebarchiesi@0
|
70 }
|