コード例 #1
0
ファイル: NfyDbQueue.php プロジェクト: Aplay/Fastreview_site
 /**
  * Creates an instance of NfyDbMessage model. The passed message body may be modified, @see formatMessage().
  * This method may be overriden in extending classes.
  * @param string $body message body
  * @return NfyDbMessage
  */
 protected function createMessage($body, $object_pk = null, $subject_pk = null)
 {
     $message_body = new NfyMessageBody;
     $message_body->setAttributes(array(
         'body' => $body,
         'object_pk'=>$object_pk
     ), false);
     if (!$message_body->save()){
         Yii::log(Yii::t('NfyModule.app', "Not sending message '{msg}' to queue {queue_label}.", array('{msg}' => $body, '{queue_label}' => $this->label)), CLogger::LEVEL_INFO, 'nfy');
         return;
     }
     $message = new NfyDbMessage;
     $message->setAttributes(array(
         'queue_id' => $this->id,
         'timeout' => $this->timeout,
         'sender_id' => Yii::app()->hasComponent('user') ? Yii::app()->user->getId() : null,
         'status' => NfyMessage::AVAILABLE,
         'message_body_id'=>$message_body->id,
         'body'=>$body,
         'object_pk'=>$object_pk,
         'subject_pk'=>$subject_pk
     ), true);
     return $this->formatMessage($message);
 }
コード例 #2
0
    public function beforeDelete(){

        if(parent::beforeDelete()){
            $check = NfyDbMessage::model()->countByAttributes(array('message_body_id'=>$this->message_body_id), 'id != :id', array(':id'=>(int)$this->id));
            if(empty($check)){
                NfyMessageBody::model()->deleteByPk($this->message_body_id);
            }
            return true;
        }
        return false;
    }