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-2016, Ryan Parman, Sam 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 * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue 37 * @author Ryan Parman 38 * @author Sam Sneddon 39 * @author Ryan McCue 40 * @link http://simplepie.org/ SimplePie 41 * @license http://www.opensource.org/licenses/bsd-license.php BSD License 42 */ 43 44/** 45 * Manages all category-related data 46 * 47 * Used by {@see SimplePie_Item::get_category()} and {@see SimplePie_Item::get_categories()} 48 * 49 * This class can be overloaded with {@see SimplePie::set_category_class()} 50 * 51 * @package SimplePie 52 * @subpackage API 53 */ 54class SimplePie_Category 55{ 56 /** 57 * Category identifier 58 * 59 * @var string|null 60 * @see get_term 61 */ 62 var $term; 63 64 /** 65 * Categorization scheme identifier 66 * 67 * @var string|null 68 * @see get_scheme() 69 */ 70 var $scheme; 71 72 /** 73 * Human readable label 74 * 75 * @var string|null 76 * @see get_label() 77 */ 78 var $label; 79 80 /** 81 * Category type 82 * 83 * category for <category> 84 * subject for <dc:subject> 85 * 86 * @var string|null 87 * @see get_type() 88 */ 89 var $type; 90 91 /** 92 * Constructor, used to input the data 93 * 94 * @param string|null $term 95 * @param string|null $scheme 96 * @param string|null $label 97 * @param string|null $type 98 */ 99 public function __construct($term = null, $scheme = null, $label = null, $type = null) 100 { 101 $this->term = $term; 102 $this->scheme = $scheme; 103 $this->label = $label; 104 $this->type = $type; 105 } 106 107 /** 108 * String-ified version 109 * 110 * @return string 111 */ 112 public function __toString() 113 { 114 // There is no $this->data here 115 return md5(serialize($this)); 116 } 117 118 /** 119 * Get the category identifier 120 * 121 * @return string|null 122 */ 123 public function get_term() 124 { 125 return $this->term; 126 } 127 128 /** 129 * Get the categorization scheme identifier 130 * 131 * @return string|null 132 */ 133 public function get_scheme() 134 { 135 return $this->scheme; 136 } 137 138 /** 139 * Get the human readable label 140 * 141 * @param bool $strict 142 * @return string|null 143 */ 144 public function get_label($strict = false) 145 { 146 if ($this->label === null && $strict !== true) 147 { 148 return $this->get_term(); 149 } 150 return $this->label; 151 } 152 153 /** 154 * Get the category type 155 * 156 * @return string|null 157 */ 158 public function get_type() 159 { 160 return $this->type; 161 } 162} 163 164