航空论坛_航空翻译_民航英语翻译_飞行翻译

标题: dedecms调用discuz论坛帖子和图片方法大全 [打印本页]

作者: 航空    时间: 2010-8-22 01:05:23     标题: dedecms调用discuz论坛帖子和图片方法大全

调用帖子内容摘要信息
& ]( S1 [8 Y( B& T{dede:loop table="cdb_posts" sort="tid" row="3"}
! H; s# X6 A; e- o' k  Q  [& {' A<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',100)" /]</a>
+ I4 A5 d% H- J  Q# y[field:message function="cn_substr('@me',46)" /]...<a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[查看全文]</a> + A6 U# j& C% e) _- _+ K7 J5 Z
</li>
' v- {$ R  O( i" p* t; I: z6 a% a{/dede:loop}
! S7 r3 |& Y' K+ C% e: ^
调用查看次数最多的帖子。 ) p! T: Q7 E/ v3 |4 R9 L
{dede:loop table="cdb_threads" if="fid=4 and displayorder!=-1" sort="views" row="8"}
3 s3 R1 S* r4 u8 g& e<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',46)" /]</a>
; Y% d2 [2 i9 a3 H  l[[field:lastpost function="date('m-d','@me')" /]] 3 a- v+ M  g' K3 F' E: T
</li> 6 v7 I6 E. o8 P. H  `
{/dede:loop} 9 L; @7 n6 Y2 P4 D; W4 D
调用回复次数最多的帖子。 - F# ], J8 L# O3 v% q
{dede:loop table="cdb_threads" if="fid=4 and displayorder!=-1" sort="replies" row="8"}
6 C9 U( V$ `+ K$ }# p# e<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',46)" /]</a> * K. S& ?3 T  q1 W/ p! S
[[field:lastpost function="date('m-d','@me')" /]]
1 D9 t- e: P  W' d( |7 o7 y. C+ Z</li>
* G  b: K+ @6 t) g. I{/dede:loop}
: T- a, ?! k7 t  I. [# G6 ~# m调用精华帖子 帖子分为1级精华2级精华3级精华。精华越高排在最前面 ! s+ g" f9 h+ Z. h3 R) b
{dede:loop table="cdb_threads" if="fid=4 and displayorder!=-1" sort="digest" row="8"} ) g0 u: ?( a% z2 }4 i) e
<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',26)" /]</a> * _: l- Q: ^* c4 F
[[field:lastpost function="date('m-d','@me')" /]] " K  P# A! K/ @2 M  |# w$ K
</li> 6 S$ E& v8 K+ Y# L
{/dede:loop}
. I  P2 F0 A- x1 x1 Y0 q; @3 g调用帖子内容摘要信息
0 Y! A, o" s# l. {; X$ |1 `& X$ c7 j7 }9 B! M4 a4 ?
first=1 只显示第一楼主题的信息。first=0 就是只显示回复信息 fid=4就是板块的id tid就是主题的id sort="tid" 按主题倒序排序 2 {9 U' h: U5 d4 S. h5 j

% l: p, a3 M8 V6 \{dede:loop table="cdb_posts" if="first=1 and fid=4" sort="tid" row="3"}
9 q$ r( E# w7 h; t( f  f<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',46)" /]</a>
) K1 o" W  f9 }' Y  M* Y[field:message function="cn_substr('@me',60)" /]...<a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[查看全文]</a>
- h, }. S2 d; v( d</li>
" I9 d* Z8 [7 n- c: ]1 k{/dede:loop}
) p9 ^( n+ c0 V# ]幻灯片调用DZ论坛图片显示
; e/ {1 t1 Q( ~3 w0 t' q<script language='javascript'>
8 r; W( c* t2 L( B2 elinkarr = new Array();
1 }1 v/ W0 E/ j4 @& \- ?0 _" x7 |3 f" Spicarr = new Array(); ( U" j; P# i* c& X( G. l
textarr = new Array();
% b2 M+ t) f9 T2 J  V0 Nvar swf_width=280; ' l7 [$ M9 Y3 R3 w( {! Y
var swf_height=192; 8 U, |- g) j9 {5 u
var files = "";
4 A% S! N* H0 |- I6 ]/ P% Vvar links = "";
7 s+ L/ d% h  H4 A8 nvar texts = ""; : h1 ~0 |. Z5 j, l' M
//这里设置调用标记 , @- S0 f) H2 i
{dede:sql sql="SELECT`cdb_attachments`.`aid`, `cdb_attachments`.`attachment`,`cdb_threads`.`tid`, `cdb_threads`.`fid`,
' N$ ]; K  E' u$ `  V2 T5 F0 [7 F0 U  q% u( w( h* b5 o* P
`cdb_threads`.`subject` FROM `cdb_attachments` LEFT JOIN `cdb_threads` ON `cdb_threads`.`tid`=`cdb_attachments`.`tid` WHERE   _' |4 F" z7 S1 S

7 `' w* e! Y" J% r" w9 M`cdb_attachments`.`readperm`='0' AND `displayorder`>='0' AND `filetype`='image/pjpeg' GROUP BY tid LIMIT 0,1 "}
0 J( w" e0 a+ ^2 B, E9 [
6 }1 L& O& {8 j2 r/ N% m* \) f0 {linkarr[[field:global.autoindex/]] = "/bbs/viewthread.php?tid=[field:tid /]"; ( \0 _4 w  N* n) {6 K& n6 V6 k  w! Z
picarr[[field:global.autoindex/]] = "/bbs/attachments/[field:attachment/]"; * V. z  i: t" `, W
textarr[[field:global.autoindex/]] = "[field:subject function='html2text(@me)'/]";
9 f/ }' Y2 _' M- T9 U6 C% P{/dede:sql}
                   //原来的替换成这里,本人亲自测试可用,上面红色字 dz7.2版本数据表里那个值的内容不一样 换掉就可以的 我索性直接删掉了红色字 不影响 随便了
) q8 x. J6 l/ U4 J' B
/ M1 f/ T9 O7 _- r# f+ M5 Qfor(i=1;i<picarr.length;i++){ 7 P% P; v6 d  Q
if(files=="") files = picarr; ( ]/ |0 f. y; b6 O8 z
else files += "|"+picarr; 5 X$ Z% h& X. v# K( K& _
}
$ e0 C" \' A* B  ufor(i=1;i<linkarr.length;i++){
8 P! i5 z! g. \! ^# cif(links=="") links = linkarr;
8 }5 p3 j- q+ e$ l, X, aelse links += "|"+linkarr; ! ^. ?2 P6 I4 \* a$ n3 ~  u. G
}
* i4 {; E% P( G: v' z- mfor(i=1;i<textarr.length;i++){ ' i* E; @" `# m+ D! x8 F! \1 V
if(texts=="") texts = textarr;
1 a) Y% ]1 D% [else texts += "|"+textarr; * Y4 B/ n% f5 d4 v% D. b
}
/ }% F0 u4 G% f9 O+ ~9 ^6 R: ldocument.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
9 o! d" z6 {$ R2 w7 F, c
8 {* I, q% W& Q; S( Hcodebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ swf_width +'"
' l3 L0 W. ~1 U: B0 W' v* x: `4 P+ r4 {6 O, Z* f
height="'+ swf_height +'">'); 9 T; @4 n; F# v& k& V, f
document.write('<param name="movie" value="{dede:global.cfg_templeturl/}/images/bcastr3.swf"><param name="quality"
0 W. p( u0 R* f$ a9 T% w
. r+ E, T2 g* g' v1 I# [& vvalue="high">'); 8 d* p+ M2 f7 m0 s' ^; x0 |" B
document.write('<param name="menu" value="false"><param name=wmode value="opaque">'); * h% s4 z; N- U+ K( f
document.write('<param name="FlashVars" value="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'">');
4 e# K" Q( n% w' N# Udocument.write('<embed src="{dede:global.cfg_templeturl/}/images/bcastr3.swf" wmode="opaque" # }' j! `, h8 N, d& s! F
8 g9 l& }+ V% r$ v) Y: B8 O
FlashVars="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'& menu="false" quality="high" width="'+ 8 V4 X, C! i+ k7 k7 L( `
5 E. T/ z7 G, {/ k7 v  ^& t
swf_width +'" height="'+ swf_height +'" type="application/x-shockwave-flash" ! @9 c  O3 X3 x, j6 x

9 S  R/ J' @" j( w9 q/ k) cpluginspage="http://www.macromedia.com/go/getflashplayer" />'); document.write('</object>');
* s: a7 E- L! h* r, V</script>
, a! U2 m- t) Y) V5 G3 w0 \5 T4 S
$ V2 q! Q7 \+ [& Z1 I! G

( ]$ m' \0 h5 `5 S+ e. _' [4 L调用Dz论坛图片,特定板块。AND `cdb_threads`.`fid` ='12' GROUP BY tid LIMIT 0,5 中的fid就是板块id limit 0,5 就是5条数据 ' s) F) ~2 K; |( _; @' E
/ y- e; d5 E" X) R

: Z- O  B* M& h7 ]' |5 F1、论坛最新主题调用代码如下: {dede:loop table="cdb_threads" sort="tid" row="10"}
$ G5 l; r8 _. Z/ _! {/ ?0 c: {<a href="/bbs/viewthread.php?tid=[field:tid /]"> 1 z8 J4 t( u/ w( `/ \
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a> 2 n' g* |( ?- ]! @' A3 a. d
<br/>
% V/ E6 r: \8 V: z{/dede:loop} 6 ?+ @' t+ {' R9 ^: [
这个连接地址你可以写相对路径,也可以写绝对路径。 , y" Q$ n8 N$ P2 T$ X7 {
  如果是discuz动态论坛,链接地址如[url=]http://bbs.xxx.com/viewthread.php?tid=[/url][field:tid /]
, a* [2 b+ o4 P) _5 _5 i  S  如果是discuz静态论坛,连接地址如[url=]http://bbs.xxx.com/thread-[/url][field:tid /]-1-1.html
" S9 C1 l- [& s7 s0 L2、论坛指定版块帖子调用方法: : j/ j1 H+ F2 ]6 w& d
{ dede:loop table="cdb_threads" if="fid=1 or fid=2 and displayorder!=-1" sort="tid" row="6" } ' z3 a5 l8 t6 A7 K' H! t9 y0 }
<a href="/bbs/viewthread dot php?tid=[field:tid /]" target="_blank">
8 O2 u! n) |. c# ^$ F·[field:subject function="cn_substr(' @ me',50)" /] </a> 0 r  p7 g& A. q& t0 w0 N) ^5 B
<br/> % C; \1 y6 W7 M( D  ]1 V4 O2 a
{ /dede:loop } 7 y) `) r7 q" J& C5 [
其中的fid=1 or fid=2是论坛主题分类id,可以按照自己要求来修改,如果是一个分类就直接写fid=x 2 y7 H/ c' n6 g% j; s0 y3 E- \
3、论坛调精华主题调用代码如下: 5 I9 s7 p7 a8 K' R" c$ |
{dede:loop table="cdb_threads" if="displayorder!=-1" sort="tid" row="10"}
& X3 ?4 r, Y; V3 [8 E<a href="/bbs/viewthread.php?tid=[field:tid /]">
6 ?! a' `# m& f) z4 O·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a>
) `" h6 n: q, V7 `/ L<br/>
) w% j6 Q6 o5 U  Y% K6 _  t{/dede:loop} # d, O/ R# ?2 N: k* L' A
如果想调用某个板块的精华主题代码如下:
$ T- i6 ^# @  i) p- b5 L6 C{dede:loop table="cdb_threads" if="fid=5 and displayorder!=-1" sort="tid" row="10"} " _9 u% K7 r- M
<a href="/bbs/viewthread.php?tid=[field:tid /]">
# @7 i3 z: X+ V·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a> ( t5 n1 M; m0 l: G- g
<br/>
1 ~; j5 m, s# _{/dede:loop} . h% i" l1 T' F
其中的fid=5是论坛主题分类id,可以按照自己要求来修改,
( T5 V2 Y* h: r8 z2 I& L% c0 u  如果想调用论坛所有的板块的最新精华主题只要去掉fid=5 and 就可以了。
. q5 m8 K2 R4 q. [; f4、调用的帖子列表这可以按查看次数排序,代码如下:
: R/ K- a7 f; i+ S{dede:loop table="cdb_threads" sort="views" row="10"}
/ ~; q4 {; X8 _0 \<a href="/dz/viewthread.php?tid=[field:tid /]"> ! y1 V5 Z& t+ x; v8 k) C
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a> , ?3 s. W1 r1 x& W0 F+ i7 V, g
<br/> 8 E! _1 {5 D# b/ ~
{/dede:loop}
9 [' ]7 f7 h; y& C其中sort="views" 就是控制按照查看次数排序的代码
: o  i: a6 T# ]2 |5 v5、论坛置顶版块帖子调用方法举例: - O- `4 ?, i; K2 F/ h
{ dede:loop table="cdb_threads" sort="dateline" if="fid='3' and typeid='51'" row="10" }
! `5 j6 t: F: ]3 A4 E' r& f<a href="/a/bbs/viewthread dot php?tid=[field:tid /]" target="_blank"> : O1 w; T. E; }
·[field:subject function="cn_substr(' @ me',30)" /]</a> <br> 2 V) e2 O% c- j- p
{ /dede:loop }
" x# N9 s9 H: T) _8 G6 ~. I/ @$ {6、论坛版块名称调用方法
: C. F- R" w$ A; K{ dede:loop table="cdb_forums" sort="displayorder" row="16" col="4" } 0 z) I. |4 |: m! Z
<a href="/bbs/viewthread dot php?fid=[field:fid /]">·[field:name function="cn_substr(' @me',30)" /] </a>
* K; y; r" g. _$ d. M+ P4 j6 i$ E{ /dede:loop }
0 L+ }; M9 v: f5 ~注:这种方法这个还有点问题,它会将论坛分区、版块都调出来。 4 ?& M& U2 p' d$ i7 Z* v
但是我们可以不用 loop方式 换用sql语句来调用(这种方法万能 呵呵!!)下面看图
+ B+ h+ C5 o. X4 D1 w5 Y- D" U+ j/ x! y0 |/ v6 ^/ M* l

9 a7 @1 f2 D' n2 K0 @# B2 S
7 U- a% r! L, c6 \9 Z2 U3 U4 T版块都是放在上面表中的
1 h6 u  q8 P  c1 l  l4 O- f表部分结构如下: / l* W: y& y+ }# `4 z6 ^! R

9 A8 m1 ?" L6 m( b$ R  Q" b4 z/ j6 E9 Q1 P! L
) z& B$ p5 O$ J  p# ]% L
这样我们就一目了然了 3 N# z( y, _" V& q: V
用sql调用 第一个版块里的子版块 也就是 11111111   , 2222222, 333333333,4444444444四个板块名称;方法如下: - N. F: Q# l- t3 K( G7 m2 E
{dede:sql sql="select fid,fup,type,name from cdb_forums where fup='1' GROUP BY fid LIMIT 0,4"} 1 b. A8 p8 `+ ^  g+ `/ F
<a href="/bbs/forumdisplay.php?fid=[field:fid/]">·[field:name function="cn_substr(
[url=]</a[/url]>
3 V1 B! U0 h) k! e1 u{/dede:sql}

, b& G+ N: v+ F  ^% `; S  U5 m" U5 ]1 d$ A* H' {+ Q

& H/ d# A3 g3 m) Q& A; x" X) `附:dedecms的LOOP 标记规则 # H  ]) R" Q  n! d3 t8 M
  功能说明:用于调用任意表的数据,一般用于调用论坛贴子之类的操作 ! O, e5 t1 Z9 j0 [! e
  适用范围:所有模板
$ i2 b3 t  ?* b) K* o3 X& v  基本语法: % X6 c. k) L2 c' E
  { dede:loop table=' sort='' row='' if='' } " m4 E# X3 T* V; x9 q
  [1] table 表示查询的数据表 ! V, c* a$ {+ a# M4 j* r" t
  [2] sort 用于排序的字段 也可以加"views"(查看次数排列)
  F* ^6 m5 H8 u! R  d8 y  \. a  [3] row 返回结果的条数 4 A  ~# ?! M; h* o( ~. |( I4 Q
  [4] if 查询条件 1 r9 ^5 y2 w! G; Q& v
7、调用论坛帖子中的图片方法,网上搜到的,此方法同上(幻灯片的地方) 3 b. K3 W" t% q+ `$ ^" D
{dede:sql sql="SELECT`cdb_attachments`.`aid`,`cdb_attachments`.`attachment`,`cdb_threads`.`tid`, `cdb_threads`.`fid`,`cdb_threads`.`subject` FROM `cdb_attachments` LEFT JOIN `cdb_threads`
6 I% z2 P* p. D' U$ T5 |2 {- vON`cdb_threads`.`tid`=`cdb_attachments`.`tid` WHERE `cdb_attachments`.`readperm`='0' AND`displayorder`>='0' AND `filetype`='image/pjpeg' GROUP BY tid LIMIT 0,1 "} 9 Y5 z% t! m* k% `0 W% [
<a href="/bbs/viewthread.php?tid=[field:tid /]">
1 L' ]' y& S, J3 |: \# c- G<img src="/bbs/attachments/[field:attachment/]" ALT="[field:subject/]" width="100" height="80" border="0" />
5 e& o) u) q7 Z* u) T+ u) J</A> 4 V; t' A" N+ @- D* b# F
{/dede:sql}




欢迎光临 航空论坛_航空翻译_民航英语翻译_飞行翻译 (http://bbs.aero.cn/) Powered by Discuz! X2