/[drupal]/contributions/modules/views_embed_form/views_handler_field_views_embed_form.inc
ViewVC logotype

Contents of /contributions/modules/views_embed_form/views_handler_field_views_embed_form.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.5 - (show annotations) (download) (as text)
Sat Nov 15 10:12:02 2008 UTC (12 months, 1 week ago) by meba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +14 -6 lines
File MIME type: text/x-php
#333779 Patch to handle multiple instances of the form by wojtha
1 <?php
2 // $Id: views_handler_field_views_embed_form.inc,v 1.4 2008/11/03 15:36:58 meba Exp $
3
4 class views_handler_field_views_embed_form extends views_handler_field {
5
6 /**
7 * Helper counter for generating unique form ids
8 *
9 * @return int
10 */
11 static function form_counter() {
12 static $counter = 0;
13 return $counter++;
14 }
15
16 function option_definition() {
17 $options = parent::option_definition();
18 $options['embedded_form'] = array('default' => FALSE);
19 return $options;
20 }
21
22 function options_form(&$form, &$form_state) {
23 parent::options_form($form, $form_state);
24
25 $options = array('--' => '--');
26 $options += views_embed_form_get_forms();
27 $form['embedded_form'] = array(
28 '#title' => t('Embedded form name'),
29 '#type' => 'select',
30 '#description' => t('Select a form you want to embed. These names are provided using an API implemented by various modules. See <a href="@help">module documentation</a> for help with implementing this API.', array('@help' => 'http://drupal.org/node/329511')),
31 '#options' => $options,
32 '#default_value' => $this->options['embedded_form'],
33 '#required' => TRUE,
34 );
35 }
36 function options_validate($form, &$form_state) {
37 if ($form_state['values']['options']['embedded_form'] == '--') {
38 form_set_error('embedded_form', t('Please select embedded form name.'));
39 }
40 }
41
42
43 function render($values) {
44 foreach(module_implements('views_embed_form') as $module) {
45 $function = $module . '_views_embed_form';
46 $form_name = $function();
47 if (isset($form_name) && key($form_name) === $this->options['embedded_form'] && function_exists($this->options['embedded_form'])) {
48 return drupal_get_form($this->options['embedded_form'] . self::form_counter(), $values);
49 }
50 }
51 return t('You do not have permission to access embedded form.');
52 }
53 }

  ViewVC Help
Powered by ViewVC 1.1.2