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

搜索页面示例代码说明

下面的代码放在页面最顶部,用于页面的初始化,搜索页面不用生成缓存
<?php
$pagesize = 36;
$titlemaxlen = 30; //截取标题最大长度
$abstractmaxlen = 180; //摘要最大长度,摘要的文字即可来源于基本中的简介,也可以来自于详情
$rname = $name = '站内搜索';
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_once $GLOBALS['DR'] . "/admin/require/html/search.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);
?>

<?php $pageer->pagesize = $pagesize;?>复制当前行
<?php
$pageer->trscount = count($searchinfotrs);
$pageer->pagecount = ceil($pageer->trscount / $pageer->pagesize);
$pageer->page = getPage($pageer->pagecount);
$start = ($pageer->page - 1) * $pageer->pagesize;
$curpagesearchinfotrs = array_slice($searchinfotrs, $start, $pageer->pagesize);
?>

<title><?=$keyword . '-' . WEBCONFIG_NAME;?></title>复制当前行

<a href="<?=Node::getSiteUrl(1);?>">首页</a>复制当前行

<font color=red><?=$keyword;?></font>的搜索结果

<?php foreach ($curpagesearchinfotrs as $key=>$curpagesearchinfotr) {?>复制当前行
<?php if($curpagesearchinfotr['picurl']=='') $picurl = '/_backup/randimglist/'.$randnumarr[$randnumkeysarr[$key%$pagesize]].'.jpg'; else $picurl = $curpagesearchinfotr['picurl'];?>复制当前行
<?=$picurl;?>复制当前行
<?=$curpagesearchinfotr['nodesiteurl'];?>复制当前行
<?=$curpagesearchinfotr['name'];?>复制当前行
<?=$curpagesearchinfotr['infositeurl'];?>复制当前行
<?=$curpagesearchinfotr['title'];?>复制当前行
<?=$curpagesearchinfotr['titledo'];?>复制当前行
<?=$curpagesearchinfotr['digestdo'];?>复制当前行
<?=date('Y-m-d', $curpagesearchinfotr['addtime']);?>复制当前行
<?php }?>复制当前行

<?php if ($pageer->pagecount > 1) {?>复制当前行
<?php $minpagesize = 5;?>复制当前行
<?php $baseurl = Node::getSearchUrl() . '?keyword=' . $keyword?>复制当前行
<?php $indexurl = $baseurl . '&page=' . $pageer->page?>复制当前行
<table><tr><td class="lefttd">共<?=$pageer->trscount;?>条 每页<?=$pageer->pagesize;?>条 页次<?=$pageer->page;?>/<?=$pageer->pagecount;?></td>复制当前行
<td class="righttd">复制当前行
<?php if ($pageer->pagecount > $minpagesize) {?>复制当前行
<?php echo "<select name='pages' onchange='window.location=this.value;'>"; ?>复制当前行
<?php echo "<option value='" . $baseurl . "' selected>第1页</option>"; ?>复制当前行
<?php for ($i = 2; $i < $pageer->pagecount + 1; $i++) {?>复制当前行
<?php $url = preg_replace('/page=\d{1,}/i', 'page=' . $i, $indexurl);?>复制当前行
<?php if ($i == $pageer->page) {?>复制当前行
<?php echo "<option value='" . $url . "' selected>第" . $i . "页</option>"; ?>复制当前行
<?php } else {?>复制当前行
<?php echo "<option value='" . $url . "'>第" . $i . "页</option>"; ?>复制当前行
<?php }?>复制当前行
<?php }?>复制当前行
<?php echo "</select>"; ?>复制当前行
<?php } else {?>复制当前行
<?php echo "<a href='" . $baseurl . "'>[&nbsp;1&nbsp;]</a>"; ?>复制当前行
<?php for ($i = 2; $i < $pageer->pagecount + 1; $i++) {?>复制当前行
<?php $url = preg_replace('/page=\d{1,}/i', 'page=' . $i, $indexurl);?>复制当前行
<?php if ($i == $pageer->page) {?>复制当前行
<?php echo "<a href='" . $url . "' id='curpage'>[&nbsp;{$i}&nbsp;]</a>"; ?>复制当前行
<?php } else {?>复制当前行
<?php echo "<a href='" . $url . "'>[&nbsp;{$i}&nbsp;]</a>"; ?>复制当前行
<?php }?>复制当前行
<?php }?>复制当前行
<?php }?>复制当前行
</td></tr></table>复制当前行
<?php }?>复制当前行

<form method="get" action="<?=Node::getSearchUrl();?>" name="searchform" id="searchform">复制当前行
<input type="hidden" name="rid" value="可以指定一个顶级id">复制当前行
<input name="keyword" value="<?=$keyword;?>" type="text" placeholder="请输入关键词" />复制当前行
<input type="submit" value="搜索" />复制当前行
</form>复制当前行

如果搜索代码要被放到公共的bodytop.php或bodyfoot.php中,还需要在搜索代码的上面加上下面的一行代码
<?php if (!isset($keyword)) {$keyword = '';} else { $title = $keyword . '-' . WEBCONFIG_NAME;}?>复制当前行

JS过滤非法字符防止跨站脚本攻击
<script type="text/javascript">复制当前行
function validateForm(){
var textbox=document.forms["searchform"]["keyword"].value;
var ze = /[^0-9a-zA-Z]+/;
if (ze.test(textbox)) {
alert("数据不合法!,只允许输入数字及26个英文字母");
return false;
}
}
</script>复制当前行


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