Пример #1
0
 public function actionSendDemoEmailNotifications()
 {
     if (!Group::isUserASuperAdministrator(Yii::app()->user->userModel)) {
         throw new NotSupportedException();
     }
     $template = "{message}<br/>";
     $messageStreamer = new MessageStreamer($template);
     $messageStreamer->setExtraRenderBytes(0);
     $messageLogger = new MessageLogger($messageStreamer);
     if (Yii::app()->user->userModel->primaryEmail->emailAddress == null) {
         $messageLogger->addErrorMessage('Cannot send test emails because the current user does not have an email address');
         Yii::app()->end(0, false);
     }
     $messageLogger->addInfoMessage('Using type:' . Yii::app()->emailHelper->outboundType);
     $messageLogger->addInfoMessage('Using host:' . Yii::app()->emailHelper->outboundHost);
     $messageLogger->addInfoMessage('Using port:' . Yii::app()->emailHelper->outboundPort);
     $messageLogger->addInfoMessage('Using username:'******'Using password: Yes');
     } else {
         $messageLogger->addInfoMessage('Using password: No');
     }
     $modules = Module::getModuleObjects();
     foreach ($modules as $module) {
         $notificationClassNames = $module::getAllClassNamesByPathFolder('data');
         foreach ($notificationClassNames as $notificationClassName) {
             if (!strpos($notificationClassName, 'DemoEmailNotifications') === false) {
                 $demoNotification = new $notificationClassName();
                 $demoNotification->run(Yii::app()->user->userModel, $messageLogger);
             }
         }
     }
     Yii::app()->emailHelper->sendQueued();
 }
 /**
  * Delete sample model from application state persister and from database
  * @param string $modelClassName
  * @param inf $modelId
  * @param MessageLogger $messageLogger
  * @return boolean
  */
 protected static function deleteSampleModelFromStatePersisterAndDatabase($modelClassName, $modelId, $messageLogger)
 {
     $statePersister = Yii::app()->getStatePersister();
     $state = $statePersister->load();
     $result = true;
     if (isset($state[self::AUTO_BUILD_SAMPLE_MODELS_KEY])) {
         $sampleModels = $state[self::AUTO_BUILD_SAMPLE_MODELS_KEY];
         if (!empty($sampleModels)) {
             foreach ($sampleModels as $key => $sampleModel) {
                 if ($sampleModel['modelClassName'] == $modelClassName && $sampleModel['modelId'] == $modelId) {
                     try {
                         $model = $sampleModel['modelClassName']::getById($modelId);
                         if ($model) {
                             if ($model->delete()) {
                                 unset($state[self::AUTO_BUILD_SAMPLE_MODELS_KEY][$key]);
                                 $messageLogger->addInfoMessage("Sample model {$sampleModel['modelClassName']}-> {$modelId} deleted.");
                             } else {
                                 $messageLogger->addErrorMessage("Couldn't delete sample model {$sampleModel['modelClassName']}-> {$modelId} deleted.");
                                 $result = false;
                             }
                         }
                     } catch (NotFoundException $e) {
                         // Do nothing, model is already deleted
                     }
                 }
             }
         }
     }
     $statePersister->save($state);
     return $result;
 }