问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

discuz 怎么添加自定义模板

发布网友 发布时间:2022-04-22 09:56

我来回答

2个回答

热心网友 时间:2022-04-20 20:54

discuz 添加自定义模板的具体操作步骤如下:

我们需要准备的材料有:电脑、

1、首先我们先将这个模块添加好,点击“编辑”选项中“数据”。

2、然后我们在该页面中点击“模块模板”选项,然后把<link rel="stylesheet" type="text/css" href="文件夹/***.css" />加到最前方。

3、之后我们在该页面中添加代码字符串后,在css自定义样式中编写所需的效果代码即可。

热心网友 时间:2022-04-20 22:12

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标记,所以即使element.style(background:#ccc)比.cssheader在样式优先顺序里面更高级,background属性也会使用.cssheader里面加了!important的数据。


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


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

<?xml version="1.0" 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[0.83em]]></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 background.png repeat-x 0 0]]></item>
   <item id="msgfontsize"><![CDATA[14px]]></item>
   <item id="sidebgcolor"><![CDATA[ vlineb.png 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_a.png no-repeat 50% -33px]]></item>
   <item id="titlebgcolor"><![CDATA[#E5EDF2 titlebg.png repeat-x 0 0]]></item>
   <item id="fontsize"><![CDATA[12px/1.5]]></item>
   <item id="font"><![CDATA[Tahoma,'Microsoft Yahei','Simsun']]></item>
   <item id="styleimgdir"><![CDATA[]]></item>
   <item id="imgdir"><![CDATA[]]></item>
   <item id="boardimg"><![CDATA[logo.png]]></item>
   <item id="available"><![CDATA[]]></item>
   <item id="headertext"><![CDATA[#444]]></item>
   <item id="footertext"><![CDATA[#666]]></item>
   <item id="menubgcolor"><![CDATA[#2B7ACD nv.png 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[X3.1]]></item>
 </item>
</root>

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

<item id="version"><![CDATA[X2.5,X3.0,X3.1,X3.5]]></item>

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

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

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

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

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

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

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

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

/** forum::viewthread,group::viewthread,forum::trade,forum::misc **/
.pls {background:rgba(0,0,0,0.03);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,0.2);}
.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文件夹里面添加了一个timeline.htm,那么就可以添加如下代码在响应位置调用timeline这个页面

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


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


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

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

在discuz.htm中第一段注释下面添加:

<!--{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',setdiyoptbg.sttbg.value,60*60*24*30*12);">
 <input type="text" name="sttbg" />
 <input type="submit" value="设置" />
</form>
</li>
</ul>

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

.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_node.htm里面的用户名移动到了头像下方,这个时候某插件的橙名功能失效了,联系插件作者无果以后决定自己亲手来修改模版以达到适应插件的效果。


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

    <!--{if $_G['setting']['authoronleft']}-->
     <div class="anc">
      <div class="authi"><a href="home.php?mod=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插件的入口。通过移动它来调整插件载入的位置。


很多同学会问,我如果想要加入jQuery模块但是各种出错,到底应该怎么做?在header_common.htm找到common.js的载入行,在这之前载入你的jQuery文件,然后紧接着加上这段代码

var jQ = jQuery.noConflict();

然后把jQuery模块里面的$符号替换成jQ就大功告成了。不是所有的都要替换,只有在括号前的$才要替换。直接查找和替换搜  $(  ,替换成  jQ(  即可。


至此,我独家的Discuz自定义模版教程编写完毕。以上内容均为原创纯手打,你在网络上无法找到第二份比这篇文章还要早的同内容文章,如有不懂请在评论里面追问。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
骨髓炎中药处方 骨髓炎中药的治疗方法 夫妻孩子问题 关于孩子探视的问题解决 ...加工应税消费品,则委托加工物资的实际成本包括 委托外单位加工完成的存货其实际成本包括哪些 同程网上的机票价和机场的是一样的吗? 在机场买票最多能提前多少天... 什么情况需要查询征信 高分悬赏 质量效应2女性完美存档 用于导入到3中 jy03045101@sina.com... 【高分悬赏】PSP修改魔界战记2中文版存档为满金,全最终武器防具,有意... 新手自己录歌用什么软件最好? 如何添加自定义代码片段 哪一款中文电脑录音软件比较适合新手用? 金弹子花苞长什么样? 新手自己录歌用什么软件最好? QQ空间怎么添加放代码的自定义模板 如何在自定义板块添加Html 代码 蝴蝶兰的花苞什么样? 哪个录音软件体验效果好啊简单那种 彼岸花的花苞长什么样 请问这印章是什么字 芒果花苞长成什么样子? 百度空间的自定义模块代码添加到哪里呢 杜鹃花的花苞和花各是什么样子的? QQ空间怎么添加代码? 杜鹃花的花苞和花各是什么样子 花苞儿像什么像什么像什么排比句 如何添加或定制自己的特殊g代码命令 为什么手机在显示充电,但电却一直充不进? 绣球花花苞初期样子是什么? 录音师需要哪些录音软件? 有什么录音软件比较好啊? 请问有什么可以推荐给新手用的录音软件? 自己怎么在家弹吉他录音,需要哪些设备和录音软件 什么录音软件最好用? 什么录音软件最好? 哪种音频编辑软件适合新手 新手怎么自学配音 初学者编曲混音用什么软件? AdobeAudition3.0如何录音 苹果手机快手快币为啥贵? 言情小说经典句子 高分跪求好看小说名字 来个几百本拜托了各位 谢谢 军统是什么意思 军统的全称是什么? 好看的校园言情小说 军统是干什么的 类似快穿之妲己的小说,女主非常会装,喜欢装白莲花装柔弱装单纯可爱的文。 国民党军统是什么意思,干嘛的 君家系列所有小说