/** * Set the 'title' feed element * * @access public * @see http://essfeed.org/index.php/ESS_structure * * @param String value of 'title' feed tag. * Define the language-sensitive feed title. * Should not be longer then 128 characters * * @return void */ public function setTitle($el = NULL) { if ($el != NULL) { if ($this->controlRoot('title', $el) == FALSE) { throw new Exception("Error: '< title >' element is mandatory."); return; } $this->setRootElement('title', $this->REPLACE_ACCENT ? FeedValidator::noAccent($el, $this->CHARSET) : $el); // Set a tempory Feed ID from the title if (!isset($this->roots['id']) || FeedValidator::isNull($this->roots['id'])) { $this->setId($el); } } }
/** * Get feed's items XML content in String format * * @access private * @return String */ private function getItems() { $out = ""; foreach ($this->items as $item) { $thisRoots = $item->getRoots(); $thisItems = $item->getElements(); $out .= $this->startFeed(); if (is_array($thisRoots)) { if (count($thisRoots) > 0) { foreach ($thisRoots as $elm => $val) { if ($elm != 'tags' && is_string($val)) { if (strlen($elm) > 0 && strlen($val) > 0) { $out .= $this->t(1) . $this->makeNode($elm, $val); } } else { if (is_array($val)) { if (count($val) > 0) { $out .= $this->t(3) . "<tags>" . self::LN; foreach ($val as $tag) { $out .= $this->t(2) . $this->makeNode('tag', self::REPLACE_ACCENT ? FeedValidator::noAccent($tag, self::CHARSET) : $tag); } $out .= $this->t(3) . "</tags>" . self::LN; } } } } } } if (is_array($thisItems)) { if (count($thisItems) > 0) { foreach ($thisItems as $key => $val) { if (count($thisItems[$key]) > 0 && strlen($key) > 0) { $out .= $this->t(3) . "<{$key}>" . self::LN; foreach ($val as $position => $feedItem) { $out .= $this->t(4) . "<item type='" . strtolower($feedItem['type']) . "'" . (isset($feedItem['unit']) ? strlen($feedItem['unit']) > 0 ? " unit='" . strtolower($feedItem['unit']) . "'" : '' : '') . (isset($feedItem['mode']) ? strlen($feedItem['mode']) > 0 ? " mode='" . strtolower($feedItem['mode']) . "'" : '' : '') . (isset($feedItem['selected_day']) ? strlen($feedItem['selected_day']) > 0 ? " selected_day='" . strtolower($feedItem['selected_day']) . "'" : '' : '') . (isset($feedItem['selected_week']) ? strlen($feedItem['selected_week']) > 0 ? " selected_week='" . strtolower($feedItem['selected_week']) . "'" : '' : '') . (isset($feedItem['interval']) ? intval($feedItem['interval']) > 1 ? " interval='" . intval($feedItem['interval']) . "'" : '' : '') . (isset($feedItem['limit']) ? intval($feedItem['limit']) > 0 ? " limit='" . intval($feedItem['limit']) . "'" : '' : '') . (isset($feedItem['moving_position']) ? intval($feedItem['moving_position']) > 0 ? " moving_position='" . intval($feedItem['moving_position']) . "'" : '' : '') . (isset($feedItem['priority']) ? intval($feedItem['priority']) > 0 ? " priority='" . intval($feedItem['priority']) . "'" : " priority='" . ($position + 1) . "'" : '') . ">" . self::LN; if ($key == 'prices' && ($feedItem['mode'] == 'free' || $feedItem['mode'] == 'invitation')) { $out .= $this->t(3) . $this->makeNode('name', $feedItem['content']['name']); $out .= $this->t(3) . $this->makeNode('value', 0); } else { foreach ($feedItem['content'] as $elm => $feedElm) { $out .= $this->t(3) . $this->makeNode($elm, $feedElm); } } $out .= $this->t(4) . "</item>" . self::LN; } $out .= $this->t(3) . "</{$key}>" . self::LN; } } } } $out .= $this->endFeed(); } return $out; }