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

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

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

调用帖子内容摘要信息 0 q: h- ^+ B3 h6 _5 K3 t: ]
{dede:loop table="cdb_posts" sort="tid" row="3"}
8 c# d. C) h- t2 J<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',100)" /]</a> ! o4 p( q; R2 i1 d1 ^6 H
[field:message function="cn_substr('@me',46)" /]...<a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[查看全文]</a> ( d$ [  X# B) ?; d, a
</li>
4 d! D6 K0 r2 ?* E0 J7 F{/dede:loop}
& x7 z3 N5 N  G2 j% L
调用查看次数最多的帖子。 ; _/ n* q& Y/ c) x( l6 Z
{dede:loop table="cdb_threads" if="fid=4 and displayorder!=-1" sort="views" row="8"} 4 H$ w+ ]5 e: T
<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',46)" /]</a>
( ]  B/ O3 W& j$ C' [4 a[[field:lastpost function="date('m-d','@me')" /]] : y, I& c; I2 ~) Y0 J2 p
</li> 2 W6 x$ |2 t  B; |2 W2 r
{/dede:loop} $ J" x0 @- d( [7 t) u7 X" {' b
调用回复次数最多的帖子。 2 a* z( a4 L6 @6 e+ W; X, H8 N& P# |
{dede:loop table="cdb_threads" if="fid=4 and displayorder!=-1" sort="replies" row="8"} ( w5 L. K( V' I9 N$ K' E
<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',46)" /]</a>
5 [! r: k6 z4 t" E5 B) o. n[[field:lastpost function="date('m-d','@me')" /]] " Z) O1 v+ h& Z# x. {7 t
</li> " E- ~* c) N3 w( ^! }3 e. y3 n
{/dede:loop}
4 W" }! Z' N/ S; D调用精华帖子 帖子分为1级精华2级精华3级精华。精华越高排在最前面 , y7 U% |- W) u# r4 |
{dede:loop table="cdb_threads" if="fid=4 and displayorder!=-1" sort="digest" row="8"}
9 I# o/ h" ]  [7 [, H4 X<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',26)" /]</a> * o5 I# f5 D4 L+ e
[[field:lastpost function="date('m-d','@me')" /]]   o5 f* x8 `. r2 u5 U! g
</li>
1 b  T3 h/ {; S- K% r{/dede:loop}   X$ w3 g- n7 }* Y8 e& f
调用帖子内容摘要信息 / k( b! V5 M0 }  [; L1 l. T; f

! ~, {, x6 [" v! i0 efirst=1 只显示第一楼主题的信息。first=0 就是只显示回复信息 fid=4就是板块的id tid就是主题的id sort="tid" 按主题倒序排序 - O' V+ g+ j9 G% v) s
* U( o: ^: X: Y8 {4 |4 u* ?4 h
{dede:loop table="cdb_posts" if="first=1 and fid=4" sort="tid" row="3"}
8 R$ L' v8 H: S% p& ^- X( ?7 r, M. f<li><a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[field:subject function="cn_substr('@me',46)" /]</a>
2 ]! s& a9 c/ \  I# G1 Z1 T& G[field:message function="cn_substr('@me',60)" /]...<a href="/bbs/thread-[field:tid/]-1-1.html" target="_blank">[查看全文]</a>
. {% o  S1 F$ E" W</li> " g+ W3 r" R& P, W; ?9 \
{/dede:loop}
; Z5 C( K9 p: A4 D/ Q幻灯片调用DZ论坛图片显示 & [9 i8 [" a2 F* I3 Y
<script language='javascript'>
1 @2 `, J) s# z$ {% Rlinkarr = new Array(); " u0 ~! ^% h+ \  f
picarr = new Array(); : F6 {! [- v% l9 [/ Z6 A
textarr = new Array();
* |5 s6 d7 p1 V$ yvar swf_width=280; - D* T+ c/ m& v7 N6 _* g
var swf_height=192;
5 N+ W5 m$ h0 b" V# V2 r, W' Z; avar files = ""; 0 p5 f3 l$ c5 S0 [1 c# i
var links = "";
; Y$ H, Q9 D7 A7 r6 T1 h7 Z4 Rvar texts = ""; & }  T7 N  j1 D" [# q( ]
//这里设置调用标记 2 U! Y0 p& R  X% C
{dede:sql sql="SELECT`cdb_attachments`.`aid`, `cdb_attachments`.`attachment`,`cdb_threads`.`tid`, `cdb_threads`.`fid`,
; `* F, C" Q3 T- y% `& `! U4 M* |
9 B4 Z' K1 f; X: w, o7 {) }0 {4 B`cdb_threads`.`subject` FROM `cdb_attachments` LEFT JOIN `cdb_threads` ON `cdb_threads`.`tid`=`cdb_attachments`.`tid` WHERE * K6 G( }2 q4 @& F
$ G0 L1 N4 ^( o* r+ @3 t, }5 `
`cdb_attachments`.`readperm`='0' AND `displayorder`>='0' AND `filetype`='image/pjpeg' GROUP BY tid LIMIT 0,1 "} 2 |2 e5 ?! ^: ~4 r7 h9 u" _
, U7 h( k  |5 U! e) h
linkarr[[field:global.autoindex/]] = "/bbs/viewthread.php?tid=[field:tid /]"; , }; z$ s& h3 ]: z8 H
picarr[[field:global.autoindex/]] = "/bbs/attachments/[field:attachment/]"; ) ^% r4 c5 u2 F
textarr[[field:global.autoindex/]] = "[field:subject function='html2text(@me)'/]";
0 Y8 R) t3 }9 u$ p  j{/dede:sql}
                   //原来的替换成这里,本人亲自测试可用,上面红色字 dz7.2版本数据表里那个值的内容不一样 换掉就可以的 我索性直接删掉了红色字 不影响 随便了
4 P. e+ _3 c' L, Z! Y) ^) A5 O' B0 H, F( U
for(i=1;i<picarr.length;i++){
$ w) K6 M/ s' `" f/ V4 oif(files=="") files = picarr; ! B. ~8 l( e% m- ~' a# t( @
else files += "|"+picarr;
4 L2 S6 K6 i) v+ S  K}
* O! ~. x, d2 E' ~8 G1 Vfor(i=1;i<linkarr.length;i++){
( ^- C. g( r* @/ ^8 D" d4 lif(links=="") links = linkarr; # S% A1 s, C" g& t4 D( Z% L) Q6 u
else links += "|"+linkarr;
3 |; E/ [+ E5 ^: }6 a, A7 A& O} ; E7 h$ Z$ C+ M5 b: h" {) \% M( W
for(i=1;i<textarr.length;i++){ & B" t" ?  d4 \6 O4 K0 l& e
if(texts=="") texts = textarr;
9 c! e" O* z1 v  k1 d# G2 b% y* uelse texts += "|"+textarr;
9 h9 b: T0 e- x9 a  ?}
  X# k, H% k- @9 C4 R. ?document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
+ s. |9 h% F2 J" F+ D  C6 ?* Q! u
& n, j% s; `3 s# p' ~: s% I) scodebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ swf_width +'"
+ u2 t, n0 a! |. w: K2 G" l# b) n- d, R* r9 K0 j
height="'+ swf_height +'">');
0 h+ X6 V3 U9 x' |document.write('<param name="movie" value="{dede:global.cfg_templeturl/}/images/bcastr3.swf"><param name="quality" ( C: A, `- Q0 T/ `6 f
" m( m1 m4 p% P! a/ _
value="high">');
- U$ F) r2 N% e! f; b: Idocument.write('<param name="menu" value="false"><param name=wmode value="opaque">'); $ a) U8 Z6 L+ x. f% l; |
document.write('<param name="FlashVars" value="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'">');
" H$ J9 R2 C2 {. \4 o2 ldocument.write('<embed src="{dede:global.cfg_templeturl/}/images/bcastr3.swf" wmode="opaque" - O* ~4 q/ K+ U! ?

* f; q4 i  `$ ?' d8 [FlashVars="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'& menu="false" quality="high" width="'+ " O8 ~+ p1 N# Q/ O# Z
4 F: H" F  R6 C6 P
swf_width +'" height="'+ swf_height +'" type="application/x-shockwave-flash" $ c; ?2 U' r4 I" f1 l$ C/ _
/ [' m6 B% C% M& n
pluginspage="http://www.macromedia.com/go/getflashplayer" />'); document.write('</object>'); ) G1 x" E& O, L1 `
</script>

* p+ u1 p; M' c( N' o
7 W. z+ e6 M9 m/ w/ D2 g
$ S+ A& r* _8 X. u; o" S' ~/ t% T' q调用Dz论坛图片,特定板块。AND `cdb_threads`.`fid` ='12' GROUP BY tid LIMIT 0,5 中的fid就是板块id limit 0,5 就是5条数据
4 j2 Z& {5 D* C* O0 y  m* J9 z! N7 J" o/ O  ~. ]  U/ a! k0 e9 B# c. y

5 {; f4 K) Z  ^  U/ f2 w1、论坛最新主题调用代码如下: {dede:loop table="cdb_threads" sort="tid" row="10"}
7 H( M! W  i' |+ ~9 X0 v0 o& L<a href="/bbs/viewthread.php?tid=[field:tid /]">
! K! V, C9 O6 [/ P·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a> , |+ U( {7 s( M" X
<br/>
* n, U) v0 Q; T0 j6 _* ]! `. I0 S0 ^{/dede:loop}
# m/ A& z/ ~4 B4 \* Y这个连接地址你可以写相对路径,也可以写绝对路径。
) U, t: w5 n6 w- Z1 S; ^; W  如果是discuz动态论坛,链接地址如[url=]http://bbs.xxx.com/viewthread.php?tid=[/url][field:tid /] % `# p# I+ u' F
  如果是discuz静态论坛,连接地址如[url=]http://bbs.xxx.com/thread-[/url][field:tid /]-1-1.html 9 }6 ?( m5 O( v% i5 \) i2 P
2、论坛指定版块帖子调用方法: 5 X6 P& D. B! l& |
{ dede:loop table="cdb_threads" if="fid=1 or fid=2 and displayorder!=-1" sort="tid" row="6" }
% r, ?6 k" G0 C" _0 K% m. x<a href="/bbs/viewthread dot php?tid=[field:tid /]" target="_blank"> & H8 A2 ^- }. M+ ~3 \0 p# W
·[field:subject function="cn_substr(' @ me',50)" /] </a> 1 J/ W' _! W3 ~
<br/> ( V# H# I  G% a6 u5 y) X
{ /dede:loop } - N3 \4 W6 U: W* ?- @1 [, H
其中的fid=1 or fid=2是论坛主题分类id,可以按照自己要求来修改,如果是一个分类就直接写fid=x ; x& K3 `2 T+ q& c
3、论坛调精华主题调用代码如下:
4 N  F5 t7 q4 I4 F5 @{dede:loop table="cdb_threads" if="displayorder!=-1" sort="tid" row="10"} ' L+ i- ~  _) c/ q1 j
<a href="/bbs/viewthread.php?tid=[field:tid /]"> ( j$ F( c& d8 L/ u
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a>
2 `+ y# c5 v( X4 }' i# y5 }<br/>
$ g( \' h8 {# F$ w7 l: [. f6 |{/dede:loop} 3 l1 T( l$ `9 k9 }
如果想调用某个板块的精华主题代码如下: ) ]& a2 H2 W  P9 }, I  L, l$ \
{dede:loop table="cdb_threads" if="fid=5 and displayorder!=-1" sort="tid" row="10"} 2 q5 Z% P4 X1 d; z# n. t
<a href="/bbs/viewthread.php?tid=[field:tid /]">
0 c- V" t7 _; ]·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a> ; X$ ~8 q: S( _2 n- [2 \+ L
<br/>   z( w; R- \4 S, B; T
{/dede:loop}
8 |) N& L/ S' }- @! t# m+ e其中的fid=5是论坛主题分类id,可以按照自己要求来修改, + i! [9 O; H( ~# ?0 u1 `
  如果想调用论坛所有的板块的最新精华主题只要去掉fid=5 and 就可以了。
# K  l+ I* v9 z0 |4、调用的帖子列表这可以按查看次数排序,代码如下:
7 o0 E3 q$ S; `6 n" Q. U. {2 d{dede:loop table="cdb_threads" sort="views" row="10"} 1 H3 U3 P& Y' @1 n( b" X
<a href="/dz/viewthread.php?tid=[field:tid /]"> / r3 Y0 {0 Q% |1 W8 f( q; `1 X: U
·[field:subject function="cn_substr('@me',30)" /]([field:lastpost function="date('m-d H:M','@me')" /])</a> " j' w( [4 [# g' @- v" T
<br/> ' X8 s: ]( \/ R" R
{/dede:loop}
2 R" K' C$ H$ e5 n2 H) H# l$ @% X其中sort="views" 就是控制按照查看次数排序的代码 5 p4 I1 z' e* t; Z5 }/ _& J) I  @
5、论坛置顶版块帖子调用方法举例:
3 f; O! l% O+ k: v& U5 l{ dede:loop table="cdb_threads" sort="dateline" if="fid='3' and typeid='51'" row="10" }
6 p+ a1 U; \& ]3 e<a href="/a/bbs/viewthread dot php?tid=[field:tid /]" target="_blank">
% B) Z" x6 @5 W·[field:subject function="cn_substr(' @ me',30)" /]</a> <br> - t  e! M1 U+ _  B  u
{ /dede:loop } 6 c2 e& k6 i+ e; l1 |1 A$ t
6、论坛版块名称调用方法( k0 e9 B& K* a" Q) T# Z/ p
{ dede:loop table="cdb_forums" sort="displayorder" row="16" col="4" }
, z  V; p/ c; c# y1 ~<a href="/bbs/viewthread dot php?fid=[field:fid /]">·[field:name function="cn_substr(' @me',30)" /] </a>
7 }4 k; |: i9 k; s{ /dede:loop }
: p3 K, g, @1 H$ p: A( f注:这种方法这个还有点问题,它会将论坛分区、版块都调出来。 2 R! c; p' g) V+ c* S
但是我们可以不用 loop方式 换用sql语句来调用(这种方法万能 呵呵!!)下面看图
8 U; ~2 t$ o5 ~0 O! I, c' C9 N
0 M( p9 m& V& {/ y, c0 f& m7 T( x2 P& A7 M# }5 M

+ Q2 z3 l4 w# [7 e1 K- K版块都是放在上面表中的
% r/ I( O- |5 ^表部分结构如下:
& C  W2 W1 K) a; c: h2 z3 V8 q! G6 X5 L

. p6 l6 z& k' ~$ D / V- n3 W1 b0 u: L, C7 ~
这样我们就一目了然了
" i: E8 \) A2 `: T4 A% S, Q用sql调用 第一个版块里的子版块 也就是 11111111   , 2222222, 333333333,4444444444四个板块名称;方法如下: 6 g7 `! C. o% J
{dede:sql sql="select fid,fup,type,name from cdb_forums where fup='1' GROUP BY fid LIMIT 0,4"}
0 r$ |6 j) x0 z  A, ~# \<a href="/bbs/forumdisplay.php?fid=[field:fid/]">·[field:name function="cn_substr(
[url=]</a[/url]> 4 B# D) F: G" t$ M
{/dede:sql}

# ~1 T/ O! r/ d* |7 m) s
1 u9 n4 ~4 n" u0 X4 z0 W4 H& S( N7 V8 U
附:dedecms的LOOP 标记规则   Q/ L, q& b6 u  \
  功能说明:用于调用任意表的数据,一般用于调用论坛贴子之类的操作 % S- Z1 i$ `9 K/ [9 G
  适用范围:所有模板
" i. }' O# k6 ]7 g3 F8 a( p  基本语法: " I$ m* S# p% I
  { dede:loop table=' sort='' row='' if='' } 6 J& k( B) H! Q) M$ r
  [1] table 表示查询的数据表
, z# a8 B+ @* m/ t  [2] sort 用于排序的字段 也可以加"views"(查看次数排列) 2 O# \7 q2 u9 n3 c$ W
  [3] row 返回结果的条数 5 D9 K( q( D* Z& O5 _
  [4] if 查询条件
& ]5 \6 U. S5 p7、调用论坛帖子中的图片方法,网上搜到的,此方法同上(幻灯片的地方)
; Z# ?: Z# ~  {5 B; h: [' P{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` & e) e0 X" V* e, c& h# I
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 "} 9 k8 F) @0 ~' d2 E1 k" c
<a href="/bbs/viewthread.php?tid=[field:tid /]">
6 j* p* S& o2 T; J  P5 S<img src="/bbs/attachments/[field:attachment/]" ALT="[field:subject/]" width="100" height="80" border="0" />   _6 [# n  k7 [, a" G9 _3 w% q
</A>
8 t+ c# w8 q- x! ]{/dede:sql}




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