henry 2008-1-15 20:57
LEOBBS的論壇風格介面是如何做的??
阿喀大大-n(n$iL(]
U2t*? s
我想問, 如果LEOBBS的論壇風格介面是如何做的??
5Y"|.N;}$q
本想用現有風格更改, 但有亂馬問題."J4yU2d&N:xR{
七星的資料又沒有了, 你有沒有方法做介面Wd"b a
UH
我的功力有限, 程序碼看不明白.)r!kf~ti^ xC8vc!?
如果只是圖像, 我可有十足信心辦妥
!xD$Q]j#n}
謝謝!!
阿喀琉斯 2008-1-16 01:12
leobbs的论坛界面其实很简单的。但是却比较琐碎。变量、代码、图片等散布在不同目录和配置文件里。要完整创作一套风格,各部分都要齐整,有时候需要反复调试~
Gd0b:lVq)a(x
&zNT8kU?!}3]
cgi-bin/data/myskin 这个目录里的配置文件主要定义了界面风格的顶部内容,也就是$yemei 和 $daohang ,以供 template 这个目录里的风格配置文件调用。8^Nh"E)Ya
c1f$ZK.{*b~(yI
cgi-bin/data/skin 这个目录里的配置文件主要对论坛风格的一些变量进行定义,比如颜色,字体等等。也是供 template 这个目录里的风格配置文件调用。论坛风格的名称和数量都是从这个目录里直接读取文件名。6d)V-P1Hx0Q7t)y
'x1l!U%V^
b{
cgi-bin/data/template 这个目录里就是标准的、主要的论坛风格配置文件了。仔细看这个文件里,其实定义了论坛界面中,主体内容前面和后面的全部代码,以及每个表格的上下部分的修饰条。 其中“$lbboard_main”这个变量就是论坛的主体内容了,随着访问页的不同,主体内容改变,其余的代码部分是不会变的。
S`AF/RnW'P;l-e
CXI8hd&FB*K e
风格配套的图片目录在 non-cgi/images 下,由前面的配置文件里的变量指定目录名。"ON%a DV
+bC$s?BP-G
综上所述,创作一套leobbs的风格还是比较麻烦的。最好的方法就是用现有风格修改。把现有风格复制一套,重新命名,包括第二个配置文件里的风格名称简写变量,中文名称,第一、三个配置文件和图片目录的简写名称,都要改掉,以免与现有风格重复。要保证一一对应。
+J
zi"q@7V1q
TRKNa6L*E&K
然后根据你想要的效果来修改三个配置文件,和替换图片。第一个文件是修改界面的顶部的,第三个文件是控制总体效果的,第二个文件是修改字体之类的细节的。如果你对html网页制作有一定掌握的话,就能够很方便的修改和调试界面了。e%v6j6ZgEtQ$^
dp;I2k6G
之所以你用现成的风格改会出现乱码,应该是因为这些风格通常是简体造成的。第三个配置文件里有一句:d3r7l;s%I
F|-J@
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
D&u*Q7_o0Ud[
这里的“gb2312”已经指定了编码。你需要把它改为“big5”,然后就是需要把配置文件里的简体汉字替换成繁体字了。(当然,简体汉字在繁体操作系统上通常是乱码,需要翻译软件帮忙的).S ~
R*LN/l
dCpOk
7@H)D*nL
Q
修改到这一步,如果刷新界面还是出现错误的话,就是很重要的一个原因了,说明你繁体化的汉字里包含了“冲码”。在perl编程中,某些特殊繁体汉字的编码会与perl的一些运行代码相同,这样就会造成perl程序运行失误,leobbs就无法正常显示了。因此,需要在leobbs程序里预先进行设置,用指定的变量来代替这些汉字,以便正常输出显示。这就叫冲码。,hDTJ*y-}x8lO
$|S!T/Wm/m
繁化版的leobbs应该是预先内置了常见冲码的,大概是在bbs.lib.pl这个文件的开头部分吧,你看看先。我没有用过繁体版,所以不是很了解。“误”、“才”等等汉字都属于冲码。
%z/T
p{8ET(d
你找到这些冲码的替换变量,然后在你的风格里找到有这样的汉字,用各自的对应变量一一替换就好了。
)b5s0^G@1p
7ywIW5?+I(k Y
以上简单说了说leobbs风格的制作。再讲几点我自己总结的leobbs代码编写的常见出错之处:4?P$D,kr+qmh8S&c
7ue@d1R+c%n]y
一、代码要对应,比如引号 " 开始的,一定要有另一个 " 来结束。否则程序会判断直到下一个 " 之间的全部内容为一句代码。同理,还包括定义符号 ~ 、括号 ( ) 、{ } ,等等;mT+m#_?p+WT
c
&UutZ%}t&R4ME7C
二、一句代码结束的时候,一定要加上分号“ ; ”来收尾,否则程序认为代码还未结束,会把后面的内容继续囊括进来运行而出错;Q5bb)jO.FQ#U'k
H i$J_!Ah
三、全部的代码都应该是用英文字符写成,而不要包含中文字符。同一个字符,英文和中文的写法是不同的。例如句号,中文是“。”而英文是一个小点“.”。中文字符会被直接显示到屏幕上而不能作为运行代码。因而正确的使用字符能保证程序的运行;4X.Z3^ \b+z
8J bTREC:Y
四、在leobbs的程序文件中,
2p2u*I.Vl
J
“&”通常表明调用预先设定好的子程序段,
$RT7NlzVp
“$”表明这是一个变量,而变量名称后面再加一个点“.”表示累加,在前面的内容的基础上再增加,
0\a(l_v
“\t”代表输出了一个特殊空格,不是键盘的空格键按出来的小空格,而是“Tab”键按出来的那种,通常用来写入数据文件的时候分隔不同的数据,
'FH!m@9G jYa4N
“\n”表示输出一个换行,
'[Ziz)_ I
“@”代表这是一个数组。这个比较复杂一点,在读写多个变量的时候才会用它;