159 lines
5.4 KiB
PHP
159 lines
5.4 KiB
PHP
|
<?php
|
|||
|
|
|||
|
class class_OBRTECH{
|
|||
|
private $DB=null;
|
|||
|
private $TObrtech='';
|
|||
|
private $polya=array();
|
|||
|
function __construct(){
|
|||
|
GLOBAL $DB,$ST;
|
|||
|
$this->DB = $DB;
|
|||
|
$this->TObrtech = $ST['dbpf'].'_fshp_obrtech';
|
|||
|
$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'=>'pos','type'=>'int(11)','nul'=>'NOT NULL','dop'=>''),
|
|||
|
);
|
|||
|
$sql = 'CREATE TABLE IF NOT EXISTS `'.$this->TObrtech.'` (';
|
|||
|
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['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_obrtech.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['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->TObrtech.'` SET name="'.$data['name'].'",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->TObrtech.'` VALUES(0,"'.$data['name'].'",'.$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->TObrtech.'` 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->TObrtech.'` ORDER BY pos ASC';
|
|||
|
$rez = $this->DB->QUR_SEL($sql);
|
|||
|
if(!$rez['err']&&$rez['kol']){
|
|||
|
$out = $rez['rez'];
|
|||
|
}
|
|||
|
return $out;
|
|||
|
}
|
|||
|
}
|