dedecms图文列表列表页调用标签
时间 : 2024-01-20 22:15:02 声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

最佳答案

在DedeCMS中,调用图文列表列表页可以使用以下标签:

1. {dede:arclist}标签:该标签用于获取文章列表,并按照设定的条件进行排序和筛选。可以设置的属性有:

- typeid:指定分类id,可以使用id的形式,也可以使用栏目的目录名称。

- channelid:指定频道id,可以使用id的形式,也可以使用频道的拼音名称。

- keyword:指定关键词,用于检索包含指定关键词的文章。

- orderby:指定排序方式,可以设置为addtime(按发布时间排序)、click(按点击次数排序)等。

- row:指定返回的文章数量。

- page:指定当前页码。

- titlelen:指定文章标题的最大长度。

示例代码如下:

{dede:arclist typeid="1" orderby="click" row="10" page="$page" titlelen="50"}

<li><a href="[field:arcurl /]">[field:title /]</a></li>

{/dede:arclist}

2. {dede:channelartlist}标签:该标签用于获取指定频道下的文章列表。可以设置的属性有:

- channelid:指定频道id,可以使用id的形式,也可以使用频道的拼音名称。

- typeid:指定分类id,可以使用id的形式,也可以使用栏目的目录名称。

- orderby:指定排序方式,可以设置为id(按id排序)、click(按点击次数排序)等。

- row:指定返回的文章数量。

- titlelen:指定文章标题的最大长度。

示例代码如下:

{dede:channelartlist channelid="news" typeid="1" orderby="id" row="10" titlelen="50"}

<li><a href="[field:arcurl /]">[field:title /]</a></li>

{/dede:channelartlist}

3. {dede:flink}标签:该标签用于获取友情链接列表。可以设置的属性有:

- typeid:指定分类id,可以使用id的形式,也可以使用栏目的目录名称。

- orderby:指定排序方式,可以设置为orderid(按排序id排序)、addtime(按添加时间排序)等。

- row:指定返回的链接数量。

示例代码如下:

{dede:flink typeid="1" orderby="orderid" row="10"}

<li><a href="[field:linkurl /]">[field:webname /]</a></li>

{/dede:flink}

以上是在DedeCMS中调用图文列表列表页的几个常用标签。你可以根据自己的需求选择合适的标签,并根据需要设置相应的属性。

其他答案

在使用dedecms建设网站时,要实现图文列表页的调用,可以使用dedecms中的标签来实现。

首先在需要调用图文列表的地方,添加以下代码:

<?php

$typeid = isset($typeid) ? intval($typeid) : 0;

$pageno = isset($pageno) ? intval($pageno) : 1;

$pagesize = isset($pagesize) ? intval($pagesize) : 20;

$totalcount = 0;

$list = '';

$channelid = 1; // 根据实际情况替换为对应的栏目ID

// 获取总数量

$totalcount = GetList($channelid, $typeid, $pageno, $pagesize);

// 获取列表

$list = GetPageList($channelid, $typeid, $pageno, $pagesize);

?>

<!-- 在这里输出列表内容 -->

<?php echo $list; ?>

<!-- 添加翻页导航 -->

<?php

if ($totalcount > $pagesize) {

$param = array(

'channelid' => $channelid,

'typeid' => $typeid,

'pageno' => $pageno,

'pagesize' => $pagesize,

'totalcount' => $totalcount

);

echo GetPageHtml($param);

}

?>

然后需要在dedecms的系统后台中添加以下自定义函数:

/**

* 获取列表总数量

* @param int $channelid 栏目ID

* @param int $typeid 分类ID

* @param int $pageno 当前页码

* @param int $pagesize 每页显示数量

* @return int 列表总数量

*/

function GetList($channelid, $typeid, $pageno, $pagesize) {

$totalcount = 0;

$totalcount = $GLOBALS['dsql']->GetOne("SELECT COUNT(*) FROM `#@__archives` WHERE channel = $channelid AND typeid = $typeid AND arcrank >= 0");

return $totalcount['COUNT(*)'];

}

/**

* 获取列表内容

* @param int $channelid 栏目ID

* @param int $typeid 分类ID

* @param int $pageno 当前页码

* @param int $pagesize 每页显示数量

* @return string 列表内容HTML

*/

function GetPageList($channelid, $typeid, $pageno, $pagesize) {

$list = '';

$limitstart = ($pageno - 1) * $pagesize;

$limit = " LIMIT $limitstart, $pagesize";

$results = $GLOBALS['dsql']->GetOne("SELECT GROUP_CONCAT(a.id) AS ids FROM `#@__archives` a WHERE a.channel = $channelid AND a.typeid = $typeid ORDER BY a.id DESC $limit");

$ids = $results['ids'];

if (!empty($ids)) {

$query = "SELECT a.*, t.typename FROM `#@__archives` a LEFT JOIN `#@__arctype` t ON a.typeid = t.id WHERE a.id IN ($ids) ORDER BY a.id DESC";

$results = $GLOBALS['dsql']->GetQuery($query);

while ($row = $GLOBALS['dsql']->GetArray($results)) {

// 根据需要的字段输出列表内容

$list .= '<h3><a href="'.$row['arcurl'].'" target="_blank">'.$row['title'].'</a></h3>';

$list .= '<p>'.$row['litpic'].'

';

$list .= '<p>'.$row['pubdate'].'

';

$list .= '<p>'.$row['typename'].'

';

}

}

return $list;

}

/**

* 获取翻页导航HTML

* @param array $param 参数数组

* @return string 翻页导航HTML

*/

function GetPageHtml($param) {

$pageno = $param['pageno'];

$pagesize = $param['pagesize'];

$pagecount = ceil($param['totalcount'] / $pagesize);

$html = '';

if ($pageno > 1) {

$html .= '<a href="'.GetPageUrl($param, $pageno - 1).'">上一页</a>';

}

$start = $pageno - 3;

$end = $pageno + 3;

if ($start < 1) {

$start = 1;

$end = min($pagecount, $start + 6);

}

if ($end > $pagecount) {

$end = $pagecount;

$start = max(1, $end - 6);

}

for ($i = $start; $i <= $end; $i++) {

if ($i == $pageno) {

$html .= '<span>'.$i.'</span>';

} else {

$html .= '<a href="'.GetPageUrl($param, $i).'">'.$i.'</a>';

}

}

if ($pageno < $pagecount) {

$html .= '<a href="'.GetPageUrl($param, $pageno + 1).'">下一页</a>';

}

return $html;

}

/**

* 获取分页URL

* @param array $param 参数数组

* @param int $pageno 页码

* @return string 分页URL

*/

function GetPageUrl($param, $pageno) {

$url = '';

$typeid = $param['typeid'];

$pagesize = $param['pagesize'];

if ($pageno == 1) {

$url = '?typeid='.$typeid.'&pagesize='.$pagesize;

} else {

$url = '?typeid='.$typeid.'&pageno='.$pageno.'&pagesize='.$pagesize;

}

return $url;

}

在使用时,需要将代码中的$channelid替换为实际的栏目ID,可以在dedecms的系统后台中找到对应的栏目ID。

另外,需要根据实际需要修改GetPageList函数中的输出的字段,以及修改GetPageHtml函数来定制翻页导航的样式。

以上就是在dedecms中实现图文列表列表页调用的标签的方法,按照上面的方法进行操作,即可实现图文列表的调用。