%PDF- %PDF-
| Direktori : /home2/vacivi36/intranet.vacivitta.com.br/protected/modules/sms/controllers/ |
| Current File : //home2/vacivi36/intranet.vacivitta.com.br/protected/modules/sms/controllers/ConfigController.php |
<?php
namespace humhub\modules\sms\controllers;
use Yii;
use humhub\models\Setting;
/**
* Description of SmsConfigController.
*
* @author Luke
*/
class ConfigController extends \humhub\modules\admin\components\Controller
{
/**
* Configuration Action for Super Admins.
*/
public function actionIndex()
{
$post = $this->getPost(array('SmsProviderConfigureForm', 'AnySmsConfigureForm', 'ClickatellConfigureForm', 'SpryngConfigureForm', 'Sms77ConfigureForm'));
if ($post != null) {
$provider = $post['provider'];
$form = $this->getSmsProviderForm($provider);
// provider changed => just change the provider setting and reload the correct form
if ($provider != Setting::Get('provider', 'sms')) {
$form = new \humhub\modules\sms\forms\SmsProviderConfigureForm();
} else {
$form = $this->getSmsProviderForm($provider);
}
$form->setAttributes($post);
if ($form->validate()) {
foreach ($form->attributeNames() as $attributeName) {
Setting::Set($attributeName, $form->$attributeName, 'sms');
}
return $this->redirect(['/sms/config']);
}
} else {
$provider = Setting::Get('provider', 'sms');
$form = $this->getSmsProviderForm($provider);
foreach ($form->attributeNames() as $attributeName) {
$form->$attributeName = Setting::Get($attributeName, 'sms');
}
}
return $this->render('index', array('model' => $form));
}
/**
* Returns the fitting form for the given sms provider.
*
* @param string $provider the currently selected sms provider.
* @return AnySmsConfigureForm|ClickatellConfigureForm|SpryngConfigureForm|SmsProviderConfigureForm
*/
private function getSmsProviderForm($provider = null)
{
if ($provider != null) {
switch ($provider) {
case 'AnySms':
return new \humhub\modules\sms\forms\AnySmsConfigureForm();
case 'Clickatell':
return new \humhub\modules\sms\forms\ClickatellConfigureForm();
case 'Spryng':
return new \humhub\modules\sms\forms\SpryngConfigureForm();
case 'Sms77':
return new \humhub\modules\sms\forms\Sms77ConfigureForm();
default:
break;
}
}
return new \humhub\modules\sms\forms\SmsProviderConfigureForm();
}
/**
* @param array{string} the provider form classes to accept when set in the post.
* @return the received post, if one of the provider forms is posted, else null.
*/
private function getPost($providerFormClasses = array())
{
foreach ($providerFormClasses as $formClass) {
if (isset($_POST[$formClass])) {
return ($_POST[$formClass]);
}
}
return null;
}
}
?>