K9 通用版 博客版 主题版 地方门户版 企业版 |   企业(ASP) 分类 使用 分享 疑问 模板 建议 帮助 错误 其他
+新建主题 [Ajax]
填写帐号密码即可完成注册
+新建话题 最新回复排序 最新主题排序 精华帖子

在父栏目的页面中调用子栏目的的文章

12Next >

pktsandy 发表于:11-10-10 11:56 编辑于:10-10 11:58 [添加收藏] 楼主 [回复] #Top#
pktsandy 人气:1181 积分:3438 金币:29313
VIP 管理团队 EST团队 技术精英 灌水狂人
这几天在作SP2的示例模板,发现有一种情况不太确定,场景如下:
父栏目:核心业务(下面没有任何文章)
子栏目:A业务(全是文章)
             B...       ...
             C..        ...
             ...            ....
需求:我要在核心业务页面打开后看到所有子栏目下的文章,并可以分页.

用嵌套标签可以显示!但分不了页,我昨天想加一个实现这个功能的标签发现它太不确定了!而且也不是所有人都需要!再者万一父栏目下有文章怎么办?所以只能暂罢!下面是用PHP代码加dbquery的解决方案:


A显示内容.
    {king:dbquery.select table="%s__article" where="listid in(select listid from king_list where listid1=12)" orderby="kid desc" dynamic="skip"}
                 <li><span>{king:ndate formatdate="m.d"/}</span>{king:kid/}<a href="{king:kpath/}">{king:ktitle/}</a><p>{king:kdescription/}</p></li>
                {/king:dbquery.select}

附说明:
listid1=12为父栏目的ID,如果标签没有属性dynamic的话!无论翻到多少页总是显示第一页的内容.因为kc的标签解析发生在PHP代码的前面.加上dynamic告诉dbquery.select,该属性的值动态获取.
打开/dbquery/core.class.php找到函数tag_select,我们改变变量$skip的取值范围.

$skip=isset($attrib['skip']) ? $attrib['skip'] : ($attrib['dynamic']=='skip')?($pid==1) ? 0 : ($pid-1)*$number:0;//一个嵌套的三元表达式

$pid是当前的页码值

B分页.

   <?php
            $pid=isset($_GET['pid']) ? kc_get('pid',2,1) :1;
            $number=isset($_GET['rn']) ? kc_get('rn',2,1) :10;

   $id="{king:listid/}";
   $url="/index.php/list-12-1.html?pid=PID&rn=RN";
   
   $count="{king:dbquery.count table='%s__article' where='listid in(select listid from king_list where listid1=12)' /}";
   echo kc_pagelist($url,$count,$pid,$number,null);
   ?>



此PHP代码相当于king:pagelist的标签解析.注意由于函数kc_pagelist的最后一个参数是null:表示king:pagelist没有子标签.所以下面这种写法没有效果

         {king:pagelist}
           {king:Previous replace='Previous|上一页'/}
           {king:standard/}
           {king:Next replace='Next|下一页'/}
           {king:jump/}
         {/king:pagelist}

该示例模板会在SP2的发行示例模板中找到(我们会在SP2发布同时发布一个全功能的示例网站模板)
fenlgy 发表于:11-10-15 02:08 板凳 [回复] #Top#
fenlgy 人气:41 积分:523 金币:2302
终于有这个问题的解决方案了。。。太好了
pktsandy 发表于:11-10-15 11:36 4楼 [回复] #Top#
pktsandy 人气:1181 积分:3438 金币:29313
VIP 管理团队 EST团队 技术精英 灌水狂人
Reply: 板凳
这个在SP2中的模板示例包中有解决方案
紫花地丁 发表于:11-10-15 15:23 5楼 [回复] #Top#
紫花地丁 人气:249 积分:1955 金币:14564
KC元老
鄙视发蛋图的
jungold 发表于:11-11-30 18:25 6楼 [回复] #Top#
jungold 人气:61 积分:186 金币:1757
VIP
这个方法中,如何确定每页的列表的数目的?
muxin 发表于:11-12-09 09:50 7楼 [回复] #Top#
muxin 人气:7 积分:297 金币:909
用SQLITE数据库的好像调用不了类?
fenlgy 发表于:11-12-18 16:11 编辑于:12-18 16:13 8楼 [回复] #Top#
fenlgy 人气:41 积分:523 金币:2302
如何改变分页的个数,比方20个产品一个页面
fenlgy 发表于:11-12-18 16:20 9楼 [回复] #Top#
fenlgy 人气:41 积分:523 金币:2302
原来是修改 /dbquery/core.class.php

$number=isset($attrib['number']) ? $attrib['number'] :12;
if(!kc_validate($number,2)) $number=12;

这里的number
fenlgy 发表于:11-12-18 16:21 10楼 [回复] #Top#
fenlgy 人气:41 积分:523 金币:2302
要是能自定义分页的需显示的内容效果就更佳了,就像标签一样
caiyangjun 发表于:11-12-18 20:19 11楼 [回复] #Top#
caiyangjun 人气:0 积分:111 金币:80
高手呀,教教我撒~

12Next >

发表回复

帐号 匿名发布 审核后可见 [加载完整在线编辑器]
内容
验证码
KingCMS 内容管理系统

关于我们 联系我们 广告报价 付款方式 站点导航

Copyright © 2004-2015 Focuznet All rights reserved.

广州唯众网络科技有限公司 粤ICP备08008106号