%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/subscribe/lib/ |
Current File : /home/bitrix/www/bitrix/modules/subscribe/lib/senderconnector.php |
<?php /** * Bitrix Framework * @package bitrix * @subpackage sender * @copyright 2001-2012 Bitrix */ namespace Bitrix\Subscribe; use Bitrix\Main\Loader; use Bitrix\Main\Localization\Loc; Loc::loadMessages(__FILE__); class SenderEventHandler { /** * Handler of sender:OnConnectorList event. * * @param array $data Empty array. * @return array */ public static function onConnectorListSubscriber($data) { $data['CONNECTOR'] = 'Bitrix\Subscribe\SenderConnectorSubscriber'; return $data; } } if (Loader::includeModule('sender')) { class SenderConnectorSubscriber extends \Bitrix\Sender\Connector { /** * Returns localized name of subscribers source. * * @return string */ public function getName() { return Loc::getMessage('sender_connector_subscriber_name'); } /** * Returns internal code of subscribers source. * * @return string */ public function getCode() { return "subscriber"; } /** * Returns subscribers depended on side filter fields. * * @return \CDBResult */ public function getData() { $filter = array(); $rubric = $this->getFieldValue('RUBRIC', null); if ($rubric) $filter['RUBRIC'] = $rubric; $active = $this->getFieldValue('ACTIVE', null); if ($active) $filter['ACTIVE'] = $active; $confirmed = $this->getFieldValue('CONFIRMED', null); if ($confirmed) $filter['CONFIRMED'] = $confirmed; $dateInsertFrom = $this->getFieldValue('DATE_INSERT_FROM', null); if ($dateInsertFrom) $filter['INSERT_1'] = $dateInsertFrom; $dateInsertTo = $this->getFieldValue('DATE_INSERT_TO', null); if ($dateInsertTo) $filter['INSERT_2'] = $dateInsertTo; $subscriberList = \CSubscription::GetList(array('ID' => 'ASC'), $filter); return new CDBResultSenderConnectorIBlock($subscriberList); } /** * Returns Html form to display filter criteria. * * @return string */ public function getForm() { $dropdownValues = array( '' => Loc::getMessage('sender_connector_subscriber_all'), 'Y' => Loc::getMessage('sender_connector_subscriber_y'), 'N' => Loc::getMessage('sender_connector_subscriber_n'), ); $rubricInput = '<select name="'.$this->getFieldName('RUBRIC').'">'; $rubricList = \CRubric::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array()); while ($rubric = $rubricList->Fetch()) { $inputSelected = ($rubric['ID'] == $this->getFieldValue('RUBRIC')? 'selected': ''); $rubricInput .= '<option value="'.$rubric['ID'].'" '.$inputSelected.'>'; $rubricInput .= htmlspecialcharsEx('[' . $rubric['ID'] . '] ' . $rubric['NAME']); $rubricInput .= '</option>'; } $rubricInput .= '</select>'; $activeInput = '<select name="'.$this->getFieldName('ACTIVE').'">'; foreach ($dropdownValues as $k => $v) { $inputSelected = ($k == $this->getFieldValue('ACTIVE')? 'selected': ''); $activeInput .= '<option value="'.$k.'" '.$inputSelected.'>'; $activeInput .= htmlspecialcharsEx($v); $activeInput .= '</option>'; } $activeInput .= '</select>'; $confirmedInput = '<select name="'.$this->getFieldName('CONFIRMED').'">'; foreach ($dropdownValues as $k => $v) { $inputSelected = ($k == $this->getFieldValue('CONFIRMED')? 'selected': ''); $confirmedInput .= '<option value="'.$k.'" '.$inputSelected.'>'; $confirmedInput .= htmlspecialcharsEx($v); $confirmedInput .= '</option>'; } $confirmedInput .= '</select>'; $dateInsertInput = CalendarPeriod( $this->getFieldName('DATE_INSERT_FROM'), $this->getFieldValue('DATE_INSERT_FROM'), $this->getFieldName('DATE_INSERT_TO'), $this->getFieldValue('DATE_INSERT_TO'), $this->getFieldFormName() ); return ' <table> <tr> <td>'.Loc::getMessage('sender_connector_subscriber_rubric').'</td> <td>'.$rubricInput.'</td> </tr> <tr> <td>'.Loc::getMessage('sender_connector_subscriber_active').'</td> <td>'.$activeInput.'</td> </tr> <tr> <td>'.Loc::getMessage('sender_connector_subscriber_confirmed').'</td> <td>'.$confirmedInput.'</td> </tr> <tr> <td>'.Loc::getMessage('sender_connector_subscriber_dateinsert').'</td> <td>'.$dateInsertInput.'</td> </tr> </table> '; } } } class CDBResultSenderConnectorIBlock extends \CDBResult { /** * Fetch fields from database resource * @return array|null */ public function Fetch() { $fields = parent::Fetch(); if($fields && !$fields['NAME']) { if(isset($fields['USER_NAME'])) { $fields['NAME'] = $fields['USER_NAME']; } if(!$fields['NAME'] && isset($fields['USER_LAST_NAME'])) { $fields['NAME'] = $fields['USER_LAST_NAME']; } } return $fields; } }