静态化缓存页面用户登录状态掉失,主题定制适配c_html_js_add.php动态调用登录状态页面处理

老阳 1257 0

因为当网站使用了静态化缓存页面,网站的所有页面就是静态文件页面,这样页面中就没有了用户登录状态信息,没有了登录状态就会有些不方便,可以使用以下代码适配主题,在静态页面中使用JS加载用户登录状态。

1、静态化缓存页面用户登录状态掉失,主题定制适配c_html_js_add.php动态调用登录状态页面处理 - 老阳插件

以下代码示例是本站主题的适配例子,大家参考示例按您的主题处理,不能直接复制使用。

Add_Filter_Plugin('Filter_Plugin_Html_Js_Add', 'xinZblog_Html_Js_Add');
function xinZblog_Html_Js_Add()
{
    global $zbp;
    $s = '';
    $zbp->Verify();
    $user = $zbp->user;
    //菜单栏登录状态处理
    if ($user->ID) {
        if ($zbp->CheckRights('MemberEdt')) {
            $s = '<a href="' . $zbp->host . 'zb_system/admin/" class="img"><img src="' . $user->Avatar . '" class="avatar" />' . $user->StaticName . '</a>';
        } else {
            $s = '<a class="img"><img src="' . $user->Avatar . '" class="avatar" />' . $user->StaticName . '</a>';
        }
    }
    //评论框登录状态处理
    $c = '<p class="posttop"><a name="comment" class="msgname">';
    if ($user->ID) {
        $c .= '<input type="hidden" name="inpName" id="inpName" value="' . $user->Name . '" />';
        $c .= '<img class="avatar" src="' . $user->Avatar . '" width="32" />' . $user->StaticName;
    }
    $c .= '发表评论:</a><a rel="nofollow" id="cancel-reply" href="#divCommentPost" style="display:none;"><small>取消回复</small></a></p>';
    if ($user->ID == 0) {
        $c .= '<p style="margin-top:10px"><input type="text" name="inpName" id="inpName" class="text" value="小游客" size="28" tabindex="1" /> </p>';
        $c .= '<p style="margin-top:10px"><input type="text" name="inpEmail" id="inpEmail" class="text" placeholder="Mail" size="28" tabindex="2" /> </p>';
        $c .= '<p style="margin:10px 0px"><input type="text" name="inpHomePage" id="inpHomePage" class="text" placeholder="URL" value="" size="28" tabindex="3" /> </p>';
        if ($zbp->option['ZC_COMMENT_VERIFY_ENABLE']) {
            $c .= '<p class="inpVerify">' . $zbp->lang['msg']['validcode'] . ':<input type="text" name="inpVerify" id="inpVerify" class="text" value="" size="28" tabindex="4" />';
            $c .= '<img style="cursor:pointer;" src="' . $zbp->host . 'zb_system/script/c_validcode.php?id=cmt" onclick="javascript:this.src=\\\'' . $zbp->host . 'zb_system/script/c_validcode.php?id=cmt&amp;tm=\\\'+Math.random();" />';
            $c .= '</p>';
        }
    }
    echo '$(function() {';
    if ($s) {
        echo 'if($(\'.inlogin\').length>0){$(\'.inlogin\').html(\'' . $s . '\');}';
    }
    echo 'if($(\'#divCommentPost form\').length>0){$(\'#divCommentPost form\').prepend(\'' . $c . '\');}';
    echo '});';
}


主题模板评论框commentpost.php修改示例:

{* Template Name:评论发布框 *}
<div class="post" id="divCommentPost">
    <form id="frmSumbit" target="_self" method="post" action="{$article.CommentPostUrl}">
        <input type="hidden" name="inpId" id="inpId" value="{$article.ID}" />
        <input type="hidden" name="inpRevID" id="inpRevID" value="0" />
        <p style="display:none;"><label for="txaArticle">{$lang['msg']['content']}(*)</label></p>
        <p><textarea name="txaArticle" id="txaArticle" class="text" cols="50" rows="4" tabindex="5"></textarea></p>
        <p><input name="sumbit" type="submit" tabindex="6" value="提交" onclick="return zbp.comment.post()" class="button" /></p>
    </form>
</div>


《静态化缓存页面用户登录状态掉失,主题定制适配c_html_js_add.php动态调用登录状态页面处理》.doc
将本文下载保存,方便收藏和打印
导出文档