帝国cms结合控制变量实现结合项筛选功能带首字母筛选的方法推荐
说到结合项筛选,官方已有提供一种方法,但是的话就是比较繁琐,下面介绍用控制变量来实现这个功能,这个带首字母筛选的。
重点修改前;先备份,先备份,先备份。
内容有的多,优点是配置好后,后面添加修改比较方便。
1:在系统变量里面,添加一个变量-变量的值-多个用逗号隔开;(这里的值就是后面要筛选的筛选名称)如图:
2:在数据表推荐两个要适用到的字段,分别是选项字段和控制变量里面的变量名一致;字母筛选的话随便都可以:(在添加字段要修改 输入表单替换html代码,必须先默认提交在回来来修改,才会生效)如图:
首字母的话 直接添加默认即可。
下面部分是输入表单显示元素,复选框,单选框和下拉的表单替换html代码。
复选框代码
<?
$p_screen=explode(",",$public_r['add_screen']);
for($i=0;$i<count($p_screen);$i++)
{
$j=$i+1;
?>
<input name="screen[]" type="checkbox" value="<?=$j?>"<?=strstr($r[screen],"|".$j."|")?' checked':''?>><?=$p_screen[$i]?>
<?
}
?>
单选框的写法
<?
$p_screen=explode(",", $public_r['add_screen']);
for($i=0; $i<count($p_screen); $i++) {
$j = $i+1;
?>
<input name="screen" type="radio" value="<?=$j?>"<?= $r['screen'] == (string)$j ? ' checked' : ''?>><?=$p_screen[$i]?>
<? } ?>
下拉选择
<?
$j=0;
$p_diqu=explode(",",$public_r['add_xiala']);
for($i=0;$i<count($p_diqu);$i++)
{
$j=$i+1;
$diqu_selected='';
if ($r[diqu]==$j){
$diqu_selected=' selected';
}
$diqu.='<option value="'.$j.'"'.$diqu_selected.'>'.$p_diqu[$i].'</option>';
}
?>
<select name="xiala" id="xiala"><?=$diqu?></select>
2-1:添加好字段后要在-系统模型-修改里面,把字段项选择上,尤其筛选项必须选择-然后点录入表单模板
( 自动生成表单模板) 提交;
3:在eclassuserfun.php搭建下面的代码:字段和变量名填写自己开始写哪个。
function user_screen($id){
global $public_r;
$pd_record=explode(",",$public_r['add_screen']);
return $pd_record[$id-1];
}
4:在模板里面调用
4-1:首页和内容或其他栏目可以这样写:
<?
$p_ticai=explode(",",$public_r['add_screen']);
for($i=0;$i<count($p_ticai);$i++)
{
$j=$i+1;
?>
<li><a href="/list-1-<?=$j?>-0-0-0.html"><?=$p_screen[$i]?></a></li>
<?
}
?>
4-2:在列表里面这样写,首页为了方便修改可以单独建一个列表模板:
列表模板的最开始这样写:
<?
$classid=(int)$GLOBALS[navclassid];
$screen=(int)$_GET['screen'];
$zm=$_GET['zm']?$_GET['zm']:'0';
$orderby=(int)$_GET['orderby'];
$ticaitile=user_screen($screen);
?>
然后需要显示的地方:
<dt>筛选:</dt>
<li><a<?if (!$screen){?> class="active"<?}?> href="/list-<?=$classid?>-0-<?=$zm?>-<?=$orderby?>-0.html">全部</a></li>
<?
$p_screen=explode(",",$public_r['add_screen']);
for($i=0;$i<count($p_screen);$i++)
{
$j=$i+1;
?>
<li><a<?if ($screen==$j){?> class="active"<?}?> href="/list-<?=$classid?>-<?=$j?>-<?=$zm?>-<?=$orderby?>-0.html"><?=$p_screen[$i]?></a></li>
<?
}
?>
字母筛选代码:
<dt>字 母:</dt>
<li><a<?if (!$zm){?> class="active"<?}?> href="/list-<?=$classid?>-<?=$screen?>-0-<?=$orderby?>-0.html" >全部</a></li>
<?
$p_zm=explode(",","A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z");
for($i=0;$i<count($p_zm);$i++)
{
?>
<li><a<?if ($zm==$p_zm[$i]){?> class="active"<?}?> href="/list-<?=$classid?>-<?=$screen?>-<?=$p_zm[$i]?>-<?=$orderby?>-0.html"><?=$p_zm[$i]?></a></li>
<?
}
?>
这个包括了选择后的高亮状态 active元素 这个样式自行写即可。
5:标题的调用和优化;可以按照这样来写:
<title><?=$ticaitile?>-[!--list.pageno--]<?=$public_r['add_name']?></title>
6:分页的样式和修改:eclassconnect.php搜索 //前台分页 注释或删除,然后换成下面的样式按照原模板来改即可;
//前台分页(列表结合项分页样式)
function page1($num,$line,$page_line,$start,$page,$search){
global $fun_r;
$num=(int)$num;
$line=(int)$line;
$page_line=(int)$page_line;
$start=(int)$start;
$page=(int)$page;
$classid=(int)$GLOBALS[navclassid];
$screen=(int)$_GET['screen'];
$infozm=$_GET['zm']?$_GET['zm']:'0';
$orderby=(int)$_GET['orderby'];
if($num<=$line)
{
return '';
}
$search='.html';
$url='/list-'.$classid.'-'.$screen.'-'.$zm.'-'.$orderby;
$snum=2;//最小页数
$totalpage=ceil($num/$line);//取得总页数
//$firststr='<a title="'.$fun_r['trecord'].'"> <b>'.$num.'</b> </a>';
//上一页
if($page<>0)
{
$toppage='<li><a href="'.$url.'-0'.$search.'"><<</a></li>';
$pagepr=$page-1;
$prepage='<li><a href="'.$url.'-'.$pagepr.$search.'"><</a></li>';
}
//下一页
if($page!=$totalpage-1)
{
$pagenex=$page+1;
$nextpage='<li><a href="'.$url.'-'.$pagenex.$search.'">></a></li>';
$lastpage='<li><a href="'.$url.'-'.($totalpage-1).$search.'">>></a></li>';
}
$starti=$page-$snum<0?0:$page-$snum;
$no=0;
for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
{
$no++;
if($page==$i)
{
$is_1='<a href="'.$url.'-'.$i.$search.'" class="active">';
$is_2="</a>";
}
else
{
$is_1='<li><a href="'.$url.'-'.$i.$search.'">';
$is_2="</a></li>";
}
$pagenum=$i+1;
$returnstr.=$is_1.$pagenum.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
return $returnstr;
}
最后一步就是伪静态的配置:这里解释一下:List.php文件放到根目录下/e/action/ 不会冲突直接复制即可(已打包自行下载)
相关推荐
-
帝国cms筛选结合项标题seo优化方法
首页要其他自己的结合项字段,上面的php修改为自己的后放到,单独建立的结合筛选的最前面。
-
帝国CMS list.pageno列表动态,筛选结合项和tag标签的页分页号seo优化
列表页动态伪静态筛选时候的一个显示当前分页号的功能。变量所在的文件:/e/action/ListInfo.php,用于显示第多少页有利于优化。
-
帝国CMS结合项技巧实现列表多样化操作步骤
mid代表栏目的id,tempid代表你数据表的id,orderby是按照什么顺序显示,一般为时间,点赞,点击等等。2.伪静态链接实现(稍复杂),需要配合伪静态规则
-
解决官方结合项字定义字段值不支持0
解决官方结合项字定义字段值不支持0
-
如何利用Layui实现可折叠的商品分类筛选功能
如何利用Lyui实现可折叠的商品分类筛选功能,需要具体代码示例随着电商行业的不断发展,商品分类筛选功能成为了一个网站的重要组成部分。而Lyui是一款非常流行的前端框架,它提供了丰富的组件和简洁的