节点表Node模型类的数据获取演示
信息表Info模型类的数据获取演示

列表页示例代码说明

下面的代码放在页面最顶部,用于页面的初始化
<?php
$pagesize = 36; //每页显示条数
$titlemaxlen = 30; //截取标题最大长度
$abstractmaxlen = 180; //摘要最大长度,摘要的文字即可来源于基本中的简介,也可以来自于详情
$orderfield = "sortnum"; //自定义排序字段,仅限sortnum,id,addtime,clickcount这四个字段
if(!isset($GLOBALS['DR'])){$GLOBALS['DR'] = str_replace("\\", "/", $_SERVER['DOCUMENT_ROOT']);}
if(!isset($GLOBALS['webroot'])){$GLOBALS['webroot'] = preg_replace("/(.*\/).*/", "$1", str_replace("\\", "/", __DIR__));}
require_once $GLOBALS['webroot'] . "/db.php";
require_once $GLOBALS['DR'] . "/base.php";
require $GLOBALS['DR'] . "/admin/require/html/nid.php";
require $GLOBALS['DR'] . "/admin/require/html/rid.php";
require $GLOBALS['DR'] . "/admin/require/html/list.php";
?>

<?php
//如果要随机显示图片,应该确保pagesize的值必须大于1
if ($pagesize <= 1) {
$pagesize = 2; //pagesize必须大于1,否则导致$randnumkeysarr[$key]结果为空
}
$maxrandnum = 10;//最大随机数,以下是注意事项
// 1:此值最好等于randimglist文件夹中的图片数量
// 2:此值必须大于等于pagesize,否则会导致程序错误
// 3:pagesize的值最好是小于randimglist文件夹中的图片数量,否则会导致有些图片无法显示
if ($maxrandnum <= $pagesize) {
$maxrandnum = $pagesize + 1;
}
$randnumarr = range(1, $maxrandnum);
shuffle($randnumarr);
$randnumkeysarr = array_rand($randnumarr, $pagesize);
?>

当前节点的根节点名称
<?=$rname;?>复制当前行

当前节点的父节点名称
<?=$pname;?>复制当前行

当前节点的名称
<?=$name;?>复制当前行

当前位置
<?=$navigationhtml;?>复制当前行

获取当前顶级节点下的二级或三级节点
<?php
if ($pid == 0) {
$sql = "select id,name,nodetype from `" . PREFIX . "node` where isshow = 1 and pid = " . $rid . " order by sortnum asc";
} else {
if ($idandchildidstrs == $nid) {
//没有了子节点
if ($rid == $pid) {
//二级节点
$sql = "select id,name,nodetype from `" . PREFIX . "node` where isshow = 1 and pid = " . $rid . " order by sortnum asc";
} else {
$sql = "select id,name,nodetype from `" . PREFIX . "node` where isshow = 1 and pid = " . $pid . " order by sortnum asc";
}
} else {
//有子节点
$sql = "select id,name,nodetype from `" . PREFIX . "node` where isshow = 1 and pid = " . $nid . " order by sortnum asc";
}
}
$nodetrs = DB::getTrs($sql);
?>
<?php foreach ($nodetrs as $key => $nodetr) {
?>
<?php if ($nid == $nodetr['id']) {echo '当前样式名';}?>复制当前行
<?=Node::getSiteUrl($nodetr['id']);?>复制当前行
<?=$nodetr['name'];?>复制当前行
不是最后一个特殊处理
<?php if ($key1 < (count($nodetrs) - 1)) {echo '特殊处理时的字符串';} ?>复制当前行
最后一个特殊处理
<?php if ($key1 == (count($nodetrs) - 1)) {echo '特殊处理时的字符串';} ?>复制当前行
<?php } ?>复制当前行

获取当前节点下的列表
<?php foreach ($infotrs as $key => $infotr) { ?>复制当前行
获取年-月-日
<?=date('Y-m-d', $infotr['addtime']);?>复制当前行
获取年-月-日 时:分:秒
<?=date('Y-m-d H:i:s', $infotr['addtime']);?>复制当前行
如果此id对应的信息详情为空,可以设置空链接
<?php if (Info::getBoolValue($infotr)) { ?><?=Info::getSiteUrl($infotr['id']); ?><?php } else { ?>javascript:void(0);<?php } ?>复制当前行
获取详情页的链接
<?=Info::getSiteUrl($infotr['id']);?>复制当前行
获取随机图片,前提是需要在前面定义 $maxrandnum = 最大随机数;,同时$pagesize的值必须大于1,同时在/_backup/_upload/目录下新建randimglist文件夹,里面存放图片的数量就是最大随机数,图片名称必须以1开始,然后依次递增
<?php
if ($infotr['picurl'] == '') {
$picurl = Web::getBackupRandImgListStr() . $randnumarr[$randnumkeysarr[$key % $pagesize]] . '.jpg';
} else {
$picurl = $infotr['picurl'];
}
?>
获取图片
<?=$infotr['picurl'];?>复制当前行
获取标题
<?=$infotr['title'];?>复制当前行
获取简介
<?=$infotr['digest'];?>复制当前行
获取标题并截取
<?=cutStr($infotr['title'], $titlemaxlen);?>复制当前行
获取简介并过滤及截取
<?=filterCutHtml($infotr['digest'], $abstractmaxlen);?>复制当前行
获取详情并过滤及截取
<?=filterCutHtml($infotr['content'], $abstractmaxlen);?>复制当前行
获取点击次数
<?=$infotr['clickcount'];?>复制当前行
如果该信息有视频,则在标题后面加上【视频】
<?php
$title = $infotr['title'];
$titledo = cutStr($infotr['title'], 截取长度);
if (isBh($infotr['link'], 'https://v.qq.com/x/page/')) {
$title = $infotr['title'] . "【视频】";
$titledo = cutStr($infotr['title'] . "【视频】", 截取长度);
}
?>
<?=$title;?>复制当前行
<?=$titledo;?>复制当前行
<?php } ?>复制当前行

如果实际条数大于$pagesize,那么<?=$pageer->pagestr;?>值不为空,所以能看到翻页,否则<?=$pageer->pagestr;?>值为空,看不到翻页
<?=$pageer->pagestr;?>复制当前行

通过ajax来获取下一页数据,在某种特殊情况下使用
<script type="text/javascript">复制当前行
var list = $('列表样式');
var page = 1; //这里是固定值1,不要修改
var aut = 50;//这里的值可以改动
$(window).scroll(function() {
if ($(window).scrollTop() + $(window).height() >= $(document).height() - aut) {
page++;
if(page <= <?=$pageer->pagecount;?>){
$.ajax({
url: "<?=Web::getAdminRequireHtHtmlStr();?>listajax.php",//ajax请求的脚本,注意请求里面
type: "POST",//ajax请求的脚本时传参方式
data : {'postdata' : <?=$postdata;?>, 'page' : page},
dataType: "JSON",//ajax只接受json格式的回传数据
success: function (result) {//如果请求URL成功
if (result.length == 0) {
//$("#seeMore").html('全部加载完了~~');
} else {
//$("#seeMore").html('正在加载中...');
var html = '';
for(var i in result){
var item = result[i];
//下面的html代码拼接需要根据实际情况修改
html += '<li>'+'\n';
html += '<span class="date">'+item.addtime+'\n';
html += '<div>'+'\n';
html += '<a href="'+item.href+'" title="'+item.title+'">'+item.title+'</a>'+item.content_cut+'\n';
html += '</div></li>'+'\n';
}
list.append(html);
//$("#seeMore").html('向下滑动加载更多');
}
},
error: function () {//实际上有时因为网络慢的或者服务器代码500错误也会执行到这里,所以为了避免错误,下面的代码最好注释掉
//alert("err");
}
});
}
}
})
</script>复制当前行

如果要隔行获取一个样式,比如奇数行获取class1这个样式,偶数行获取class2这个样式时,
class<?=($key % 2) + 1;?>

如果是类似这样的循环:class1,class2,class3,class1,......
class<?=($key % 3) + 1;?>

如果是类似这样的循环:class1,class2,class3,class4,class1,......
class<?=($key % 4) + 1;?>

如果是以0开始的,则不用加后面的1,但是%后面的数字,需要加1,比如类似这样的循环:class0,class1,class2,class3,class4,class0,......
class<?=$key % (4 + 1);?>

如果列表页有图片弹窗的JS代码
<link href="/_admin/swipebox/swipebox.css" rel="stylesheet" media="all" />复制当前行
<script src="/_admin/swipebox/jquery.swipebox.js"></script>复制当前行
<script type="text/javascript">复制当前行
jQuery(document).ready(function($) {
$(".swipebox").swipebox();
});
</script>复制当前行


其它特殊情况数据获取示例代码说明