protected function doJob($arg)
 {
     $models = Newsletter::model()->findAll(array('condition' => 't.remain_subscribers IS NOT NULL AND length(t.remain_subscribers) > 0 AND t.send_time <= NOW()', 'order' => 't.id ASC'));
     foreach ($models as $model) {
         $mail_models = ProNewsletterMail::model()->findAll(array('condition' => 't.newsletter_id = ' . $model->id, 'order' => 't.id ASC'));
         if (count($mail_models)) {
             $receivers = explode(',', $model->remain_subscribers);
             $subscriber_count = 0;
             foreach ($mail_models as $key => $k) {
                 $revei = array_shift($receivers);
                 // need update this field
                 $s = Subscriber::model()->getSubscriberByEmail($k->email);
                 if (empty($s)) {
                     continue;
                 }
                 if ($s) {
                     if ($s->status == 0) {
                         continue;
                     }
                 }
                 // add by Nguyen Dung
                 $url = Yii::app()->setting->getItem('server_name') . '/site/track_newsletter?newsletter_id=' . $model->id . '&subscriber_email=' . $s->email;
                 $img_track_read_email = '<img src="' . $url . '" alt="" height="1" width="1"/>';
                 $r = array('subject' => $model->subject, 'params' => array('content' => $model->content . $img_track_read_email, 'newsletterName' => Yii::app()->params['title'], 'unsubscribe' => Yii::app()->setting->getItem('server_name') . '/site/unsubscribe?id=' . $s->id . '&code=' . md5($s->id . $s->email)), 'view' => 'newsletter', 'to' => $s->email, 'from' => Yii::app()->params['autoEmail']);
                 $this->data[] = $r;
                 //Delete record in newsletter mail
                 ProNewsletterMail::model()->deleteByPk($k->id);
                 $subscriber_count++;
                 //count subscriber is served for current newsletter job
                 $this->index++;
                 //count email is sent for current cron job
                 if ($this->index >= $this->max) {
                     break;
                 }
             }
             $model->total_sent = $model->total_sent + $subscriber_count;
             // track amount mail sent
             $model->remain_subscribers = implode(',', $receivers);
             $model->update(array('remain_subscribers', 'total_sent'));
         }
     }
     //when sent all subscriber of a newsletter job but the
     //        if($this->index < $this->max)
     //            $this->doJob($arg);
 }
 /**
  * @param integer the ID of the model to be loaded
  * @return Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  */
 public function loadModel($id)
 {
     $model = Newsletter::model()->findByPk($id);
     if ($model === null) {
         Yii::log('The requested page does not exist.');
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
 /**
  * Delete an item
  */
 public function actiondelete()
 {
     if (isset($_GET['id']) && ($model = Newsletter::model()->findByPk($_GET['id']))) {
         $model->delete();
         Yii::app()->user->setFlash('success', Yii::t('newsletter', 'Item Deleted.'));
         $this->redirect(array('index'));
     } else {
         $this->redirect(array('index'));
     }
 }
Exemple #4
0
<h1>Newsletters</h1>

<b><p>Eventos Para Newsletter</p></b>
<?php $this->widget('zii.widgets.grid.CGridView', array(
	'dataProvider'=>$data,
	'columns'=>array(
            'titulo',
            'dtinicio',
            'dtfim'
        )
)); ?>

<?php

$this->renderPartial('_form',array('model'=>  Newsletter::model()));

?>
Exemple #5
0
 public static function getNewsletterByPk($pk)
 {
     return Newsletter::model()->findByPk((int) $pk);
 }
					<td><?php 
echo Yii::t('adminindex', 'Number Of Users');
?>
</td>
					<td><?php 
echo Yii::app()->format->number(Members::model()->count());
?>
</td>
				</tr>
				<tr>
					<td><?php 
echo Yii::t('adminindex', 'Newsletter Signups');
?>
</td>
					<td><?php 
echo Yii::app()->format->number(Newsletter::model()->count());
?>
</td>
				</tr>
				<tr>
					<td><?php 
echo Yii::t('adminindex', 'Last Registered');
?>
</td>
					<td><?php 
echo Members::model()->find(array('order' => 'joined desc', 'limit' => 1))->getModelLink();
?>
</td>
				</tr>
				<tr>
					<td><?php