EIOS/rabprog/inc/class_OBRTECH.php

159 lines
5.4 KiB
PHP
Raw 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_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;
}
}