Exemplo n.º 1
0
 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']}%&nbsp;({$fields['clickUsers']}) |&nbsp;{$fields['totalClicks']} |&nbsp;{$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'])));
         }
     }
 }