广州传奇网络

地址:广州市天河区东圃大马路富华楼C座

电话:13808825895

邮箱:gz020wbs@163.com

QQ:1564443073

网址:http://www.020wbs.com/

首页 > 二次开发SuperSite二次开发 > SupeSite中用sql调用ecms文章方法

二次开发SuperSite二次开发

二次开发SuperSite二次开发

SupeSite中用sql调用ecms文章方法

如果你需要用SS模板或整合SS,数据调用是必不可少的工作哦,SS后台本身有非常强大的模块功能,并且能够让你输入一些高级SQL语句。也许你会说其它程序我用JS调用,当然也可以,但是,你会感觉到SQL调用速度远远快过于JS调用的方法。这也是写下此文的原因,如何操作咧?下面我们以调用ECMS最新文章为例,做如下处理:

1、我们模块管理中选择建立“论坛主题”的新模块,如果你选择错误,没关系,你在生成的代码中修改成name=”bbsthread” 就是了,后台生成的代码,我们可以在调用中修改、微调的。

2、选择“高级模式”建立,输入SQL,最开始我直接输入 “SELECT * FROM phome_ecms_news” ,以便于观察能打印出什么数据;

3、将生成的代码放在 index.html.php中看打印出来的数据是什么,我经过分析,打印出来的phome_ecms_news中并没有文章的链接,仔细分析发现 ECMS 的文章链接是通过栏目自己定义链接样式的,我的链接样式是栏目链接+日期+文章ID;如果文章链接本身存在数据表中,可以下一步。

4、经过分析后,我通过classid 进行关联来获取数据, SQL语句修改为:“SELECT * FROM phome_ecms_news n,phome_enewsclass c WHERE n.classid = c.classid“,进行打印分析,我已经获取到了相关的数据;

5、排序方式,我们要选择ECMS中数据的排序方式,而不是SS中默认的,我选择的最新文章,所以将SQL语句修改为:“SELECT * FROM phome_ecms_news n,phome_enewsclass c WHERE n.classid = c.classid order by newstime DESC”;

6、我们并不需要查询所以数据,以免加重服务器负担(其实可以忽略不计,哈哈),所以我们选择我们需要的数据调用,SQL语句修改为:“SELECT title ,classurl,truetime,id FROM phome_ecms_news n,phome_enewsclass c WHERE n.classid = c.classid order by newstime DESC”;

7、现在基本获取到了我们需要的全部数据,但是ECMS中title,我们不能控制他的标题长度,所以我们需要将title转化subject调用,修改SQL语句为:“SELECT title as subject,classurl,truetime,id FROM phome_ecms_news n,phome_enewsclass c WHERE n.classid = c.classid order by newstime DESC”

8、好了,大功告成了。我们只需要设置样式就是了,我的样式如下:

view sourceprint?1 <!--{loop $_SBLOCK['vrcfonews'] $value}-->

2 <dd><a href="{$value[classurl]}/#date("Y-m-d", $value["truetime"])#/{$value[id]}.html" title="subjectall" target="_blank">$value[subject]</a></dd>

3 <!--{/loop}-->

记住如果你需要在{$value[id]}.html这样的话,一定要记得家{}哦,不然会出错。

看完这篇文章,你是否明白了咧?不要局限于此哦,数据调用就是如此简单,你可以将同样的高级sql调用方法运用到其它程序,如dedecms,ecshop,ecmall等。