diff --git a/core/modules/image/image.admin.inc b/core/modules/image/image.admin.inc index df68065..1f61bde 100644 --- a/core/modules/image/image.admin.inc +++ b/core/modules/image/image.admin.inc @@ -217,46 +217,18 @@ function image_style_form_submit($form, &$form_state) { } /** - * Form builder; Form for adding a new image style. + * Page callback: Presents the image style creation form. * - * @ingroup forms - * @see image_style_add_form_submit() + * @return array + * A form array as expected by drupal_render(). + * + * @see image_menu() */ -function image_style_add_form($form, &$form_state) { - $form['label'] = array( - '#type' => 'textfield', - '#title' => t('Administrative label'), - '#default_value' => '', - '#required' => TRUE, - ); - $form['name'] = array( - '#type' => 'machine_name', - '#machine_name' => array( - 'exists' => 'image_style_load', - ), - '#default_value' => '', - '#required' => TRUE, - ); +function image_style_add() { - $form['submit'] = array( - '#type' => 'submit', - '#value' => t('Create new style'), - ); + $image_style = entity_create('image_style', array()); + return entity_get_form($image_style); - return $form; -} - -/** - * Submit handler for adding a new image style. - */ -function image_style_add_form_submit($form, &$form_state) { - $style = entity_create('image_style', array( - 'name' => $form_state['values']['name'], - 'label' => $form_state['values']['label'], - )); - $style->save(); - drupal_set_message(t('Style %name was created.', array('%name' => $style->label()))); - $form_state['redirect'] = 'admin/config/media/image-styles/manage/' . $style->id(); } /** diff --git a/core/modules/image/image.module b/core/modules/image/image.module index 91a3d23..d0b6dcd 100644 --- a/core/modules/image/image.module +++ b/core/modules/image/image.module @@ -127,8 +127,7 @@ function image_menu() { $items['admin/config/media/image-styles/add'] = array( 'title' => 'Add style', 'description' => 'Add a new image style.', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('image_style_add_form'), + 'page callback' => 'image_style_add', 'access arguments' => array('administer image styles'), 'type' => MENU_LOCAL_ACTION, 'weight' => 2, diff --git a/core/modules/image/lib/Drupal/image/ImageStyleFormController.php b/core/modules/image/lib/Drupal/image/ImageStyleFormController.php new file mode 100644 index 0000000..8fbc331 --- /dev/null +++ b/core/modules/image/lib/Drupal/image/ImageStyleFormController.php @@ -0,0 +1,75 @@ + 'textfield', + '#title' => t('Administrative label'), + '#default_value' => '', + '#required' => TRUE, + ); + $form['name'] = array( + '#type' => 'machine_name', + '#machine_name' => array( + 'exists' => 'image_style_load', + ), + '#default_value' => '', + '#required' => TRUE, + ); + + return $form; + } + + /** + * Overrides Drupal\Core\Entity\EntityFormController::save(). + */ + public function save(array $form, array &$form_state) { + + $style = entity_create('image_style', array( + 'name' => $form_state['values']['name'], + 'label' => $form_state['values']['label'], + )); + $style->save(); + drupal_set_message(t('Style %name was created.', array('%name' => $style->label()))); + $form_state['redirect'] = 'admin/config/media/image-styles/manage/' . $style->id(); + + } + + /** + * Returns an array of supported actions for the current entity form. + */ + public function actions(array $form, array &$form_state) { + return array( + 'submit' => array( + '#value' => t('Create new style'), + '#validate' => array( + array($this, 'validate'), + ), + '#submit' => array( + array($this, 'save'), + ), + ), + ); + } + + +} diff --git a/core/modules/image/lib/Drupal/image/Plugin/Core/Entity/ImageStyle.php b/core/modules/image/lib/Drupal/image/Plugin/Core/Entity/ImageStyle.php index d820050..d915b1f 100644 --- a/core/modules/image/lib/Drupal/image/Plugin/Core/Entity/ImageStyle.php +++ b/core/modules/image/lib/Drupal/image/Plugin/Core/Entity/ImageStyle.php @@ -19,6 +19,9 @@ * label = @Translation("Image style"), * module = "image", * controller_class = "Drupal\image\ImageStyleStorageController", + * form_controller_class = { + * "default" = "Drupal\image\ImageStyleFormController" + * }, * uri_callback = "image_style_entity_uri", * config_prefix = "image.style", * entity_keys = {