发新话题
打印

[讨论] LEOBBS的論壇風格介面是如何做的??

本主题由 阿喀琉斯 于 2008-1-16 01:12 移动
阿喀大大
! z, h* K6 _9 i# h4 x- ?+ e我想問, 如果LEOBBS的論壇風格介面是如何做的??
0 v+ D- Q' K% q* R" L7 h  m# l本想用現有風格更改, 但有亂馬問題.! i8 }7 t( A' H. n4 I+ r
七星的資料又沒有了, 你有沒有方法做介面
2 C; b7 U; d* N我的功力有限, 程序碼看不明白.
- S2 v3 u2 i. `8 u( O5 f如果只是圖像, 我可有十足信心辦妥
  B( n( ~; ~6 \0 N- k7 n. v謝謝!!

TOP

leobbs的论坛界面其实很简单的。但是却比较琐碎。变量、代码、图片等散布在不同目录和配置文件里。要完整创作一套风格,各部分都要齐整,有时候需要反复调试~
, D" L8 M1 R' A# M; w3 A. ~4 H$ C& h6 L2 W8 V
cgi-bin/data/myskin 这个目录里的配置文件主要定义了界面风格的顶部内容,也就是$yemei 和 $daohang ,以供 template 这个目录里的风格配置文件调用。  e  V# Z8 w. P. l  i3 H% T

; C- X3 {9 V9 d; Z* d7 e# vcgi-bin/data/skin 这个目录里的配置文件主要对论坛风格的一些变量进行定义,比如颜色,字体等等。也是供 template 这个目录里的风格配置文件调用。论坛风格的名称和数量都是从这个目录里直接读取文件名。7 f  a5 U* ]9 M1 K0 X3 m

) m, j; }2 H* l1 Ucgi-bin/data/template 这个目录里就是标准的、主要的论坛风格配置文件了。仔细看这个文件里,其实定义了论坛界面中,主体内容前面和后面的全部代码,以及每个表格的上下部分的修饰条。 其中“$lbboard_main”这个变量就是论坛的主体内容了,随着访问页的不同,主体内容改变,其余的代码部分是不会变的。
# o5 M$ l7 Y& t5 i6 E, t, y9 H4 ?( H* B
风格配套的图片目录在 non-cgi/images 下,由前面的配置文件里的变量指定目录名。
- \2 y% Z% l4 O5 W) x1 y+ H, J1 h7 n( f, a
综上所述,创作一套leobbs的风格还是比较麻烦的。最好的方法就是用现有风格修改。把现有风格复制一套,重新命名,包括第二个配置文件里的风格名称简写变量,中文名称,第一、三个配置文件和图片目录的简写名称,都要改掉,以免与现有风格重复。要保证一一对应。
: C/ P3 C, r+ S$ f/ z( Y$ J3 j. ?9 y1 y) l. A0 o
然后根据你想要的效果来修改三个配置文件,和替换图片。第一个文件是修改界面的顶部的,第三个文件是控制总体效果的,第二个文件是修改字体之类的细节的。如果你对html网页制作有一定掌握的话,就能够很方便的修改和调试界面了。1 p! @4 W/ i* k/ I

- i- ~* {( V+ c( K1 m2 q0 U4 }- d% _( K之所以你用现成的风格改会出现乱码,应该是因为这些风格通常是简体造成的。第三个配置文件里有一句:0 x2 ~8 m# ?3 o1 K: \: V" B$ C
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">' I7 f* t  A: V+ y
这里的“gb2312”已经指定了编码。你需要把它改为“big5”,然后就是需要把配置文件里的简体汉字替换成繁体字了。(当然,简体汉字在繁体操作系统上通常是乱码,需要翻译软件帮忙的), s% w0 P0 Z/ Z
$ _( ?  P. D$ @) U3 W5 |3 P
修改到这一步,如果刷新界面还是出现错误的话,就是很重要的一个原因了,说明你繁体化的汉字里包含了“冲码”。在perl编程中,某些特殊繁体汉字的编码会与perl的一些运行代码相同,这样就会造成perl程序运行失误,leobbs就无法正常显示了。因此,需要在leobbs程序里预先进行设置,用指定的变量来代替这些汉字,以便正常输出显示。这就叫冲码。9 {, q7 b1 W. X8 K1 F. {5 I

' R1 `' {2 U& n* \3 `  d# d3 \繁化版的leobbs应该是预先内置了常见冲码的,大概是在bbs.lib.pl这个文件的开头部分吧,你看看先。我没有用过繁体版,所以不是很了解。“误”、“才”等等汉字都属于冲码。
2 q5 g& c1 V" D0 p* k. q7 ?你找到这些冲码的替换变量,然后在你的风格里找到有这样的汉字,用各自的对应变量一一替换就好了。
" M# h& ^$ {7 @5 v
0 B+ p# r* z; w: U& Z0 o6 r以上简单说了说leobbs风格的制作。再讲几点我自己总结的leobbs代码编写的常见出错之处:3 P, `' x9 V! m* T9 ]( v* U
7 h( \) ]. K2 S2 E' n
一、代码要对应,比如引号 " 开始的,一定要有另一个 " 来结束。否则程序会判断直到下一个 " 之间的全部内容为一句代码。同理,还包括定义符号 ~ 、括号 ( ) 、{ } ,等等;6 ?9 e9 q2 L7 @. c
/ @) z6 J/ i4 I, Z4 M3 ^, b
二、一句代码结束的时候,一定要加上分号“ ; ”来收尾,否则程序认为代码还未结束,会把后面的内容继续囊括进来运行而出错;
$ d9 [, u* q3 W/ e( v$ I2 G; p) }! V
) \/ C7 t3 m4 V0 H2 [三、全部的代码都应该是用英文字符写成,而不要包含中文字符。同一个字符,英文和中文的写法是不同的。例如句号,中文是“。”而英文是一个小点“.”。中文字符会被直接显示到屏幕上而不能作为运行代码。因而正确的使用字符能保证程序的运行;8 o- P+ ?9 P1 I) |3 W

5 Y; {8 z8 i+ v! l四、在leobbs的程序文件中,4 s6 Z. o. Y0 a
  “&”通常表明调用预先设定好的子程序段,
6 o" _! X4 w3 _8 h9 M  “$”表明这是一个变量,而变量名称后面再加一个点“.”表示累加,在前面的内容的基础上再增加,. [; \( ]# j+ q' z4 V, V9 V# p
  “\t”代表输出了一个特殊空格,不是键盘的空格键按出来的小空格,而是“Tab”键按出来的那种,通常用来写入数据文件的时候分隔不同的数据,
. [4 v2 x8 R5 J" w6 |8 J  “\n”表示输出一个换行,
. |8 N2 \/ H; b% m$ @8 M; ?8 ]5 [  “@”代表这是一个数组。这个比较复杂一点,在读写多个变量的时候才会用它;
1 ^0 R+ p. D$ p- O0 a& ]; i  “#” 代表注释,跟在这个代码后面直到换行之前的内容都只是文件里的注释,不会起效的,不会被perl程序运行,用作在程序文件里做标记;
7 O- ~$ q7 [4 [9 q8 u7 b& l  v+ M& O6 k! q5 _
五、在leobbs的程序文件中,程序本身计算和运行的代码,与输出屏幕显示的代码,经常是混杂在一起的。leobbs指定了一个变量来作为整个输出到你的电脑屏幕上具体效果的代码,就是“$output”。而程序文件中不断出现类似以下的:
/ h) L3 W+ r5 \4 ~' K, F# r, r' L. ?
引用:
   $output .= qq~中间内容省略~;
: O. U" H$ G7 G这样的代码,那个点表示在累加内容到 $output 中去,留到最后总体输出到屏幕。如果没有这个点儿,那么就等于对 $output 重新定义了。之前 $output 的内容或定义就废止了;
3 Z' s  M4 Y* r  o4 a+ {  G/ v* z, q0 r; N0 J6 n. D
六、“qq~”和“~;”是leobbs常用的定义语句,通俗说,是对前面这个变量的解释和指定。上面这句也等同于:4 R, O& a, I, }2 x) J& b
引用:
    $output .= "中间内容省略";
& p: A  m8 F# g- g# m. K
“qq~”和“~;”与两个英文字符引号 " 的作用是一样的,但是各自对应,不能混用。
+ a. W6 R* N4 }6 R% T英文字符的双引号 " 和单引号 ' 都可以用,但是同样不能混用。双对双,单对单。
. K1 c3 \% z1 z8 I有的比较复杂的语句里,会出现引号嵌套的现象。这个时候一定要注意对应,各自是有层次的,依次逐层剥开都不能乱,如“ 双 … 单 … 单 … 双 ”,就像剥水果一样,原理同第一条;# U3 n% j& N0 @" Z" U# m  f

% a8 H9 I0 ]% u: b7 j* o七、有的时候需要输出比如“$”、“&”、“#”等特殊字符到屏幕上显示出来,而不是把它们当作运行符号,那么,在这些字符前面加一个反斜杠“\”就可以了,就可以取消它们在perl中的功能而当作普通字符显示出来了。
. [$ p" j2 O9 ^9 _& P例如“$inmembername”在程序中是访问者的用户名的代码,而“\$inmembername”就是一普通字符串了,会直接在屏幕上显示为 $inmembername 。8 Z& I( D0 [; t5 W2 X# @8 T

# e- `2 V# ]$ ~& G5 X2 P" e" ^3 J. ?5 I
以上是我临时总结的一小部分容易出错的地方,并不全面,不过熟悉以后应该对你编写leobbs风格的代码有所帮助:)
怨去吹箫,狂来说剑,两样销魂味。

TOP

農曆新年將至, 因為時間的關係,我已經決定用"綠野仙踪(LEOBBS)"的風格來修改.
* n, H3 Y8 `0 ]7 k今天已經改了幾張圖了, 不過我想把頂點的圖像轉用FLASH,
4 t) q2 {0 h# ?( x4 z但加了FLASH語法後, 卻沒有顯示出來, 為什麼呢?
8 }: ~! I5 J; z! c$ k. V' g& |! g天高雲談又可以用FLASH??奇怪

TOP

这个肯定是html代码的编写有误了~请再仔细检查一下~
怨去吹箫,狂来说剑,两样销魂味。

TOP

又有問題~
* P/ T* K9 ^  e7 V我想把論壇弄闊一點, 又找不到該數量
: p0 r5 y( H5 X2 I. e/ A8 E是在那個文件內設定??

TOP

是 cgi-bin/data/skin 下面的文件里的 $tablewidth
怨去吹箫,狂来说剑,两样销魂味。

TOP

OK 了, 啺曬你 ; E% d- D" \1 Y  p
, c- z1 f" Y: N# D! w1 d, Z
ps :差不多完工....3 K3 B* G! g) o2 Q; _: ~
3 Z! E& f) o) e
[ 本帖最后由 henry 于 2008-1-23 11:33 编辑 ]

TOP

我看不懂你的话啊~
怨去吹箫,狂来说剑,两样销魂味。

TOP

對不住~我用了廣東話.9 g7 T& e8 [* f+ r+ C: c! \, d4 m% m
普通話翻譯~~! V7 |- c2 i, v8 Q+ F2 I6 n9 I) z
就是# n# r. N' r) p% K. u
.
+ [' K/ A& r3 @.
, O1 D* H9 ]& x+ b.
  A! p/ x# t- D# T.  X3 N- E4 o% D4 q
.
, H, `+ Q$ v+ R" C.
! o6 c8 \8 [4 j% t4 [% Y8 |
) r/ m3 q1 F$ X& d
) J: P; B" F4 n3 i/ T
) e" Q% r3 o* s, |' O% J8 l5 k$ A; c, A
: P: F+ V  Z* `3 M: o3 B1 @
) Q, y% r' D, h
7 z) I7 o# ~/ t2 z7 w; O

9 `& i5 c& c0 J: [1 D! F3 N+ {  A  r& {8 M9 Q" [
/ J# Z' s9 M: Q0 l# M# [% N
1 N! j  w  j" r( A: Z
. A& h7 u# ^0 W, Y

% \9 U; Q, z; e+ K
/ K* v7 J- C& P3 K. h$ b"我愛你~"   yeah
$ I. N, E3 q0 @0 m, [
1 @+ N( p, O2 A+ N0 V6 WPS: 說說笑而已~~你的baby幾時生產, 知道是男仔或女仔未??
9 m. t* H2 J4 Z- z) p8 j! h
9 x8 k8 Z) y* k& k[ 本帖最后由 henry 于 2008-1-23 23:32 编辑 ]

TOP

发新话题
 


当前时区 GMT+8, 现在时间是 2008-7-6 19:40