示例#1
0
/**
 * 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);
}
示例#2
0
 *
 */
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;
}