diff options
Diffstat (limited to 'apps/shorty/ajax/list.php')
-rw-r--r-- | apps/shorty/ajax/list.php | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/apps/shorty/ajax/list.php b/apps/shorty/ajax/list.php new file mode 100644 index 00000000000..8b4e9b3e81e --- /dev/null +++ b/apps/shorty/ajax/list.php @@ -0,0 +1,77 @@ +<?php +/** +* @package shorty an ownCloud url shortener plugin +* @category internet +* @author Christian Reiner +* @copyright 2011-2012 Christian Reiner <foss@christian-reiner.info> +* @license GNU Affero General Public license (AGPL) +* @link information +* @link repository https://svn.christian-reiner.info/svn/app/oc/shorty +* +* 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 Affero General Public +* License along with this library. +* If not, see <http://www.gnu.org/licenses/>. +* +*/ + +/** + * @file ajax/list.php + * @brief Ajax method to retrieve a list of existing shortys + * @returns (json) success/error state indicator + * @returns (number) Total number of shortys in the list + * @returns (json) Numeric array of all shortys, associative array of attributes as values for every single shorty contained + * @author Christian Reiner + */ + +// swallow any accidential output generated by php notices and stuff to preserve a clean JSON reply structure +OC_Shorty_Tools::ob_control ( TRUE ); + +//no apps or filesystem +$RUNTIME_NOSETUPFS = TRUE; + +// Check if we are a user +OCP\JSON::checkLoggedIn ( ); +OCP\JSON::checkAppEnabled ( 'shorty' ); + +try +{ + // first remove any entries already marked as 'deleted' + $query = OCP\DB::prepare ( OC_Shorty_Query::URL_REMOVE ); + $result = $query->execute(array(':user'=>OCP\User::getUser())); + // now comes the real list selection +// define ('PAGE_SIZE', 100); +// $p_offset = OC_Shorty_Type::req_argument ( 'page', OC_Shorty_Type::INTEGER, FALSE) * PAGE_SIZE; + // pre-sort list according to user preferences + $p_sort = OC_Shorty_Type::$SORTING[OCP\Config::getUserValue(OCP\User::getUser(),'shorty','list-sort-code','cd')]; + $param = array + ( + ':user' => OCP\User::getUser ( ), + ':sort' => $p_sort, +// ':offset' => $p_offset, +// ':limit' => PAGE_SIZE, + ); + $query = OCP\DB::prepare ( OC_Shorty_Query::URL_LIST ); + $result = $query->execute($param); + $reply = $result->fetchAll(); + // enhance all entries with the relay url + foreach (array_keys($reply) as $key) + if (isset($reply[$key]['id'])) + $reply[$key]['relay']=OC_Shorty_Tools::relayUrl ( $reply[$key]['id'] ); + + // swallow any accidential output generated by php notices and stuff to preserve a clean JSON reply structure + OC_Shorty_Tools::ob_control ( FALSE ); + OCP\JSON::success ( array ( 'data' => $reply, + 'count' => sizeof($reply), + 'message' => OC_Shorty_L10n::t('Number of entries: %s', count($reply)) ) ); +} catch ( Exception $e ) { OC_Shorty_Exception::JSONerror($e); } +?> |