大师兄 发表于 2017-11-30 18:50:07

discuz x3.2为主导航各栏目前增加图标

本帖最后由 大师兄 于 2017-11-30 18:54 编辑

道勤小编一直想做出来像wp博客那样,可以给每个导航自定义图标,
不管是dede还是phpcms,都能找到在栏目里增加项目来设置图标的教程,
而discuz的改法找了几天也找不到...
如果直接在栏目名称前加html代码就会被转义,没找到取消的地方。
利用周末时间自己改,将快捷导航上的导航图标复制过来改了改,反复测试,终于可以了。
修改前请备份原文件。


我这是填写的fa图标,如果没装这玩意儿,添加<img src=""/>图片地址也可以。

刚改完图标还没设置全。

正式修改步骤:
1.添加主导航图标调用
打开文件/source/function/cache/cache_setting.php
找到
if($nav['type'] == 0) {
       $domainkey = substr($purl['path'], 0, -strlen(strrchr($purl['path'], '.')));
       if(!empty($_G['setting']['domain']['app'][$domainkey]) && !in_array(strtolower($nav['title']), array('follow', 'guide', 'collection', 'blog', 'album', 'favorite', 'friend', 'share', 'doing'))) {
       $nav['url'] = 'http://'.$_G['setting']['domain']['app'][$domainkey];
       }
}在下面增加:
//主导航图标
if($nav['icon']) {
$navicon = str_replace('{STATICURL}', STATICURL, $nav['icon']);
$nav['icon'] = "$navicon";
}找到:
$nav在前面增加:
<font>$nav</font>2.添加子菜单导航图标调用:
还是cache_setting.php文件,找到:
$subnavs = '';在下面添加:
//子菜单导航图标
if($subnav['icon']) {
$navicon = str_replace('{STATICURL}', STATICURL, $subnav['icon']);
$subnav['icon'] = "$navicon";
}找到:
$subnav在前面添加:
<font>$subnav</font>2.后台添加填写框:
打开文件/source/admincp/admincp_nav.php
找到:
showsetting('misc_customnav_parent', array('parentidnew', $parentselect), $nav['parentid'], 'select');
showsetting('misc_customnav_title', 'titlenew', $nav['title'], 'text');下面增加:
showsetting('misc_customnav_icon', 'iconnew', $nav['icon'], 'text');找到:
$logoadd = ", logo='$logonew'";下面增加:
//保存
$iconnew = addslashes($nav['icon']);
                        if($_FILES['iconnew']) {
                              $upload = new discuz_upload();
                              if($upload->init($_FILES['iconnew'], 'common') && $upload->save()) {
                                        $iconnew = $upload->attach['attachment'];
                              }
                        } else {
                              $iconnew = $_GET['iconnew'];
                        }
                        if($_GET['deleteicon'] && $nav['icon']) {
                              $valueparse = parse_url($nav['icon']);
                              if(!isset($valueparse['host']) && !strexists($nav['icon'], '{STATICURL}')) {
                                        @unlink($_G['setting']['attachurl'].'common/'.$nav['icon']);
                              }
                              $iconnew = '';
                        }
                        $iconadd = ", icon='$iconnew'";找到:
'logo' => $logonew,下面增加:
'icon' => $iconnewOK。
如果上文有不全面,可下载我的文件(GBK版本)。


   

这样就可以了,是不是非常简单





页: [1]
查看完整版本: discuz x3.2为主导航各栏目前增加图标