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