DB = $DB; $this->TModuls = $ST['dbpf'].'_fshp_moduls'; $this->polya = $this->table_create(); } /** * Создание таблицы и возвращение полей таблицы * @return string[][] */ private function table_create(){ $polya = array( 0=>array('name'=>'id','type'=>'int(11)','nul'=>'NOT NULL','dop'=>'AUTO_INCREMENT'), array('name'=>'name','type'=>'varchar(255)','nul'=>'NOT NULL','dop'=>''), array('name'=>'descrip','type'=>'text','nul'=>'NOT NULL','dop'=>''), array('name'=>'pos','type'=>'int(11)','nul'=>'NOT NULL','dop'=>''), ); $sql = 'CREATE TABLE IF NOT EXISTS `'.$this->TModuls.'` ('; foreach($polya as $k => $v){ $sql .= '`'.$v['name'].'` '.$v['type'].' '.$v['nul'].' '.$v['dop'].',';} $sql .= 'primary key (id) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;'; $this->DB->QUR($sql); return $polya; } /** * Основа работы с интерфейсом * @return string[]|void * @throws SmartyException */ public function HTML(){ GLOBAL $WorkDIR; $CHPU = new class_CHPU($WorkDIR); $URLS = $CHPU->uri(); $smartyC = new class_smarty(); $smarty = $smartyC->config(__DIR__.'\..\tpl'); $view = 'all'; $out = array('name'=>'Модули для календарного графика','body'=>''); //обработка АЯКС запросов if(isset($_POST['ajdes'])){ header('Content-Type: application/json; charset=utf-8'); $out=array(); //удаление записи комп.модели if($_POST['ajdes']=='Dele_TR'){ $data['id'] = (int)$_POST['idr']; $out = $this->Delete($data); } //сохранение записи комп.модели if($_POST['ajdes']=='Save_TR'){ $data['pos'] = (int)$_POST['pos']; if ($data['pos'] =='') $data['pos'] = 0; $data['name'] = $this->DB->rescape($_POST['name']); $data['descrip'] = $this->DB->rescape($_POST['descrip']); $data['id'] = (int)$_POST['idr']; if($data['id']==0) $out = $this->Save($data); else $out = $this->Edit($data); }echo json_encode($out); exit(); } //Отображение всех if(!isset($URLS[1])||$URLS[1]=='all') { $smarty->assign('items', $this->Items()); $smarty->assign('view', $view); $out['body'] = $smarty->fetch('page_moduls.html'); } return $out; } /** * Подготовка данных для таблицы * @param $data * @return mixed */ private function Prepare_data($data){ if(!isset($data['name'])) $data['name']=''; else $data['name']=$this->DB->rescape($data['name']); if(!isset($data['descrip'])) $data['descrip']=''; else $data['descrip']=$this->DB->rescape($data['descrip']); if(!isset($data['pos'])) $data['pos']=0; else $data['pos']=(int)$this->DB->rescape($data['pos']); if($data['pos']=='') $data['pos']=0; return $data; } /** * Редактирование записи * @param $data * @return array */ private function Edit($data){ $data = $this->Prepare_data($data); $sql = 'UPDATE `'.$this->TModuls.'` SET name="'.$data['name'].'",descrip="'.$data['descrip'].'",pos='.$data['pos'].' WHERE id='.$data['id'].' LIMIT 1'; $rez = $this->DB->QUR($sql); if(!$rez['err']){ $out['err']=0; $out['msg']='Обновили запись'; $out['id']=$this->DB->lastinsertID(); }else{ $out['err']=1; $out['msg']='Не обновили запись. Ошибка!'; $out['id']=$data['id']; } return $out; } /** * Сохранение записи * @param $data * @return array */ private function Save($data){ $data = $this->Prepare_data($data); $sql = 'INSERT INTO `'.$this->TModuls.'` VALUES(0,"'.$data['name'].'","'.$data['descrip'].'",'.$data['pos'].');'; $rez = $this->DB->QUR($sql); if(!$rez['err']){ $out['err']=0; $out['msg']='Добавили запись'; $out['id']=$this->DB->lastinsertID(); }else{ $out['err']=1; $out['msg']='Не добавили запись. Ошибка!'; $out['id']=0; } return $out; } /** * Удаление записи * @param $data * @return array */ private function Delete($data){ $sql = 'DELETE FROM `'.$this->TModuls.'` WHERE id='.$data['id'].' LIMIT 1'; $rez = $this->DB->QUR($sql); if(!$rez['err']){ $out['err']=0; $out['msg']='Удалили запись'; $out['id']=$data['id']; }else{ $out['err']=1; $out['msg']='Не удалили запись. Ошибка!'; $out['id']=0; } return $out; } /** * Получение * @return array|mixed */ public function Items(){ $out=array(); $sql = 'SELECT * FROM `'.$this->TModuls.'` ORDER BY pos ASC'; $rez = $this->DB->QUR_SEL($sql); if(!$rez['err']&&$rez['kol']){ $out = $rez['rez']; } return $out; } }