/** * Метод загрузки данных * * @param Sppc_Dashboard_DateRange $range */ protected function loadResults(Sppc_Dashboard_DateRange $range, $sortField = '', $sortDirection = '') { // Подключаем объект фидов $this->CI->load->model('feeds'); /* @var $feeds Feeds */ $feeds = $this->CI->feeds; if (empty($sortField)) { $sortField = $this->getSortField(); } if (empty($sortDirection)) { $sortDirection = $this->getSortDirection(); } // Формируем колонки $this->addColumn('name', 'Feed Name'); $this->addColumn('impressions', 'Impressions', 'numeric', 'desc'); $this->addColumn('clicks', 'Clicks', 'numeric', 'desc'); $this->addColumn('ctr', '% CTR', 'numeric', 'desc'); $this->addColumn('revenue', 'Earnings', 'numeric', 'desc'); // Получаем данные по фидам $rowsData = $feeds->top($sortField, $sortDirection, array('from' => $range->getUnixStartDate(), 'to' => $range->getUnixEndDate())); foreach ($rowsData as $data) { $rowData = array(type_to_str($data['title'], 'encode'), type_to_str($data['impressions'], 'integer'), type_to_str($data['clicks'], 'integer'), type_to_str($data['ctr'], 'procent'), type_to_str($data['revenue'], 'money')); $this->addRow($rowData); } // Устанавливаем title $this->title = sprintf(__('Top Feeds (%d)'), count($rowsData)); }
/** * Метод загрузки данных * * @param Sppc_Dashboard_DateRange $range */ protected function loadResults(Sppc_Dashboard_DateRange $range) { // Получаем данные за период $this->CI->load->model('entity'); $stat = $this->CI->entity->publisher_get_line_stat($range->getUnixStartDate(), $range->getUnixEndDate()); // Формируем данные для графиков $this->addTab('revenue', __('Earnings'), $stat['revenue']); $this->addTab('impressions', __('Impressions'), $stat['impressions']); $this->addTab('clicks', __('Clicks'), $stat['clicks']); $this->addTab('ctr', __('% CTR'), $stat['ctr']); foreach ($this->_hooks as $hookObj) { $tabs = $hookObj->addTabs($stat); foreach ($tabs as $tab) { $this->addTab($tab['name'], $tab['title'], $tab['data']); } } }
/** * Метод загрузки данных * * @param Sppc_Dashboard_DateRange $range */ protected function loadResults(Sppc_Dashboard_DateRange $range) { // Получаем данные за период $this->CI->load->model('entity'); $stat = $this->CI->entity->publisher_range_stat(array('from' => $range->getUnixStartDate(), 'to' => $range->getUnixEndDate())); // Формируем строки для отображения $this->addRow(__('Total Earnings'), type_to_str($stat['revenue'], 'money')); $this->addRow(__('Total Impressions'), type_to_str($stat['impressions'], 'integer')); $this->addRow(__('Total Clicks'), type_to_str($stat['clicks'], 'integer')); $this->addRow(__('CTR'), type_to_str($stat['ctr'], 'procent')); // add additional summary performance fields from plugins foreach ($this->_hooks as $hookObj) { $fields = $hookObj->addSummaryPerformanceFields($stat); foreach ($fields as $field) { $this->addRow($field['title'], $field['value']); } } }
/** * Метод загрузки данных * * @param Sppc_Dashboard_DateRange $range */ protected function loadResults(Sppc_Dashboard_DateRange $range, $sortField = '', $sortDirection = '') { // Подключаем нужный объект $this->CI->load->model('site'); /* @var $sites Site */ $sites = $this->CI->site; if (empty($sortField)) { $sortField = $this->getSortField(); } if (empty($sortDirection)) { $sortDirection = $this->getSortDirection(); } // Формируем колонки $this->addColumn('name', 'Site Name'); $this->addColumn('impressions', 'Impressions', 'numeric', 'desc'); $this->addColumn('clicks', 'Clicks', 'numeric', 'desc'); $this->addColumn('ctr', '% CTR', 'numeric', 'desc'); $this->addColumn('revenue', 'Earnings', 'numeric', 'desc'); // add additional columns from plugins foreach ($this->_hooks as $hookObj) { $columns = $hookObj->addColumns($this); foreach ($columns as $column) { $this->addColumn($column['name'], $column['title'], $column['type'], $column['order']); } } // Получаем данные по фидам $rowsData = $sites->top(null, $sortField, $sortDirection, array('from' => $range->getUnixStartDate(), 'to' => $range->getUnixEndDate())); foreach ($rowsData as $data) { $code = type_to_str($data['id_publisher'], 'textcode'); $rowData = array(limit_str_and_hint($data['name'], 20) . " (<a target='_blank' href='http://{$data['url']}'>{$data['url']}</a>)", type_to_str($data['impressions'], 'integer'), type_to_str($data['clicks'], 'integer'), type_to_str($data['ctr'], 'procent'), type_to_str($data['revenue'], 'money')); // add data for addtional columns from plugins foreach ($this->_hooks as $hookObj) { $rowData = $hookObj->addColumnsData($data, $rowData); } $this->addRow($rowData); } // Устанавливаем title $this->title = sprintf(__('Top Sites (%d)'), count($rowsData)); }
/** * Метод загрузки данных * * @param Sppc_Dashboard_DateRange $range */ protected function loadResults(Sppc_Dashboard_DateRange $range, $sortField = '', $sortDirection = '') { // Подключаем нужный объект $this->CI->load->model('entity'); /* @var $entities Entity */ $entities = $this->CI->entity; if (empty($sortField)) { $sortField = $this->getSortField(); } if (empty($sortDirection)) { $sortDirection = $this->getSortDirection(); } // Формируем колонки $this->addColumn('name', 'Advertiser'); $this->addColumn('impressions', 'Impressions', 'numeric', 'desc'); $this->addColumn('clicks', 'Clicks', 'numeric', 'desc'); $this->addColumn('ctr', '% CTR', 'numeric', 'desc'); $this->addColumn('revenue', 'Earnings', 'numeric', 'desc'); // add additional columns from plugins foreach ($this->_hooks as $hookObj) { $columns = $hookObj->addColumns($this); foreach ($columns as $column) { $this->addColumn($column['name'], $column['title'], $column['type'], $column['order']); } } // Получаем данные по фидам $rowsData = $entities->top_advertisers($sortField, $sortDirection, array('from' => $range->getUnixStartDate(), 'to' => $range->getUnixEndDate())); foreach ($rowsData as $idEntity => $data) { $code = type_to_str($idEntity, 'textcode'); $rowData = array(type_to_str($data['name'], 'encode') . " ({$data['email']})", type_to_str($data['impressions'], 'integer'), type_to_str($data['clicks'], 'integer'), type_to_str($data['ctr'], 'procent'), type_to_str($data['revenue'], 'money')); // add data for addtional columns from plugins foreach ($this->_hooks as $hookObj) { $rowData = $hookObj->addColumnsData($data, $rowData); } $this->addRow($rowData); } // Устанавливаем title $this->title = sprintf(__('Top Advertisers (%d)'), count($rowsData)); }
/** * подготавливает данные статистики для периода времени по умолчанию, * callback-функция для библиотеки form * * @param integer $id не используется (обязательный параметр callback-функции) * @return array пустой массив (обязательное возвращаемое значение callback-функции) */ public function _load() { // Загружаем данные по класса Sppc_Dashboard_DateRange $className = get_class($this->range); if (!$this->range->isSpecifiedRange()) { $fields = period_load($className, $this->range->getUnixStartDate(), $this->range->getUnixEndDate()); } else { $fields = array('from' => $this->range->getUnixStartDate(), 'to' => $this->range->getUnixEndDate(), 'period' => '', 'mode' => 'range'); } return $fields; }