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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[修改] x1.5分类信息字段调用插件

[复制链接]
武当剑客 发表于 2011-3-24 09:01:52 | 显示全部楼层 |阅读模式
插件发布
插件名称: 分类信息字段调用插件
插件来源: 二次修改他人插件
适用版本: Discuz! X1.5
语言编码: GBK简体 
最后更新时间: 2011-03-23
插件作者: 武当剑客
插件简介: 可以在DIY页面里调用分类信息的任何字段
本帖最后由 武当剑客 于 2011-3-25 09:48 编辑
本插件二次修改于网友mpage的插件,网址https://discuz.dismall.com/thread-1943472-1-1.html
插件可以在DIY页面里调用分类信息的任何字段,非常实用,但在使用过程中存在一小小bug,即前台不能推送帖子,提示数据类型不匹配,无法推送,经修改调试现已解决,公布如下:



使用方法
1. 模块必须是帖子模块,数据来源必须是高级自定义
2. 必须选择一个且只能选择一个分类信息
3. 在模版中插入 {sort_字段名} 可以调用出相应的字段内容, 插入 {sort_unit_字段名} 可以调用出相应的字段单位

修改方法
--------------------------------------------------
source/function/function_block.php
--------------------------------------------------
1.
找到

  1. $blockitem['parity'] = $order % 2;
复制代码

替换成:

  1. $blockitem['parity'] = $order % 2;
  2.    foreach($blockitem['fields'] as $key=>$field) {
  3.     if(substr($key, 0, 5) == 'sort_') {
  4.      $fields[$key] = array();
  5.     }
  6.    }
复制代码


--------------------------------------------------
source/class/block/forum/block_thread.php
--------------------------------------------------

找到
  1. $list[] = array(
复制代码

替换为:

  1. $list[$data['tid']] = array(
复制代码

找到

  1. 'monthviews' => $data['views']
  2.     )
  3.    );
  4.   }
  5. $returndata['data'] = $list;
  6.                 return $returndata;
  7.         }
复制代码

替换成

  1. 'monthviews' => $data['views']
  2.     )
  3.    );
  4.    
  5.    $ids[] = $data['tid'];
  6.    }
  7.   $stid = $sortids[0];
  8.    if(!empty($ids)) {
  9.    loadcache(array('threadsort_option_'.$stid));
  10.    $query = DB::query("SELECT * FROM ".DB::table('forum_typeoptionvar')." WHERE tid IN (".dimplode($ids).")");
  11.    while($value = DB::fetch($query)) {
  12.     $arrayoption = $_G['cache']['threadsort_option_'.$stid][$value['optionid']];
  13.     if(in_array($arrayoption['type'], array('radio', 'checkbox', 'select'))) {
  14.      if($arrayoption['type'] == 'checkbox') {
  15.       foreach(explode("\t", $value['value']) as $choiceid) {
  16.        $list[$value['tid']]['fields']['sort_'.$arrayoption['identifier']] .= $arrayoption['choices'][$choiceid].' ';
  17.       }
  18.      } else {
  19.       $list[$value['tid']]['fields']['sort_'.$arrayoption['identifier']] = $arrayoption['choices'][$value['value']];
  20.      }
  21.     } else {
  22.      $list[$value['tid']]['fields']['sort_'.$arrayoption['identifier']] = $value['value'];
  23.     }
  24.     $list[$value['tid']]['fields']['sort_'.$arrayoption['identifier'].'_unit'] = $arrayoption['unit'];
  25.    }
  26.    
  27.    foreach($ids as $key => $value) {
  28.                 $listdata[] = $list[$value];
  29.    }
  30.   }
  31. $returndata['data'] = $listdata;
  32.                 return $returndata;
  33.         }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

2

查看全部评分

 楼主| 武当剑客 发表于 2011-3-24 09:02:11 | 显示全部楼层
本帖最后由 武当剑客 于 2011-3-24 10:15 编辑


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

ms1029 发表于 2011-3-24 09:53:30 | 显示全部楼层
很不错顶了,能不能给个DIY的代码啊,设置了很久都没有楼主的效果。
回复

使用道具 举报

 楼主| 武当剑客 发表于 2011-3-24 10:15:59 | 显示全部楼层
回复 ms1029 的帖子

看二楼的回帖
回复

使用道具 举报

ms1029 发表于 2011-3-24 12:03:26 | 显示全部楼层
本帖最后由 ms1029 于 2011-3-24 12:03 编辑

回复 武当剑客 的帖子

不好意思,还有二个问题要麻烦您。
1.标题要如果设置。

2.{sort_auto_Times}  这里中间加上AUTO就显示不了,不加就可以。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

zxm360 发表于 2011-3-24 18:26:20 | 显示全部楼层
在顶一下
回复

使用道具 举报

 楼主| 武当剑客 发表于 2011-3-25 09:52:27 | 显示全部楼层
本帖最后由 武当剑客 于 2011-3-25 09:52 编辑

回复 ms1029 的帖子
代码又稍做修整
1,看二楼截图,标题是固定做在模板里的,下面的数据是读取的
2,格式如{sort_字段名} ,auto只是我命名的字段名而已
回复

使用道具 举报

广告 发表于 2011-5-4 19:36:38 | 显示全部楼层
支持下。。。
回复

使用道具 举报

zhangjinlu 发表于 2011-5-4 20:47:32 | 显示全部楼层
回复

使用道具 举报

fzqsunk 发表于 2011-6-5 22:19:18 | 显示全部楼层
DX2.0正式版可以用不????????
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 13:50 , Processed in 0.028504 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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