protected function completedGUI() { $this->tabs['completed'] = 'Заполненные формы'; $clientFormData = new Admin_Model_ClientFormData(); //загружаем данные формы $formData = Gcontroller::loadclientFormStructure($this->nodeData['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); $fieldCount = 0; $tableHead = ''; foreach ($formStructure as $v) { if (isset($v['values']['name']) && isset($v['values']['label'])) { $tableHead .= '<th title="' . $v['values']['label'] . '">' . K_Str::trunc_ws($v['values']['label'], 15, $wordsafe = false, $dots = true) . '</th>'; $colsKeys[] = $v['values']['name']; $fieldCount++; } if ($fieldCount > 3) { break; } } $tableHead = '<tr><th>Дата</th>' . $tableHead . '<th>  Управление    </th></tr>'; return <<<HTML <script type="text/javascript"> \$('#complited-forms-table-wrapper').ajaxLeaf(
public function indexAction() { $query = new Query(); $this->view->title = 'Инструменты разработчика'; $this->view->header = 'Инструменты разработчика'; $this->view->headers = array(array('title' => 'Менеджер типов', 'href' => '/admin/typesmanager/'), array('title' => 'Инструменты разработчика')); $this->view->formStructure = Gcontroller::loadFormStructure('/forms/add_type/', get_class()); $this->view->types = $query->q('SELECT type_name FROM types ORDER BY type_name'); $this->view->actionType = 'create'; $this->render('devtools'); }
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{ // промежуточный шаблон с нотификацией о правильном заполнении и редирект туда от куда пришол пользователь. } }*/ }
public function __construct() { parent::__construct($this->_options); $this->view->_setOptions(array('module' => 'admin', 'controller' => 'admin_gui', 'helpers' => $this->helpers)); }
public static function convertToSelectElements($selectArray, $elementName) { $formStructure = Gcontroller::loadFormStructure('/forms/add_type/'); $structure = json_decode($formStructure['form_structure']); $result = array(); for ($i = 0; $i < sizeof($structure); $i++) { if ($structure[$i]->values->name == $elementName) { foreach ((array) $structure[$i]->options as $optionKey => $option) { if (in_array($optionKey, $selectArray)) { $result[] = $option->value; } } } } return $result; }
public function completedFormAction() { $clientFormData = new Admin_Model_ClientFormData(); $clientFormDataKey = $this->getParam('key'); $data = $clientFormData->fetchRow(K_Db_Select::create()->where(array('clientform_data_id' => $clientFormDataKey))); //вытягиваем структуру формы. $formData = Gcontroller::loadclientFormStructure($data['clientform_data_type']); $formStructure = json_decode($formData['form_structure']); $formStructure = K_Tree_Types::objectToArray($formStructure); //выбираем пары имя, label foreach ($formStructure as $v) { if (isset($v['values']['name']) && isset($v['values']['label'])) { $name = $v['values']['name']; $lable = $v['values']['label']; $fields[$name] = $lable; } } if ($data) { $formDataHtml = ''; $fromDataObj = unserialize($data['clientform_data_content']); foreach ($fromDataObj as $k => $v) { if (is_array($v)) { $value = implode(', ', $v); } else { $value = $v; } $formDataHtml .= '<tr><td>' . $fields[$k] . '</td><td>' . $value . '</td></tr>'; } $this->putAjax('<table class="table-skeleton">' . $formDataHtml . '</table>'); } else { $this->putAjax('ERROR'); } }
public function generateTypeForm($type, $action) { $formStructure = Gcontroller::loadTypeStructure($type); $this->generateForm($formStructure['form_structure'], isset($this->type) ? $this->type : array(), array($action, 'post', $this->actionType, 'multipart/form-data', array('class' => 'ajax-form')), $this->formTemplate, array('tree_link' => $treeLink), $adminka = false); }