get_folder($folderId, $user);
$path = '' . htmlspecialchars($info["name"]) . '';
while ($info["parentId"] != 0) {
$info = $this->get_folder($info["parentId"], $user);
$path
= $path = '' . htmlspecialchars($info["name"]) . '' . '>' . $path;
}
return $path;
}
public function get_folder($folderId, $user)
{
$query = "select * from `tiki_user_bookmarks_folders` where `folderId`=? and `user`=?";
$result = $this->query($query, [$folderId,$user]);
if (! $result->numRows()) {
return false;
}
$res = $result->fetchRow();
return $res;
}
public function get_url($urlId)
{
$query = "select * from `tiki_user_bookmarks_urls` where `urlId`=?";
$result = $this->query($query, [$urlId]);
if (! $result->numRows()) {
return false;
}
$res = $result->fetchRow();
return $res;
}
public function remove_url($urlId, $user)
{
$query = "delete from `tiki_user_bookmarks_urls` where `urlId`=? and `user`=?";
$result = $this->query($query, [$urlId,$user]);
return true;
}
public function remove_folder($folderId, $user)
{
// Delete the category
$query = "delete from `tiki_user_bookmarks_folders` where `folderId`=? and `user`=?";
$result = $this->query($query, [$folderId,$user]);
// Remove objects for this category
$query = "delete from `tiki_user_bookmarks_urls` where `folderId`=? and `user`=?";
$result = $this->query($query, [$folderId,$user]);
// SUbfolders
$query = "select `folderId` from `tiki_user_bookmarks_folders` where `parentId`=? and `user`=?";
$result = $this->query($query, [$folderId,$user]);
while ($res = $result->fetchRow()) {
// Recursively remove the subcategory
$this->remove_folder($res["folderId"], $user);
}
return true;
}
public function update_folder($folderId, $name, $user)
{
$query = "update `tiki_user_bookmarks_folders` set `name`=? where `folderId`=? and `user`=?";
$result = $this->query($query, [$name,$folderId,$user]);
}
public function add_folder($parentId, $name, $user)
{
// Don't allow empty/blank folder names.
if (empty($name)) {
return false;
}
// Find the next folderId
$query = "select max(`folderId`) from `tiki_user_bookmarks_folders` WHERE `user`=?";
$maxId = $this->getOne($query, [$user]);
if ((int)$maxId == 0) {
$maxId = 0;
}
$query = "insert into `tiki_user_bookmarks_folders`(`folderId`, `name`,`parentId`,`user`) values(?,?,?,?)";
$result = $this->query($query, [$maxId + 1,$name,$parentId,$user]);
}
public function replace_url($urlId, $folderId, $name, $url, $user)
{
if ($urlId) {
$query = "update `tiki_user_bookmarks_urls` set `user`=?,`lastUpdated`=?,`folderId`=?,`name`=?,`url`=? where `urlId`=?";
$bindvars = [$user,(int) $this->now,$folderId,$name,$url,$urlId];
} else {
$query = " insert into `tiki_user_bookmarks_urls`(`name`,`url`,`data`,`lastUpdated`,`folderId`,`user`)
values(?,?,?,?,?,?)";
$bindvars = [$name,$url,'',(int) $this->now,$folderId,$user];
}
$result = $this->query($query, $bindvars);
$id = $this->getOne("select max(`urlId`) from `tiki_user_bookmarks_urls` where `url`=? and `lastUpdated`=?", [$url,(int) $this->now]);
return $id;
}
public function refresh_url($urlId)
{
$info = $this->get_url($urlId);
if (strstr($info["url"], 'tiki-') || strstr($info["url"], 'messu-')) {
return false;
}
$data = @$this->httprequest($info["url"]);
if (! $data) {
return;
}
$query = "update `tiki_user_bookmarks_urls` set `lastUpdated`=?, `data`=? where `urlId`=?";
$result = $this->query($query, [(int) $this->now,$data,$urlId]);
return true;
}
public function list_folder($folderId, $offset, $maxRecords, $sort_mode, $find, $user)
{
if ($find) {
$findesc = '%' . $find . '%';
$mid = " and `name` like ? or `url` like ?";
$bindvars = [$folderId,$user,$findesc,$findesc];
} else {
$mid = "";
$bindvars = [$folderId,$user];
}
$query = "select * from `tiki_user_bookmarks_urls` where `folderId`=? and `user`=? $mid order by " . $this->convertSortMode($sort_mode);
$query_cant = "select count(*) from `tiki_user_bookmarks_urls` where `folderId`=? and `user`=? $mid";
$result = $this->query($query, $bindvars, $maxRecords, $offset);
$cant = $this->getOne($query_cant, $bindvars);
$ret = [];
while ($res = $result->fetchRow()) {
$res["datalen"] = strlen($res["data"]);
$ret[] = $res;
}
$retval = [];
$retval["data"] = $ret;
$retval["cant"] = $cant;
return $retval;
}
public function get_child_folders($folderId, $user)
{
$ret = [];
$query = "select * from `tiki_user_bookmarks_folders` where `parentId`=? and `user`=?";
$result = $this->query($query, [$folderId,$user]);
while ($res = $result->fetchRow()) {
$cant = $this->getOne("select count(*) from `tiki_user_bookmarks_urls` where `folderId`=? and `user`=?", [$res["folderId"],$user]);
$res["urls"] = $cant;
$ret[] = $res;
}
return $ret;
}
}
$bookmarklib = new BookmarkLib();