예제 #1
0
function cs_ajaxwrap()
{
    global $cs_main, $account;
    $json = array();
    header('Content-Type:application/json');
    if (empty($cs_main['public']) and $account['access_clansphere'] < $cs_main['maintenance_access']) {
        return json_encode(array('location' => '', 'reload' => 1));
    }
    if (!isset($_REQUEST['xhr_nocontent'])) {
        $content = cs_contentload($cs_main['show']);
        $json['title'] = html_entity_decode(cs_title(), ENT_NOQUOTES, $cs_main['charset']);
        $pathPrefix = str_replace('\\', '/', $cs_main['php_self']['dirname'] . $cs_main['php_self']['filename']) . '/';
        $uri = preg_replace('/^(.*?)\\.php\\??(.*?)$/s', '\\2', $_SERVER['REQUEST_URI']);
        $uri = preg_replace('/[&\\?\\/]?(xhr_navlists[=\\/])[^&\\/]*/s', '', $uri);
        $uri = str_replace(array('&xhr=1', '/xhr/1', '&xhr_nocontent=1', 'params=/', '/params//', $pathPrefix), '', $uri);
        $uri = preg_replace('/' . str_replace('/', '\\/', $cs_main['php_self']['dirname']) . '/s', '', $uri, 0);
        $json['location'] = $uri;
        if (isset($cs_main['ajax_js'])) {
            $json['scripts'] = $cs_main['ajax_js'];
        }
        $json['content'] = $content;
    }
    if (isset($_REQUEST['xhr_navlists'])) {
        $navs = explode(',', $_REQUEST['xhr_navlists']);
        $navlists = array();
        foreach ($navs as $nav) {
            $navlist = explode('-', $nav);
            if ($navlist[1] != 'func') {
                $navlists[$nav] = cs_templatefile($navlist);
            }
        }
        $json['navlists'] = $navlists;
    }
    if (!empty($cs_main['debug'])) {
        global $cs_logs;
        $cs_logs['php_errors'] = nl2br($cs_logs['php_errors']);
        $cs_logs['errors'] = nl2br($cs_logs['errors']);
        $data = array('data');
        $data['data']['log_sql'] = cs_log_format('sql');
        $data['data']['php_errors'] = $cs_logs['php_errors'];
        $data['data']['csp_errors'] = $cs_logs['errors'];
        $json['debug'] = cs_subtemplate(__FILE__, $data, 'clansphere', 'debug');
    }
    return json_encode($json);
}
예제 #2
0
function cs_tokenizer_parse($template)
{
    global $cs_main;
    $parts = count($template);
    for ($i = 1; $i < $parts; $i++) {
        if (is_array($template[$i])) {
            if (isset($template[$i]['noajax']) or empty($cs_main['ajax'])) {
                $template[$i] = cs_templatefile(array_flip($template[$i]));
            } else {
                $template[$i] = cs_wrap_templatefile(array_flip($template[$i]));
            }
        }
        $i++;
    }
    return $template;
}