| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
1 <?php 2 // $Id: webform_handler_field_submission_link.inc,v 1.2.2.1 2010/03/03 02:51:31 quicksketch Exp $ 3 4 /** 5 * @file 6 * Views handler to display links to a submission. 7 */ 8 9 /** 10 * Field handler to present a link to the user. 11 */ 12 class webform_handler_field_submission_link extends views_handler_field { 13 var $link_type; 14 15 function construct() { 16 // We need to set this property before calling the construct() chain 17 // as we use it in the option_definintion() call. 18 $this->link_type = $this->definition['link_type']; 19 20 parent::construct(); 21 $this->additional_fields['sid'] = 'sid'; 22 $this->additional_fields['nid'] = 'nid'; 23 $this->additional_fields['uid'] = 'uid'; 24 25 $this->additional_fields['node_uid'] = array( 26 'table' => 'node', 27 'field' => 'uid', 28 ); 29 } 30 31 function allow_advanced_render() { 32 return FALSE; 33 } 34 35 function option_definition() { 36 $options = parent::option_definition(); 37 $options['label'] = array('default' => '', 'translatable' => TRUE); 38 $options['text'] = array('default' => $this->link_type, 'translatable' => TRUE); 39 return $options; 40 } 41 42 function options_form(&$form, &$form_state) { 43 parent::options_form($form, $form_state); 44 $form['text'] = array( 45 '#type' => 'textfield', 46 '#title' => t('Text to display'), 47 '#default_value' => $this->options['text'], 48 ); 49 } 50 51 function query() { 52 $this->ensure_my_table(); 53 54 // Join to the node table to retrieve the node UID. 55 $join = new views_join(); 56 $join->construct('node', $this->table_alias, 'nid', 'nid'); 57 $this->query->ensure_table('node', $this->relationship, $join); 58 59 $this->add_additional_fields(); 60 } 61 62 function render($values) { 63 $submission = new stdClass(); 64 $submission->sid = $values->{$this->aliases['sid']}; 65 $submission->nid = $values->{$this->aliases['nid']}; 66 $submission->uid = $values->{$this->aliases['uid']}; 67 $node = (object) array( 68 'nid' => $submission->nid, 69 'uid' => $values->{$this->aliases['node_uid']}, 70 ); 71 72 switch ($this->link_type) { 73 case 'view': 74 $text = !empty($this->options['text']) ? $this->options['text'] : t('delete'); 75 $link = l($text, "node/$submission->nid/submission/$submission->sid"); 76 $access = webform_submission_access($node, $submission, 'view'); 77 break; 78 case 'edit': 79 $text = !empty($this->options['text']) ? $this->options['text'] : t('edit'); 80 $link = l($text, "node/$submission->nid/submission/$submission->sid/edit"); 81 $access = webform_submission_access($node, $submission, 'edit'); 82 break; 83 case 'delete': 84 $text = !empty($this->options['text']) ? $this->options['text'] : t('view'); 85 $path = drupal_get_path_alias($_GET['q']); 86 $link = l($text, "node/$submission->nid/submission/$submission->sid/delete", array('query' => 'destination=' . $path)); 87 $access = webform_submission_access($node, $submission, 'delete'); 88 break; 89 default: 90 $text = ''; 91 $link = NULL; 92 $access = FALSE; 93 } 94 95 if (!$access) { 96 return; 97 } 98 99 return $link; 100 } 101 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Mar 24 11:18:33 2011 | Cross-referenced by PHPXref 0.7 |