接触Discuz!有一段时间了,使用的风格都是别人的免费品。
一来自己的美工水平实在不行,二来网上很少有比较完整的模板制作教程。
因为工作的需要,现特写了一份模板的制作教程。
小弟才疏学浅,不对之处还请指正。
模板制作前请将你的界面设计好,并制作成html+CSS 的格式。
这里我就以大魔王的“蓝色经典”作为样版(知识共享,希望大魔王不要介意,如有侵权,请及时通知我)。
效果图如下:(图1)在开始前,先了介绍一下discuz!的几个模板文件:1、header.htm --------------------------------------页面头部2、discus.htm---------------------------------------------------------------论坛首页3、footer.htm---------------------------------------------------------------页面底部4、viewthread--------------------------------------------------------------查看帖子内容discuz!论坛的页面通常是几个模板文件共同作用下达到的效果,如图1就是header.htm+discus.htm+footer.htm 这三个文件共同作用的效果。
Heaer.htm对应的是:(图2)w ww.a iw a ns ha .c o mFooter.htm对应的是:(图3)剩下的就是discuz.htm 文件显示的了。
当然你要将首页显示的效果就制作成一个文件模板也是可以的,这里之所以分开,是因为header.htm 和footer.hmt 文件通常还会被其它的模版文件引用。
也就是说,其它的页面(比如发贴的页面)的头部、底部与首页的头部、底部完全一样,分开来写就可以达到重复利用,减少劳动的效果。
下面我们就开始制作:首先,现在我要制作的这套模板叫test,那么我就在templates 目录下建立一个test 目录。
在test 目录下再新建一个images 文件夹用于存放这套模板的图片,把切好的所有图片保存到这个文件夹中。
templates/test 文件夹用于存放这套模板的htm 文件,在这个目录中新建三个文件header.htm、discuz.htm、footer.htm,打开你设计好的主页html 文件,将你想作为头部的那一段代码复制粘贴到header.htm 文件中,相应的将作为底部的那一段代码复制粘贴到footer.htm 文件中,其余的代码复制粘贴到discuz.htm 文件中。
最后在discuz.htm 文件的最顶部和最底部分别加上:{subtemplate header}和{subtemplate footer}这两句算是discuz 的语言,意思是将header.htm 和footer.htm 文件包含进来,这样就构成了一个完整的主页面了。
接下来的工作要在论坛后台设置中来完成(1)进入论坛点击“系统设置——>界面——>模板管理”,在新增模板后填入模板名称,模板文件所在目录,板权信息然后提交即可!如图4:(图4)(2)在“界面——>风格管理”中,在新增界面风格后填入方案名称“test”然后提交即可!(3)提交方案名称后,您就可以在界面风格中看到您所定义的新的风格方案。
如下图:w ww.a iw a ns ha .c o m(图5)注意上面用红色圆圈圈起来的那幅模版预览图,你的是不是没有显示出来?这需要将你的首页的效果图做成110x120并命名为preview.jpg,将这图片放到test 目录下就可以了。
到此,一套新的风格模板方案就添加到模板库里了,但还不是我们需要的最终效果,接下来要对模板文件继续进行调整,以达到想要的最终效果(4)点击[编辑]后就可以进入该模板的风格配色方案的编辑页面,按照图6把各个对应参数填入相应位置。
(图6)填写好后,点击“提交”,更新一下缓存,浏览论坛首页出现下图:w ww.a iw a ns ha .c o m(图7)呵呵,有内容出来了,可是排版上却变得乱七八糟了,这是因为还没有引入CSS 文件。
这时将原来设计好的CSS 文件放到你模板目录下(templates/test),并将它重命名为“css_append.htm”(注意:改后的文件名是css_append,后缀名是htm)。
接着打开header.htm 文件,找到你引入CSS 文件的语句,这会因为引入的语句不同而不同,我这里是<style type="text/css">@import url(css/style.css);</style>将这个替换为:$rsshead $extrahead{subtemplate css_script}这样就可以将你的CSS 文件引入了。
进入后台更新一下缓存,现在的效果图如下:(图8)这样就整齐了许多,这时你是不是发觉少了点东西?没错,图片没有显视出来。
下面我们先将背景图(也就是CSS 文件中引入的图片)显示出来。
打开css_append.htm 文件,找到所有你引入图片的地方,将路径替换为w ww.aiw a ns ha .c o m“{STYLEIMGDIR}”。
例如:这里有一句:#footer{padding:1em 0;background:url(images/footer_bg.gif)}将它改为:#footer{padding:1em 0;background:url({STYLEIMGDIR}/footer_bg.gif)repeat-x top;}{STYLEIMGDIR}实际上是discuz 的一个变量,当模板被解释时,就会用一个值来替换这个变量,这个变量的值可以在后台设置。
进入后台后点击“界面——>风格管理”出现下图:(图9)找到你正在制作的test 风格,点击“编辑”按钮,出现下图:(图10)看到了吧,当模板被解释时,就会用上面所填的路径来替换这个变量。
好了,现在更新缓存再看一下效果:w ww.a iw a ns ha .c o m(图11)哈哈,和原来设计的效果图一样了,是否有一种成功的喜悦?虽然,到这里已经迈出了成功的一步,但革命尚未成功,同志仍需努力!现在制作的模版是静态的,也就是说就算你发贴了,里面的内容也不会改变的,甚至你点个连接都会出错的。
下面我们就来让它“动”起来。
一、修改头部文件header.htm 1、打开正在制作的模板header.htm 文件(以下简称header.htm),以及默认模板templates\default 的header.htm 文件(以下简称“默认header.htm”)。
2、将header.htm 文件的标题用$navtitle $bbname $seotitle 来代替。
例如:我这里是:“<title>搜球论坛</title>”改后就变成了“<title>$navtitle $bbname $seotitle </title>”3、看header.htm 里是否有类似“<meta name="keywords"content=""/>”这样的语句,有就删除。
然后,将默认header.htm 里的以下语句:<meta name="keywords"content="{$metakeywords}$seokeywords"/><meta name="description"content="$metadescription $bbname $seodescription -Discuz!Board"/><meta name="generator"content="Discuz!$version"/><meta name="author"content="Discuz!Team and Comsenz UI Team"/><meta name="copyright"content="2001-2009Comsenz Inc."/><meta name="MSSmartTagsPreventParsing"content="True"/><meta http-equiv="MSThemeCompatible"content="Yes"/><meta http-equiv="x-ua-compatible"content="ie=7"/>复制粘贴到header.htm 文件相应的位置(注这些对界面没什么影响,但对SEO 优化有帮助)4、将默认header.htm 里的以下语句:<script type="text/javascript">var STYLEID ='{STYLEID}',IMGDIR ='{IMGDIR}',VERHASH ='{VERHASH}',charset ='$charset',discuz_uid =$discuz_uid,cookiedomain ='$cookiedomain',cookiepath ='$cookiepath',w ww.a iw a ns ha .c o mattackevasive ='$attackevasive',allowfloatwin ='$allowfloatwin',creditnotice ='{if $creditnotice}$creditnames{/if}',{ifin_array(CURSCRIPT,array('viewthread','forumdisplay'))}gid =parseInt('$thisgid'){elseif CURSCRIPT =='index'}gid =parseInt('$gid'){else}gid =0{/if},fid =parseInt('$fid'),tid =parseInt('$tid')</script><script type="text/javascript"src="include/js/common.js?{VERHASH}"></script>复制粘贴到header.htm 文件相应的位置(至于这些有什么作用,自己查一下吧)5、将头部的logo“动”起来(图12)找到显示logo 的地方,我这里是:<div class="logo"><a href="index.php">搜球论坛</a></div>将“index.php”和“搜球论坛”分别用$indexname 和$bbname 代替($indexname 是首页文件名的变量,$bbname 是论坛名称变量,其它相同的地方都可以用这两个变量作替换,以增加模版的适应性。