function imagepicker_form_alter in Image Picker 7
Same name and namespace in other branches
- 5.2 imagepicker.module \imagepicker_form_alter()
- 5 imagepicker.module \imagepicker_form_alter()
- 6.2 imagepicker.module \imagepicker_form_alter()
Implements hook_form_alter().
File
- ./
imagepicker.module, line 758 - @author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL
Code
function imagepicker_form_alter(&$form, &$form_state, $form_id) {
global $user;
if (user_access('use imagepicker')) {
$weight = 1;
$insert_type = '';
// is this a node edit form
if (!empty($form['#node_edit_form']) && preg_match('/node_form$/i', $form_id)) {
// get the object
$node = $form['#node'];
# $node_types = node_get_types('names');
$node_types = node_type_get_names();
// zxx issue. zxx stands for 'no language' but it might change....
// we pick this up in theme_imagepicker which hands it to imagepicker_iframe.js
$node_lang = imagepicker_variable_get('imagepicker_node_lang', '');
$node_language = isset($node->language) ? $node->language : 'und';
// issue 1470672
$node_language = isset($node->body[$node_language]) ? $node_language : 'und';
if (!$node_lang || $node_lang != $node_language) {
imagepicker_variable_set('imagepicker_node_lang', $node_language);
// don't know what the number is for, so hardwire it for now
imagepicker_variable_set('imagepicker_node_pos', 0);
}
$node_type = in_array($node->type, imagepicker_variable_get('imagepicker_node_types_enabled', array_keys($node_types)), TRUE);
if ($node_type) {
$insert_type = 'node';
}
}
elseif (module_exists('comment') && imagepicker_variable_get('imagepicker_comment_enabled', 0) && preg_match('/comment.*_form$/i', $form_id)) {
$insert_type = 'comment';
}
elseif (($form_id == 'block_add_block_form' || $form_id == 'block_admin_configure') && imagepicker_variable_get('imagepicker_blocks_enabled', 0)) {
$insert_type = 'block';
}
$width = imagepicker_variable_get('imagepicker_advanced_iframe_width', imagepicker_variable_get('imagepicker_advanced_iframe_width', "100%"), $user->uid);
if (!preg_match("/%\$/", $width)) {
$width .= 'px';
}
$height = imagepicker_variable_get('imagepicker_advanced_iframe_height', imagepicker_variable_get('imagepicker_advanced_iframe_height', 500), $user->uid);
$border = imagepicker_variable_get('imagepicker_advanced_iframe_border', imagepicker_variable_get('imagepicker_advanced_iframe_border', "0"), $user->uid);
if (imagepicker_get_colorbox_perms()) {
$iurl = l('Run imagepicker', 'imagepicker', array(
'query' => array(
'width' => $width,
'height' => $height,
'iframe' => 'true',
),
'attributes' => array(
'class' => array(
'colorbox-load',
),
),
));
}
else {
$iurl = '<iframe id="imagepicker" style="width: ' . $width . '; height: ' . $height . 'px; border: ' . $border . ';" src="' . url('imagepicker') . '">Imagepicker requires iframe support.</iframe>';
}
$fselement = array(
'#type' => 'fieldset',
'#title' => t('Image picker'),
'#collapsible' => 1,
'#collapsed' => imagepicker_variable_get('imagepicker_advanced_collapsed', imagepicker_variable_get('imagepicker_advanced_collapsed', 0), $user->uid),
'#weight' => $weight,
);
$mkelement = array(
'#type' => 'markup',
'#markup' => '<div id="imgp_tb">' . $iurl . '</div>',
);
if ($insert_type == 'node') {
$form['body']['file_upload'] = $fselement;
$form['body']['file_upload']['mpframe'] = $mkelement;
$form['body']['#prefix'] = '<a name="body_hash"></a>' . (isset($form['body']['#prefix']) ? $form['body']['#prefix'] : '');
}
elseif ($insert_type == 'block') {
$form['settings']['body_field']['file_upload'] = $fselement;
$form['settings']['body_field']['file_upload']['mpframe'] = $mkelement;
$form['settings']['body_field']['#prefix'] = '<a name="body_hash"></a>' . (isset($form['settings']['body_field']['#prefix']) ? $form['settings']['body_field']['#prefix'] : '');
}
elseif ($insert_type == 'comment') {
$form['comment']['file_upload'] = $fselement;
$form['comment']['file_upload']['mpframe'] = $mkelement;
$form['comment']['#prefix'] = '<a name="body_hash"></a>' . (isset($form['comment']['#prefix']) ? $form['comment']['#prefix'] : '');
}
}
}