You are here

function theme_wikitools_create in Wikitools 6

Same name and namespace in other branches
  1. 7 wikitools.pages.inc \theme_wikitools_create()
1 theme call to theme_wikitools_create()
theme_wikitools_page_does_not_exist in ./wikitools.pages.inc

File

./wikitools.pages.inc, line 188
Page callbacks for wikitools pages.

Code

function theme_wikitools_create($page_name) {
  $node_types = wikitools_node_types();
  $form = array();
  $output = '';
  if (wikitools_node_creation() && count($node_types)) {
    $output .= '<p>' . t('You can create the page as:') . '</p>';

    // Collapse the forms initially if there are more than one.
    $collapsed = count($node_types) > 1 ? ' collapsed' : '';

    // The form_alter hooks excpects the preset title in the GET array, so we put it there.
    $_GET['edit']['title'] = $page_name;
    foreach ($node_types as $type) {
      drupal_add_js('misc/collapse.js');
      $type = node_get_types('type', $type);
      if (node_access('create', $type->type)) {
        $output .= '<fieldset class="collapsible' . $collapsed . '"><legend>' . $type->name . '</legend>';
        if ($router_item = menu_get_item('node/add/' . str_replace('_', '-', $type->type))) {
          if ($router_item['file']) {
            require_once $router_item['file'];
          }
          $output .= call_user_func_array($router_item['page_callback'], $router_item['page_arguments']);
        }
        $output .= '</fieldset>';
      }
    }

    // Some of the callbacks could have set the page title, so we reset it.
    drupal_set_title(t('Page does not exist: %page', array(
      '%page' => $page_name,
    )));
  }
  return $output;
}