discuz模板制作问题,第1张

Discuz!X3是Discuz!建站程序系列的最新版本,提供了易于DIY的环境,很多新人喜欢问:我看见了那么多好看的模版,但是不符合我当前网站的需求,如何自己去DIY?

当然他们肯定去过官方论坛找教程,去看了那么多文字以后依旧不知道如何去编辑。其实最快开始DIY模版的道路是下载一个符合你心目中要求的框架的模版。例如我喜欢PHPWIND那种导航条置顶的风格,我就去下载了一个导航条置顶的模版,在这基础之上去DIY会相对容易一点。

首先我们需要了解的不是怎样开始DIY,而是需要知道,这页面是属于HTML代码制作的,HTML是一种标记语言,这就意味着你想加入什么功能的时候就要去搜索相关的功能标记。要了解HTML是如何运作的,是如何展现样式的,我们这里可以提供一个最基本的DIV代码。

<div id="headerp" class="cssheader" style="background:#ccc">headerpic</div>

这个div会显示headerpic这几个字,这个div的标识符是headerp,其他代码和程序可以通过这个表示符来访问这个div;这个div引用了cssheader这个css样式,并且除非cssheader里面相关样式(当前相关样式:background)后面加上了!important重要标记,headerp这个div都会显示background(背景)为色板十六进制代码ccc的颜色(灰色)。

这里强调一下!important重要标记,在Discuz!里面,有很多运用到!important标记的地方。其中最常用的地方就是DIY模块,在DIY模块里面设定的边距等等数据会被加上!important标记,出现这样标记的时候除非有比这个!important更高级的!important声明,否则你设定的其他同样的样式都会被这!important前面的语句盖住。例:

<div id="headerp" class="cssheader" style="background:#ccc">headerpic</div>cssheader{ background:#aaa !important;}

#headerp{ background:#bbb;}

在这个案例中,由于css样式cssheader被添加了!important标记,所以即使elementstyle(background:#ccc)比cssheader在样式优先顺序里面更高级,background属性也会使用cssheader里面加了!important的数据。

记住了这些以后让我们来真正去DIY属于自己的模版吧。

Discuz!X的模版位于 根目录/template 文件夹里面,在这里面每一个文件夹都会被识别成一个新模版。如果你有想要安装的模版,只需要把模版的整个文件夹复制到这个目录然后进入后台-界面-风格设置里面找到对应的模版然后安装。安装好以后勾选为默认模版以后提交即可。创建模版的时候我们需要把default(默认模版)文件夹里面的discuz_style_defaultxml复制到你的模版目录/discuz_style_你的模版名xml。然后安装官方的模版xml去修改里面的内容。

<xml version="10" encoding="ISO-8859-1">

<root>

 <item id="Title"><![CDATA[Discuz! Style]]></item>

 <item id="Data">

  <item id="name"><![CDATA[默认风格]]></item>

  <item id="templateid"><![CDATA[1]]></item>

  <item id="tplname"><![CDATA[默认模板套系]]></item>

  <item id="directory"><![CDATA[/template/default]]></item>

  <item id="copyright"><![CDATA[康盛创想(北京)科技有限公司]]></item>

  <item id="style">

   <item id="smfont"><![CDATA[Arial]]></item>

   <item id="threadtitlefontsize"><![CDATA[14px]]></item>

   <item id="threadtitlefont"><![CDATA[Tahoma,'Microsoft Yahei','Simsun']]></item>

   <item id="smfontsize"><![CDATA[083em]]></item>

   <item id="tabletext"><![CDATA[#444]]></item>

   <item id="midtext"><![CDATA[#666]]></item>

   <item id="lighttext"><![CDATA[#999]]></item>

   <item id="link"><![CDATA[#333]]></item>

   <item id="highlightlink"><![CDATA[#369]]></item>

   <item id="noticetext"><![CDATA[#F26C4F]]></item>

   <item id="bgcolor"><![CDATA[#FFF backgroundpng repeat-x 0 0]]></item>

   <item id="msgfontsize"><![CDATA[14px]]></item>

   <item id="sidebgcolor"><![CDATA[ vlinebpng repeat-y 0 0]]></item>

   <item id="headerborder"><![CDATA[0]]></item>

   <item id="headerbgcolor"><![CDATA[]]></item>

   <item id="inputborderdarkcolor"><![CDATA[#848484]]></item>

   <item id="stypeid"><![CDATA[1]]></item>

   <item id="inputbg"><![CDATA[#FFF]]></item>

   <item id="commonborder"><![CDATA[#CDCDCD]]></item>

   <item id="commonbg"><![CDATA[#F2F2F2]]></item>

   <item id="specialborder"><![CDATA[#C2D5E3]]></item>

   <item id="specialbg"><![CDATA[#E5EDF2]]></item>

   <item id="dropmenuborder"><![CDATA[#DDD]]></item>

   <item id="floatmaskbgcolor"><![CDATA[#000]]></item>

   <item id="dropmenubgcolor"><![CDATA[#FEFEFE]]></item>

   <item id="floatbgcolor"><![CDATA[#FFF]]></item>

   <item id="lightlink"><![CDATA[#FFF]]></item>

   <item id="menuhoverbgcolor"><![CDATA[#005AB4 nv_apng no-repeat 50% -33px]]></item>

   <item id="titlebgcolor"><![CDATA[#E5EDF2 titlebgpng repeat-x 0 0]]></item>

   <item id="fontsize"><![CDATA[12px/15]]></item>

   <item id="font"><![CDATA[Tahoma,'Microsoft Yahei','Simsun']]></item>

   <item id="styleimgdir"><![CDATA[]]></item>

   <item id="imgdir"><![CDATA[]]></item>

   <item id="boardimg"><![CDATA[logopng]]></item>

   <item id="available"><![CDATA[]]></item>

   <item id="headertext"><![CDATA[#444]]></item>

   <item id="footertext"><![CDATA[#666]]></item>

   <item id="menubgcolor"><![CDATA[#2B7ACD n***g no-repeat 0 0]]></item>

   <item id="menutext"><![CDATA[#FFF]]></item>

   <item id="menuhovertext"><![CDATA[#FFF]]></item>

   <item id="wrapbg"><![CDATA[#FFF]]></item>

   <item id="wrapbordercolor"><![CDATA[#CCC]]></item>

   <item id="contentwidth"><![CDATA[630px]]></item>

   <item id="contentseparate"><![CDATA[#C2D5E3]]></item>

   <item id="inputborder"><![CDATA[#E0E0E0]]></item>

  </item>

  <item id="version"><![CDATA[X31]]></item>

 </item>

</root>

需要注意的是这里的Title值不能改,必须保持原样才能够被安装和运行。version代表你这个模版能适用的Discuz!版本。可以用逗号分隔,例:

<item id="version"><![CDATA[X25,X30,X31,X35]]></item>

templateid是模版的标识符,这个如果是本地模版的话直接删掉这行即可。不然会识别错误。如果想自定义参数必须在style下面添加行。例如:

<item id="diyxml"><![CDATA[diydiydiytext]]></item>

Discuz!的这个自定义的参数非常好用,在之后的内容里面会被提及。

需要导入自定义模版的时候只需要在后台的界面-风格选项里面上面有个导入标签,点入以后会提示你一步一步导入你已经上传的模版。你也可以直接在对应的模版设置里面修改好参数然后到模版列表页导出你自定义好的模版XML文件。

所谓制作模版就是复制官方文件到自己的模版文件夹里面然后加以修改。

Discuz!额外提供了一些便利设置方便我们设置CSS样式,那就是extend_。我们可以用添加这个

前缀的CSS来达到不替换原有CSS文件的情况下追加或者覆盖原CSS内容。添加的位置就是根目录/template/你的模版文件夹/common/extend_commoncss。

要注意的是modulecss里面的注释能起到划分区域的效果,优先级比extend_commoncss还要高,但是commoncss里面的!important依旧优先级比没有!important的modulecss的对应内容要高。例:

/ forum::viewthread,group::viewthread,forum::trade,forum::misc /

pls {background:rgba(0,0,0,003);border-right:none;width:200px;}

ad pls {background: #ffffff;}

ad plc {background: #ffffff;}

pls avatar img {width: 145px;padding:8px;background: #FFF;box-shadow:0px 0px 10px rgba(0,0,0,02);}

pls avatar {text-align:center;}

pls p, pls pil, pls o {margin: 10px 20px;text-align: center;}

dvbg {background: #fff;}

/ end /

这些代码只在区域是forum::viewthread,group::viewthread,forum::trade和forum::misc生效。

<!--{template common/header}-->

你在模版文件会看见这样的注释代码,这代码实际上能调用模版文件夹里面的网页文件,要求后缀是htm,例如我在forum文件夹里面添加了一个timelinehtm,那么就可以添加如下代码在响应位置调用timeline这个页面

<!--{template forum/timeline}-->

我们现在掌握了这些知识以后可以考虑开始初步为网站添加点料了。

我们都很喜欢在网站上面添加一个大大的横幅,当然不一定是广告,也会喜欢添加一些美图。这个时候我们需要自己定义一个div,而不是用导航条上面那片区域的背景来解决。因为那会导致一些背景和插件色块重叠,看起来不美观。而且本例还要达成让用户来自定义这个背景的效果。

这里我们就得说一下Discuz!一个很有意思的地方。在模版里面,注释的内容并不是没用的,相反,注释的内容是可以被当作是PHP代码运行的。让用户自定义,我们就需要调用cookie在Discuz!里面提供了一个调用COOKIE的一个标准方法:$_G['cookie']['cookiename'],这样我们就能调用名为cookiename的cookie了。具体实现代码如下(需要你有基本编程基础):

在discuzhtm中第一段注释下面添加:

<!--{if isset($_G['cookie']['sttbg'])}-->

<div id="headerpic" class="headerpic" style="background:url($_G['cookie']['sttbg'])"></div>

<!--{else}-->

<div id="headerpic" class="headerpic"></div>

<!--{/if}-->

然后去DIY添加静态模块,选择自定义HTML模版。添加如下代码:

<ul>

<li>

<span style="float:left">顶部链接</span>

<form name="setdiyoptbg" onsubmit="setcookie('sttbg',setdiyoptbgsttbgvalue,6060243012);">

 <input type="text" name="sttbg" />

 <input type="submit" value="设置" />

</form>

</li>

</ul>

然后在common文件夹内新建extend_commoncss,添加如下代码:

headerpic {background:url({STYLEIMGDIR}/{HEADERBG}) no-repeat right 0 transparent;background-size:cover;background-position:0% 10%;height:220px;box-shadow:0 0 15px #8f8f8f;}

最后在模版设置里面的最下方添加自定义参数HEADERBG,内容指向想添加为默认头部的文件地址。文件前面添加了STYLEIMGDIR,这样就可以直接把放在模版文件夹里面的扩展文件夹里,不会搞乱格式。

至此,添加自定义内容的教程结束。

这个教学旨在去学会如何学习制作,而并不是学习制作方法,就是授人以鱼不如授人以渔的意思。概念会比较泛,必须要自己去动手做才能理解。

我们很多时候不止要添加元素,还需要修改已有的元素。这个时候我们就需要开发者模式了,不然很多时候你会一头雾水。这里推荐chrome和ie10以上的开发者模式,都支持页面编辑,即时让代码生效。满意了以后直接去修改对应文件即可,不过你要熟悉那部分的代码,就如同上一步添加模块一样你需要知道所有代码的意思,不然很可能导致失败效果。

这里特殊说一下plugin接口,当你在修改元素的时候,可能会导致一些插件无法被正常使用,这个时候你就需要尝试修改一下插件接口的位置。例如我把viewthread_nodehtm里面的用户名移动到了头像下方,这个时候某插件的橙名功能失效了,联系插件作者无果以后决定自己亲手来修改模版以达到适应插件的效果。

网页跟我们平时所知道的顺序阅读载入方式有点不一样,网页的代码只会读取已经载入好的地方,所以接口不能放在程序代码前面,经过分析插件源文件 ,我把那个接口放在了修改了以后的用户名那段代码的后面,成功修复了橙名不显示的问题。代码如下

    <!--{if $_G['setting']['authoronleft']}-->

     <div class="anc">

      <div class="authi"><a href="homephpmod=space&uid=$post['authorid']" target="_blank" class="xw1"{if $post[groupcolor]} style="color: $post[groupcolor]"{/if}>$post[author]</a>$authorverifys</div>

     </div>

    <!--{/if}-->

    <!--{hook/viewthread_profileside $postcount}-->

注意这里面最后的hook注释句,这就是Discuz插件的入口。通过移动它来调整插件载入的位置。

至此,我独家的Discuz自定义模版教程编写完毕。以上内容均为原创,曾经在类似的问题里面发过,但是作者迟迟没能回来采纳,深感遗憾。

回第二个问题:在界面导航里面去掉论坛的顶部导航,就是设置成不可用。然后在界面里面把门户选作主页即可。虽然用户仍旧能通过forumphp访问论坛,但是这也是最简单最可行的办法

DZ(discuz!)论坛的每一个页面的顶部标题中,都有一个“powered by discuz!”尾巴,这样显得标题很长,也不美观,缺乏个性。

因为discuz!用的是免费开源的PHP,因此也便于取消这个烦眼的标识。

具体步骤如下:

1、进入DZ安装目录里,找到template\default\common\目录

2、在该目录下找到“header_commonhtm”文件,注意别找错了,不是“headerhtm”文件。

3、打开该“header_commonhtm”文件,查找“title”,找到语句“ <title><!--{if !empty($navtitle)}-->$navtitle - <!--{/if}--><!--{if empty($nobbname)}--> $_G['setting']['bbname'] - <!--{/if}--> Powered by Discuz!</title> 。”

4、删除“ Powered by Discuz! ”,然后,还要删除后面的一个短横线“-”,移动前面的一个短横线,也就是说,最后变成这样:

“ <title><!--{if !empty($navtitle)}-->$navtitle <!--{/if}--><!--{if empty($nobbname)}--> - $_G['setting']['bbname'] <!--{/if}--> </title> ”,或者复制这句进行替换。

(注:如果版本不一样,注意领会其精神^-^:此处有两个删除,一个移动,如果没有正确处理,会导致还有不正确的一个短横线在标题里等情况。)

保存。OK!

关于版权的思考,首先DZ并没要求必须保留这个难看的烙印,并且在论坛的底部还有“powered by discuz!”标识和discuz!链接,之所以要去掉头上的这个,实在是因为太难看,就像过去的奴隶头上烙着主人的印。

补充: DZ论坛底部版本号信息的取消方法

多谢"不了不得"提醒,考虑到避免黑客或论坛群发机器人利用,有必要屏蔽DZ特定版本号信息,所以,DZ论坛底部的版本也需去掉。

大致步骤(以Discuz! X2为例):

找到并打开\template\default\common\footerhtm文件,搜索“Powered by”,在后面附近找到代码“<em>$_G['setting']['version']</em><!--{if !empty($_G['setting']['boardlicensed'])}--> <a href="http://licensecomsenzcom/pid=1&host=$_SERVER[HTTP_HOST]" target="_blank">Licensed</a><!--{/if}-->”,删除该代码保存就OK。

这样,在DZ论坛的底部保留了

“Powered by Discuz!

2001-2011 Comsenz Inc”

版权信息及链接,但删去了“X2”等版本号信息,让黑客们和发帖机器找不到版本,从而降低了风险。

template\default\common\commoncss

hdc { position: relative; z-index: 3; min-height: 70px; background: {HEADERBGCOLOR}; }

ie6 hdc { height: 70px; }

这是默认风格的路径啊,如果你用的别的模板自己在找下看

这个设置的地方在后台,论坛,版块管理,点击编辑对应的版块,比如你的“论坛首页”对应的编辑,在“分区下级子版块横排”修改默认的0为你想设置的个数,(设置进入分区时,下级子版块横排时每行版块数量,如果设置为 0,则按正常方式排列)即可实现你上面截图的效果。

后台->界面->导航设置->顶部导航->新增两个顶部导航

名称 链接

登陆 /memberphpmod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes

注册 /memberphpmod=register

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » discuz模板制作问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情