diff --git a/bridges/AlfaBankByBridge.php b/bridges/AlfaBankByBridge.php new file mode 100644 index 00000000..4b1ed48e --- /dev/null +++ b/bridges/AlfaBankByBridge.php @@ -0,0 +1,83 @@ + 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); + } +}