Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[教程] 自定字段实现专题式功能并完美结合模型!~

[复制链接]
hnloser 发表于 2009-4-8 09:03:16 | 显示全部楼层 |阅读模式
本帖最后由 hnloser 于 2009-4-8 15:10 编辑

其实是增加一个专题功能性的东西,我查一下,DZ官方还暂时还没有。这个功能可以扩展很多有用功能,提二次开发都提供一个小小思路.
先看看演示:http://2xyk.com/?action-model-name-xykky-itemid-14 大家注意内容下面的本卡优惠信息,就是自动调用资讯中相关的信息
1、        在资讯中增加了自义字段(银行名称或是你自己想要的)
2、        找到Modelview.php文件,找到这个代码
   //分类
$query = $_SGLOBAL['db']->query('SELECT f.*, ff.name AS upname FROM '.tname($_SGET['name'].'categories').' f LEFT JOIN '.tname($_SGET['name'].'categories').' ff ON ff.catid=f.upid WHERE f.catid=\''.$item['catid'].'\'');
$thecat = $_SGLOBAL['db']->fetch_array($query);
$guidearr = array();
$guidearr[] = array('url' => empty($channels['menus'][$modelsinfoarr['modelname']]) ? S_URL.'/m.php?name='.$modelsinfoarr['modelname'] : $channels['menus'][$modelsinfoarr['modelname']]['url'],'name' => $modelsinfoarr['modelalias']);
if(!empty($thecat['upname'])) {
        $guidearr[] = array('url' => S_URL.'/m.php?name='.$modelsinfoarr['modelname'].'&mo_catid='.$thecat['upid'], 'name' => $thecat['upname']);
}
$guidearr[] = array('url' => S_URL.'/m.php?name='.$modelsinfoarr['modelname'].'&mo_catid='.$thecat['catid'], 'name' => $thecat['name']);

3、在下面我增加了以下代码:
//相关优惠文章
$unews = $comment =array();
$query = $_SGLOBAL['db']->query("SELECT i.*, ii.* FROM supe_spacenews i ,supe_spaceitems ii where i.itemid=ii.itemid and i.customfieldtext like '%".$thecat['name']."%'");  //查询数据库,这里表我是直接根据加入前缀表名查询的(这也就是为什么要求大家按默认前缀安装的原因),你也可以按官方提供的方式查询
        //foreach($unews as $unewsvalue){
        //$unewsvalue['subject']=$unews['subject'];
        //}
                while ($comment = $_SGLOBAL['db']->fetch_array($query)) {
                $comment['subject'] =$comment['subject'];
                $comment['url'] = S_URL.'/?action-viewnews-itemid-'.$comment['itemid'];
                $i++;
                $unews[] = $comment;
        }
//END


4、找到/model/data/xykky/(模型的模版的文件,看你自己定义的名称而定)目录下的view.html.php文件
         本卡优惠信息:<BR>
                        <!--{loop $unews $value}-->
                                     <a href="$value" target="_blank">$value[subject]</a><BR>
                                        <!--{/loop}-->
          文件中的这段的代码就是调用的代码.
      
      5、此功能演示,[url]http://2xyk.com/?action-model-name-xykky-itemid-14,请注意下面的   本卡优惠信息,调用的就是相关的文章。大家可以根据些思路扩展相应的功能。

到此结束,下面是供大家参考的

二、相关调用说明:
    1、首页换灯片:在后台找到广告设置,换灯--- Javascript调用,进行编辑设置就可以了。
    2、关于首页数据调用说明:
      示例:(红字是说明文字)
<!--{block name="spacenews" parameter="catid/3/order/i.dateline DESC,i.viewnum DESC/limit/0,6/cachetime/900/subjectlen/100/subjectdot/1/cachename/hotnews1/tpl/data"}--> //这个调用数据
<!--{loop $_SBLOCK['hotnews1'] $value}-->//循环展示调用的数据
          <LI><A title="$value[subject]"
href="$value[url]" target=_blank>$value[subject]</A>
</LI>
<!--{/loop}-->//循环展示调用的数据结束

参数说明:数据调用说明(如果你看不懂这些也没事,请看第三点)
order ------------------------------以什么方式排序,常见的排序方式如下几种:
displayorder --------------以后台设置的显示顺序排序
views DESC ---------------- 以查看数递减的方式排序
replies DESC -------------- 以回复数递减的方式排序
posts DESC ---------------- 以帖子数递减的方式排序
m.posts DESC -------------- 以会员贴子数递减的方式排序
m.oltime DESC ------------- 以会员在线时间递减的方式排序
u.dateline DESC ----------- 以会员注册时间递减的方式排序
i.goodrate DESC ----------- 以信息好评数递减的方式排序
u.spaceallnum DESC -------- 以会员个人空间的信息总数递减排序
u.spaceblognum DESC ------- 以会员个人空间的日志总数递减排序
g.usernum DESC ------------ 以圈子会员数递减的方式排序
g.lastpost DESC ----------- 以圈子最后更新时间递减的方式排序
limit ------------------------------ 显示多少条信息
0,100 --------------------- 显示100条
dateline --------------------------- 发布时间范围,以秒(s)为单位
2592000 ------------------- 2592000秒,即:3天
showdetail ------------------------- 是否显示信息摘要
1 ------------------------- 1为显示(0为不显示)
messagelen ------------------------- 摘要显示的长度,以字节数为单位
160 ----------------------- 显示160个字节信息
subjectlen ------------------------- 主题的显示长度,以字节数为单位
40 ------------------------ 显示40个字节信息
type ------------------------------- 设置信息的类型
notype --------------------- 设置信息的类型
0 ------------------------  日志(1 为不限制信息类型)
forum --------------------- 二级版块的信息
goods --------------------- 商品的信息
news ---------------------- 资讯的信息
video --------------------- 影音的信息
filetype --------------------------- 设置附件的类型
image --------------------- 图片附件
lastpost --------------------------- 最后回复时间范围,以秒(s)为单位
2592000 ------------------- 2592000秒,即:3天
subjectdot ------------------------- 显示主题时,如果主题长度大于显示长度,末尾是否加点
1 ------------------------- 末尾加点(0为末尾不加点)
messagedot ------------------------- 显示摘要时,如果摘要长度大于显示长度,末尾是否加点
1 ------------------------- 末尾加点(0为末尾不加点)
showattach ------------------------- 是否显示附件信息
1 ------------------------- 显示附件信息
haveattach ------------------------- 是否必须包含附件
1 ------------------------- 必须包含附件
isstar ----------------------------- 空间之星
1 ------------------------- 是
perpage ---------------------------- 每页显示的信息条数
15 ------------------------ 显示15条
regdate ---------------------------- 注册时间范围,以秒(s)为单位
2592000 ------------------- 2592000秒,即:3天

3、如果你不会写调用,那也简单,你可以先去后台模块管理中创建模块,然后点击对的要创建的基本模块,按照提示设置。 在写调用中有三点你要注意的地方:
   
第一:模块名,这个你要写自己想调用类型或是栏目,便于记忆,如:资讯热点
   
第二:变量名,如hotnews,这个很重要,这是把把获取的数据集合放置到一个模块变量中。在模板文件中可以使用 $_SBLOCK[变量名] 来调用该数据集合。红字就是要在调用到的。
如:
<!--{loop $_SBLOCK['hotnews'] $value}-->
          <LI><A title="$value[subject]"
href="$value[url]" target=_blank>$value[subject]</A>
</LI>

   第三:在 选择模块风格文件 中选取 只获取数据 ,提交保存。得到如下面这样的代码段,<!--{block name="spacenews" parameter="catid/3/order/i.dateline DESC,i.viewnum DESC/limit/0,6/cachetime/900/subjectlen/100/subjectdot/1/cachename/hotnews1/tpl/data"}-->  这个数据库的调用代码
   组合:
         <!--{block name="spacenews" parameter="catid/3/order/i.dateline DESC,i.viewnum DESC/limit/0,6/cachetime/900/subjectlen/100/subjectdot/1/cachename/hotnews/tpl/data"}-->
         
<!--{loop $_SBLOCK['hotnews'] $value}-->
                <LI><A title="$value[subject]"
href="$value[url]" target=_blank>$value[subject]</A>
</LI>
//这个便是完整的调用
回复

使用道具 举报

lhqylyh 发表于 2009-4-8 09:09:00 | 显示全部楼层
牛啊。一看这么多。嚎~晕了
回复

使用道具 举报

柯七 发表于 2009-4-8 09:19:48 | 显示全部楼层
红爪子  前排你支持你!!
回复

使用道具 举报

10272003 发表于 2009-4-8 11:17:15 | 显示全部楼层
支持。我用模型做了。但没有相关文章调,这个可以好好学习下。
回复

使用道具 举报

nanning2000 发表于 2009-4-8 11:25:32 | 显示全部楼层
是很不错,不过对于不用SS调用的站长来说,真是困难啊,我的麻辣妈咪网www.malamami.com都是用论坛来完成的!
回复

使用道具 举报

 楼主| hnloser 发表于 2009-4-8 15:10:45 | 显示全部楼层
是很不错,不过对于不用SS调用的站长来说,真是困难啊,我的麻辣妈咪网www.malamami.com都是用论坛来完成的!
nanning2000 发表于 2009-4-8 11:25

你的活动调的不错
回复

使用道具 举报

xlx5210 发表于 2009-4-8 16:33:53 | 显示全部楼层
呵呵,学习了、、
回复

使用道具 举报

非氵去改装 发表于 2009-4-9 06:06:24 | 显示全部楼层
收藏了先   
谢谢
回复

使用道具 举报

 楼主| hnloser 发表于 2009-4-14 01:04:39 | 显示全部楼层
没人要需要?
回复

使用道具 举报

esncy 发表于 2009-4-14 01:14:31 | 显示全部楼层
非常滴热情。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-10-19 09:00 , Processed in 0.110005 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表