angelovcom.net

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

Category.php (3944B)


      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  */
     54 class 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