/** * Get results for log search with results containing markup/pagination * * @param object Contains: * - userquery string * - functionquery string * - protocol string * - authtype string * - sortby string * - sortdir string * - offset int * - limit int * - onlyerrors string optional * - institution string optional * - institution_requested string optional * * @return array Contains search results markup/pagination */ function build_webservice_log_search_results($search) { global $THEME; $THEME->templatedirs[] = get_config('docroot') . 'auth/webservice/theme/raw/'; $results = get_log_search_results($search); $params = array(); foreach ($search as $k => $v) { if (!empty($v)) { $params[] = $k . '=' . $v; } } $searchurl = get_config('wwwroot') . 'webservice/admin/webservicelogs.php?' . join('&', $params); $pagination = $results['pagination'] = build_pagination(array('id' => 'admin_usersearch_pagination', 'class' => 'center', 'url' => $searchurl, 'count' => $results['count'], 'limit' => $search->limit, 'setlimit' => true, 'jumplinks' => 8, 'numbersincludeprevnext' => 2, 'offset' => $search->offset, 'datatable' => 'searchresults', 'jsonscript' => 'webservice/admin/logsearch.json.php')); $cols = array('username' => array('name' => get_string('userauth', 'auth.webservice'), 'template' => 'auth:webservice:username.tpl', 'class' => 'center', 'sort' => true), 'institution' => array('name' => get_string('institution'), 'sort' => true), 'protocol' => array('name' => get_string('protocol', 'auth.webservice'), 'sort' => true), 'auth' => array('name' => get_string('authtype', 'auth.webservice'), 'sort' => true), 'functionname' => array('name' => get_string('function', 'auth.webservice'), 'sort' => true), 'timetaken' => array('name' => get_string('timetaken', 'auth.webservice'), 'sort' => true), 'timelogged' => array('name' => get_string('timelogged', 'auth.webservice'), 'sort' => true), 'info' => array('name' => get_string('info', 'auth.webservice'), 'class' => 'webservicelogs-info')); $smarty = smarty_core(); $smarty->assign_by_ref('results', $results); $smarty->assign_by_ref('institutions', $institutions); $smarty->assign('searchurl', $searchurl); $smarty->assign('sortby', $search->sortby); $smarty->assign('sortdir', $search->sortdir); $smarty->assign('limitoptions', array(10, 50, 100, 200, 500)); $smarty->assign('pagebaseurl', $searchurl . '&sortby=' . $search->sortby . '&sortdir=' . $search->sortdir); $smarty->assign('cols', $cols); return array($smarty->fetch('searchresulttable.tpl'), $cols, array('url' => $searchurl . '&sortby=' . $search->sortby . '&sortdir=' . $search->sortdir, 'sortby' => $search->sortby, 'sortdir' => $search->sortdir), $pagination); }
* */ define('INTERNAL', 1); define('JSON', 1); define('INSTITUTIONALADMIN', 1); require dirname(dirname(dirname(__FILE__))) . '/init.php'; $action = param_variable('action'); if ($action == 'search') { require_once 'webservicessearchlib.php'; $params = new StdClass(); $params->userquery = trim(param_variable('userquery', '')); $params->functionquery = trim(param_variable('functionquery', '')); $params->institution = param_alphanum('institution', 'all'); $params->protocol = param_alphanum('protocol', 'all'); $params->authtype = param_alphanum('authtype', 'all'); $params->institution_requested = param_alphanum('institution_requested', null); $params->offset = param_integer('offset', 0); $params->limit = param_integer('limit', 10); $params->sortby = param_alpha('sortby', 'timelogged'); $params->sortdir = param_alpha('sortdir', 'desc'); json_headers(); if (param_boolean('raw', false)) { $data = get_log_search_results($params); } else { $data['data'] = build_webservice_log_search_results($params); } $data['error'] = false; $data['message'] = null; echo json_encode($data); exit; }