/** * render * * @since 3.0.0 * * @param string $url * @param array $optionArray * * @return string */ public static function render($url = null, $optionArray = []) { $counter = 0; $output = null; /* html elements */ $titleElement = new Html\Element(); $titleElement->init('h3', ['class' => self::$_configArray['className']['title']]); $linkElement = new Html\Element(); $linkElement->init('a', ['target' => '_blank']); $boxElement = new Html\Element(); $boxElement->init('div', ['class' => self::$_configArray['className']['box']]); /* load result */ $reader = new Reader(); $result = $reader->loadXML($url)->getObject(); $result = $result->entry ? $result->entry : $result->channel->item; /* process result */ if ($result) { foreach ($result as $value) { if ($counter++ < $optionArray['limit']) { $linkElement->attr('href', $value->link->attributes()->href ? $value->link->attributes()->href : $value->link)->text($value->title); /* collect output */ $output .= $titleElement->html($linkElement) . $boxElement->text($value->summary ? $value->summary : $value->description); } } } else { self::setNotification('error', Language::get('url_incorrect') . Language::get('point')); } return $output; }
/** * testConvertToJSON * * @since 3.0.0 */ public function testConvertToJSON() { /* setup */ $reader = new Reader(); $reader->loadXML('tests/provider/reader.xml'); /* actual */ $actual = $reader->getJSON(); /* compare */ $this->assertString($actual); }
/** * adminPanelNotification * * @since 3.0.0 * * @return array */ public static function adminPanelNotification() { /* load result */ $urlBase = self::$_configArray['url'] . Registry::get('root') . '/' . Registry::get('parameterRoute') . Registry::get('fullRoute'); $urlXML = $urlBase . '&out=xml'; $reader = new Reader(); $result = $reader->loadXML($urlXML)->getObject(); /* process result */ foreach ($result as $value) { $type = $value->attributes()->type ? (string) $value->attributes()->type : $value->getName(); if (in_array($type, self::$_configArray['typeArray'])) { $message = ['text' => (string) $value->message, 'attr' => ['href' => $urlBase, 'target' => '_blank']]; self::setNotification($type, $message); } } return self::getNotification(); }