discuz模板制作问题
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访问论坛,但是这也是最简单最可行的办法
现建站都是用程序来的,既快又易,除非你是程序员,否则不要有用代码来建站的念头,当然,基础的html 代码与php 代码要懂,不过,这些都很简单,一学就会。
首先要会至少一个网页制作软件,例如:DW 。
网上大把的视频教程,然后要会PS 软件的基本操作,如果能懂一点动画制作那是再好不过了。
下面是主题
建站用的程序有很多种,最常见的有以下三种:
1 WordPress 主要用于博客建设,如有好的模版,企业站制作也非常简单,优点是很容易学习,上手快,而且网络安全系数高,不容易被黑了!
2 dedecms 织梦是专注于企业与信息类网站建设的一个程序,功能非常强大,但入门要费点劲才行,否则,你学来学去都是一头雾水,只要入门了,后期学起来就容易了,缺点是安全系数没有wordpress 高,但官方会定期发布安全补丁,只要及时更新,也不是那么容易呗黑的。
3 discuz 主要用于论坛与门户网站建设,学起来最简单,一学就会
这三个程序都有强大的模板,只要掌握了模板的制作方法,什么样的网站都可以快速建立。
网站建设好了,最好能掌握一点推广知识,例如:SEO知识,让我们的网站出名,还有钱赚的喔!
有兴趣的话可以去我的空间看看,有免费的建站基础知识电子书,还有网络推广方面的电子书免费下载!
如我的回答能够帮助你,我感到非常荣幸!
登陆网站后台
第一步:开启邀请注册
点击全局--然后点击左侧小导航注册于访问控制--选择开启邀请注册
邀请注册的网址(你的域名+/adminphpframes=yes&action=setting&operation=access)
第二步:设置可以购买获得邀请码的用户组
点击后台主导航--用户--然后点击左侧小导航
选择对应的用户组,设置注册相关的权限即可!
等多Discuz视频教程,请访问 DZ起点网
0条评论