123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- <?php
- function ctools_plugin_configure_form($form_info, &$form_state) {
-
- _ctools_plugin_configure_create_form_info($form_info, $form_state['plugin'], $form_state['op']);
- if (empty($form_info['order'])) {
- return FALSE;
- }
- ctools_include('wizard');
- return ctools_wizard_multistep_form($form_info, $form_state['step'], $form_state);
- }
- function _ctools_plugin_configure_create_form_info(&$form_info, $plugin_definition, $op) {
-
- $form_info += array(
- 'id' => 'ctools_plugin_configure_form',
- 'show back' => TRUE,
- );
- $add_form = isset($form_info['add form name']) ? $form_info['add form name'] : 'add form';
- $edit_form = isset($form_info['edit form name']) ? $form_info['edit form name'] : 'edit form';
-
-
-
- if ($op == 'add') {
- if (!empty($plugin_definition[$add_form])) {
- $info = $plugin_definition[$add_form];
- }
- }
- if (!isset($info) || $op == 'edit') {
-
- if (!empty($plugin_definition[$edit_form])) {
- $info = $plugin_definition[$edit_form];
- }
- }
-
-
- if (empty($info) && !empty($form_info['default form'])) {
- $info = $form_info['default form'];
- }
-
- if (is_string($info)) {
- if (empty($plugin_definition['title'])) {
- $title = t('Configure');
- }
- elseif ($op == 'add') {
- $title = t('Configure new !plugin_title', array('!plugin_title' => $plugin_definition['title']));
- }
- else {
- $title = t('Configure !plugin_title', array('!plugin_title' => $plugin_definition['title']));
- }
- if (empty($form_info['order'])) {
- $form_info['order'] = array();
- }
- $form_info['order']['form'] = $title;
- if (empty($form_info['forms'])) {
- $form_info['forms'] = array();
- }
- $form_info['forms']['form'] = array(
- 'title' => $title,
- 'form id' => $info,
- );
-
- if (!empty($form_info['default form']) && $form_info['forms']['form']['form id'] != $form_info['default form']) {
- $form_info['forms']['form']['wrapper'] = $form_info['default form'];
- }
-
-
- if (!function_exists($form_info['forms']['form']['form id'] . '_submit')) {
-
- if (!empty($form_info['forms']['form']['wrapper'])) {
- $form_info['forms']['form']['original wrapper'] = $form_info['forms']['form']['wrapper'];
- }
- $form_info['forms']['form']['wrapper'] = 'ctools_plugins_default_form_wrapper';
- }
- }
- elseif (is_array($info)) {
- if (empty($form_info['order'])) {
- $form_info['order'] = array();
- }
- if (empty($form_info['forms'])) {
- $form_info['forms'] = array();
- }
- $count = 0;
- $base = 'step';
- $wrapper = NULL;
- foreach ($info as $form_id => $title) {
- $step = $base . ++$count;
- if (empty($wrapper)) {
- $wrapper = $step;
- }
- if (is_array($title)) {
- if (!empty($title['default'])) {
- $wrapper = $step;
- }
- $title = $title['title'];
- }
- $form_info['order'][$step] = $title;
- $form_info['forms'][$step] = array(
- 'title' => $title,
- 'form id' => $form_id,
- );
- }
- if ($wrapper && !empty($form_info['default form'])) {
- $form_info['forms'][$wrapper]['wrapper'] = $form_info['default form'];
- }
- }
- }
- function ctools_plugins_default_form_wrapper($form, &$form_state) {
- $form_info = &$form_state['form_info'];
- $info = $form_info['forms'][$form_state['step']];
- if (isset($info['original wrapper']) && function_exists($info['original wrapper'])) {
- $form = $info['original wrapper']($form, $form_state);
- }
- if (isset($form['buttons']['next'])) {
- if (empty($form['buttons']['next']['#submit'])) {
- $form['buttons']['next']['#submit'] = $form['#submit'];
- }
- $form['buttons']['next']['#submit'][] = 'ctools_plugins_default_form_wrapper_submit';
- }
- if (isset($form['buttons']['return'])) {
- if (empty($form['buttons']['return']['#submit'])) {
- $form['buttons']['return']['#submit'] = $form['#submit'];
- }
- $form['buttons']['return']['#submit'][] = 'ctools_plugins_default_form_wrapper_submit';
- }
- return $form;
- }
- function ctools_plugins_default_form_wrapper_submit(&$form, &$form_state) {
- foreach (array_keys($form_state['plugin']['defaults']) as $key) {
- if (isset($form_state['values'][$key])) {
- $form_state['conf'][$key] = $form_state['values'][$key];
- }
- }
- }
|