DB = $DB; $this->TNotes = $ST['dbpf'].'_note_notes'; include_once 'class_SQLS.php'; $this->SQLS = new class_SQLS(); //$this->table_create(); if(isset($_SESSION['user'])){ $this->USER = $_SESSION['user']; }else{ $this->USER = array(); } } //Таблица: acs_note_notes: id, data_c, id_user, title, notes, json, status /** * Создание таблицы */ private function table_create(){ $sql = 'CREATE TABLE IF NOT EXISTS `'.$this->TNotes.'` ( id int(11) NOT NULL AUTO_INCREMENT, data_c int(11) NOT NULL, id_user bigint NOT NULL, title varchar(255) NOT NULL DEFAULT "", notes text DEFAULT NULL, json longtext DEFAULT NULL, status int(11) NOT NULL, primary key (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;'; $rez = $this->SQLS->sqlUPD($sql); } function HTML(){ GLOBAL $smarty; $this->smarty = $smarty; $out = array(); $regim = 'show'; $GET = $_GET; //echo '
'.print_r($GET,1).''; exit(); //https://eios.mkgtu.ru/notes/edit/12/ //Array( [notes] => [page] => edit [des] => 12) $msg = array(); if(isset($_POST['add'])){ $msg = $this->add($_POST); $GET['page'] = 'show'; } if(isset($_POST['edit'])){ $msg = $this->edit($_POST); $GET['page'] = 'show'; } if(isset($GET['page'])){ if($GET['page']=='add'){ $regim = $GET['page']; } if($GET['page']=='edit'){ $regim = $GET['page']; $id = (int)$GET['des']; $tmp = $this->item($id); //echo '
'.print_r($tmp,1).''; exit(); $item = $tmp['item']; $smarty->assign('item', $item); } } if($regim=='show') { $items = $this->items(); $smarty->assign('items', $items); } $smarty->assign('msg', $msg); $smarty->assign('regim', $regim); $out['html'] = $smarty->fetch('notes/tpl_notes_main.html'); return $out; } function itemsHTML($filter){ include_once 'inc/smarty.php'; $rez = $this->items($filter); $out['html']=''; if(count($rez['items'])) { foreach ($rez['items'] as $k => $v) { $smarty->assign('it',$v); $out['html'] .= $smarty->fetch('notes/tpl_notes_fly_item.html'); } } return $out; } function addHTML(){ include_once 'inc/smarty.php'; $item['title'] = 'Заметка от '.date('H:i d.m.Y'); $item['notes'] = ''; $smarty->assign('item',$item); $smarty->assign('regim','add'); $out['html'] = $smarty->fetch('notes/tpl_note_add.html'); $out['html'] = str_replace('note_add_ajREP','note_add_aj',$out['html']); return $out; } /** * Получение всех элементов * @param $filter (array) * @return (array) */ function items($filter=array()){ $out = array(); if(!isset($filter['order'])) $filter['order']='data_c DESC'; if(!isset($filter['limit'])) { $filter['limit']['start']=''; $filter['limit']['step']=''; $limits = ''; }else{ $limits = ' LIMIT '.$filter['limit']['start'].','.$filter['limit']['step']; } $USER = $this->USER; $sql = 'SELECT * FROM '.$this->TNotes.' WHERE id_user='.$USER['id'].' ORDER BY '.$filter['order'].$limits; $rez = $this->SQLS->sqlSEL($sql); //echo '
'.print_r($rez,1).''; exit(); $out = $rez; //if(!$rez['err']&&$rez['kol']){ // foreach($rez['items'] as $k => $v){ // // } //} return $out; } /** * Получение одного элемента * @param $id (integer) * @return (array) err:0|1 item */ function item($id){ $USER = $this->USER; $sql = 'SELECT * FROM '.$this->TNotes.' WHERE id_user='.$USER['id'].' AND id='.$id; $rez = $this->SQLS->sqlSEL($sql); if(count($rez['items'])) { $rez['item'] = $rez['items'][1]; }else{ $rez['item'] = array(); } unset($rez['items']); $out = $rez; //if(!$rez['err']&&$rez['kol']){ // foreach($rez['items'] as $k => $v){ // // } //} return $out; } /** * Подготовка данных для таблицы * @param $data (array) * @return (array) */ public function prepare_data($data){ GLOBAL $DB; $USER = $this->USER; //Таблица: acs_note_notes: id, data_c, id_user, title, notes, json, status if(isset($data['data_c'])) $data['data_c']=strtotime($data['data_c']); else $data['data_c']=time(); if(isset($data['id_user'])) $data['id_user']=(int)$data['id_user']; else $data['id_user']=$USER['id']; if(isset($data['title'])) $data['title']=$DB->rescape($data['title']); else $data['title']=''; if(isset($data['notes'])) $data['notes']=$DB->rescape($data['notes']); else $data['notes']=''; if(isset($data['json'])) $data['json']=$DB->rescape(json_encode($data['json'],JSON_UNESCAPED_UNICODE)); else $data['json']=$DB->rescape(json_encode(array())); if(isset($data['status'])) $data['status']=$DB->rescape($data['status']); else $data['status']=0; return $data; } /** * Добавление элемента в таблицу * @param $data (array) * @return (array) */ public function add($data){ $data = $this->prepare_data($data); //Таблица: acs_note_notes: id, data_c, id_user, title, notes, json, status $sql = 'INSERT INTO '.$this->TNotes.' VALUES(0,'.$data['data_c'].','.$data['id_user'].',"'.$data['title'].'","'.$data['notes'].'","'.$data['json'].'",'.$data['status'].')'; $out = $this->SQLS->sqlINS($sql); return $out; } /** * Редактирование элемента * @param $data (array) * @return (array) */ public function edit($data){ $data = $this->prepare_data($data); //Таблица: acs_note_notes: id, data_c, id_user, title, notes, json, status $sql = 'UPDATE '.$this->TNotes.' SET title="'.$data['title'].'", notes="'.$data['notes'].'", json="'.$data['json'].'",status='.$data['status'].' WHERE id='.$data['id']; $out = $this->SQLS->sqlUPD($sql); return $out; } }