6.x-1.x branch
Shows how to integrate your custom node options with vertical tabs module in Drupal 6. This example does not cover how to save / load custom setting, and only deals with elements visibility.
| Name | Description |
|---|---|
| vertical_tabs_example_form_alter | Implement hook_form_alter(). |
| vertical_tabs_example_menu | Implements hook_menu for a simple explanation page. |
| _vertical_tabs_example_explanation | Simple explanation page. |
- <?php
-
- /**
- * @file
- * Shows how to integrate your custom node options with vertical tabs module in
- * Drupal 6. This example does not cover how to save / load custom setting, and
- * only deals with elements visibility.
- */
-
- /**
- * @defgroup vertical_tabs_example Example: Vertical Tabs
- * @ingroup examples
- * @{
- * Using vertical_tabs module. (drupal 6)
- *
- * Shows how to integrate your custom node options with vertical tabs module in
- * Drupal 6. This example does not cover how to save / load custom setting, and
- * only deals with elements visibility.
- *
- * This example is part of the Examples for Developers Project which you can download
- * and experiment with here: http://drupal.org/project/examples
- */
-
- /**
- * Implements hook_menu for a simple explanation page.
- */
- function vertical_tabs_example_menu() {
- $items['examples/vertical_tabs'] = array(
- 'title' => 'Vertical tabs example',
- 'description' => 'Shows how vertical tabs can best be supported by a custom module',
- 'page callback' => '_vertical_tabs_example_explanation',
- 'access callback' => TRUE,
- );
- return $items;
- }
-
- /**
- * Implement hook_form_alter().
- *
- * Adds custom fieldset to the node form, and attach ajax behaviour for vertical
- * panels to update the settings description.
- */
- function vertical_tabs_example_form_alter(&$form, $form_state, $form_id) {
- // Only include on node add/edit forms.
- if (isset($form['#node']) && $form['#node']->type .'_node_form' == $form_id) {
-
- // Define a fieldset for our settings in the node edit form.
- $form['vertical_tabs_example'] = array(
- '#type' => 'fieldset',
- '#title' => t('Example vertical tab'),
- '#collapsible' => TRUE,
- '#collapsed' => FALSE,
- // The #group value must be defined to be included in the vertical tabs
- // element by default.
- '#group' => 'additional_settings',
- // Attach the javascript for vertical tabs. Normally we would use
- // drupal_add_js(), but the vertical tabs module supports this special
- // Drupal 7 #attached property.
- '#attached' => array(
- 'js' => array(drupal_get_path('module', 'vertical_tabs_example') . '/vertical_tabs_example.js'),
- ),
- '#tree' => TRUE,
- '#weight' => -2,
- );
-
- // This checkbox is used to show or hide the custom settings form using
- // javascript (altering states of a container defined later).
- $form['vertical_tabs_example']['enabled'] = array(
- '#type' => 'checkbox',
- '#title' => t('Use custom configuration'),
- '#default_value' => FALSE,
- );
-
- // This container will be used to store the whole form for our custom
- // settings. This way, showing/hidding the form using javascript is easier,
- // as only one element should be set visible.
- $form['vertical_tabs_example']['vertical_tabs_examplecontainer'] = array(
- '#type' => 'fieldset',
- '#title' => t('Custom setting'),
- // This attribute is required for vertical tabs to track elements beneath
- // it's own tree.
- '#parents' => array('vertical_tabs_example'),
- );
-
- // The string of this textfield that will be shown as summary in the
- // vertical tab if the checkbox is enabled.
- $form['vertical_tabs_example']['vertical_tabs_examplecontainer']['custom_setting'] = array(
- '#type' => 'textfield',
- '#title' => t('Use this custom setting'),
- '#default_value' => '',
- );
- }
- }
-
- /**
- * Simple explanation page.
- */
- function _vertical_tabs_example_explanation() {
- return t("The Vertical Tabs Example shows how a custom module can best support vertical tabs. To see the effects of this module, look at the <a href='!node_add'>node/add</a> form", array('!node_add' => url('node/add')));
- }
-
- /**
- * @} End of "defgroup vertical_tabs_example".
- */
-