第一次写文章,希望与人提供方便同时,别误人子弟,自己研究的,大家看不懂只改文件就可以了,如果发现不对的地方请回复或直接通知我,谢谢,本来想在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. POJ2239 二分图最大匹配

    问题:POJ2239 分析: 本题给出每门课程的上课时间,求最大选课数,可以转化为二分图最大匹配问题求解. 设集合A为课程集,集合B为上课时间集,根据输入建立二分图.最大选课书就是该二分图的最大匹配数 ...

  2. 在JasperReport中填充JavaBean(4)

    使用Parameters参数对象传递字符串的示例,本节将演示打印List接口中Userinfo.java实体类的示例,打印的数据源不是来自于Parameters对象,而是JRBeanCollectio ...

  3. NOD32强制卸载工具使用方法【转】

    装了ESET NOD32又忘记密码了,无法卸载,怎么办? 以下转自官网:http://faq.eset.com.cn/index.php?pid=254 [适用产品:ESET NOD32 防病毒软件4 ...

  4. Codeforces 571B Minimization

    http://codeforces.com/problemset/problem/571/B 给出一个序列,可以任意调整序列的顺序,使得给出的式子的值最小 思路:我们可以把序列分解,变成k条链,n%k ...

  5. KEIL的宏汇编器A51介绍

    A51是一种具有通用特性和用法的重定位宏汇编器.它与Intel公司的MASM51宏汇编器具有很好兼容性,支持模块化编程,可以方便地与高级语言接口.A51宏汇编器支持汇编伪指令.宏处理指令以及汇编控制命 ...

  6. mysql导入到elasticsearch

    JDBC importer for Elasticsearch Java Database 连接(JDBC) 导入运行获取数据从JDBC 源 安装: 1.在下面的步骤 替换<version> ...

  7. Linux 使用yum工具

    Red Hat 发行版安装后无法使用yum,须注册方可使用,可以通过以下方式处理:cd /etc/yum.repos.d/备份目录下已经存在的repo文件,然后新建文件local.repo,具体脚本如 ...

  8. systemd-journald详解

    配置文件详解 [Journal] #Storage=persistent Storage=persistent #Compress=yes #Seal=yes #SplitMode=uid #Sync ...

  9. 《Java程序员面试笔试宝典》之Java程序初始化的顺序是怎样的

    在Java语言中,当实例化对象时,对象所在类的所有成员变量首先要进行初始化,只有当所有类成员完成初始化后,才会调用对象所在类的构造函数创建对象. Java程序的初始化一般遵循以下三个原则(以下三原则优 ...

  10. Vs2012于Linux应用程序开发(2):图案

    1.1     代码提示功能 在vs中开发中,Visual Assist是一个很优秀的插件,我们仍然能够使用它进行代码的分析,但它仅仅能支持vcxprojproject,因而我们选择对vcxproj的 ...