Example #1
0
 protected function renderContent()
 {
     $settings = GxcHelpers::getAvailableSettings();
     $type = isset($_GET['type']) ? strtolower(plaintext($_GET['type'])) : 'general';
     if (array_key_exists($type, $settings)) {
         //Import the Setting Class
         Yii::import('common.settings.' . $type . '.' . $settings[$type]['class']);
         $model = new $settings[$type]['class']();
         foreach ($model->attributes as $attr => $value) {
             $model->{$attr} = Yii::app()->settings->get($type, $attr);
         }
         settings()->deleteCache();
         // if it is ajax validation request
         if (isset($_POST['ajax']) && $_POST['ajax'] === $type . '-settings-form') {
             echo CActiveForm::validate($model);
             Yii::app()->end();
         }
         // collect user input data
         if (isset($_POST[$settings[$type]['class']])) {
             settings()->deleteCache();
             $model->attributes = $_POST[$settings[$type]['class']];
             if ($model->validate()) {
                 foreach ($model->attributes as $key => $value) {
                     Yii::app()->settings->set($type, $key, $value);
                 }
                 user()->setFlash('success', t('cms', 'Settings Updated Successfully!'));
             }
         }
         $this->render('common.settings.' . $type . '.' . $settings[$type]['layout'], array('model' => $model));
     } else {
         throw new CHttpException(404, t('cms', 'The requested page does not exist.'));
     }
 }