Example #1
0
 public function saveAction()
 {
     if (!K_Request::isPost()) {
         $this->putAjax('ERROR');
     }
     if (!K_Auth::isLogin()) {
         $this->putAjax('ERROR');
     }
     $validate = array('user_password' => array('required' => true, 'userTruePass'), 'user_email' => array('required' => true, 'lengthTest', 'email', 'userExists'));
     $userSettings = new Admin_Model_UserSettings();
     $oldPassword = K_Arr::get($_POST, 'oldpassword', '');
     $data = array('user_password' => trim($_POST['user_password']), 'user_email' => trim($_POST['user_email']), 'password1' => trim($_POST['password1']), 'password2' => trim($_POST['password2']));
     if (strlen($data['password1']) > 0 || strlen($data['password2']) > 0) {
         $validate['password1'] = array('required' => true, 'pwdTest');
     }
     if ($userSettings->isValidRow($data, $validate)) {
         unset($data['user_password']);
         if (strlen($data['password1']) > 0) {
             $data['user_password'] = md5(md5($data['password1'] . K_Registry::get('Configure.salt')));
         }
         unset($data['password1']);
         unset($data['password2']);
         /*  if (! strlen($data['user_email']) > 0) {
                 unset($data['user_email']);
             }*/
         if (count($data)) {
             $data['user_id'] = K_Auth::getUserInfo('user_id');
             $userSettings->save($data);
             K_Auth::mergeUserInfo($data);
         }
         $returnJson['error'] = false;
         $returnJson['msg'] = "<strong>OK:</strong>Настройки удачно сохранены";
     } else {
         $returnJson['error'] = true;
         $returnJson['msg'] = $userSettings->getErrorsD($this->dictionary);
     }
     $this->putJSON($returnJson);
 }
 protected function saveAction()
 {
     if (!K_Request::isPost()) {
         //ошибка
         $this->putAjax("ERROR");
     }
     $typeClientForm = new Admin_Model_ClientForm();
     //загружаем данные формы
     $formData = Gcontroller::loadclientFormStructure(trim($_POST['tree_link']));
     /*    $clientFormData = $typeClientForm->fetchRow( K_Db_Select::create()->where( "type_clientform_id=$clientFormKey" ) );
           $this->view->formStructure=unserialize( $clientFormData['type_clientform_content'] );*/
     $formStructure = json_decode($formData['form_structure']);
     $formStructure = K_Tree_Types::objectToArray($formStructure);
     foreach ($formStructure as $v) {
         if ($v['type'] == 'xform') {
             //сохраняем дополнительный настройки
             $Xform = $v['values'];
         } else {
             // сохраним ключи полей, что-бы сохранять в базу только то что надо.
             $formFields[] = $v['values']['name'];
             if (isset($v['values']['name']) && isset($v['vlds'])) {
                 $name = $v['values']['name'];
                 $nameAccos[$name] = $v['values']['label'];
                 $vlds = $v['vlds'];
                 $fieldVlds = array();
                 foreach ($vlds as $vld) {
                     if ($vld == "requred") {
                         $fieldVlds['requred'] = true;
                     } else {
                         $fieldVlds[] = $vld;
                     }
                 }
                 $validate[$name] = $fieldVlds;
             }
         }
     }
     // выбираем из поста только нужные поля
     foreach ($_POST as $k => $v) {
         if (in_array($k, $formFields)) {
             if (is_string($v)) {
                 $data[$k] = trim($v);
             }
             $data[$k] = $v;
         }
     }
     if ($typeClientForm->isValidRow($data, $validate)) {
         $clientFormData = new Admin_Model_ClientFormData();
         $saveDate = array('clientform_data_type' => trim($_POST['tree_link']), 'clientform_data_content' => serialize($data));
         // сахроняем форму и отправляем письма.
         if ($Xform['ck_save_db']) {
             $clientFormData->save($saveDate);
         }
         $render = new K_TemplateRender();
         $render->setTags($data);
         $mailer = new K_Mail();
         if (isset($Xform['ck_admin_email']) && $Xform['admin_mail_tmp'] && $Xform['admin_email']) {
             //Отправляем письмо на емеил админа
             $mailText = $render->assemble($Xform['admin_mail_tmp']);
             $mailer->setBody($mailText);
             $mailer->addTo($Xform['admin_email']);
             $mailer->send('*****@*****.**', 'Ползователь заполнил форму');
         }
         //  echo $data['ck_client_email'].'    '.$Xform['ck_client_email'].' '.$Xform['client_email_field_name'].'  '.$Xform['client_mail_tmp'];
         if (isset($Xform['client_email_ck_name']) && $Xform['client_email_ck_name']) {
             $clientEmailCkName = $Xform['client_email_ck_name'];
         }
         // echo $data[$clientEmailCkName].'    '.$Xform['ck_client_email'].' '.$Xform['client_email_field_name'].'  '.$Xform['client_mail_tmp'];
         if (isset($data[$clientEmailCkName]) && isset($Xform['ck_client_email']) && isset($Xform['client_email_field_name']) && isset($Xform['client_mail_tmp'])) {
             $clientEmailFieldName = $Xform['client_email_field_name'];
             if (isset($data[$clientEmailFieldName])) {
                 //Отправляем письмо на емеил пользователя
                 $mailText = $render->assemble($Xform['client_mail_tmp']);
                 $mailer->setBody($mailText);
                 $mailer->addTo($data[$clientEmailFieldName]);
                 $mailer->send('*****@*****.**', 'Ваша форма удачно отправленна');
             }
         }
         $jsonReturn['error'] = false;
         $jsonReturn['msg'] = '<strong>ОК:<strong> Форма удачно отправлена';
     } else {
         $jsonReturn['error'] = true;
         $jsonReturn['msg'] = $typeClientForm->getErrorsD($nameAccos);
     }
     if (K_Request::isAjax()) {
         $this->putJSON($jsonReturn);
     } else {
         $this->putAjax("ERROR");
     }
     //
     /*else{
       if($jsonReturn['error'] = false){
       
       //заготовка на случай если js отключен
       //загрузка промежуточного шаблона с выводом ошибок и формой для продолжения заполнения 
       
       
       }  
       else{
       // промежуточный шаблон с нотификацией о правильном заполнении и редирект туда от куда пришол пользователь.    
       
       
       }
       
       }*/
 }