You are here

function views_theme_wizard_form in Views (for Drupal 7) 5

1 string reference to 'views_theme_wizard_form'
views_theme_wizard_page in ./views_theme_wizard.module

File

./views_theme_wizard.module, line 36

Code

function views_theme_wizard_form($views, $form_values = array()) {
  $form = array();
  if (!isset($form_values['step'])) {
    $step = 1;
  }
  else {
    $step = $form_values['step'];
  }
  $form['markup'] = array(
    '#value' => t('<p>The views theming wizard generates code that you can use in your phptemplate theme to help you customize the output of a view. Simply select a theme and it will generate code for your template.php as well as template files for the individual views.</p><p>At this time this code assumes your view is a <b>list type view</b>! It may not generate effective code for other types of views. Future versions of this program will be smarter, and give more options, but this wizard is still a huge start.</p>'),
    '#weight' => 0,
  );
  $op = isset($form_values['op']) ? $form_values['op'] : '';
  while ($step != 0) {
    if (1 == $step) {
      $form['step'] = array(
        '#type' => 'hidden',
        '#value' => $step,
      );
      $form['vid'] = array(
        '#type' => 'select',
        '#options' => $views,
        '#title' => t('Select a view'),
        '#weight' => 5,
      );
      $form['theme_type'] = array(
        '#type' => 'select',
        '#title' => t('Select Theme Type'),
        '#options' => views_theme_wizard_get_theme_types(),
        '#weight' => 6,
      );
      $form['submit'] = array(
        '#type' => 'button',
        '#value' => t('Select Theme Type'),
        '#weight' => 10,
      );
      $form['submit2'] = array(
        '#type' => 'button',
        '#value' => t('List Theme Fields'),
        '#weight' => 11,
      );
      $form['step'] = array(
        '#type' => 'hidden',
        '#value' => $step + 1,
      );
      $step = 0;
    }
    elseif (2 == $step && $op == t('List Theme Fields')) {
      $view = views_get_view($form_values['vid']);
      $form['code1']['#type'] = 'textarea';
      $form['code1']['#value'] = views_theme_wizard_list_fields($view);
      $form['code1']['#title'] = t('This is a list of all the theme functions you can use to override individual field displays');
      $form['code1']['#rows'] = 20;
      $form['code2']['#type'] = 'textarea';
      $form['code2']['#value'] = views_theme_wizard_example_field($view);
      $form['code2']['#title'] = t('This is a basic theme function', array(
        '@s' => $view->name,
      ));
      $form['code2']['#rows'] = 20;
      $step = 0;
    }
    elseif (2 == $step && ($op = t('Select Theme Type'))) {
      $view = views_get_view($form_values['vid']);
      $type = $form_values['theme_type'];
      $additions = module_invoke_all('views_theme_wizard_types', 'configure', $type, $view);
      if (!$additions) {
        $step = 3;
        continue;
      }
      $form['theme_type'] = array(
        '#type' => 'hidden',
        '#value' => $type,
      );
      $form['vid'] = array(
        '#type' => 'hidden',
        '#value' => $form_values['vid'],
      );
      foreach ($additions as $k => $v) {
        $form[$k] = $v;
      }
      $form['generate'] = array(
        '#type' => 'button',
        '#value' => t('Generate Theme'),
        '#weight' => 10,
      );
      $form['step'] = array(
        '#type' => 'hidden',
        '#value' => $step + 1,
      );
      $step = 0;
    }
    elseif (3 == $step) {
      $view = views_get_view($form_values['vid']);
      $form['code1']['#type'] = 'textarea';
      $form['code1']['#value'] = views_theme_wizard_generate_list_code($form_values['theme_type'], $view, $form_values);
      $form['code1']['#title'] = t('This code goes in your template.php file');
      $form['code1']['#rows'] = 20;
      $form['code2']['#type'] = 'textarea';
      $form['code2']['#value'] = views_theme_wizard_generate_list_template_code($view);
      $form['code2']['#title'] = t('This code goes in a file named views-list-@s.tpl.php', array(
        '@s' => $view->name,
      ));
      $form['code2']['#rows'] = 20;
      $form['code3']['#type'] = 'textarea';
      $form['code3']['#value'] = views_theme_wizard_generate_list_stylesheet_code($view);
      $form['code3']['#title'] = t('This code goes in a file named views-list-@s.css', array(
        '@s' => $view->name,
      ));
      $form['code3']['#rows'] = 20;
      $step = 0;
    }
  }
  $form['#multistep'] = TRUE;
  $form['#redirect'] = FALSE;
  return $form;
}