示例#1
0
function action_url($action, $type, $params)
{
    global $_ACTION_VIEW, $_ACTION_REVERSE;
    if (isset($_ACTION_REVERSE[$action])) {
        if ($type == 'get') {
            needed_params(array('values'), $params);
            list($base, $params_) = view($_ACTION_VIEW[$_ACTION_REVERSE[$action]], $params, true);
            if (REWRITE_URL) {
                if (count($params['values']) > 1) {
                    die('Only support one value as action parameter');
                }
                return build_url($base . ($base != '' && $base[strlen($base) - 1] != '/' ? '/' : '') . 'action/' . $action . '/' . encode_url($params['values'][0]), $params_);
            } else {
                return build_url($base, array_replace($params_, array('action' => $action, 'values' => $params['values'])));
            }
        } elseif ($type == 'post') {
            return view($_ACTION_VIEW[$action], $params);
        } else {
            die('action type sould be "get" or "post", not ' . $type);
        }
    } else {
        print_r($_ACTION_REVERSE);
        die('Unknow action ' . $action);
    }
}
示例#2
0
function view($page, $params = array(), $raw = false)
{
    global $_VIEW;
    if (isset($_VIEW[$page])) {
        needed_params($_VIEW[$page]['params'], $params);
        if (REWRITE_URL && isset($_VIEW[$page]['url_rewrite'])) {
            $base = call_user_func_array($_VIEW[$page]['url_rewrite'], sub_array($_VIEW[$page]['params'], $params));
            $params = array();
        } else {
            $base = $_VIEW[$page]['php_file'];
            $params = sub_array($_VIEW[$page]['params'], $params);
        }
        if ($raw) {
            return array($base, $params);
        } else {
            return build_url($base, $params);
        }
    }
}