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

对KINGCMS ,忍无可忍了

12Next >

webgm 发表于:11-07-07 18:36 编辑于:07-07 23:12 [添加收藏] 楼主 [回复] #Top#
webgm 人气:40 积分:18 金币:385
在写这个文章之前,已经关注KINGCMS超过2年了。

很早很早就开始自己测试KINGCMS了。

现在手上一个站点准备用KINGCMS来制作。

现在站点基本OK了。就是一个问题解决不了。

我已经GOOGLE 、论坛翻阅资料等等查了一个星期啊!!!!


我只想实现一个简单的判断啊!!!!!!

模板里用PHP代码不行,

我以前发的帖子:http://www.kingcms.com/forums/u12458/

各种难题。。。。。。。。。。。。。。

最后只要自己修改核心代码。

临时测试的代码完全通过


<?php
$abc=" and kkk=123";
$xl_a="a=22";
$xl_b=explode('=',$xl_a);
if (!empty($xl_b[1])){
    $abc.=" and ".$xl_a;
}
echo $abc;
?>


$xl_a="a=" 这个值没有的话,         输出  and kkk=123
                        这个值如果有的话         输出  and kkk=123 and a=22



但是放到核心代码里!!!

    //SQL扩展属性where,这个功能是标签解析不稳定的隐患功能。
    if(isset($attrib['where'])){
        $where.=" and ".$attrib['where'];
    }

    
//为了尽量不修改系统代码,不修改上面的代码了
//添加修改:将where="a=条件1 and b=条件2",修改成 where="a=条件1" where1="b=条件2"


$xl_a='';
$xl_b='';
$xll_a='';
$xll_b='';
if(isset($attrib['where1'])){
        $xl_a=$attrib['where1'];
        $xl_b=explode('=',$xl_a);
        if (!empty($xl_b[1])){
        $where.=" and ".$attrib['where1'];
        }
}
if(isset($attrib['where2'])){
        $xll_a=$attrib['where2'];
        $xll_b=explode('=',$xll_a);
        if (!empty($xll_b[1])){
        $where.=" and ".$attrib['where2'];
        }
}

------------------------------
模板调用
{king:portal.tyzp type="list" where="k_zpzl='(GET:s1/)'" where1="k_zpxl='(GET:s2/)'"}
{king:title/}
{/king:portal.tyzp}
{king:pagelist/}

按照代码如果 GET:s2 为空的话,应该只查询GET:s1才对。。
可是如果 GET:s2为空,就没有任何输出。,。。

天啊。。。我真受不了了!!!!!!!

KINGCMS如果就做普通站绝对是效率高,超简单。。。。

可是文档太简略,使用方法说的不够。甚至连 {}里的标签应该用()都是搜索得到的。


还有文档里说的那个
预设的关联字符串指定字符串调用
在模型管理里设置字段的时候,可以选择'设置为关联字段',如我们指定文章作者字段是author,则指定某个作者下面的所有文章,则属性设置为:_author="某某某",需要注意的是,自定义的字段前面必须加下划线,以便和系统字段做区别。
支持排除

请问到底有没有这功能,如果没有就不要写上去啊!!!


------------------------------------------------------------------------我是分隔符
午夜时分。。。。。。。。。。。。。。。。。。。。。。。。。


很高兴的告诉大家,我的那个问题解决了。

<?php
$abc=" and kkk=123";
$xl_a="a=22";
$xl_b=explode('=',$xl_a);
if (!empty($xl_b[1])){
    $abc.=" and ".$xl_a;
}
echo $abc;
?>

$xl_a="a=
值" 这个值没有的话,         输出  and kkk=123
                        这个值如果有的话         输出  and kkk=123 and a=22

这个测试是没错的,可以用empty来判断数组中的某个键值是否为空。

但是到了kingcms的核心代码就不行了。

var_dump了一下,发现虽然值表面看起来为空,实际上还是有2个字符,然后我修改了一下。用字符数量判断,同时为了防止SQL注入,也限制了字符数量。

if(isset($attrib['where1'])){

        $xl_a=$attrib['where1'];

        $xl_b=explode('=',$xl_a);

        if (strlen($xl_b['1'])>2 and strlen($xl_b['1'])<20){

        $where.=" and ".$attrib['where1'];

        }

}

if(isset($attrib['where2'])){

        $xll_a=$attrib['where2'];

        $xll_b=explode('=',$xll_a);

        if (strlen($xll_b['1'])>2 and strlen($xll_b['1'])<20){

        $where.=" and ".$attrib['where2'];

        }

}

到此为止完美结束。

在此,还是衷心希望K老大能更加的完善一下标签的使用方法,

无聊的飞翔 发表于:11-07-07 20:24 沙发 [回复] #Top#
无聊的飞翔 人气:402 积分:1752 金币:20053
KC元老
1.你不了解kingcms
2.kingcms没这功能
就这2答案而已,不要这样激动
webgm 发表于:11-07-07 20:27 板凳 [回复] #Top#
webgm 人气:40 积分:18 金币:385
你在说笑吗?

如果没有这功能,帮助文档里怎么有?

怎么样才算了解KINGCMS?
无聊的飞翔 发表于:11-07-07 21:21 编辑于:07-07 21:22 4楼 [回复] #Top#
无聊的飞翔 人气:402 积分:1752 金币:20053
KC元老
我没有说笑,这点我可以很负责人的告诉你

至于怎么样才算了解KINGCMS:时间,足够的时间,当然还需要你足够的耐性
freehzw 发表于:11-07-07 21:23 5楼 [回复] #Top#
freehzw 人气:43 积分:76 金币:1284
只能说你使用kingcms php版本有点深度了,我在使用时,kingcms调用php代码,确实也碰到意想不到的结果,当然,也有可能是我水平有限。

不急不躁,等待新版本的推出。再说KingCMS是完全免费的,门户版才收费的,二者不一样的。
webgm 发表于:11-07-07 22:14 6楼 [回复] #Top#
webgm 人气:40 积分:18 金币:385
一个简简单单用PHP代码1分钟就能实现的东西。

而我用KINGCMS1个星期都没搞定- -!

心里这个火啊~~~~

标签不支持和代码混合输出,这是最大的遗憾啊!!!
webgm 发表于:11-07-07 22:15 7楼 [回复] #Top#
webgm 人气:40 积分:18 金币:385
KINGCMS不是免费的吧,对于商用。

我本来以为顺顺利利交货,然后再买授权的。。
z 发表于:11-07-07 22:30 8楼 [回复] #Top#
z 人气:9 积分:481 金币:86
管理团队
肯定不支持标签和代码混合的.为何楼主不用纯代码实现?php版完全可以在模板写php.另外,楼主要实现的是什么调用?说出具体需求,看有没有其它办法实现?
紫花地丁 发表于:11-07-07 22:47 9楼 [回复] #Top#
紫花地丁 人气:249 积分:1955 金币:14564
KC元老
好像还好了
webgm 发表于:11-07-07 23:15 10楼 [回复] #Top#
webgm 人气:40 积分:18 金币:385
Reply: 8楼

就是一些商品,需要N多分类。。。。

然后我想做成通过GET传递数值来进行分类。

但是我把 KINGCMS帮助上的,以及论坛上的,GOOGLE搜索到的一些方法都试过了,都不行。

你说我为什么不直接用PHP SQL在模板里实现。

我想如果我这么做了,那么下一次肯定还要这么做。

如果能够通过其他方法,直接通过KING 标签来实现。这不是很完美吗?

12Next >

发表回复

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

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

Copyright © 2004-2015 Focuznet All rights reserved.

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