第一次写文章,希望与人提供方便同时,别误人子弟,自己研究的,大家看不懂只改文件就可以了,如果发现不对的地方请回复或直接通知我,谢谢,本来想在discuz论坛上发的,不懂版规也没时间看版规,怕发错,隔小jj怎么办?
(一)个人资料项排序问题解决方法

首先说明一下情况,昨天在做网站的个人资料项时发现后台可以设置排序的(图一)数字越大越往下,但是用户页面(图2)却是一直不变,比如新添加的字段想让他排在第一,在网上找了好久都没有搜索到(或许是我不会搜索)看了大半天,看懂了点,

(图2)
(图2 修改后的效果)
个人资料排序修改原理:每个标签下的资料项(如图中宝宝资料)都是以数组后在序列号的方式储存到数据库中的,这样自然就不能再排序了(排序也是在数组中处理按字母什么的排序,这样也不方便),查看文件include/spacecp/spacecp_profile.php文件,我们观察到,它先获取每个大项下属的每个小项以数组的形式,然后根据小项获取每个小项的html代码(就是后面的文本框、下拉框了),我们在获取小项后在对对数组中的每个小项根据原理后台设置的排序进行再次排序,在让它获取html代码就搞定了。
步骤:打开spacecp_profile.php文件
在大概423行下面 紧贴(搜索下面代码也可) 
$htmls = $settings = array();
上面添加如下代码:
//二次开发 <<< 个人资料修改页面各选项排序问题解决 
$noorder = array('idcardtype','idcard','zipcode','sightml','customstatus','timeoffset'); 
$jiaoji = array_intersect($noorder,$allowitems); //计算两个数组的交集,不计算的话个人签名和时区不显示 
 if(empty($jiaoji)){ $query = DB::query('SELECT fieldid FROM '.DB::table('common_member_profile_setting')." WHERE fieldid IN (".dimplode($allowitems).") ORDER BY displayorder ASC"); 
 $allowitems=array(); //清空原来的小项的数组,以便对新数组排序
 while($value = DB::fetch($query)) { $allowitems[$value['fieldid']] = $value['fieldid']; } } 
 //二次开发 >>>*/
 
计算交集问题$jiaoji  是因为不过不计算的话,个人签名和地区好像不显示,交集里的其他元素我也不知道是上面懂得,反正我的效果实现了,你们看哪里有需要的地方再修改吧。
 
(二 )添加N多自定义字段
原来discu x2 自带的自定义只有8个,比如我今天不高兴,心里又比较变态,想在加几十个怎么办,在数据表里
 
(三)修改栏目名称和栏目介绍
discux 系统自带的栏目和栏目介绍是不可以修改的,我们新添添加的fieldN也是不可以修改的,要修改的话可以在数据库中一个个改,这样比较麻烦,修改方法:
打开source/admincp/admincp_members.php
搜索:
$field['customable'] = preg_match('/^field[1-8]$/i', $fieldid);
只修改我们新添加的field自定义字段可以修改栏目名称和描述的方法(把[1-8]改为\d+)
$field['customable'] = preg_match('/^field\d+$/i', $fieldid);
修改系统所有字段;
$field['customable'] = preg_match('/.*/i', $fieldid);
 
这样就可以很方便的修改栏目名称和介绍了 O(∩_∩)O~
(系统原代的学历栏目可以修改了)

discuz x2 个人资料项排序问题解决方法、添加自定义字段、修改栏目名称和介绍的更多相关文章

  1. 关于发布中报“未能加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项”的问题解决方法

    遇到这个问题了,我也是醉了,开发就一个还在忙别的事情,我想想自己解决 你们遇到过吗?我在网上找到好多解决的方法,比如改webconfig文件,或者改package.config文件,都没用.但是我看到 ...

  2. dede织梦栏目页和文章页中获取当前栏目名称方法

    一般情况下,在dede织梦系统中列表页.栏目页和文章页中获取当前所在栏目名称只需要代码:{dede:type}[field:typename]{/dede:type}即可,不需要定义ID,默认的就是当 ...

  3. discuz!X2头像无法显示解决方法

    discuz x2刚刚发布,很多站长就迫不及待地将自己的论坛升级. 可是安装完discuz X2之后,就马上发现论坛会的头像都不见了,取而代之的是一个小红叉.会员也没有办法设置自己的头像. 各位站长们 ...

  4. Discuz! X2.5数据库字典【转载】

    DROP TABLE IF EXISTS pre_common_admincp_cmenu; CREATE TABLE pre_common_admincp_cmenu ( `id` SMALLINT ...

  5. phpcms V9 整合 Discuz! X2 教程

    整合原理: UCenter 作服务端:phpsso 与 Discuz! 分别作 UCenter 的客户端应用:phpsso 与 Discuz! 通过 UCenter 发生交互. phpcms 通过 p ...

  6. Discuz! X2.5数据库字典(转)

    DROP TABLE IF EXISTS pre_common_admincp_cmenu; CREATE TABLE pre_common_admincp_cmenu ( `id` SMALLINT ...

  7. win8安装SQL Server 2005问题解决方法

    win8安装SQL Server 2005问题解决方法 1.正常安装任一版本的SQL Server 2005(最好安装企业版). 2.安装到SqlServer服务的时候提示启动服务失败(提示重试的时候 ...

  8. Discuz! X2.5判断会员登录状态及外部调用注册登录框

    Discuz! X2.5判断会员登录状态及外部调用注册登录框 有关discuz论坛会员信息,收集的一些资料: 用dedecms+discuz做了个门户加论坛形式的网站,但是dedecms顶部目前只能q ...

  9. 关于linux密码忘记问题解决方法

    最近在试装centos,不小心把密码丢了,进不去,查了一下资料,找到了方法,试验成功.存在这里,备用. 1. 在出现grub画面时,用上下键选中你平时启动linux的那一项,然后按e键 2. 再次用上 ...

随机推荐

  1. git教程 入门

    快速上传已有代码到github 如何将最新代码上传到github,这里讲本地已有项目文件的情况(假如本地有一个helloworld的工程目录,目录中有很多项目文件.),步骤如下: 前提:已安装git客 ...

  2. html5 新属性

    <p contenteditable="true">这是一段可编辑的段落.请试着编辑该文本.</p> <input id="email&qu ...

  3. php的一些小笔记--时间函数

    strtotime  返回UNIX时间戳 .这个函数可以用来计算前天,昨天,后天,明天 例如明天:date('Y-m-d H:is',strtotime('+1 day')) day>1是复数 ...

  4. win32下用VC扩展PHP全过程

    闲着无聊,打算开发一些PHP组件来玩玩,由于在家没有工作环境,遂打算在win32(我的环境是vista)用VC开发DLL模块,费话不 多说了,进入正题: 一.已经在机器上安装PHP环境的就略过,否则先 ...

  5. Scala学习笔记--上界(<:)、视图界定(<%)、上下文界定(T:M)

    上界 下界 视界 object Test{ def main(args:Array[String]):Unit={ def mulBy(factor:Double)=(x:Double)=>fa ...

  6. Loadrunner根据PV量来确定需要进行压测的并发量

    在实际做压力测试的过程中,我们有时不知道用怎样的并发量比较好,下面是几个用PV量去确定并发量的公式,这个在我们公司是比较适用的,大家可以根据自己的业务进行运算. 方法一:这个方法是我在网上查到的80- ...

  7. Android使用xml中定义的动画效果

    Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.zqrl_out); animation.setFil ...

  8. Android开源中国客户端学习 (自定义View)左右滑动控件ScrollLayout

    左右滑动的控件我们使用的也是非常多了,但是基本上都是使用的viewpager 等 android基础的控件,那么我们有么有考虑过查看他的源码进行定制呢?当然,如果你自我感觉非常好的话可以自己定制一个, ...

  9. Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解

     上一篇博客我们讲解了如何使用Linux提供的文件操作函数,本文主要讲解使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #in ...

  10. softlayer virtual machine vhd磁盘镜像导入shell脚本

    脚本