| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
1 <?php 2 // $Id: views_plugin_style_rss.inc,v 1.2 2008/12/02 00:02:06 merlinofchaos Exp $ 3 /** 4 * @file 5 * Contains the RSS style plugin. 6 */ 7 8 /** 9 * Default style plugin to render an RSS feed. 10 * 11 * @ingroup views_style_plugins 12 */ 13 class views_plugin_style_rss extends views_plugin_style { 14 function attach_to($display_id, $path, $title) { 15 $display = $this->view->display[$display_id]->handler; 16 $url_options = array(); 17 $input = $this->view->get_exposed_input(); 18 if ($input) { 19 $url_options['query'] = $input; 20 } 21 22 $url = url($this->view->get_url(NULL, $path), $url_options); 23 if ($display->has_path()) { 24 if (empty($this->preview)) { 25 drupal_add_feed($url, $title); 26 } 27 } 28 else { 29 if (empty($this->view->feed_icon)) { 30 $this->view->feed_icon = ''; 31 } 32 33 $this->view->feed_icon .= theme('feed_icon', $url, $title); 34 drupal_add_link(array( 35 'rel' => 'alternate', 36 'type' => 'application/rss+xml', 37 'title' => $title, 38 'href' => $url 39 )); 40 } 41 } 42 43 function option_definition() { 44 $options = parent::option_definition(); 45 46 $options['description'] = array('default' => '', 'translatable' => TRUE); 47 $options['mission_description'] = array('default' => '', 'translatable' => TRUE); 48 49 return $options; 50 } 51 52 function options_form(&$form, &$form_state) { 53 $form['mission_description'] = array( 54 '#type' => 'checkbox', 55 '#default_value' => !empty($this->options['mission_description']), 56 '#title' => t('Use the site mission for the description'), 57 ); 58 $form['description'] = array( 59 '#type' => 'textfield', 60 '#title' => t('RSS description'), 61 '#default_value' => $this->options['description'], 62 '#description' => t('This will appear in the RSS feed itself.'), 63 '#process' => array('views_process_dependency'), 64 '#dependency' => array('edit-style-options-override' => array(FALSE)), 65 ); 66 } 67 68 /** 69 * Return an array of additional XHTML elements to add to the channel. 70 * 71 * @return 72 * An array that can be passed to format_xml_elements(). 73 */ 74 function get_channel_elements() { 75 return array(); 76 } 77 78 function render() { 79 if (empty($this->row_plugin)) { 80 vpr('views_plugin_style_default: Missing row plugin'); 81 return; 82 } 83 $rows = ''; 84 85 // This will be filled in by the row plugin and is used later on in the 86 // theming output. 87 $this->namespaces = array(); 88 89 // Fetch any additional elements for the channel and merge in their 90 // namespaces. 91 $this->channel_elements = $this->get_channel_elements(); 92 foreach ($this->channel_elements as $element) { 93 if (isset($element['namespace'])) { 94 $this->namespaces = array_merge($this->namespaces, $element['namespace']); 95 } 96 } 97 98 foreach ($this->view->result as $row) { 99 $rows .= $this->row_plugin->render($row); 100 } 101 102 return theme($this->theme_functions(), $this->view, $this->options, $rows); 103 } 104 }
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 |