コード例 #1
0
 function fetchNewsletterReadStat($newsletterID)
 {
     $newsletter = eZNewsletter::fetch($newsletterID);
     if (!$newsletter) {
         return array();
     }
     $db = eZDB::instance();
     // Get total send
     $totalSend = eZSendNewsletterItem::sendCount($newsletterID);
     // Get total read
     $totalRead = eZSendNewsletterItem::readCount($newsletterID);
     $objectStat = array();
     foreach ($newsletter->attribute('object_relation_id_list') as $objectID) {
         $objectReadSQL = 'SELECT count(*) AS count
                           FROM ezsendnewsletteritem
                           WHERE newsletter_id = \'' . $db->escapeString($newsletterID) . '\' AND
                                 send_status = \'' . eZSendNewsletterItem::SendStatusSent . '\' AND
                                 object_read_ids like \'%/' . $db->escapeString($objectID) . '/%\'';
         $objectReadResult = $db->arrayQuery($objectReadSQL);
         $objectStat[(string) $objectID] = $objectReadResult[0]['count'];
     }
     return array('result' => array('num_sent' => $totalSend, 'num_read' => $totalRead, 'object_list' => $objectStat));
 }
コード例 #2
0
 function attribute($attr, $noFunction = false)
 {
     $retVal = false;
     switch ($attr) {
         case 'send_year':
             $retVal = date('Y', $this->attribute('send_date'));
             break;
         case 'send_month':
             $retVal = date('m', $this->attribute('send_date'));
             break;
         case 'send_day':
             $retVal = date('d', $this->attribute('send_date'));
             break;
         case 'send_hour':
             $retVal = date('H', $this->attribute('send_date'));
             break;
         case 'send_minute':
             $retVal = date('i', $this->attribute('send_date'));
             break;
         case 'send_count':
             $retVal = eZSendNewsletterItem::sendCount($this->attribute('id'));
             break;
         case 'read_count':
             $retVal = eZSendNewsletterItem::readCount($this->attribute('id'));
             break;
         case 'output_format_list':
             $retVal = explode(',', $this->attribute('output_format'));
             break;
         case 'recurrence_value_list':
             $retVal = explode(',', $this->attribute('recurrence_value'));
             break;
         case 'object_relation_id_list':
             $retVal = explode('/', $this->attribute('object_relations'));
             array_pop($retVal);
             array_shift($retVal);
             break;
         default:
             $retVal = eZPersistentObject::attribute($attr);
             break;
     }
     return $retVal;
 }