forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			120 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			120 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | /** | ||
|  |  * Part of XML_XRD | ||
|  |  * | ||
|  |  * PHP version 5 | ||
|  |  * | ||
|  |  * @category XML | ||
|  |  * @package  XML_XRD | ||
|  |  * @author   Christian Weiske <cweiske@php.net> | ||
|  |  * @license  http://www.gnu.org/copyleft/lesser.html LGPL | ||
|  |  * @link     http://pear.php.net/package/XML_XRD | ||
|  |  */ | ||
|  | 
 | ||
|  | require_once 'XML/XRD/PropertyAccess.php'; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Link element in a XRD file. Attribute access via object properties. | ||
|  |  * | ||
|  |  * Retrieving the title of a link is possible with the getTitle() convenience | ||
|  |  * method. | ||
|  |  * | ||
|  |  * @category XML | ||
|  |  * @package  XML_XRD | ||
|  |  * @author   Christian Weiske <cweiske@php.net> | ||
|  |  * @license  http://www.gnu.org/copyleft/lesser.html LGPL | ||
|  |  * @version  Release: @package_version@ | ||
|  |  * @link     http://pear.php.net/package/XML_XRD | ||
|  |  */ | ||
|  | class XML_XRD_Element_Link extends XML_XRD_PropertyAccess | ||
|  | { | ||
|  |     /** | ||
|  |      * Link relation | ||
|  |      * | ||
|  |      * @var string | ||
|  |      */ | ||
|  |     public $rel; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Link type (MIME type) | ||
|  |      * | ||
|  |      * @var string | ||
|  |      */ | ||
|  |     public $type; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Link URL | ||
|  |      * | ||
|  |      * @var string | ||
|  |      */ | ||
|  |     public $href; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Link URL template | ||
|  |      * | ||
|  |      * @var string | ||
|  |      */ | ||
|  |     public $template; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Array of key-value pairs: Key is the language, value the title | ||
|  |      * | ||
|  |      * @var array | ||
|  |      */ | ||
|  |     public $titles = array(); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Create a new instance and load data from the XML element | ||
|  |      * | ||
|  |      * @param string  $relOrXml   string with the relation name/URL | ||
|  |      * @param string  $href       HREF value | ||
|  |      * @param string  $type       Type value | ||
|  |      * @param boolean $isTemplate When set to true, the $href is | ||
|  |      *                            used as template | ||
|  |      */ | ||
|  |     public function __construct( | ||
|  |         $rel = null, $href = null, $type = null, $isTemplate = false | ||
|  |     ) { | ||
|  |         $this->rel = $rel; | ||
|  |         if ($isTemplate) { | ||
|  |             $this->template = $href; | ||
|  |         } else { | ||
|  |             $this->href = $href; | ||
|  |         } | ||
|  |         $this->type = $type; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Returns the title of the link in the given language. | ||
|  |      * If the language is not available, the first title without the language | ||
|  |      * is returned. If no such one exists, the first title is returned. | ||
|  |      * | ||
|  |      * @param string $lang 2-letter language name | ||
|  |      * | ||
|  |      * @return string|null Link title | ||
|  |      */ | ||
|  |     public function getTitle($lang = null) | ||
|  |     { | ||
|  |         if (count($this->titles) == 0) { | ||
|  |             return null; | ||
|  |         } | ||
|  | 
 | ||
|  |         if ($lang == null) { | ||
|  |             return reset($this->titles); | ||
|  |         } | ||
|  | 
 | ||
|  |         if (isset($this->titles[$lang])) { | ||
|  |             return $this->titles[$lang]; | ||
|  |         } | ||
|  |         if (isset($this->titles[''])) { | ||
|  |             return $this->titles['']; | ||
|  |         } | ||
|  | 
 | ||
|  |         //return first
 | ||
|  |         return reset($this->titles); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | ?>
 |