设为首页 - 加入收藏 - 网站地图 - RSS订阅 村姑网-www.cunguer.com
当前位置:首页 > CMS教程 > dedecms > 正文

dedecms留言本标题、内容、用户名、IP等信息调用到首页的4种方法

时间:2015-12-06 16:32:25 来源:村姑网 作者:喜欢安静 阅读:185
导读:dedecms拥有一个功能强大的留言本模块,可以轻松实现用户留言,对企业站来说留言本功能是非常实用的。然而,默认情况下,dedecms留言本是在栏目导航的位置,要查看其他用户的留言也必须进入留言本页面才能看到,很多朋友想在首页直接调用留言标题、留言内容...

        dedecms拥有一个功能强大的留言本模块,可以轻松实现用户留言,对企业站来说留言本功能是非常实用的。然而,默认情况下,dedecms留言本是在栏目导航的位置,要查看其他用户的留言也必须进入留言本页面才能看到,很多朋友想在首页直接调用留言标题、留言内容、留言用户名、留言用户头像、留言用户ip等信息,因此就有了本文,本文主要介绍使用js、feedback标签、SQL标签、loop标签4种方法来实现dede首页调用留言本的功能。

第一种方法:使用js调用dedecms留言本标题。


由于dedecms的留言本在数据库中没有标题字段,所以使用这种方法调用留言本标题前,我们要先在数据库中添加留言本标题字段。
步骤:

1、首先需要在phpmyadmin中找到DEDE数据库中的"guestbook"表(这个是留言本的数据表),增加一个"guesttitle"字段(标题),设为"varchar"类型(字段类型),字段大小自定。

2、(实时更新留言本内容时需要此步)在/plus/guestbook/下新建一个js.php文件,js.php内容如下:

<?php
require_once(dirname(__FILE__)."/config.php");
require_once(dirname(__FILE__)."/../../include/pub_datalist_dm.php");
setcookie("GUEST_BOOK_MOVE",GetCurUrl(),time()+3600,"/");

function GetIsCheck($ischeck,$id)
{
  if($ischeck==0) return "<br><a href='edit.php?job=check&ID=$id' style='color:red'>[审核]</a>";
  else return "";
}

if($userrank>0) $sql = "select * from dede_guestbook order by ID desc";
else $sql = "select * from dede_guestbook where ischeck=1 order by ID desc";

$dlist = new DataList();
$dlist->Init();
$dlist->pageSize =10;
$dlist->SetParameter("gotopagerank",$gotopagerank);
$dlist->SetSource($sql);

$mylist = $dlist->GetDataList();
while($row = $mylist->GetArray('dm'))
{
  $xingming=$row['uname'];
  $neirong=strip_tags($row['guesttitle']);
  $neirong=str_replace(" ","",$neirong);
  $neirong=cn_substr($neirong,25);
  $neirong=str_replace("
","",$neirong);
  $neirong=rawurldecode($neirong);
  $link=$row['ID'];
  echo "document.write("- <a href='./plus/guestbook/index.php#$link' target='_blank'>$neirong</A><br>");";
}
$dlist->Close();
?>

3、在templetsplusguestbook.htm文件中加上命名锚记
找到

<?php
$mylist = $dlist->GetDataList();
while($row = $mylist->GetArray('dm'))
{
?>

在后边加入

CODE:
<a name="<?echo $row['ID']?>"></a>

4、在/templets/plus/guestbook.htm中加入读取留言本标题的代码"<?php echo $row['guesttitle']?>"到您想要的位置。


5、将savepost.php中的:
$dsql = new DedeSql(false);
$ip = GetIP();
$dtime = strftime("%Y-%m-%d %H:%M:%S",mytime());
$uname = trimMsg($uname);
$email = trimMsg($email);
$homepage = trimMsg($homepage);
$homepage = eregi_replace("http://","",$homepage);
$qq = trimMsg($qq);
$msg = trimMsg($msg,1);
$msg = cn_substr($msg,2000);

if($msg==""||$uname==""){
    showMsg("你的姓名和留言内容不能为空!",-1);
    exit();
}

$query = "INSERT INTO
dede_guestbook(uname,email,homepage,qq,face,msg,ip,dtime,ischeck)
VALUES ('$uname','$email','$homepage','$qq','$img','$msg','$ip','$dtime','$needCheck')";
$dsql->SetQuery($query);
$dsql->ExecuteNoneQuery();
$dsql->Close();

替换为(意在读取标题到数据库):
$dsql = new DedeSql(false);
$ip = GetIP();
$dtime = strftime("%Y-%m-%d %H:%M:%S",mytime());
$uname = trimMsg($uname);
$email = trimMsg($email);
$homepage = trimMsg($homepage);
$homepage = eregi_replace("http://","",$homepage);
$qq = trimMsg($qq);
$guesttitle = trimMsg($guesttitle);
$msg = trimMsg($msg,1);
$msg = cn_substr($msg,2000);

if($msg==""||$uname==""){
    showMsg("你的姓名和留言内容不能为空!",-1);
    exit();
}

$query = "INSERT INTO
dede_guestbook(uname,email,homepage,qq,face,guesttitle,msg,ip,dtime,ischeck)
VALUES ('$uname','$email','$homepage','$qq','$img','$guesttitle','$msg','$ip','$dtime','$needCheck')";
$dsql->SetQuery($query);
$dsql->ExecuteNoneQuery();
$dsql->Close();

6、(实时更新留言本内容时需要此步)在首页需要调用留言本内容的地方加入

CODE:
<script language="javascript" src="./plus/guestbook/js.php" ></script>

如果不需要js实时更新留言本内容的话,最后一步是在需要调用留言本的位置添加以下代码:
{dede:loop table='dede_guestbook' sort='dtime' row='10' if='ischeck=1'}
<a href="[field:phpurl/]/guestbook/index.php" >[field:guesttitle function="cn_substr('@me',30)"/]</a><br>
{/dede:loop}


《dedecms留言本标题、内容、用户名、IP等信息调用到首页的4种方法》地址:http://www.cunguer.com/article/274.html,本文来自村姑网,您身边的IT专家 www.cunguer.com,转载请注明出处,您的支持是我们创作的源泉~!