function imageeditor_process_element in Image Editor 6
Process function for pixlr-enabled fields.
1 string reference to 'imageeditor_process_element'
- imageeditor_elements in ./
imageeditor.module - Implementation of hook_elements().
File
- ./
imageeditor.module, line 321 - Allows online editing of images using different image editing services.
Code
function imageeditor_process_element($element) {
global $user;
// Bail out of imageeditor if user doesn't have permission to use it OR it is not enabled on this field.
if (!user_access('use imageeditor')) {
return $element;
}
$field = content_fields($element['#field_name'], $element['#type_name']);
if (!imageeditor_enabled($field['widget'])) {
return $element;
}
static $conf_added;
if (empty($conf_added)) {
$conf_added['imageeditor'] = FALSE;
foreach (imageeditor_editors() as $codename => $editor) {
$conf_added[$codename] = FALSE;
}
foreach (imageeditor_uploaders() as $codename => $uploader) {
$conf_added[$codename] = FALSE;
}
}
if (!array_key_exists($element['#field_name'], $conf_added)) {
$conf_added[$element['#field_name']] = FALSE;
}
$conf_array = array();
$conf_script = '';
//base settings
if (!$conf_added['imageeditor']) {
$conf_added['imageeditor'] = TRUE;
$path = drupal_get_path('module', 'imageeditor');
drupal_add_js($path . '/js/imageeditor.js');
drupal_add_css($path . '/imageeditor.css');
}
//aviary_feather settings
if (!$conf_added['aviary_feather'] && $field['widget']['aviary_feather_enabled']) {
$conf_added['aviary_feather'] = TRUE;
$conf_script .= 'Feather_APIKey = \'' . variable_get('imageeditor_aviary_api_key', '') . '\';';
$conf_script .= 'Feather_OpenType = \'lightbox\';';
$conf_script .= 'Feather_EditOptions = \'all\';';
$conf_script .= 'Feather_Theme = \'bluesky\';';
$conf_script .= 'Feather_MaxSize = 600;';
$conf_script .= 'document.write(unescape("%3Cscript src=\'http://feather.aviary.com/js/feather.js\' type=\'text/javascript\'%3E%3C/script%3E"));';
}
//editors settings
foreach (imageeditor_editors() as $codename => $editor) {
if (!$conf_added[$codename] && $field['widget'][$codename . '_enabled']) {
$conf_added[$codename] = TRUE;
if (array_key_exists('launch_type', $editor)) {
$conf_array[$codename]['launch_type'] = $editor['launch_type'];
}
if (array_key_exists('image_url_param', $editor)) {
$conf_array[$codename]['image_url_param'] = $editor['image_url_param'];
}
if (array_key_exists('save_url_param', $editor)) {
$conf_array[$codename]['save_url_param'] = $editor['save_url_param'];
}
if (array_key_exists('save_url_default', $editor)) {
$conf_array[$codename]['save_url_default'] = $editor['save_url_default'];
}
if (array_key_exists('options', $editor)) {
$conf_array[$codename]['options'] = $editor['options'];
}
if (array_key_exists('lang_map', $editor)) {
$conf_array[$codename]['options'][$editor['lang_option']] = $user->language ? $editor['lang_map'][$user->language] : $editor['lang_default'];
}
if (array_key_exists('include_js', $editor)) {
drupal_add_js($editor['include_js']);
}
}
}
//uploaders settings
foreach (imageeditor_uploaders() as $codename => $uploader) {
if (!$conf_added[$codename] && $field['widget'][$codename . '_enabled']) {
$conf_added[$codename] = TRUE;
$conf_array[$codename] = array(
'upload_url' => url('imageeditor/upload/' . $codename, array(
'absolute' => TRUE,
)),
);
}
}
//field specific settings
if (!$conf_added[$element['#field_name']]) {
$conf_added[$element['#field_name']] = TRUE;
$conf_array[$element['#field_name']] = array(
'imageeditor_icons_position' => $field['widget']['imageeditor_icons_position'],
'imageeditor_replace' => $field['widget']['imageeditor_replace'],
);
}
//field item specific settings
if ($element['fid']['#value']) {
$element['preview']['#value'] .= theme('imageeditor_widget', 'existing', $field['widget'], $element['#field_name'], $element['#delta'], $element['#value']['filepath']);
}
drupal_add_js(array(
'imageeditor' => $conf_array,
), 'setting');
drupal_add_js($conf_script, 'inline');
return $element;
}