query($query, [0, $user]); $start = $this->get_max_position($user) + 1; while ($res = $result->fetchRow()) { // Check for duplicate URL if (! $this->getOne('select count(*) from `tiki_user_menus` where `url`=?', [$res['url']])) { $this->replace_usermenu($user, 0, $res['name'], $res['url'], $start, 'w'); $start++; } } $query = 'select tubu.`name`,`url` from `tiki_user_bookmarks_urls` tubu where tubu.`folderId`=? and tubu.user=?'; $result = $this->query($query, [0, $user]); $start = $this->get_max_position($user) + 1; while ($res = $result->fetchRow()) { // Check for duplicate URL if (! $this->getOne('select count(*) from `tiki_user_menus` where `url`=?', [$res['url']])) { $this->replace_usermenu($user, 0, $res['name'], $res['url'], $start, 'w'); $start++; } } } /** * @param $user * @param $offset * @param $maxRecords * @param $sort_mode * @param $find * @return array */ public function list_usermenus($user, $offset, $maxRecords, $sort_mode, $find) { if ($find) { $findesc = '%' . $find . '%'; $mid = ' and (`name` like ? or url like ?)'; $bindvars = [$user, $findesc, $findesc]; } else { $mid = ' '; $bindvars = [$user]; } $query = "select * from `tiki_user_menus` where `user`=? $mid order by " . $this->convertSortMode($sort_mode); $query_cant = "select count(*) from `tiki_user_menus` where `user`=? $mid"; $result = $this->query($query, $bindvars, $maxRecords, $offset); $cant = $this->getOne($query_cant, $bindvars); $ret = []; while ($res = $result->fetchRow()) { $ret[] = $res; } $retval = []; $retval['data'] = $ret; $retval['cant'] = $cant; return $retval; } /** * @param $user * @param $menuId * @return mixed */ public function get_usermenu($user, $menuId) { $query = 'select * from `tiki_user_menus` where `user`=? and `menuId`=?'; $result = $this->query($query, [$user, $menuId]); $res = $result->fetchRow(); return $res; } /** * @param $user * @return mixed */ public function get_max_position($user) { return $this->getOne('select max(position) from `tiki_user_menus` where `user`=?', [$user]); } /** * @param $user * @param $menuId * @param $name * @param $url * @param $position * @param $mode * @return mixed */ public function replace_usermenu($user, $menuId, $name, $url, $position, $mode) { if ($menuId) { $query = 'update `tiki_user_menus` set `name`=?, `position`=?, `url`=?, `mode`=? where `user`=? and `menuId`=?'; $this->query($query, [$name, $position, $url, $mode, $user, $menuId]); return $menuId; } else { $query = 'insert into `tiki_user_menus`(`user`,`name`,`url`,`position`,`mode`) values(?,?,?,?,?)'; $this->query($query, [$user, $name, $url, $position, $mode]); $Id = $this->getOne('select max(`menuId`) from `tiki_user_menus` where `user`=? and `url`=? and `name`=?', [$user, $url, $name]); return $Id; } } /** * @param $user * @param $menuId */ public function remove_usermenu($user, $menuId) { $query = 'delete from `tiki_user_menus` where `user`=? and `menuId`=?'; $this->query($query, [$user,$menuId]); } } $usermenulib = new UserMenuLib();