* @since Version 2.0 */ class sysMenusModule { public $db; /** * Class constructor */ public function __construct() { $this->db = cDb::getInstance(); } /** * Function to get module records * * @author Mareks Keišs * @category sysMenus Module * @param string $where - sql query * @param string $sort - sql query * @param int $offset - db table offset * @param int $limitPerPage - limit per page * @return array of data * @version 1.1 */ public function getModuleRecords($where, $sort, $offset = 0, $limitPerPage = 20){ $sSql = " SELECT SQL_CALC_FOUND_ROWS mm.id, mm.menu_name, mm.menu_description, mm.menu_blocked FROM site_menus mm WHERE 1 {$where} ORDER BY {$sort} LIMIT {$offset}, {$limitPerPage} "; $this->db->query($sSql); return $this->db->getArray(); } /** * Function to add or save record data * * @author Mareks Keišs * @category sysMenus Module * @param int $id - record id for update * @param array $data - record data * @return bool|int - record new/old id * @version 1.1 */ public function saveRecordDataById($id, $data){ if($id){ if(!$this->db->_queryUpdate('site_menus', $data, array('id' => $id))){ return false; } }else{ if(!($id = $this->db->_queryInsert('site_menus', $data))){ return false; } } return $id; } /** * Function to get record data by id * * @author Mareks Keišs * @category sysMenus Module * @param int $id - record id * @return array - record data * @version 1.1 */ public function getRecordDataById($id){ return $this->db->_querySelectRow('site_menus', false, array('id' => $id)); } /** * Function to get group linked permissions * * @author Aivars Žukovskis * @category sysMenus Module * @param int $id - menu id * @return array - with records * @version 1.1 */ public function getLoadableMenus($id){ $id = $this->db->prepData($id ? $id : 0); $sSql = " SELECT mm.id, mm.menu_name, mm.menu_description, mm.menu_blocked FROM site_menus mm WHERE mm.id <> {$id} "; $this->db->query($sSql); return $this->db->getArray(); } /** * Function to delete table records form db * * @author Mareks Keišs * @category sysMenus Module * @param array $ids - record ids to delete * @return bool true / false * @version 1.1 */ public function deleteRecords($ids){ return $this->db->execute("DELETE FROM `site_menus` WHERE `id` IN (" . implode(',', $ids) . ")"); } /** * Function to change record status in db table * * @author Mareks Keišs * @category sysMenus Module * @param array $ids - record ids to affect * @param string $field - field to update for status ENUM * @return bool true / false * @version 1.1 */ public function changeRecordsStatus($ids, $field){ $time = time(); $ids = implode(',', $ids); $status = $this->db->query("UPDATE site_menus mm SET {$field} = '1', menu_modified = '{$time}' WHERE {$field} = '0' AND id IN ({$ids})"); if(!$status) return $status; $status = $this->db->query("UPDATE site_menus mm SET {$field} = '0', menu_modified = '{$time}' WHERE {$field} = '1' AND id IN ({$ids}) AND menu_modified <> '{$time}'"); return $status; } }