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

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

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

调用帖子内容摘要信息 0 k3 P6 `- x& j$ h5 D' b" F0 q
{dede:loop table="cdb_posts" sort="tid" row="3"}
" X" v: ^4 q6 G$ ^0 ~/ t' y<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',100)" /]</a>
+ W$ A8 l% G' @9 U3 h7 s[field:message function="cn_substr('@me',46)" /]...<a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[查看全文]</a> - N$ L: \7 q& i: Y& w* x8 ~
</li>
  x% G. ?5 m' ~! i' x{/dede:loop}

: ?4 b( R$ l' T调用查看次数最多的帖子。
& z3 Z% A" Y0 e4 A0 u{dede:loop table="cdb_threads" if="fid=4 and displayorder!=-1" sort="views" row="8"}
( Y; T1 J; F! V: Z" H9 K: h<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',46)" /]</a>
' ~2 ?' E% \  N2 s4 Z0 {' s- K[[field:lastpost function="date('m-d','@me')" /]] ! N8 T0 P6 _( m
</li>
( j6 `2 }5 M+ P: S+ A1 m{/dede:loop} 9 w6 E0 X1 C9 o8 d& |3 s( x
调用回复次数最多的帖子。
8 y- e6 `$ L: A0 A: b8 j6 f{dede:loop table="cdb_threads" if="fid=4 and displayorder!=-1" sort="replies" row="8"} / ^+ |! f9 @0 r9 A! w* I# M5 P( O9 u
<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',46)" /]</a> $ W/ |* Y! ~( _: h4 |* S
[[field:lastpost function="date('m-d','@me')" /]]
) p6 a( o+ t/ \* ~, x) S$ t" m</li> 3 v3 U! o& f0 q, g" s# k
{/dede:loop}
$ _# J: K* Y- t0 M% @2 c. q! W调用精华帖子 帖子分为1级精华2级精华3级精华。精华越高排在最前面 # w! ~1 a8 y" y& q1 V+ T, E* U
{dede:loop table="cdb_threads" if="fid=4 and displayorder!=-1" sort="digest" row="8"}
& a  @% a: [+ c: [! Q! r<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',26)" /]</a> , z; O  ?# ^/ `$ P' w
[[field:lastpost function="date('m-d','@me')" /]]
3 H+ C" Z" ]" i. O6 E2 K9 `1 K/ z  S</li> ' j. h# i' P6 H9 Z; f6 f7 C) b
{/dede:loop} + N0 W( F, ~) E4 T( _
调用帖子内容摘要信息
9 O) H( s, `' z6 Q# h1 l
7 Z. U. w/ d% k2 Hfirst=1 只显示第一楼主题的信息。first=0 就是只显示回复信息 fid=4就是板块的id tid就是主题的id sort="tid" 按主题倒序排序 ; D" c3 b3 m4 _- g
  L8 V# q. G7 X1 Y" }) H2 ^( Y) {
{dede:loop table="cdb_posts" if="first=1 and fid=4" sort="tid" row="3"} ' Q4 t1 A) B9 A; i0 r5 n/ D
<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',46)" /]</a>
3 Y# Y8 o  l6 `! E  e! t[field:message function="cn_substr('@me',60)" /]...<a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[查看全文]</a>
$ D4 k& m4 M7 j/ N" i; t8 ]5 o  N* n</li> , Y. m& V+ O0 g4 t- w
{/dede:loop}
# f% `8 |5 d+ P* a幻灯片调用DZ论坛图片显示
5 q' [" r" L% l6 i7 ~) @! M1 G5 {& e<script language='javascript'>
/ o! x' C5 h: j7 B1 xlinkarr = new Array();
7 M6 @# `$ n  B3 gpicarr = new Array(); 2 y9 T: r  l" @
textarr = new Array();   T, M' e! j) P) i( A
var swf_width=280; # _& F! B+ q* \+ g* M( V- R
var swf_height=192;
) @3 K2 n/ @" O  T9 [var files = "";
5 t5 u: l6 o8 M2 N! v$ hvar links = "";
" w' B4 O# V( lvar texts = ""; 5 h2 p0 f3 z; P! \8 b
//这里设置调用标记
$ z" |* p, I/ J5 @{dede:sql sql="SELECT`cdb_attachments`.`aid`, `cdb_attachments`.`attachment`,`cdb_threads`.`tid`, `cdb_threads`.`fid`,
8 X+ Q' I4 e6 ?( m4 b8 ?
( K( P/ t2 F0 `$ ^5 j`cdb_threads`.`subject` FROM `cdb_attachments` LEFT JOIN `cdb_threads` ON `cdb_threads`.`tid`=`cdb_attachments`.`tid` WHERE 4 n* h* w$ h4 n6 _. v

1 V. J! A# i6 |1 X`cdb_attachments`.`readperm`='0' AND `displayorder`>='0' AND `filetype`='image/pjpeg' GROUP BY tid LIMIT 0,1 "} " \, E( [, @: a& N  V

& A& ?- d  B! ^* C9 s0 u7 clinkarr[[field:global.autoindex/]] = "/bbs/viewthread.php?tid=[field:tid /]";
; a& k0 v: E, |! ~! _picarr[[field:global.autoindex/]] = "/bbs/attachments/[field:attachment/]"; 8 p6 v0 F3 U8 m/ F
textarr[[field:global.autoindex/]] = "[field:subject function='html2text(@me)'/]";
! n4 v  K3 K; r& @: H; Y2 f{/dede:sql}
                   //原来的替换成这里,本人亲自测试可用,上面红色字 dz7.2版本数据表里那个值的内容不一样 换掉就可以的 我索性直接删掉了红色字 不影响 随便了
- ?$ E' I" j& ?$ m# \+ W& U, |/ h8 J- F: A0 l0 t' c) N+ W
for(i=1;i<picarr.length;i++){ 4 ~' Q2 S/ v/ \7 O) w, Z8 N$ q+ `
if(files=="") files = picarr; # J# A* F) z0 G: s
else files += "|"+picarr;
" \" m( X7 R, H! E# U}
$ }* a# `( q+ \for(i=1;i<linkarr.length;i++){ 0 X+ l& y+ F  W; J: Z2 }9 ?0 ]
if(links=="") links = linkarr;
- D, Y( O' V( }/ L2 ?9 L- ~else links += "|"+linkarr; : |7 U' Y  _2 [7 [# C% c' a$ p. m6 Z
} 3 w2 L& z+ ]' n! _+ G# V( E" \
for(i=1;i<textarr.length;i++){ 3 r9 ]  w, O5 M& d3 n
if(texts=="") texts = textarr;
- `. d* ?0 O5 W. ?+ ~) X, |else texts += "|"+textarr; ( }$ X0 V; @7 N3 r: L: S6 }9 p
} 8 v5 Z( H% ~2 w
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"   K7 T/ A" x2 `# j# N
7 Y! u4 D' L! f
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ swf_width +'" - v3 k( t4 P$ \2 j$ ~

0 f* I$ H. l% J% K0 Dheight="'+ swf_height +'">'); 1 S( E( {7 h/ v9 h& F
document.write('<param name="movie" value="{dede:global.cfg_templeturl/}/images/bcastr3.swf"><param name="quality" # m1 {0 ~* h1 \/ N# f4 P  u

4 A( F0 w4 e# mvalue="high">');
( G# K# y! i3 g* ~- ^5 edocument.write('<param name="menu" value="false"><param name=wmode value="opaque">');
2 {& E" Y% e5 G. o7 m" mdocument.write('<param name="FlashVars" value="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'">'); # D7 X) _8 n6 m; k# L* U
document.write('<embed src="{dede:global.cfg_templeturl/}/images/bcastr3.swf" wmode="opaque" ' L, p9 }3 h0 U3 n/ n& \% ?8 }; K

- X/ w5 |0 q' H( i) y: g, F% D/ vFlashVars="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'& menu="false" quality="high" width="'+
  u. q4 r8 w' z1 Z, X* ^9 k6 V' r2 A1 S
swf_width +'" height="'+ swf_height +'" type="application/x-shockwave-flash" + R; j7 B0 U4 q2 n8 k4 P1 V; `

7 w( z* v* R/ M% c9 K" s& O& Upluginspage="http://www.macromedia.com/go/getflashplayer" />'); document.write('</object>'); 8 I; e3 e6 H+ w
</script>

0 A1 O; R% t* y" u
4 C! G5 A0 N: W+ m4 _1 v1 d  U0 q- Z9 I7 y, c1 X- N$ R: J
调用Dz论坛图片,特定板块。AND `cdb_threads`.`fid` ='12' GROUP BY tid LIMIT 0,5 中的fid就是板块id limit 0,5 就是5条数据 " S: b7 h, J/ p# n9 Q1 m+ @8 n
5 Q$ o5 ]: T9 R9 L6 S: C) `$ S
* S( h( i- }0 d0 m, s# Q9 {
1、论坛最新主题调用代码如下: {dede:loop table="cdb_threads" sort="tid" row="10"}
0 w: q+ m, e- E( \% ]. N. K& x<a href="/bbs/viewthread.php?tid=[field:tid /]">
2 w2 l6 t- r9 o·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a> * e3 u( e3 s7 j5 \6 Y. Z" s/ E
<br/> 0 `5 ], x! V% ]0 C3 o- C
{/dede:loop} 9 C6 w+ J3 b( j
这个连接地址你可以写相对路径,也可以写绝对路径。
6 N7 V* ~0 N# d" M8 T  如果是discuz动态论坛,链接地址如[url=]http://bbs.xxx.com/viewthread.php?tid=[/url][field:tid /]
8 z" K, T& v) t% k  R$ n  如果是discuz静态论坛,连接地址如[url=]http://bbs.xxx.com/thread-[/url][field:tid /]-1-1.html & ], Q7 @9 L1 U3 E4 K; f' Y
2、论坛指定版块帖子调用方法:
, q7 b) ^2 {9 |$ q{ dede:loop table="cdb_threads" if="fid=1 or fid=2 and displayorder!=-1" sort="tid" row="6" }
4 @0 K) z6 G* O9 O" {+ Y) o<a href="/bbs/viewthread dot php?tid=[field:tid /]" target="_blank"> $ _0 B! w$ L( N/ _2 d( x. B( P
·[field:subject function="cn_substr(' @ me',50)" /] </a> 0 L' c' S! b2 T
<br/>
& r+ a% L) V* X9 q" x; j7 h{ /dede:loop } : d" g" p* e- D% K* H, A
其中的fid=1 or fid=2是论坛主题分类id,可以按照自己要求来修改,如果是一个分类就直接写fid=x
) G% q. Y' e- w3、论坛调精华主题调用代码如下:
, L9 ?% K& W) M+ t" g{dede:loop table="cdb_threads" if="displayorder!=-1" sort="tid" row="10"} ) U/ U1 s$ U9 B& ~6 ~7 V
<a href="/bbs/viewthread.php?tid=[field:tid /]"> # `: m8 w; {0 P# k  H/ }  u/ W
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a>
, w% n9 X- A0 ]  W, y<br/>
+ i: Q) y; j9 l. }{/dede:loop} ! s5 [2 x# j) O1 N- s' v
如果想调用某个板块的精华主题代码如下:
/ K+ ?7 ~# ~5 y- c. v8 G+ _{dede:loop table="cdb_threads" if="fid=5 and displayorder!=-1" sort="tid" row="10"} . B8 U5 D, v- ~- B* C! y+ G
<a href="/bbs/viewthread.php?tid=[field:tid /]"> ! @4 H1 E  o1 p9 _- }# G
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a> 8 T  t1 Q4 J' y) s% }& {0 e  V
<br/>
, @6 v. C4 }/ u1 M1 _{/dede:loop}
$ t! B6 F' ~- h( p其中的fid=5是论坛主题分类id,可以按照自己要求来修改,
& }  A0 j' L% u1 t- }% G5 @  如果想调用论坛所有的板块的最新精华主题只要去掉fid=5 and 就可以了。
- I8 p- ]2 e3 g3 R- {9 U4、调用的帖子列表这可以按查看次数排序,代码如下:
# G& o$ K6 c5 y% b* D$ L6 `{dede:loop table="cdb_threads" sort="views" row="10"} 8 y7 t  M3 [3 \
<a href="/dz/viewthread.php?tid=[field:tid /]"> 1 l, D( u0 w  y& m& I1 R4 o
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a>
7 Z- `; v$ p. j<br/>
6 n- w4 @7 K4 T: {# n{/dede:loop}
: `$ z' l) C3 m2 Q0 J' O其中sort="views" 就是控制按照查看次数排序的代码 , P8 I" c% E$ E% [2 Z- m( s
5、论坛置顶版块帖子调用方法举例:
0 F8 |8 R! H$ `8 N; J; K{ dede:loop table="cdb_threads" sort="dateline" if="fid='3' and typeid='51'" row="10" }
0 a' z# u6 e4 G. C$ b<a href="/a/bbs/viewthread dot php?tid=[field:tid /]" target="_blank"> . R" z2 e7 J: u# E/ l2 E$ I
·[field:subject function="cn_substr(' @ me',30)" /]</a> <br> $ ^1 ]7 H3 ?: M$ M5 H4 l; i: X
{ /dede:loop }
1 v5 S; m2 ]5 J. w; g6 S6、论坛版块名称调用方法
+ }. P, J$ T: n- n$ q- v) L7 ?{ dede:loop table="cdb_forums" sort="displayorder" row="16" col="4" }
; }- f; T* G8 R6 \<a href="/bbs/viewthread dot php?fid=[field:fid /]">·[field:name function="cn_substr(' @me',30)" /] </a>
( t/ U  l) F4 a  M  m{ /dede:loop } : ]  B. {" d; t% q2 l
注:这种方法这个还有点问题,它会将论坛分区、版块都调出来。 2 p' o$ ]/ D' S) v' E7 p+ A& G8 ^- p
但是我们可以不用 loop方式 换用sql语句来调用(这种方法万能 呵呵!!)下面看图
! Q6 `. }1 K7 r$ @/ _: _! P  g( S9 X' z" |1 ]. R; K: ]
7 K9 p% s/ U, b1 @# V& S3 b; D

; e* n  r$ p# S+ @2 D$ w版块都是放在上面表中的
+ o7 r9 h, |/ f( \表部分结构如下:
' F1 W0 o+ b& G4 U4 f/ v' @# A9 B* A/ |8 j$ q

) k1 t* e. |/ ?- |
& t* o& T" v# j这样我们就一目了然了
" q! m, j  y: ~4 W5 t. P/ g9 `用sql调用 第一个版块里的子版块 也就是 11111111   , 2222222, 333333333,4444444444四个板块名称;方法如下: ! {# b- Z7 I3 i, k6 V
{dede:sql sql="select fid,fup,type,name from cdb_forums where fup='1' GROUP BY fid LIMIT 0,4"} . l7 z5 t* B# n4 d' Z6 G0 i9 i
<a href="/bbs/forumdisplay.php?fid=[field:fid/]">·[field:name function="cn_substr(
[url=]</a[/url]>
  M  Y1 H! @2 K0 ^' {9 L{/dede:sql}
: P! Q5 u  m; C5 [4 a( i$ K( Z. @
5 {' G( i0 P. \) w, b- z& T

5 o9 b; }8 t+ |% F! p7 e1 s% l& R2 c附:dedecms的LOOP 标记规则 $ _) r4 N% ]2 y9 ~: Y& F; i
  功能说明:用于调用任意表的数据,一般用于调用论坛贴子之类的操作
  j% p" b* Q. R2 u3 s, h! l9 z  适用范围:所有模板 ) w# C% k3 v. Y& i( |
  基本语法: ( Z1 `+ E. e, v+ m1 d
  { dede:loop table=' sort='' row='' if='' } ; ^5 x: F4 R6 W7 |
  [1] table 表示查询的数据表 1 F% c5 B" |6 p1 U, s8 Y8 O3 q
  [2] sort 用于排序的字段 也可以加"views"(查看次数排列)
# E) Y; A' y$ U  [3] row 返回结果的条数 - w* ^/ f; Y- D2 _+ R
  [4] if 查询条件
+ p$ L2 `( N) G5 |7、调用论坛帖子中的图片方法,网上搜到的,此方法同上(幻灯片的地方) 2 Z) I- ^# T) A/ m, [
{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` 1 J6 W2 a" u. D4 H  Y
ON`cdb_threads`.`tid`=`cdb_attachments`.`tid` WHERE `cdb_attachments`.`readperm`='0' AND`displayorder`>='0' AND `filetype`='image/pjpeg' GROUP BY tid LIMIT 0,1 "}
) [6 V2 c- P5 ~9 d/ U$ e  ?- f<a href="/bbs/viewthread.php?tid=[field:tid /]"> 6 j1 ^# v) A9 R! s7 ^3 M7 n
<img src="/bbs/attachments/[field:attachment/]" ALT="[field:subject/]" width="100" height="80" border="0" /> 1 K: R5 }" G2 Y5 n9 E, L
</A> ; h2 c$ O2 a1 o0 K
{/dede:sql}




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