annotate modules/search/tests/search_embedded_form.module @ 2:b74b41bb73f0

-- Google analytics module
author danieleb <danielebarchiesi@me.com>
date Thu, 22 Aug 2013 17:22:54 +0100
parents ff03f76ab3fe
children
rev   line source
danielebarchiesi@0 1 <?php
danielebarchiesi@0 2
danielebarchiesi@0 3 /**
danielebarchiesi@0 4 * @file
danielebarchiesi@0 5 * Test module implementing a form that can be embedded in search results.
danielebarchiesi@0 6 *
danielebarchiesi@0 7 * Embedded form are important, for example, for ecommerce sites where each
danielebarchiesi@0 8 * search result may included an embedded form with buttons like "Add to cart"
danielebarchiesi@0 9 * for each individual product (node) listed in the search results.
danielebarchiesi@0 10 */
danielebarchiesi@0 11
danielebarchiesi@0 12 /**
danielebarchiesi@0 13 * Implements hook_menu().
danielebarchiesi@0 14 */
danielebarchiesi@0 15 function search_embedded_form_menu() {
danielebarchiesi@0 16 $items['search_embedded_form'] = array(
danielebarchiesi@0 17 'title' => 'Search_Embed_Form',
danielebarchiesi@0 18 'page callback' => 'drupal_get_form',
danielebarchiesi@0 19 'page arguments' => array('search_embedded_form_form'),
danielebarchiesi@0 20 'access arguments' => array('search content'),
danielebarchiesi@0 21 'type' => MENU_CALLBACK,
danielebarchiesi@0 22 );
danielebarchiesi@0 23
danielebarchiesi@0 24 return $items;
danielebarchiesi@0 25 }
danielebarchiesi@0 26
danielebarchiesi@0 27 /**
danielebarchiesi@0 28 * Builds a form for embedding in search results for testing.
danielebarchiesi@0 29 *
danielebarchiesi@0 30 * @see search_embedded_form_form_submit().
danielebarchiesi@0 31 */
danielebarchiesi@0 32 function search_embedded_form_form($form, &$form_state) {
danielebarchiesi@0 33 $count = variable_get('search_embedded_form_submitted', 0);
danielebarchiesi@0 34
danielebarchiesi@0 35 $form['name'] = array(
danielebarchiesi@0 36 '#type' => 'textfield',
danielebarchiesi@0 37 '#title' => t('Your name'),
danielebarchiesi@0 38 '#maxlength' => 255,
danielebarchiesi@0 39 '#default_value' => '',
danielebarchiesi@0 40 '#required' => TRUE,
danielebarchiesi@0 41 '#description' => t('Times form has been submitted: %count', array('%count' => $count)),
danielebarchiesi@0 42 );
danielebarchiesi@0 43
danielebarchiesi@0 44 $form['actions'] = array('#type' => 'actions');
danielebarchiesi@0 45 $form['actions']['submit'] = array(
danielebarchiesi@0 46 '#type' => 'submit',
danielebarchiesi@0 47 '#value' => t('Send away'),
danielebarchiesi@0 48 );
danielebarchiesi@0 49
danielebarchiesi@0 50 $form['#submit'][] = 'search_embedded_form_form_submit';
danielebarchiesi@0 51
danielebarchiesi@0 52 return $form;
danielebarchiesi@0 53 }
danielebarchiesi@0 54
danielebarchiesi@0 55 /**
danielebarchiesi@0 56 * Submit handler for search_embedded_form_form().
danielebarchiesi@0 57 */
danielebarchiesi@0 58 function search_embedded_form_form_submit($form, &$form_state) {
danielebarchiesi@0 59 $count = variable_get('search_embedded_form_submitted', 0) + 1;
danielebarchiesi@0 60 variable_set('search_embedded_form_submitted', $count);
danielebarchiesi@0 61 drupal_set_message(t('Test form was submitted'));
danielebarchiesi@0 62 }
danielebarchiesi@0 63
danielebarchiesi@0 64 /**
danielebarchiesi@0 65 * Adds the test form to search results.
danielebarchiesi@0 66 */
danielebarchiesi@0 67 function search_embedded_form_preprocess_search_result(&$variables) {
danielebarchiesi@0 68 $form = drupal_get_form('search_embedded_form_form');
danielebarchiesi@0 69 $variables['snippet'] .= drupal_render($form);
danielebarchiesi@0 70 }