[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * SimplePie 4 * 5 * A PHP-Based RSS and Atom Feed Framework. 6 * Takes the hard work out of managing a complete RSS/Atom solution. 7 * 8 * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors 9 * All rights reserved. 10 * 11 * Redistribution and use in source and binary forms, with or without modification, are 12 * permitted provided that the following conditions are met: 13 * 14 * * Redistributions of source code must retain the above copyright notice, this list of 15 * conditions and the following disclaimer. 16 * 17 * * Redistributions in binary form must reproduce the above copyright notice, this list 18 * of conditions and the following disclaimer in the documentation and/or other materials 19 * provided with the distribution. 20 * 21 * * Neither the name of the SimplePie Team nor the names of its contributors may be used 22 * to endorse or promote products derived from this software without specific prior 23 * written permission. 24 * 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS 26 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 27 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS 28 * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 29 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 31 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 32 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 * POSSIBILITY OF SUCH DAMAGE. 34 * 35 * @package SimplePie 36 * @version 1.3.1 37 * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue 38 * @author Ryan Parman 39 * @author Geoffrey Sneddon 40 * @author Ryan McCue 41 * @link http://simplepie.org/ SimplePie 42 * @license http://www.opensource.org/licenses/bsd-license.php BSD License 43 */ 44 45 /** 46 * Base class for database-based caches 47 * 48 * @package SimplePie 49 * @subpackage Caching 50 */ 51 abstract class SimplePie_Cache_DB implements SimplePie_Cache_Base 52 { 53 /** 54 * Helper for database conversion 55 * 56 * Converts a given {@see SimplePie} object into data to be stored 57 * 58 * @param SimplePie $data 59 * @return array First item is the serialized data for storage, second item is the unique ID for this item 60 */ 61 protected static function prepare_simplepie_object_for_cache($data) 62 { 63 $items = $data->get_items(); 64 $items_by_id = array(); 65 66 if (!empty($items)) 67 { 68 foreach ($items as $item) 69 { 70 $items_by_id[$item->get_id()] = $item; 71 } 72 73 if (count($items_by_id) !== count($items)) 74 { 75 $items_by_id = array(); 76 foreach ($items as $item) 77 { 78 $items_by_id[$item->get_id(true)] = $item; 79 } 80 } 81 82 if (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0])) 83 { 84 $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]; 85 } 86 elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0])) 87 { 88 $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]; 89 } 90 elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0])) 91 { 92 $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]; 93 } 94 elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0])) 95 { 96 $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0]; 97 } 98 else 99 { 100 $channel = null; 101 } 102 103 if ($channel !== null) 104 { 105 if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry'])) 106 { 107 unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']); 108 } 109 if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry'])) 110 { 111 unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']); 112 } 113 if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item'])) 114 { 115 unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']); 116 } 117 if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item'])) 118 { 119 unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']); 120 } 121 if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item'])) 122 { 123 unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']); 124 } 125 } 126 if (isset($data->data['items'])) 127 { 128 unset($data->data['items']); 129 } 130 if (isset($data->data['ordered_items'])) 131 { 132 unset($data->data['ordered_items']); 133 } 134 } 135 return array(serialize($data->data), $items_by_id); 136 } 137 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |