123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- <?php
- /**
- *
- * Cube Framework $Id$ UdE+MOk0fNVzuT+ELYHRzTd/YUtDMbEhFzp7goBrq+M=
- *
- * @link http://codecu.be/framework
- * @copyright Copyright (c) 2015 CodeCube SRL
- * @license http://codecu.be/framework/license Commercial License
- *
- * @version 1.6
- */
- /**
- * abstract feed class
- */
- namespace Cube\Feed;
- abstract class AbstractFeed
- {
- /**
- *
- * feed entries
- *
- * @var array
- */
- protected $_entries = array();
- /**
- *
- * channels
- *
- * @var array
- */
- protected $_channels = array();
- /**
- * @param array $entries
- *
- * @return $this
- */
- public function setEntries($entries)
- {
- foreach ((array)$entries as $entry) {
- $this->addEntry($entry);
- }
- return $this;
- }
- /**
- *
- * add entry to entries array
- *
- * @param \Cube\Feed\Entry $entry
- *
- * @return $this
- */
- public function addEntry(Entry $entry)
- {
- $this->_entries[] = $entry;
- return $this;
- }
- /**
- * @return array
- */
- public function getEntries()
- {
- return $this->_entries;
- }
- /**
- *
- * clear entries array
- *
- * @return $this
- */
- public function clearEntries()
- {
- $this->_entries = array();
- return $this;
- }
- /**
- *
- * set channels
- *
- * @param array $channels
- *
- * @return $this
- */
- public function setChannels($channels)
- {
- foreach ((array)$channels as $key => $value) {
- $this->addChannel($key, $value);
- }
- return $this;
- }
- /**
- *
- * add channel
- *
- * @param string $key
- * @param string $value
- *
- * @return $this
- */
- public function addChannel($key, $value)
- {
- $this->_channels[$key] = $this->_formatString($value);
- return $this;
- }
- /**
- *
- * get channels
- *
- * @return array
- */
- public function getChannels()
- {
- return $this->_channels;
- }
- /**
- *
- * render one channel/element
- *
- * @param array $array
- *
- * @return null|string
- */
- protected function _renderArray($array)
- {
- $output = '';
- foreach ($array as $key => $value) {
- if (is_array($value)) {
- $output .= PHP_EOL . "<$key>" . $this->_renderArray($value) . "</$key>" . PHP_EOL;
- }
- else {
- $output .= PHP_EOL . "<$key>" . $this->_formatString($value) . "</$key>" . PHP_EOL;
- }
- }
- return $output;
- }
- /**
- *
- * format string
- *
- * @param mixed $input
- *
- * @return string
- */
- protected function _formatString($input)
- {
- if (is_array($input)) {
- return $input;
- }
- return strip_tags(
- str_ireplace(
- array('&'), array(' '), $input));
- // return strip_tags(
- // str_ireplace(
- // array('&', ''', '"', '<', '>', ' '), array('&', "'", '"', '<', '>', ' '), $string));
- }
- /**
- *
- * generate feed
- *
- * @return mixed
- */
- abstract function generateFeed();
- }
|