[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * 4 * 5 * Created on Sep 19, 2006 6 * 7 * Copyright © 2006 Yuri Astrakhan "<Firstname><Lastname>@gmail.com" 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License along 20 * with this program; if not, write to the Free Software Foundation, Inc., 21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 22 * http://www.gnu.org/copyleft/gpl.html 23 * 24 * @file 25 */ 26 27 /** 28 * This printer is used to wrap an instance of the Feed class 29 * @ingroup API 30 */ 31 class ApiFormatFeedWrapper extends ApiFormatBase { 32 33 public function __construct( ApiMain $main ) { 34 parent::__construct( $main, 'feed' ); 35 } 36 37 /** 38 * Call this method to initialize output data. See execute() 39 * @param ApiResult $result 40 * @param object $feed An instance of one of the $wgFeedClasses classes 41 * @param array $feedItems Array of FeedItem objects 42 */ 43 public static function setResult( $result, $feed, $feedItems ) { 44 // Store output in the Result data. 45 // This way we can check during execution if any error has occurred 46 // Disable size checking for this because we can't continue 47 // cleanly; size checking would cause more problems than it'd 48 // solve 49 $result->addValue( null, '_feed', $feed, ApiResult::NO_SIZE_CHECK ); 50 $result->addValue( null, '_feeditems', $feedItems, ApiResult::NO_SIZE_CHECK ); 51 } 52 53 /** 54 * Feed does its own headers 55 * 56 * @return null 57 */ 58 public function getMimeType() { 59 return null; 60 } 61 62 /** 63 * Optimization - no need to sanitize data that will not be needed 64 * 65 * @return bool 66 */ 67 public function getNeedsRawData() { 68 return true; 69 } 70 71 /** 72 * ChannelFeed doesn't give us a method to print errors in a friendly 73 * manner, so just punt errors to the default printer. 74 * @return bool 75 */ 76 public function canPrintErrors() { 77 return false; 78 } 79 80 /** 81 * This class expects the result data to be in a custom format set by self::setResult() 82 * $result['_feed'] - an instance of one of the $wgFeedClasses classes 83 * $result['_feeditems'] - an array of FeedItem instances 84 */ 85 public function execute() { 86 $data = $this->getResultData(); 87 if ( isset( $data['_feed'] ) && isset( $data['_feeditems'] ) ) { 88 $feed = $data['_feed']; 89 $items = $data['_feeditems']; 90 91 $feed->outHeader(); 92 foreach ( $items as & $item ) { 93 $feed->outItem( $item ); 94 } 95 $feed->outFooter(); 96 } else { 97 // Error has occurred, print something useful 98 ApiBase::dieDebug( __METHOD__, 'Invalid feed class/item' ); 99 } 100 } 101 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |