1
0
mirror of https://github.com/owncloud/bookmarks.git synced 2024-12-11 12:24:10 +01:00
OwncloudBookmarksOfficial/ajax/updateList.php

74 lines
2.1 KiB
PHP
Raw Normal View History

2011-08-15 22:05:07 +02:00
<?php
/**
* ownCloud - bookmarks plugin
*
* @author Arthur Schiwon
* @copyright 2011 Arthur Schiwon blizzz@arthur-schiwon.de
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
//no apps or filesystem
$RUNTIME_NOSETUPFS=true;
require_once('../../../lib/base.php');
// We send json data
header( 'Content-Type: application/jsonrequest' );
2011-08-15 22:05:07 +02:00
// Check if we are a user
if( !OC_User::isLoggedIn()){
echo json_encode( array( 'status' => 'error', 'data' => array( 'message' => 'Authentication error' )));
2011-08-15 22:05:07 +02:00
exit();
}
$params=array(OC_User::getUser());
$CONFIG_DBTYPE = OC_Config::getValue( 'dbtype', 'sqlite' );
2011-08-15 22:05:07 +02:00
//Filter for tag?
$filterTag = isset($_GET['tag']) ? '%' . urldecode($_GET['tag']) . '%' : false;
2011-08-15 22:05:07 +02:00
if($filterTag){
2011-08-23 11:57:56 +02:00
$sqlFilterTag = 'HAVING tags LIKE ?';
2011-08-15 22:05:07 +02:00
$params[] = $filterTag;
} else {
$sqlFilterTag = '';
}
$offset = isset($_GET['page']) ? intval($_GET['page']) * 10 : 0;
2011-08-15 22:05:07 +02:00
$params[] = $offset;
2011-08-16 23:49:53 +02:00
if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){
$_gc_separator = ', \' \'';
2011-08-16 23:49:53 +02:00
} else {
$_gc_separator = 'SEPARATOR \' \'';
2011-08-16 23:49:53 +02:00
}
2011-08-15 22:05:07 +02:00
//FIXME: bookmarks without tags are not being retrieved
$query = OC_DB::prepare('
SELECT url, title, description, GROUP_CONCAT( tag '.$_gc_separator.' ) AS tags
2011-08-15 22:05:07 +02:00
FROM *PREFIX*bookmarks, *PREFIX*bookmarks_tags
WHERE *PREFIX*bookmarks.id = *PREFIX*bookmarks_tags.bookmark_id
AND *PREFIX*bookmarks.user_id = ?
GROUP BY url
'.$sqlFilterTag.'
2011-08-15 22:05:07 +02:00
ORDER BY *PREFIX*bookmarks.id DESC
LIMIT ?, 10');
2011-08-15 22:05:07 +02:00
$bookmarks = $query->execute($params)->fetchAll();
echo json_encode( array( 'status' => 'success', 'data' => $bookmarks));