静态化缓存页面用户登录状态掉失,主题定制适配c_html_js_add.php动态调用登录状态页面处理
因为当网站使用了静态化缓存页面,网站的所有页面就是静态文件页面,这样页面中就没有了用户登录状态信息,没有了登录状态就会有些不方便,可以使用以下代码适配主题,在静态页面中使用JS加载用户登录状态。
以下代码示例是本站主题的适配例子,大家参考示例按您的主题处理,不能直接复制使用。
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&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
将本文下载保存,方便收藏和打印
导出文档