array( 'render element' => 'form', 'template' => 'node-form', ), 'nodeformcols_configuration' => array( 'render element' => 'element', 'template' => 'nodeformcols-configuration', ), ); } /** * Implementation of hook_menu(). */ function nodeformcols_menu() { $items = array(); if (!defined('MAINTENANCE_MODE')) { $items['admin/structure/types/manage/%node_type/form'] = array( 'title' => 'Manage form', 'page callback' => 'drupal_get_form', 'page arguments' => array('nodeformcols_configuration_form', 4, 6), 'access arguments' => array('administer content types'), 'file' => 'nodeformcols.admin.inc', 'type' => MENU_LOCAL_TASK, 'weight' => 3, ); } return $items; } /** * Implementation of hook_ctools_plugin_directory(). */ function nodeformcols_ctools_plugin_directory($module, $plugin) { if ($module == 'ctools') { return 'plugins/' . $plugin; } } function nodeformcols_form_regions() { return array( 'main' => t('Main column'), 'right' => t('Right'), 'footer' => t('Footer'), ); } /** * Gets default placements for standard fields * * @return array */ function _nodeformscols_default_field_placements() { return array( 'title' => array('region' => 'main'), 'additional_settings' => array('region' => 'main'), 'actions' => array('region' => NODEFORMCOLS_DEFAULT_REGION, 'weight' => 100), ); } function nodeformscols_field_placements($content_type, $variant) { $default = _nodeformscols_default_field_placements(); if ($variant != 'default') { $default = variable_get('nodeformscols_field_placements_' . $content_type . '_default', $default); } $placements = variable_get('nodeformscols_field_placements_' . $content_type . '_' . $variant, $default); return $placements; } /** * Implementation of hook_form_alter(). */ function nodeformcols_form_alter(&$form, $form_state, $form_id) { if (isset($form['#node_edit_form']) && $form['#node_edit_form']) { drupal_alter('nodeformcols_pre_form', $form); $variant = isset($form['#nodeformcols_variant']) ? $form['#nodeformcols_variant'] : 'default'; $placements = nodeformscols_field_placements($form['#node']->type, $variant); foreach ($placements as $key => $p) { if (isset($p['hidden']) && $p['hidden']) { $form[$key]['#access'] = FALSE; } } drupal_alter('nodeformcols_post_form', $form); } } /** * Preprocess function to run ahead of other modules. */ function template_preprocess_node_form(&$aVars) { drupal_add_css(drupal_get_path('module', 'nodeformcols') . '/css/nodeformcols.css'); $default_region = variable_get('nodeformcols_default_region', NODEFORMCOLS_DEFAULT_REGION); $form = &$aVars['form']; $class = array('node-form', 'clearfix'); $regions = array(); $has_elements = array(); $weight = 0; foreach (nodeformcols_form_regions() as $name => $title) { $regions[$name] = array( '#prefix' => '