免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 發帖

[版型教學] Discuz模版制作教程(完整版透露)

本帖最後由 lzlt 於 2012-6-24 06:26 編輯

接触Discuz! 有一段时间了,使用的风格都是别人的免费品。一来自己的美工水平实在不行,二来网上很少有比较完整的模板制作教程。因为工作的需要,现特写了一份模板的制作教程。小弟才疏学浅,不对之处还请指正。
    模板制作前请将你的界面设计好,并制作成html+CSS的格式。这里我就以大魔王的“蓝色经典”作为样版(知识共享,希望大魔王不要介意,如有侵权,请及时通知我)。效果图如下:
[attach]7033[/attach]
0908022034e627510c1345a379.jpg.thumb.jpg
(图1)


在开始前,先了介绍一下discuz!的几个模板文件:
1、        header.htm --------------------------------------页面头部
2、        discus.htm---------------------------------------------------------------论坛首页
3、        footer.htm---------------------------------------------------------------页面底部
4、        viewthread--------------------------------------------------------------查看帖子内容

discuz!论坛的页面通常是几个模板文件共同作用下达到的效果,如图1就是header.htm+discus.htm+footer.htm这三个文件共同作用的效果。
Heaer.htm对应的是:
09080220340281a41c03f38666.jpg.thumb.jpg   
(图2)


Footer.htm对应的是:
0908022034f1904f3721b056d2.jpg.thumb.jpg   
(图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:
09080220345f069595b41963c8.jpg.thumb.jpg
(图4)


(2)        在“界面——> 风格管理” 中,在新增界面风格后填入方案名称“test”然后提交即可!
(3)        提交方案名称后,您就可以在界面风格中看到您所定义的新的风格方案。如下图:
090802203443f962dea4d9e587.jpg.thumb.jpg
(图5)


注意上面用红色圆圈圈起来的那幅模版预览图,你的是不是没有显示出来?这需要将你的首页的效果图做成110x120并命名为preview.jpg,将这图片放到test目录下就可以了。到此,一套新的风格模板方案就添加到模板库里了,但还不是我们需要的最终效果,接下来要对模板文件继续进行
调整,以达到想要的最终效果
(4)        点击 [编辑] 后就可以进入该模板的风格配色方案的编辑页面,按照图6把各个对应参数填入相应位置。
0908022035f4af84557a0b56ec.png.thumb.jpg
(图6)

填写好后,点击“提交”,更新一下缓存,浏览论坛首页出现下图:
0908022035858e6270ef4eae3f.jpg.thumb.jpg
(图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文件引入了。进入后台更新一下缓存,现在的效果图如下:
09080220356976a8496a9f22f4.jpg.thumb.jpg   
(图8)


这样就整齐了许多,这时你是不是发觉少了点东西?没错,图片没有显视出来。下面我们先将背景图(也就是CSS文件中引入的图片)显示出来。打开css_append.htm文件,找到所有你引入图片的地方,将路径替换为“{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的一个变量,当模板被解释时,就会用一个值来替换这个变量,这个变量的值可以在后台设置。进入后台后点击“界面——> 风格管理”出现下图:
0908022035692db628e6ae8245.jpg.thumb.jpg   
(图9)


找到你正在制作的test风格,点击“编辑”按钮,出现下图:
09080220358e880c9ec739e3cd.png.thumb.jpg   
(图10)


看到了吧,当模板被解释时,就会用上面所填的路径来替换这个变量。
好了,现在更新缓存再看一下效果:
0908022035bb787ba4495bd57a.jpg.thumb.jpg   
(图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-2009 Comsenz 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', attackevasive = '$attackevasive', allowfloatwin = '$allowfloatwin', creditnotice = '{if $creditnotice}$creditnames{/if}', {if in_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“动”起来
09080220351dbafdbb5e737aaf.png
(图12)


找到显示logo的地方,我这里是:
<div class="logo"><a href="index.php">搜球论坛</a></div>
将“index.php”和“搜球论坛”分别用$indexname和$bbname代替($indexname 是首页文件名的变量,$bbname是论坛名称变量,其它相同的地方都可以用这两个变量作替换,以增加模版的适应性。)
6、        让登陆状态“动”起来
0908022035fcef124b7f2b2a5a.png.thumb.jpg   
(图13)


<div id="umenu">
<ul>
        <li>
                <span class="quicklink_login">欢迎回来,<a href="space.php?uid=1" class="noborder">zncai</a>|
<span id="loginstatus"><a href="member.php?action=switchstatus" title="我要隐身">在线</a></span>|
<a href="logging.php?action=logout&formhash=7edab246">退出</a></span>|
        <a href="pm.php" id="pm_ntc" target="_blank">短消息</a>
        <a id="task_ntc" href="task.php" target="_blank">论坛任务</a>|
        <a href="http://127.0.0.1/UCenter_Home/space.php?uid=1" target="_blank">空间</a>
        <a href="memcp.php">个人中心</a>|
    <a href="admincp.php" target="_blank">系统设置</a>
  </li>
</ul>
        </div>
上面是我设计的效果图和相应的代码,这是登陆时的显示状态,当然我还希望没登陆的时候这样显示:
0908022035d1e75e278ad3aada.png.thumb.jpg   
(图14)

0908022035d1e75e278ad3aada.png.thumb.jpg (3.23 KB)

0908022035d1e75e278ad3aada.png.thumb.jpg

0908022035d99b8274c8c8d742.png.thumb.jpg (12.29 KB)

0908022035d99b8274c8c8d742.png.thumb.jpg

0908022035fcef124b7f2b2a5a.png.thumb.jpg (3.26 KB)

0908022035fcef124b7f2b2a5a.png.thumb.jpg

0908022035f597ead0ecac5b41.jpg.thumb.jpg (10.51 KB)

0908022035f597ead0ecac5b41.jpg.thumb.jpg

0908022036ce4ff828a37940fa.jpg.thumb.jpg (56.12 KB)

0908022036ce4ff828a37940fa.jpg.thumb.jpg

0908022035bb787ba4495bd57a.jpg.thumb.jpg (40.91 KB)

0908022035bb787ba4495bd57a.jpg.thumb.jpg

0908022035f597ead0ecac5b41.jpg.thumb.jpg (10.51 KB)

0908022035f597ead0ecac5b41.jpg.thumb.jpg

0908022035c13ef1ce91005621.png (1.36 KB)

0908022035c13ef1ce91005621.png

0908022035c863bd85e738d770.jpg.thumb.jpg (48.74 KB)

0908022035c863bd85e738d770.jpg.thumb.jpg

0908022035e325a5d8132304b2.jpg.thumb.jpg (27 KB)

0908022035e325a5d8132304b2.jpg.thumb.jpg

0908022035c9e35f4d462265e1.png (9.16 KB)

0908022035c9e35f4d462265e1.png

0908022035d99b8274c8c8d742.png.thumb.jpg (12.29 KB)

0908022035d99b8274c8c8d742.png.thumb.jpg

090802203519c00f6587bf0dac.jpg.thumb.jpg (61.49 KB)

090802203519c00f6587bf0dac.jpg.thumb.jpg

0908022035b388e7c906732d26.jpg.thumb.jpg (45.92 KB)

0908022035b388e7c906732d26.jpg.thumb.jpg

0908022036408b947ae6a1239c.png.thumb.jpg (16.56 KB)

0908022036408b947ae6a1239c.png.thumb.jpg

0908022036ce4ff828a37940fa.jpg.thumb.jpg (56.12 KB)

0908022036ce4ff828a37940fa.jpg.thumb.jpg

4

評分人數

  • 4rphotoclub

  • lumea98

  • bossll

  • Dzcode

謝謝樓主分享

TOP

你的熱心提醒,大家才不會又弄錯了.

TOP

果然很麻烦
楼主写这篇文章 还要配图 更加花时间

结果呢:支持者寡
悲哀

如果设为 回复可见
肯定就火了

flash之路欢迎你http://flashroad.joinbbs.net

TOP

改不好會否不能還原
生活只枯不謝
心態空虛不偽
誰找誰碰了誰
你尋你我尋我
點點色點點彩
繼續我的人生

TOP

看得我有点晕= = 我先马着先。

TOP

謝謝樓主無私的分享,感謝     

TOP

謝謝分享

TOP

卧槽太厉害了。。。。

TOP

很强大 谢谢分享!
怡心苑音画论坛

TOP

返回列表