public function populate(WebblerListing $w, $start, $limit) { /* * Populates the webbler list with link details */ $w->setTitle($this->i18n->get('Link URL')); $resultSet = $this->model->links($start, $limit); $query = array('listid' => $this->model->listid, 'msgid' => $this->model->msgid, 'type' => 'linkclicks'); foreach ($resultSet as $row) { $key = preg_replace('%^(http|https)://%i', '', $row['url']); if (strlen($key) > 39) { $key = htmlspecialchars(substr($key, 0, 22)) . ' ... ' . htmlspecialchars(substr($key, -12)); } $key = sprintf('<span title="%s">%s</span>', htmlspecialchars($row['url']), $key); $query['forwardid'] = $row['forwardid']; $w->addElement($key, new CommonPlugin_PageURL(null, $query)); $w->addColumnHtml($key, $this->i18n->get('pers.'), $row['personalise'] ? new CommonPlugin_ImageTag('user.png', 'URL is personalised') : ''); $w->addColumn($key, $this->i18n->get('clicks'), $row['numclicks']); $w->addColumn($key, $this->i18n->get('users'), $row['usersclicked'] > 0 ? sprintf('%d (%0.2f%%)', $row['usersclicked'], $row['usersclicked'] / $row['totalsent'] * 100) : ''); $w->addColumn($key, $this->i18n->get('firstclick'), $row['firstclick']); $w->addColumn($key, $this->i18n->get('latestclick'), $row['numclicks'] > 1 ? $row['latestclick'] : ''); } }
public function populate(WebblerListing $w, $start, $limit) { /* * Populates the webbler list with message details */ global $wkhtmltopdfOptions; $w->setTitle($this->i18n->get('Campaigns')); $rows = iterator_to_array($this->model->fetchMessages(false, $start, $limit)); $this->messageResults = array_reverse($rows); $query = array('listid' => $this->model->listid, 'type' => 'opened'); foreach ($rows as $row) { $fields = $this->messageStats($row); $query['msgid'] = $fields['id']; $key = "{$fields['id']} | {$fields['subject']}"; $w->addElement($key, new CommonPlugin_PageURL(null, $query)); $w->addColumn($key, $this->i18n->get('date'), $fields['datesent']); $w->addColumn($key, $this->i18n->get('sent'), $fields['sent'], ''); $w->addColumn($key, $this->i18n->get('opened'), "{$fields['openrate']}% ({$fields['opens']})"); $w->addColumnHtml($key, $this->i18n->get('clicked'), $fields['clickUsers'] > 0 ? "{$fields['clickrate']}% ({$fields['clickUsers']}) | {$fields['totalClicks']} | {$fields['clickopenrate']}%" : '0'); $w->addColumn($key, $this->i18n->get('bounced'), $fields['bouncecount'] > 0 ? "{$fields['bouncerate']}% ({$fields['bouncecount']})" : '0'); $w->addColumn($key, $this->i18n->get('views'), "{$fields['viewed']} ({$fields['avgviews']})"); if (isset($wkhtmltopdfOptions) && is_executable($wkhtmltopdfOptions['bin'])) { $w->addColumnHtml($key, $this->i18n->get('print'), new CommonPlugin_ImageTag('doc_pdf.png', $this->i18n->get('print to PDF')), new CommonPlugin_PageURL(null, array('listid' => $this->model->listid, 'action' => 'print', 'msgid' => $fields['id']))); } } }