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; }