Skip to content

Instantly share code, notes, and snippets.

@RimonEkjon
Forked from sebyoga/gist:5813098
Created August 26, 2014 04:27
Show Gist options
  • Save RimonEkjon/d6e23edb0be1f3f40124 to your computer and use it in GitHub Desktop.
Save RimonEkjon/d6e23edb0be1f3f40124 to your computer and use it in GitHub Desktop.
/**
*
* @param unknown_type $form
* @param unknown_type $form_state
* @return multitype:string NULL
*/
function multifiles_example_form($form, &$form_state) {
$form['#tree'] = TRUE;
$form['names_fieldset'] = array(
'#type' => 'fieldset',
'#title' => t('Multiple managed_file upload'),
'#prefix' => '<div id="names-fieldset-wrapper">',
'#suffix' => '</div>',
);
if (empty($form_state['num_names'])) {
$form_state['num_names'] = 1;
}
for ($i = 0; $i < $form_state['num_names']; $i++) {
$form['names_fieldset']['name'][$i] = array(
'#title' => t('Image '.$filecount),
'#type' => 'managed_file',
'#upload_location' => 'public://multifiles_example_images/',
'#default_value' =>$value,
'#upload_validators' => array(
'file_validate_extensions' => array('gif png jpg jpeg'),
'file_validate_size' => array(1000000),
),
);
}
$form['names_fieldset']['add_name'] = array(
'#type' => 'submit',
'#value' => t('Add one more'),
'#submit' => array('multifiles_example_add_more_add_one'),
'#ajax' => array(
'callback' => 'multifiles_example_add_more_callback',
'wrapper' => 'names-fieldset-wrapper',
),
);
if ($form_state['num_names'] > 1) {
$form['names_fieldset']['remove_name'] = array(
'#type' => 'submit',
'#value' => t('Remove one'),
'#submit' => array('multifiles_example_add_more_remove_one'),
'#ajax' => array(
'callback' => 'multifiles_example_add_more_callback',
'wrapper' => 'names-fieldset-wrapper',
),
);
}
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
function multifiles_example_add_more_callback($form, $form_state) {
return $form['names_fieldset'];
}
function multifiles_example_add_more_add_one($form, &$form_state) {
$form_state['num_names']++;
$form_state['rebuild'] = TRUE;
}
function multifiles_example_add_more_remove_one($form, &$form_state) {
if ($form_state['num_names'] > 1) {
$form_state['num_names']--;
}
$form_state['rebuild'] = TRUE;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment