Source of file Header.php
Size: 12,075 Bytes - Last Modified: 2021-12-23T10:30:11+00:00
/var/www/docs.ssmods.com/process/src/thirdparty/Zend/Feed/Builder/Header.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424 | <?php /** * Zend Framework * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://framework.zend.com/license/new-bsd * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@zend.com so we can send you a copy immediately. * * @category Zend * @package Zend_Feed * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @version $Id: Header.php 13891 2009-01-31 11:41:00Z yoshida@zend.co.jp $ */ /** * @see Zend_Feed_Builder_Header_Itunes */ require_once 'Zend/Feed/Builder/Header/Itunes.php'; /** * @see Zend_Uri */ require_once 'Zend/Uri.php'; /** * Header of a custom build feed * * Classes implementing the Zend_Feed_Builder_Interface interface * uses this class to describe the header of a feed * * @category Zend * @package Zend_Feed * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ class Zend_Feed_Builder_Header extends ArrayObject { /** * Constructor * * @param string $title title of the feed * @param string $link canonical url of the feed * @param string $charset charset of the textual data * @return void */ public function __construct($title, $link, $charset = 'utf-8') { $this->offsetSet('title', $title); $this->offsetSet('link', $link); $this->offsetSet('charset', $charset); $this->setLastUpdate(time()) ->setGenerator('Zend_Feed'); } /** * Read only properties accessor * * @param string $name property to read * @return mixed */ public function __get($name) { if (!$this->offsetExists($name)) { return NULL; } return $this->offsetGet($name); } /** * Write properties accessor * * @param string $name name of the property to set * @param mixed $value value to set * @return void */ public function __set($name, $value) { $this->offsetSet($name, $value); } /** * Isset accessor * * @param string $key * @return boolean */ public function __isset($key) { return $this->offsetExists($key); } /** * Unset accessor * * @param string $key * @return void */ public function __unset($key) { if ($this->offsetExists($key)) { $this->offsetUnset($key); } } /** * Timestamp of the update date * * @param int $lastUpdate * @return Zend_Feed_Builder_Header */ public function setLastUpdate($lastUpdate) { $this->offsetSet('lastUpdate', $lastUpdate); return $this; } /** * Timestamp of the publication date * * @param int $published * @return Zend_Feed_Builder_Header */ public function setPublishedDate($published) { $this->offsetSet('published', $published); return $this; } /** * Short description of the feed * * @param string $description * @return Zend_Feed_Builder_Header */ public function setDescription($description) { $this->offsetSet('description', $description); return $this; } /** * Sets the author of the feed * * @param string $author * @return Zend_Feed_Builder_Header */ public function setAuthor($author) { $this->offsetSet('author', $author); return $this; } /** * Sets the author's email * * @param string $email * @return Zend_Feed_Builder_Header * @throws Zend_Feed_Builder_Exception */ public function setEmail($email) { /** * @see Zend_Validate_EmailAddress */ require_once 'Zend/Validate/EmailAddress.php'; $validate = new Zend_Validate_EmailAddress(); if (!$validate->isValid($email)) { /** * @see Zend_Feed_Builder_Exception */ require_once 'Zend/Feed/Builder/Exception.php'; throw new Zend_Feed_Builder_Exception("you have to set a valid email address into the email property"); } $this->offsetSet('email', $email); return $this; } /** * Sets the copyright notice * * @param string $copyright * @return Zend_Feed_Builder_Header */ public function setCopyright($copyright) { $this->offsetSet('copyright', $copyright); return $this; } /** * Sets the image of the feed * * @param string $image * @return Zend_Feed_Builder_Header */ public function setImage($image) { $this->offsetSet('image', $image); return $this; } /** * Sets the generator of the feed * * @param string $generator * @return Zend_Feed_Builder_Header */ public function setGenerator($generator) { $this->offsetSet('generator', $generator); return $this; } /** * Sets the language of the feed * * @param string $language * @return Zend_Feed_Builder_Header */ public function setLanguage($language) { $this->offsetSet('language', $language); return $this; } /** * Email address for person responsible for technical issues * Ignored if atom is used * * @param string $webmaster * @return Zend_Feed_Builder_Header * @throws Zend_Feed_Builder_Exception */ public function setWebmaster($webmaster) { /** * @see Zend_Validate_EmailAddress */ require_once 'Zend/Validate/EmailAddress.php'; $validate = new Zend_Validate_EmailAddress(); if (!$validate->isValid($webmaster)) { /** * @see Zend_Feed_Builder_Exception */ require_once 'Zend/Feed/Builder/Exception.php'; throw new Zend_Feed_Builder_Exception("you have to set a valid email address into the webmaster property"); } $this->offsetSet('webmaster', $webmaster); return $this; } /** * How long in minutes a feed can be cached before refreshing * Ignored if atom is used * * @param int $ttl * @return Zend_Feed_Builder_Header * @throws Zend_Feed_Builder_Exception */ public function setTtl($ttl) { /** * @see Zend_Validate_Int */ require_once 'Zend/Validate/Int.php'; $validate = new Zend_Validate_Int(); if (!$validate->isValid($ttl)) { /** * @see Zend_Feed_Builder_Exception */ require_once 'Zend/Feed/Builder/Exception.php'; throw new Zend_Feed_Builder_Exception("you have to set an integer value to the ttl property"); } $this->offsetSet('ttl', $ttl); return $this; } /** * PICS rating for the feed * Ignored if atom is used * * @param string $rating * @return Zend_Feed_Builder_Header */ public function setRating($rating) { $this->offsetSet('rating', $rating); return $this; } /** * Cloud to be notified of updates of the feed * Ignored if atom is used * * @param string|Zend_Uri_Http $uri * @param string $procedure procedure to call, e.g. myCloud.rssPleaseNotify * @param string $protocol protocol to use, e.g. soap or xml-rpc * @return Zend_Feed_Builder_Header * @throws Zend_Feed_Builder_Exception */ public function setCloud($uri, $procedure, $protocol) { if (is_string($uri) && Zend_Uri_Http::check($uri)) { $uri = Zend_Uri::factory($uri); } if (!$uri instanceof Zend_Uri_Http) { /** * @see Zend_Feed_Builder_Exception */ require_once 'Zend/Feed/Builder/Exception.php'; throw new Zend_Feed_Builder_Exception('Passed parameter is not a valid HTTP URI'); } if (!$uri->getPort()) { $uri->setPort(80); } $this->offsetSet('cloud', array('uri' => $uri, 'procedure' => $procedure, 'protocol' => $protocol)); return $this; } /** * A text input box that can be displayed with the feed * Ignored if atom is used * * @param string $title the label of the Submit button in the text input area * @param string $description explains the text input area * @param string $name the name of the text object in the text input area * @param string $link the URL of the CGI script that processes text input requests * @return Zend_Feed_Builder_Header */ public function setTextInput($title, $description, $name, $link) { $this->offsetSet('textInput', array('title' => $title, 'description' => $description, 'name' => $name, 'link' => $link)); return $this; } /** * Hint telling aggregators which hours they can skip * Ignored if atom is used * * @param array $hours list of hours in 24 format * @return Zend_Feed_Builder_Header * @throws Zend_Feed_Builder_Exception */ public function setSkipHours(array $hours) { if (count($hours) > 24) { /** * @see Zend_Feed_Builder_Exception */ require_once 'Zend/Feed/Builder/Exception.php'; throw new Zend_Feed_Builder_Exception("you can not have more than 24 rows in the skipHours property"); } foreach ($hours as $hour) { if ($hour < 0 || $hour > 23) { /** * @see Zend_Feed_Builder_Exception */ require_once 'Zend/Feed/Builder/Exception.php'; throw new Zend_Feed_Builder_Exception("$hour has te be between 0 and 23"); } } $this->offsetSet('skipHours', $hours); return $this; } /** * Hint telling aggregators which days they can skip * Ignored if atom is used * * @param array $days list of days to skip, e.g. Monday * @return Zend_Feed_Builder_Header * @throws Zend_Feed_Builder_Exception */ public function setSkipDays(array $days) { if (count($days) > 7) { /** * @see Zend_Feed_Builder_Exception */ require_once 'Zend/Feed/Builder/Exception.php'; throw new Zend_Feed_Builder_Exception("you can not have more than 7 days in the skipDays property"); } $valid = array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'); foreach ($days as $day) { if (!in_array(strtolower($day), $valid)) { /** * @see Zend_Feed_Builder_Exception */ require_once 'Zend/Feed/Builder/Exception.php'; throw new Zend_Feed_Builder_Exception("$day is not a valid day"); } } $this->offsetSet('skipDays', $days); return $this; } /** * Sets the iTunes rss extension * * @param Zend_Feed_Builder_Header_Itunes $itunes * @return Zend_Feed_Builder_Header */ public function setITunes(Zend_Feed_Builder_Header_Itunes $itunes) { $this->offsetSet('itunes', $itunes); return $this; } } |