首先要获取userid

{php $userid= param::get_cookie('_userid');}

然后再判断是否为空

{if $userid}
。。。这里写已经登录之后的代码。。。
{else}
。。。这里写已经登录之后的代码。。。
{/if}

搞定。
如果想要扩展更多的功能,比如内容增加  登录后查看联系方式  的功能,此时我们需要声明一个变量,用来控制登录后的返回页面。

$forward = trim($url);

未登录时的代码

<a href="{APP_PATH}index.php?m=member&c=index&a=login&forward={urlencode($url)}&siteid={$siteid}" >登录查看联系方式</a>

注意链接地址里面要有参数forward={urlencode($url)}   这样用户登录后才能成功返回到之前的内容页面。

完整的代码

{php $userid = param::get_cookie('_userid'); $forward = trim($url);}
{if $userid}
登录后的内容
 {else}
 <a href="{APP_PATH}index.php?m=member&c=index&a=login&forward={urlencode($url)}&siteid={$siteid}" target="_top">
登录查看联系方式
</a>
{/if}

但是如果我们想在首页想要实现的话用这样的方法就行不通了,因为首页为静态,我们可以通过写一个方法来实现。
打开/phpcms/modules/content/index.php  增加

//首页用户登录
public function member() {
$_username = param::get_cookie('_username');
$_userid = param::get_cookie('_userid');
$siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : '';
//定义站点id常量
if (!defined('SITEID')) {
  define('SITEID', $siteid);
}

$snda_enable = pc_base::load_config('system', 'snda_enable');
include template('member', 'afterlogin');
}

方法名可以自己根据实际情况来定义。然后在首页模板上需要显示的位置增加

<script type="text/javascript">document.write('<iframe src="{APP_PATH}index.php?m=content&c=index&a=member&forward='+encodeURIComponent(location.href)+'&siteid={get_siteid()}" allowTransparency="true"  width="125" height="98" frameborder="0" scrolling="no"></iframe>')</script>

此方法是借鉴了头部mini登录条登录的用法

已有 2 条评论
  1. 海歌
    海歌 :

    不知道对生成静态的页面是否有效

    1. 飘云
      飘云 : 回复 @海歌

      这个我到没有测试过呢。你可以测试看下。如果有效果了。记得一定要告诉我哦。