EIOS/rabprog/inc/class_MODULS.php

162 lines
5.7 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
class class_MODULS{
private $DB=null;
private $TModuls='';
private $polya=array();
function __construct(){
GLOBAL $DB,$ST;
$this->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;
}
}