function smarty_function_oauth_yixin($params, $template)
{
    $label = lang('Yixin');
    $check = check_need_to_show('Yixin');
    switch ($check) {
        case 0:
            return '';
            break;
        case 2:
            $label = lang('Let Me Online');
            break;
    }
    $type = 'yixin';
    $CI =& get_instance();
    $CI->load->model(array('login_model', 'user_social_app_model'));
    $args = $CI->login_model->getLoginArgs();
    if (isset($args->appid)) {
        $oauth_info = $CI->user_social_app_model->getSocialAppByType($args->appid, $type);
        if (isset($oauth_info->appid) && $oauth_info->appid) {
            unset($params['uri']);
            return anchor(site_url('oauth/session/' . $type . '/' . $args->appid), $label, $params);
        }
    }
    return '';
}
function smarty_function_oauth_wechat($params, $template)
{
    $label = lang('Wechat');
    $check = check_need_to_show('MicroMessenger');
    switch ($check) {
        case 0:
            return '';
            break;
        case 2:
            $label = lang('Let Me Online');
            break;
    }
    $type = 'wechat';
    $CI =& get_instance();
    $CI->load->model(array('login_model', 'user_social_app_model'));
    $args = $CI->login_model->getLoginArgs();
    if (isset($args->appid)) {
        $oauth_info = $CI->user_social_app_model->getSocialAppByType($args->appid, $type);
        if (isset($oauth_info->appid) && $oauth_info->appid) {
            unset($params['uri']);
            if ($check == 1 && isset($args->serial) && isset($args->gateway_ip) && isset($args->gateway_port) && isset($args->ip) && isset($args->mac)) {
                $CI->load->library('encryptor');
                $now = new DateTime();
                $expire = new DateTime();
                $expire->add(DateInterval::createFromDateString('5 minute'));
                $token = $CI->encryptor->encrypt(json_encode(array('uid' => 'activate', 'createDate' => $now->getTimestamp(), 'expireDate' => $expire->getTimestamp())));
                return anchor('http://' . $args->gateway_ip . ':' . $args->gateway_port . '/pinet/auth?token=' . urlencode($token) . '&url=' . urlencode('http://www.pinet.co/auth/tip'), $label, $params);
            }
            return anchor(site_url('oauth/session/' . $type . '/' . $args->appid), $label, $params);
        }
    }
    return '';
}
function smarty_function_oauth_qq($params, $template)
{
    if (!check_need_to_show()) {
        return '';
    }
    $type = 'qq';
    $CI =& get_instance();
    $CI->load->model(array('login_model', 'user_social_app_model'));
    $args = $CI->login_model->getLoginArgs();
    if (isset($args->appid)) {
        $oauth_info = $CI->user_social_app_model->getSocialAppByType($args->appid, $type);
        if (isset($oauth_info->appid) && $oauth_info->appid) {
            unset($params['uri']);
            return anchor(site_url('oauth/session/' . $type . '/' . $args->appid), lang('QQ'), $params);
        }
    }
    return '';
}
function smarty_function_login_form($params, $template)
{
    if (!check_need_to_show()) {
        return '';
    }
    $text = <<<TEXT
\t{form action="{uri}/api/login{/uri}"}
\t\t<input type="hidden" name="callback" value="{uri}/api/login_success{/uri}">
\t\t<input type="hidden" name="appid" value="-1">
\t\t{field_group field="username"}
\t\t{/field_group}
\t\t{field_group field="password"}
\t\t\t{password}
\t\t{/field_group}
\t\t<div class="action">
\t\t\t{button type="submit" show="primary"}{lang}Submit{/lang}{/button}
\t\t\t{button type="reset"}{lang}Cancel{/lang}{/button}
\t\t</div>
\t{/form}
TEXT;
    return $template->fetch('string:' . $text);
}