教你Discuz模板制作详细步骤_第1页
教你Discuz模板制作详细步骤_第2页
教你Discuz模板制作详细步骤_第3页
教你Discuz模板制作详细步骤_第4页
教你Discuz模板制作详细步骤_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、接触 Discuz! 有一段时间了,使用的风格都是别人的免费品。一来自己的 美工 水平实在不行, 二来网上很少有比较完整的模板制作教程。 因为工作的需要, 现特写了一份模板的制作教程。小弟才疏学浅,不对之处还请指正。模板制作前请将你的 界面设计 好,并制作成html+CSS 的格式。这里我就以 大魔王的“蓝色经典”作为样版(知识共享,希望大魔王不要介意,如有侵权,请及时通知我)。效果图如下:(图 1)在开始前,先了介绍一下 discuz! 的几个模板文件: 页面头部论坛首页页面底部viewthread 查看帖子内容discuz ! 论坛的页面通常是几个模板文件共同作用下达到的效果, 如图 1

2、就是 +这三个文件共同作用的效果。对应的是:(图 2)对应的是:3)剩下的就是文件显示的了。当然你要将首页显示的效果就制作成一个文件模板也是可以的,这里之所以分开, 是因为和文件通常还会被其它的模版文件引用。 也就是说, 其它的页面 (比如发贴的页面)的头部、底部与首页的头部、底部完全一样,分开来写就可以达到重复利用,减少劳动的效果。下面我们就开始制作:首先,现在我要制作的这套模板叫 test ,那么我就在 templates 目录下建立一个 test 目录。 在 test 目录下再新建一个images 文件夹用于存放这套模板的图片,把切好的所有图片保存到这个文件夹中。 templates/t

3、est 文件夹用于存放这套模板的 htm 文件,在这个目录中新建三个文件 、,打开你设计好的主页html 文件,将你想作为头部的那一段代码复制粘贴到 文件中,相应的将作为底部的那一段代码复制粘贴到文件中, 其余的代码复制粘贴到文件中。最后在文件的最顶部和最底部分别加上:subtemplate header和subtemplate footer这两句算是discuz 的语言,意思是将和文件包含进来,这样就构成了一个完整的主页面了。接下来的工作要在论坛后台设置中来完成进入论坛点击 “系统设置 界面 模板管理”,在新增模板后填入模板名称, 模板文件所在目录, 板权信息然后提交即可! 如图4:4)在“

4、界面 风格管理” 中, 在新增界面风格后填入方案名称“ test ”然后提交即可!提交方案名称后,您就可以在界面风格中看到您所定义的新的风格方案。如下图:5)注意上面用红色圆圈圈起来的那幅模版预览图, 你的是不是没有显示出来这需要将你的首页的效果图做成110 x120 并命名为, 将这 图片放到 test 目录下就可以了。 到此, 一套新的风格模板方案就添加到模板库里了, 但还不是我们需要的最终效果, 接下来要对模板文件继续进行调整,以达到想要的最终效果( 4 )点击 编辑 后就可以进入该模板的风格 配色方案 的编辑页面,按照图 6 把各个对应参数填入相应位置。6)填写好后,点击“提交”,更新

5、一下缓存,浏览论坛首页出现下图:呵呵,有内容出来了,可是排版上却变得乱七八糟了,这是因为还没有引入 CSS 文件。这时将原来设计好的 CSS文件放到你模板目录下(templates/test ),并将它重命名为(注意:改后的文件名是css_append,后缀名是htm)。接着打开文件,找到你引入CSSt件的语句,这会因为引入的语句不同而不同,我这里是 import url(css/;将这个替换为:$rsshead $extraheadsubtemplate css_script这样就可以将你而CSW件引入了。进入后台更新一下缓存,现在的效果图如下:这样就整齐了许多, 这时你是不是发觉少了点东西

6、没错, 图片没有显视出来。 下面我们先将背景图(也就是css文件中引入的图片)显示出来。打开文件,找到所有你引入图片的地方,将路径替换为 STYLEIMGDIR)。例如:这里有一句:#footerpadding:1em 0;background:url(images/ 将它改为:#footerpadding:1em 0;background:url(STYLEIMGDIR/ repeat-x top;STYLEIMGDIR法际上是discuz的一个变量,当模板被解释时,就会用一个值来替换这个变量,这个变量的值可以在后台设置。进入后台后点击“界面 风格管理”出现下图:找到你正在制作的 test

7、风格,点击“编辑”按钮,出现下图:看到了吧,当模板被解释时,就会用上面所填的路径来替换这个变量。好了,现在更新缓存再看一下效果:哈哈, 和原来设计的效果图一样了, 是否有一种成功的喜悦虽然, 到这里已经迈出了成功的一步, 但革命尚未成功, 同志仍需努力! 现在制作的模版是静态的, 也就是说就算你发贴了,里面的内容也不会改变的,甚至你点个连接都会出错的。下面我们就来让它“动”起来。一、修改头部文件打开正在制作的模板文件( 以下简称,以及默认模板templatesdefault的文件(以下简称“默认”)。将文件的标题用$navtitle $bbname$seotitle 来代替。例如:我这里是:“

8、 搜球论坛 ”改后就变成了“ $navtitle $bbname$seotitle ”看里是否有类似“ ”这样的语句,有就删除。然后,将默认里的以下语句:复制粘贴到文件相应的位置(注这些对界面没什么影响,但对SEO优化有帮助)将默认里的以下语句:var STYLEID = STYLEID, IMGDIR = IMGDIR, VERHASH= VERHASH, charset = $charset, discuz_uid = $discuz_uid, cookiedomain = $cookiedomain, cookiepath = $cookiepath, attackevasive = $

9、attackevasive, allowfloatwin = $allowfloatwin, creditnotice = if$creditnotice$creditnames/if, if in_array(CURSCRIPT, array(viewthread, forumdisplay)gid = parseInt($thisgid)elseif CURSCRIPT = indexgid = parseInt($gid)elsegid = 0/if, fid = parseInt($fid), tid =parseInt($tid) 复制粘贴到文件相应的位置(至于这些有什么作用,自己查

10、一下吧) 5、将头部的logo “动”起来(图找到显示logo的地方,我这里是:搜球论坛 将和“搜球论坛”分别用$indexname和$bbname(弋替($indexname是首页文件名的变量,$bbnamel1论坛名称变量,其它相同的地方都可以用这两个变量作替换,以增加模版的适应性。)6、让登陆状态“动”起来(图 13) 欢迎回来,zncai| 在线 | 退出 |a href= id=pm_ntc target=_blank 短消息 a id=task_ntc href= target=_blank论坛任务 |a href= target=_blank 空间 a href= 个人中心 |

11、系统设置 上面是我设计的效果图和相应的代码,这是登陆时的显示状态,当然我还希望没登陆的时候这样显示:(图 14)在默认文件中找到:$discuz_usersslang login_invisible_modelang login_normal_mode|lang my_postslang space_shortlang space_shorta href= id=pm_ntc class=new title=lang pm_new target=_blanklang pm($_DCOOKIEpmnum)lang task|lang user_center 1-lang modcplang ad

12、mincplang logout$_DCOOKIEloginuserlang activationlang logout$reglinknamelang login用这一段代码替换上面红色黑体部份,并在的后面加上这一句:还是那句话,想知到上面代码具体的意思,只能你自己去查找,我不可能一个一个的来解释。7、让菜单“动”起来(图 15) 论坛搜索 插件抽奖系统 聊天室 竞拍中心 帮助导航 搜球网社 区 在默认文件中找到: 0-if(top = self) if ($_DCACHEsettingsframeon = 2 &!defined(CACHE_FILE) & in_array(CURSCRI

13、PT, array(index, forumdisplay, viewthread) & ($_DCOOKIEframeon = yes & $_GETframeon != no) | (empty($_DCOOKIEframeon) & empty($_GETframeon) =frameon=yes&referer=+escape; /if(lang frameon_column); else(lang frameon_flat); $navnav 0 & $moduleadminid =$adminid)-$moduleurl 0) | ($navlevel = 3 &$adminid

14、= 1)-$navnaveval $mnid = $BASEFILENAME;eval $mnid = $navmng1;var currentMenu = $(mn_$mnid) $(mn_$mnid): $(mn_$navmns0);=current; function setstyle(styleid) str = unescape(echo str_replace(,, urlencode($_SERVERQUERY_STRING);str = (/(A|&)styleid=d+/ig, );str = (str != str + & : ) + styleid= + styleid=

15、$BASESCRIPT + str;$stylename用这一段代码替换上面红色黑体部份,这样就实现了菜单的调用。到此整个头部文件模板就制作好了。、制作首页主体部分同样打开正在制作的模板文件(以下简称,以及默认模板templatesdefault 的文件(以下简称“默认”)导航条(图 16) 搜球论坛 首页 “搜球论坛”和“首页”分别用“ $bbname和“lang home ”代替版块列表(图 17) 小叶 新手指南 新手指南版主:yysh2 /2我是新手yysh - 2009-6-25 17:03上面只列出了“新手指南”区块的代码,其它区块雷同就不再列出了。在默认文件中找到下面这段代码:(

16、绿色字体是我添加的注释) catfid/ 这里有几个变量,简单来说是用于后台控制的,不用细究/ 如果下级子版块横排数为 0则按下面版式来显示版块列表,横排数可在后台设置的/ 循环语句,循环次数为此分区的子块版块数 $forumicon/ 版块图标$forumname / 版块转向 URL , $forumname 版块名称 (lang index_today: $forumtodayposts)/ 如果今日发贴数不为 0 则显示$forumdescription/ 版块简介lang forum_subforums: $forumsubforums/ 是否显示子版块/ 如果版主不为空/ 版主以平

17、面方式显示lang forum_moderators: $forummoderators/ 否则版主以下拉菜单方式显示lang forum_moderators$forummoderators N/A $forumthreads / $forumposts/ $forumthreads 主题数,$forumposts总发贴数/ 是否为私密版块lang private_forumlang url_link/ 显示最后发贴的信息echo cutstr($forumlastpostsubject, 30)$forumlastpostauthorlang anonymous-$forumlastpos

18、tdatelinelang never / 从未发贴/循环显示版块列表结束/如果下级子版块横排数不为0则按下面版式来显示版块列表,下面就不注悉了,基体和上面是一样的,只是显示的方式不同而已!-if $forumorderid $forumname (lang index_today:$forumtodayposts)lang forum_threads: $forumthreads, langforum_posts: $forumpostslang private_forumlang forum_lastpost:$forumlastpostdatelinelang neverlang url

19、_link$catendrows/ 下面是关于广告的一些代码,不是重点,这里就不细究了上面这段代码便可以罗列出区块和版块,但该如何加入到我们制作的模块中呢首先将你设计的显示版块列表的那些代码全部清空,然后将上面这段添加到相应的位置。这样就可以将版块列表显示出来了, 但很有可能显示的内容是乱七八糟的。这是因为,你加入这段代码的CS砥名和你原来的不一样了,这就需要你在文件里重新定义CSS以达到你想要的效果。当然你可以发现上面这段代码有些地方使用变量来作为cssa名了,这是为了能够 在后台控制显示的样式。为了简单,这里暂不细究,你只要将这些重新命名,在文件里定义就行了。友情链接和在线会员(图 18)

20、显示这两块的实现代码也不少,这里不再列出来分析了,因为如果你能将上面的 版块列表弄明白,这两块也就自然自知怎样处理了。数据调用数据调用就不能像之前那样简单地从默认模版那里拷贝、粘贴就可以了。这需要利用后台才行。在开始之前先看一下,我们要实现的效果(图 19)模块脚本”,这里显示了所在的模块脚本。点击“我的助手”后面的“添加”出 现下图,数据调用 这里显示的内容是调用了 “我的助手”(“我的助手”属于模块脚本,而模块脚本为数据调用模块的一种扩展,适用于懂得书写PHP程序的程序员)。登陆后台“工具(图 20)“模块名称”为必填项,其它的可以不填。点击“预览”按钮,出现下图:21)将“ eval r

21、equest( 小叶 _我的助手 ); ”这句拷贝下来,并按“提交”按钮;接着用“ eval request( 小叶_我的助手); ”这句替换相应的代码。 更新一下缓存再浏览主页, 这时会发现, 显示的内容和格式与想要的结果不一样。 这是因为模 块脚本也用它自己的模版,像“我的助手”的模块脚本为“ include/request/ 文件,如果当前模版文件夹 中有文件,则“我的助手”使用当前的文件作为模版,否则使用默认模版文件夹“ templates/default/ ”目录下的文件作为模版。所以,如果你要实现你自己想要的 形式就要将默认模版文件夹“ templates/default/ ”目录

22、下的文件复制到当前模版文件夹中,并作相应的修改才行。如果要图 10 的效果,可以参考大魔王的“蓝色经典”模版中的文件,值得注意的是,这个的 CSS样式同样要在文件中定义。下面教大家另一种非模块脚本数据调用,这种调用包括:主题列表、版块列表、主题附件等等。 很多人喜欢在首页将贴中的图片以幻灯片的形式来显示, 这属于主题附件调用, 下面就以这种调用来演示非模块脚本的数据调用。 先看一下, 要实现的效果:(图 22)images/goto=findpost&ptid=4&pid=12 我喜欢足球images/goto=findpost&ptid=3&pid=11 天下电竞将你设计的显示图片幻灯片的

23、javascript 文件(我这里是)拷贝到当前制作的模版文件夹 下。主题附件”,将下面的代码填到图中所示的地方添加 数据调用 登陆后台“工具 nodeimgfilelinksubject /nodescript language=javascript src=templates/test/(注:script language=javascript src= 这是你设计的显示图片幻灯片的js文件,注意文件的路径要正确。因为我将这个文件放在了 “ templates/test/ 目录下,故src=templates/test /。可能你设计图片幻灯片显示的javascript程序并不单独放在一个

24、js文件中,而是嵌套在html文档中。这时,你就应该将你html文档中的javascript程序来代替“script language=javascriptsrc=templates/test/ 。 )填好后,点击“预览”按钮,预览一下效果。满意后,将“ evalrequest。小叶_首页幻灯图片); 这句替换上面红色黑体那部分代码,这样就实现了图片的调用。下面分析一下其中的原理,”node node ”可以将它看作一个循环结构,“img巾le ”代表的是图片的URL “link ”代表的是附件所属帖的链接,“subject ”代表的是附件所属贴的主题标题,输出的时候除了这些变量会变成相应的值

25、 外,其它的都会原样输出,也就是说“eval request。小叶_首页幻灯图片); “这个语句在输出的时候代码结构与上面红色黑体部分的代码是一样的。既然“ eval request。小叶_首页幻灯图片); 这个语句输出的是你在数据调用编辑框中填写的代码,那么上面数 据调用编辑框中填写的代码就不是唯一的了。例如,你可以在数据调用编辑框中填写以下代码:nodeimgfilelinksubject /node当然这时你就应该用“ eval request。小叶 _首页幻夕T图片); 这个语句代替你模版文件中的这段代码:images/goto=findpost&ptid=4&pid=12我喜欢足球images/goto=findpo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论