array( 'business' => array( 'name' => 'Альфа Бизнес', 'type' => 'list', 'title' => 'В зависимости от выбора, возращает уведомления для" . " клиентов физ. лиц либо для клиентов-юридических лиц и ИП', 'values' => array( 'Новости' => 'news', 'Новости бизнеса' => 'newsBusiness' ), 'defaultValue' => 'news' ), 'fullContent' => array( 'name' => 'Включать содержимое', 'type' => 'checkbox', 'title' => 'Если выбрано, содержимое уведомлений вставляется в поток (работает медленно)' ) ) ); public function collectData() { $business = $this->getInput('business') == 'newsBusiness'; $fullContent = $this->getInput('fullContent') == 'on'; $mainPageUrl = self::URI . '/about/articles/uvedomleniya/'; if($business) { $mainPageUrl .= '?business=true'; } $html = getSimpleHTMLDOM($mainPageUrl); $limit = 0; foreach($html->find('a.notifications__item') as $element) { if($limit < 10) { $item = array(); $item['uid'] = 'urn:sha1:' . hash('sha1', $element->getAttribute('data-notification-id')); $item['title'] = $element->find('div.item-title', 0)->innertext; $item['timestamp'] = DateTime::createFromFormat( 'd M Y', $this->ruMonthsToEn($element->find('div.item-date', 0)->innertext) )->getTimestamp(); $itemUrl = self::URI . $element->href; if($business) { $itemUrl = str_replace('?business=true', '', $itemUrl); } $item['uri'] = $itemUrl; if($fullContent) { $itemHtml = getSimpleHTMLDOM($itemUrl); if($itemHtml) { $item['content'] = $itemHtml->find('div.now-p__content-text', 0)->innertext; } } $this->items[] = $item; $limit++; } } } public function getIcon() { return static::URI . '/local/images/favicon.ico'; } private function ruMonthsToEn($date) { $ruMonths = array( 'Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря' ); $enMonths = array( 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ); return str_replace($ruMonths, $enMonths, $date); } }