setup2.2.sql
上传用户:wenllgg125
上传日期:2020-04-09
资源大小:7277k
文件大小:179k
源码类别:

SCSI/ASPI

开发平台:

Others

  1. IF OBJECT_ID('dnt_checkemailandsecques','P') IS NOT NULL
  2. DROP PROC dnt_checkemailandsecques
  3. GO
  4. CREATE PROCEDURE dnt_checkemailandsecques
  5. @username nchar(20),
  6. @email char(32),
  7. @secques char(8)
  8. AS
  9. SELECT TOP 1 [uid] FROM [dnt_users] WHERE [username]=@username AND [email]=@email AND [secques]=@secques
  10. GO
  11. IF OBJECT_ID('dnt_checkpasswordandsecques','P') IS NOT NULL
  12. DROP PROC dnt_checkpasswordandsecques
  13. GO
  14. CREATE PROCEDURE dnt_checkpasswordandsecques
  15. @username nchar(20),
  16. @password char(32),
  17. @secques char(8)
  18. AS
  19. SELECT TOP 1 [uid] FROM [dnt_users] WHERE [username]=@username AND [password]=@password AND [secques]=@secques
  20. GO
  21. IF OBJECT_ID('dnt_checkpasswordbyuid','P') IS NOT NULL
  22. DROP PROC dnt_checkpasswordbyuid
  23. GO
  24. CREATE PROCEDURE dnt_checkpasswordbyuid
  25. @uid int,
  26. @password char(32)
  27. AS
  28. SELECT TOP 1 [uid], [groupid], [adminid] FROM [dnt_users] WHERE [uid]=@uid AND [password]=@password
  29. GO
  30. IF OBJECT_ID('dnt_checkpasswordbyusername','P') IS NOT NULL
  31. DROP PROC dnt_checkpasswordbyusername
  32. GO
  33. CREATE PROCEDURE dnt_checkpasswordbyusername
  34. @username nchar(20),
  35. @password char(32)
  36. AS
  37. SELECT TOP 1 [uid], [groupid], [adminid] FROM [dnt_users] WHERE [username]=@username AND [password]=@password
  38. GO
  39. IF OBJECT_ID('dnt_createadmingroup','P') IS NOT NULL
  40. DROP PROC dnt_createadmingroup
  41. GO
  42. CREATE PROCEDURE dnt_createadmingroup
  43. @admingid smallint,
  44. @alloweditpost tinyint,
  45. @alloweditpoll tinyint,
  46. @allowstickthread tinyint,
  47. @allowmodpost tinyint,
  48. @allowdelpost tinyint,
  49. @allowmassprune tinyint,
  50. @allowrefund tinyint,
  51. @allowcensorword tinyint,
  52. @allowviewip tinyint,
  53. @allowbanip tinyint,
  54. @allowedituser tinyint,
  55. @allowmoduser tinyint,
  56. @allowbanuser tinyint,
  57. @allowpostannounce tinyint,
  58. @allowviewlog tinyint,
  59. @disablepostctrl tinyint,
  60. @allowviewrealname tinyint
  61. AS
  62. INSERT INTO dnt_admingroups 
  63. ([admingid],[alloweditpost],[alloweditpoll],[allowstickthread],[allowmodpost],[allowdelpost],[allowmassprune],[allowrefund],[allowcensorword],[allowviewip],[allowbanip],[allowedituser],[allowmoduser],[allowbanuser],[allowpostannounce],[allowviewlog],[disablepostctrl],[allowviewrealname])
  64. VALUES
  65. (@admingid,@alloweditpost,@alloweditpoll,@allowstickthread,@allowmodpost,@allowdelpost,@allowmassprune,@allowrefund,@allowcensorword,@allowviewip,@allowbanip,@allowedituser,@allowmoduser,@allowbanuser,@allowpostannounce,@allowviewlog,@disablepostctrl,@allowviewrealname)
  66. GO
  67. IF OBJECT_ID('[dnt_createattachment]','P') IS NOT NULL
  68. DROP PROC [dnt_createattachment]
  69. GO
  70. CREATE PROCEDURE [dnt_createattachment]
  71. @uid int,
  72. @tid int,
  73. @pid int,
  74. @postdatetime datetime,
  75. @readperm int,
  76. @filename nchar(200),
  77. @description nchar(200),
  78. @filetype nchar(100),
  79. @filesize int,
  80. @attachment nchar(200),
  81. @downloads int,
  82. @extname nvarchar(50),
  83. @attachprice int,
  84. @width int,
  85. @height int
  86. AS
  87. DECLARE @aid int
  88. INSERT INTO [dnt_attachments]([uid],[tid], [pid], [postdatetime], [readperm], [filename], [description], [filetype], [filesize],  [attachment], [downloads],[attachprice],[width],[height]) VALUES(@uid, @tid, @pid, @postdatetime, @readperm, @filename, @description, @filetype, @filesize,  @attachment, @downloads, @attachprice,@width,@height)
  89. SELECT SCOPE_IDENTITY()  AS 'aid'
  90. set @aid=(SELECT SCOPE_IDENTITY()  AS 'aid')
  91. UPDATE [dnt_posts1] SET [attachment]=1 WHERE [pid]=@pid
  92. INSERT INTO [dnt_myattachments]([aid],[uid],[attachment],[description],[postdatetime],[downloads],[filename],[pid],[tid],[extname]) VALUES(@aid,@uid,@attachment,@description,@postdatetime,@downloads,@filename,@pid,@tid,@extname)
  93. GO
  94. IF OBJECT_ID('dnt_createdebatepostexpand','P') IS NOT NULL
  95. DROP PROC dnt_createdebatepostexpand
  96. GO
  97. CREATE PROCEDURE dnt_createdebatepostexpand
  98. @tid int,
  99. @pid int,
  100. @opinion int,
  101. @diggs int
  102. AS
  103. BEGIN
  104. INSERT INTO [dnt_postdebatefields] VALUES(@tid, @pid, @opinion, @diggs)
  105. IF @opinion = 1
  106. UPDATE [dnt_debates] SET [positivediggs] = [positivediggs] + 1 WHERE [tid] = @tid
  107. ELSE IF @opinion = 2
  108. UPDATE [dnt_debates] SET [negativediggs] = [negativediggs] + 1 WHERE [tid] = @tid
  109. END
  110. GO
  111. IF OBJECT_ID('dnt_createfavorite','P') IS NOT NULL
  112. DROP PROC dnt_createfavorite
  113. GO
  114. CREATE PROCEDURE dnt_createfavorite
  115. @uid int,
  116. @tid int,
  117. @type tinyint
  118. AS
  119. INSERT INTO [dnt_favorites] ([uid],[tid],[typeid]) VALUES(@uid,@tid,@type)
  120. RETURN
  121. GO
  122. IF OBJECT_ID('dnt_createpm','P') IS NOT NULL
  123. DROP PROC dnt_createpm
  124. GO
  125. CREATE PROCEDURE dnt_createpm
  126. @pmid int,
  127. @msgfrom nvarchar(20),
  128. @msgto nvarchar(20),
  129. @msgfromid int,
  130. @msgtoid int,
  131. @folder smallint=0,
  132. @new int=0,
  133. @subject nvarchar(60),
  134. @postdatetime datetime,
  135. @message ntext,
  136. @savetosentbox smallint=1
  137. AS
  138. IF @folder<>0
  139. BEGIN
  140. SET @msgfrom=@msgto
  141. END
  142. ELSE
  143. BEGIN
  144. UPDATE [dnt_users] SET [newpmcount]=ABS(ISNULL([newpmcount],0)*1)+1,[newpm] = 1 WHERE [uid]=@msgtoid
  145. END
  146. INSERT INTO [dnt_pms] 
  147. ([msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message])
  148. VALUES
  149. (@msgfrom,@msgfromid,@msgto,@msgtoid,@folder,@new,@subject,@postdatetime,@message)
  150. SELECT SCOPE_IDENTITY() AS 'pmid'
  151. IF @savetosentbox=1 AND @folder=0
  152. BEGIN
  153. INSERT INTO [dnt_pms]
  154. ([msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message])
  155. VALUES
  156. (@msgfrom,@msgfromid,@msgto,@msgtoid,1,@new,@subject,@postdatetime,@message)
  157. END
  158. GO
  159. IF OBJECT_ID('dnt_createpost1','P') IS NOT NULL
  160. DROP PROC [dnt_createpost1]
  161. GO
  162. CREATE PROCEDURE [dnt_createpost1]
  163. @fid int,
  164. @tid int,
  165. @parentid int,
  166. @layer int,
  167. @poster varchar(20),
  168. @posterid int,
  169. @title nvarchar(60),
  170. @topictitle nvarchar(60),
  171. @postdatetime char(20),
  172. @message ntext,
  173. @ip varchar(15),
  174. @lastedit varchar(50),
  175. @invisible int,
  176. @usesig int,
  177. @htmlon int,
  178. @smileyoff int,
  179. @bbcodeoff int,
  180. @parseurloff int,
  181. @attachment int,
  182. @rate int,
  183. @ratetimes int
  184. AS
  185. DEClARE @postid int
  186. DELETE FROM [dnt_postid] WHERE DATEDIFF(n, postdatetime, GETDATE()) >5
  187. INSERT INTO [dnt_postid] ([postdatetime]) VALUES(GETDATE())
  188. SELECT @postid=SCOPE_IDENTITY()
  189. INSERT INTO [dnt_posts1]([pid], [fid], [tid], [parentid], [layer], [poster], [posterid], [title], [postdatetime], [message], [ip], [lastedit], [invisible], [usesig], [htmlon], [smileyoff], [bbcodeoff], [parseurloff], [attachment], [rate], [ratetimes]) VALUES(@postid, @fid, @tid, @parentid, @layer, @poster, @posterid, @title, @postdatetime, @message, @ip, @lastedit, @invisible, @usesig, @htmlon, @smileyoff, @bbcodeoff, @parseurloff, @attachment, @rate, @ratetimes)
  190. IF @parentid=0
  191. BEGIN
  192. UPDATE [dnt_posts1] SET [parentid]=@postid WHERE [pid]=@postid
  193. END
  194. IF @@ERROR=0
  195. BEGIN
  196. IF  @invisible = 0
  197. BEGIN
  198. UPDATE [dnt_statistics] SET [totalpost]=[totalpost] + 1
  199. DECLARE @fidlist AS VARCHAR(1000)
  200. DECLARE @strsql AS VARCHAR(4000)
  201. SET @fidlist = '';
  202. SELECT @fidlist = ISNULL([parentidlist],'') FROM [dnt_forums] WHERE [fid] = @fid
  203. IF RTRIM(@fidlist)<>''
  204. BEGIN
  205. SET @fidlist = RTRIM(@fidlist) + ',' + CAST(@fid AS VARCHAR(10))
  206. END
  207. ELSE
  208. BEGIN
  209. SET @fidlist = CAST(@fid AS VARCHAR(10))
  210. END
  211. UPDATE [dnt_forums] SET 
  212. [posts]=[posts] + 1, 
  213. [todayposts]=CASE 
  214. WHEN DATEDIFF(day, [lastpost], GETDATE())=0 THEN [todayposts] + 1 
  215.  ELSE 1 
  216.  END,
  217. [lasttid]=@tid,
  218. [lasttitle]=@topictitle,
  219. [lastpost]=@postdatetime,
  220. [lastposter]=@poster,
  221. [lastposterid]=@posterid 
  222. WHERE fid IN (SELECT [item] FROM
  223.  [dnt_split](@fidlist, ','))
  224. UPDATE [dnt_users] SET
  225. [lastpost] = @postdatetime,
  226. [lastpostid] = @postid,
  227. [lastposttitle] = @title,
  228. [posts] = [posts] + 1,
  229. [lastactivity] = GETDATE()
  230. WHERE [uid] = @posterid
  231. IF @layer<=0
  232. BEGIN
  233. UPDATE [dnt_topics] SET [replies]=0,[lastposter]=@poster,[lastpost]=@postdatetime,[lastposterid]=@posterid WHERE [tid]=@tid
  234. END
  235. ELSE
  236. BEGIN
  237. UPDATE [dnt_topics] SET [replies]=[replies] + 1,[lastposter]=@poster,[lastpost]=@postdatetime,[lastposterid]=@posterid WHERE [tid]=@tid
  238. END
  239. END
  240. UPDATE [dnt_topics] SET [lastpostid]=@postid WHERE [tid]=@tid
  241. IF @posterid <> -1
  242. BEGIN
  243. INSERT [dnt_myposts]([uid], [tid], [pid], [dateline]) VALUES(@posterid, @tid, @postid, @postdatetime)
  244. END
  245. END
  246. SELECT @postid AS postid
  247. GO
  248. IF OBJECT_ID('dnt_createsearchcache','P') IS NOT NULL
  249. DROP PROC dnt_createsearchcache
  250. GO
  251. CREATE PROCEDURE dnt_createsearchcache
  252. @keywords varchar(255),
  253. @searchstring varchar(255),
  254. @ip varchar(15),
  255. @uid int,
  256. @groupid int,
  257. @postdatetime varchar(19),
  258. @expiration varchar(19),
  259. @topics int,
  260. @tids text
  261. AS
  262. INSERT INTO dnt_searchcaches 
  263. ([keywords],[searchstring],[ip],[uid],[groupid],[postdatetime],[expiration],[topics],[tids])
  264. VALUES
  265. (@keywords,@searchstring,@ip,@uid,@groupid,@postdatetime,@expiration,@topics,@tids)
  266. SELECT SCOPE_IDENTITY()  AS 'searchid'
  267. GO
  268. IF OBJECT_ID('[dnt_createtags]','P') IS NOT NULL
  269. DROP PROC [dnt_createtags]
  270. GO
  271. CREATE PROCEDURE [dnt_createtags]
  272. @tags nvarchar(55),
  273. @userid int,
  274. @postdatetime datetime
  275. AS
  276. BEGIN
  277. INSERT INTO [dnt_tags]([tagname], [userid], [postdatetime], [orderid], [color], [count], [fcount], [pcount], [scount], [vcount]) 
  278. SELECT [item], @userid, @postdatetime, 0, '', 0, 0, 0, 0, 0 FROM [dnt_split](@tags, ' ') AS [newtags] 
  279. WHERE NOT EXISTS (SELECT [tagname] FROM [dnt_tags] WHERE [newtags].[item] = [tagname])
  280. END
  281. GO
  282. IF OBJECT_ID('dnt_createtopic','P') IS NOT NULL
  283. DROP PROC dnt_createtopic
  284. GO
  285. CREATE PROCEDURE dnt_createtopic
  286. @fid smallint,
  287. @iconid smallint,
  288. @title nchar(80),
  289. @typeid smallint,
  290. @readperm int,
  291. @price smallint,
  292. @poster char(20),
  293. @posterid int,
  294. @postdatetime smalldatetime,
  295. @lastpost smalldatetime,
  296. @lastpostid int,
  297. @lastposter char(20),
  298. @views int,
  299. @replies int,
  300. @displayorder int,
  301. @highlight varchar(500),
  302. @digest int,
  303. @rate int,
  304. @hide int,
  305. @attachment int,
  306. @moderated int,
  307. @closed int,
  308. @magic int,
  309. @special tinyint,
  310. @attention int
  311. AS
  312. DECLARE @topicid int
  313. DELETE FROM [dnt_topics] WHERE [tid]>(SELECT ISNULL(max(tid),0)-100 FROM [dnt_topics]) AND [lastpostid]=0
  314. INSERT INTO [dnt_topics]([fid], [iconid], [title], [typeid], [readperm], [price], [poster], [posterid], [postdatetime], [lastpost], [lastpostid], [lastposter], [views], [replies], [displayorder], [highlight], [digest], [rate], [hide], [attachment], [moderated], [closed], [magic], [special],[attention]) VALUES(@fid, @iconid, @title, @typeid, @readperm, @price, @poster, @posterid, @postdatetime, @lastpost, @lastpostid, @lastposter, @views, @replies, @displayorder, @highlight, @digest, @rate, @hide, @attachment, @moderated, @closed, @magic, @special,@attention)
  315. SET @topicid=SCOPE_IDENTITY()
  316. IF @@ERROR=0 AND @displayorder=0
  317. BEGIN
  318. UPDATE [dnt_statistics] SET [totaltopic]=[totaltopic] + 1
  319. UPDATE [dnt_forums] SET [topics] = [topics] + 1,[curtopics] = [curtopics] + 1 WHERE [fid] = @fid
  320. IF @posterid <> -1
  321. BEGIN
  322. INSERT INTO [dnt_mytopics]([tid],[uid],[dateline]) VALUES(@topicid,  @posterid,  @postdatetime)
  323. END
  324. END
  325. SELECT @topicid as topicid
  326. GO
  327. IF OBJECT_ID('[dnt_createuser]','P') IS NOT NULL
  328. DROP PROC [dnt_createuser]
  329. GO
  330. CREATE PROCEDURE [dnt_createuser]
  331. @username nchar(20),
  332. @nickname nchar(20),
  333. @password char(32),
  334. @secques char(8),
  335. @gender int,
  336. @adminid int,
  337. @groupid smallint,
  338. @groupexpiry int,
  339. @extgroupids char(60),
  340. @regip char(15),
  341. @joindate char(19),
  342. @lastip char(15),
  343. @lastvisit char(19),
  344. @lastactivity char(19),
  345. @lastpost char(19),
  346. @lastpostid int,
  347. @lastposttitle nchar(60),
  348. @posts int,
  349. @digestposts smallint,
  350. @oltime int,
  351. @pageviews int,
  352. @credits int,
  353. @extcredits1 float,
  354. @extcredits2 float,
  355. @extcredits3 float,
  356. @extcredits4 float,
  357. @extcredits5 float,
  358. @extcredits6 float,
  359. @extcredits7 float,
  360. @extcredits8 float,
  361. @avatarshowid int,
  362. @email char(50),
  363. @bday char(19),
  364. @sigstatus int,
  365. @salt nchar(6),
  366. @tpp int,
  367. @ppp int,
  368. @templateid smallint,
  369. @pmsound int,
  370. @showemail int,
  371. @newsletter int,
  372. @invisible int,
  373. @newpm int,
  374. @accessmasks int,
  375. @website varchar(80),
  376. @icq varchar(12),
  377. @qq varchar(12),
  378. @yahoo varchar(40),
  379. @msn varchar(40),
  380. @skype varchar(40),
  381. @location nvarchar(30),
  382. @customstatus varchar(30),
  383. @avatar varchar(255),
  384. @avatarwidth int,
  385. @avatarheight int,
  386. @medals varchar(300),
  387. @bio nvarchar(500),
  388. @signature nvarchar(500),
  389. @sightml nvarchar(1000),
  390. @authstr varchar(20),
  391. @realname nvarchar(10),
  392. @idcard varchar(20),
  393. @mobile varchar(20),
  394. @phone varchar(20)
  395. AS
  396. DECLARE @uid int
  397. INSERT INTO [dnt_users]([username],[nickname], [password], [secques], [gender], [adminid], [groupid], [groupexpiry], [extgroupids], [regip], [joindate], [lastip], [lastvisit], [lastactivity], [lastpost], [lastpostid], [lastposttitle], [posts], [digestposts], [oltime], [pageviews], [credits], [extcredits1], [extcredits2], [extcredits3], [extcredits4], [extcredits5], [extcredits6], [extcredits7], [extcredits8], [avatarshowid], [email], [bday], [sigstatus], [salt], [tpp], [ppp], [templateid], [pmsound], [showemail], [newsletter], [invisible], [newpm], [accessmasks]) VALUES(@username,@nickname, @password, @secques, @gender, @adminid, @groupid, @groupexpiry, @extgroupids, @regip, @joindate, @lastip, @lastvisit, @lastactivity, @lastpost, @lastpostid, @lastposttitle, @posts, @digestposts, @oltime, @pageviews, @credits, @extcredits1, @extcredits2, @extcredits3, @extcredits4, @extcredits5, @extcredits6, @extcredits7, @extcredits8, @avatarshowid, @email, @bday, @sigstatus, @salt, @tpp, @ppp, @templateid, @pmsound, @showemail, @newsletter, @invisible, @newpm, @accessmasks)
  398. SELECT SCOPE_IDENTITY()  AS 'userid'
  399. SET @uid = SCOPE_IDENTITY()
  400. IF @@ERROR=0
  401. BEGIN
  402. UPDATE [dnt_statistics] SET [totalusers]=[totalusers] + 1,[lastusername]=@username,[lastuserid]=@uid
  403. END
  404. INSERT INTO dnt_userfields 
  405. ([uid],[website],[icq],[qq],[yahoo],[msn],[skype],[location],[customstatus],[avatar],[avatarwidth],[avatarheight],[medals],[bio],[signature],[sightml],[authstr],[realname],[idcard],[mobile],[phone])
  406. VALUES
  407. (@uid,@website,@icq,@qq,@yahoo,@msn,@skype,@location,@customstatus,@avatar,@avatarwidth,@avatarheight,@medals,@bio,@signature,@sightml,@authstr,@realname,@idcard,@mobile,@phone)
  408. GO
  409. IF OBJECT_ID('[dnt_deletepost1bypid]','P') IS NOT NULL
  410. DROP PROC [dnt_deletepost1bypid]
  411. GO
  412. CREATE PROCEDURE [dnt_deletepost1bypid]
  413.                         @pid int,
  414. @chanageposts AS BIT
  415.                     AS
  416.                         DECLARE @fid int
  417.                         DECLARE @tid int
  418.                         DECLARE @posterid int
  419.                         DECLARE @lastforumposterid int
  420.                         DECLARE @layer int
  421.                         DECLARE @postdatetime smalldatetime
  422.                         DECLARE @poster varchar(50)
  423.                         DECLARE @postcount int
  424.                         DECLARE @title nchar(60)
  425.                         DECLARE @lasttid int
  426.                         DECLARE @postid int
  427.                         DECLARE @todaycount int
  428.                     
  429.                     
  430.                         SELECT @fid = [fid],@tid = [tid],@posterid = [posterid],@layer = [layer], @postdatetime = [postdatetime] FROM [dnt_posts1] WHERE pid = @pid
  431.                         DECLARE @fidlist AS VARCHAR(1000)
  432.                     
  433.                         SET @fidlist = '';
  434.                     
  435.                         SELECT @fidlist = ISNULL([parentidlist],'') FROM [dnt_forums] WHERE [fid] = @fid
  436.                         IF RTRIM(@fidlist)<>''
  437.                             BEGIN
  438.                                 SET @fidlist = RTRIM(@fidlist) + ',' + CAST(@fid AS VARCHAR(10))
  439.                             END
  440.                         ELSE
  441.                             BEGIN
  442.                                 SET @fidlist = CAST(@fid AS VARCHAR(10))
  443.                             END
  444.                         IF @layer<>0
  445.                             BEGIN
  446.                     
  447. IF @chanageposts = 1
  448. BEGIN
  449. UPDATE [dnt_statistics] SET [totalpost]=[totalpost] - 1
  450. UPDATE [dnt_forums] SET 
  451. [posts]=[posts] - 1, 
  452. [todayposts]=CASE 
  453. WHEN DATEPART(yyyy, @postdatetime)=DATEPART(yyyy,GETDATE()) AND DATEPART(mm, @postdatetime)=DATEPART(mm,GETDATE()) AND DATEPART(dd, @postdatetime)=DATEPART(dd,GETDATE()) THEN [todayposts] - 1
  454. ELSE [todayposts]
  455. END
  456. WHERE (CHARINDEX(',' + RTRIM([fid]) + ',', ',' +
  457. (SELECT @fidlist AS [fid]) + ',') > 0)
  458.                     
  459. UPDATE [dnt_users] SET [posts] = [posts] - 1 WHERE [uid] = @posterid
  460. UPDATE [dnt_topics] SET [replies]=[replies] - 1 WHERE [tid]=@tid
  461. END
  462.                     
  463.                                 DELETE FROM [dnt_posts1] WHERE [pid]=@pid
  464.                     
  465.                             END
  466.                         ELSE
  467.                             BEGIN
  468.                     
  469.                                 SELECT @postcount = COUNT([pid]) FROM [dnt_posts1] WHERE [tid] = @tid
  470.                                 SELECT @todaycount = COUNT([pid]) FROM [dnt_posts1] WHERE [tid] = @tid AND DATEDIFF(d, [postdatetime], GETDATE()) = 0
  471.                     
  472. IF @chanageposts = 1
  473. BEGIN
  474. UPDATE [dnt_statistics] SET [totaltopic]=[totaltopic] - 1, [totalpost]=[totalpost] - @postcount
  475.                     
  476. UPDATE [dnt_forums] SET [posts]=[posts] - @postcount, [topics]=[topics] - 1,[todayposts]=[todayposts] - @todaycount WHERE (CHARINDEX(',' + RTRIM([fid]) + ',', ',' +(SELECT @fidlist AS [fid]) + ',') > 0)
  477.                     
  478. UPDATE [dnt_users] SET [posts] = [posts] - @postcount WHERE [uid] = @posterid
  479.                     
  480. END
  481.                                 DELETE FROM [dnt_posts1] WHERE [tid] = @tid
  482.                     
  483.                                 DELETE FROM [dnt_topics] WHERE [tid] = @tid
  484.                     
  485.                             END
  486.                     
  487.                         IF @layer<>0
  488.                             BEGIN
  489.                                 SELECT TOP 1 @pid = [pid], @posterid = [posterid], @postdatetime = [postdatetime], @title = [title], @poster = [poster] FROM [dnt_posts1] WHERE [tid]=@tid ORDER BY [pid] DESC
  490.                                 UPDATE [dnt_topics] SET [lastposter]=@poster,[lastpost]=@postdatetime,[lastpostid]=@pid,[lastposterid]=@posterid WHERE [tid]=@tid
  491.                             END
  492.                         SELECT @lasttid = [lasttid] FROM [dnt_forums] WHERE [fid] = @fid
  493.                     
  494.                         IF @lasttid = @tid
  495.                             BEGIN
  496.                     
  497.                     
  498.                                 SELECT TOP 1 @pid = [pid], @tid = [tid],@lastforumposterid = [posterid], @title = [title], @postdatetime = [postdatetime], @poster = [poster] FROM [dnt_posts1] WHERE [fid] = @fid ORDER BY [pid] DESC
  499.                     
  500.                             
  501.                             
  502.                                 UPDATE [dnt_forums] SET 
  503.                     
  504.                                 [lastpost]=@postdatetime,
  505.                                 [lastposter]=ISNULL(@poster,''),
  506.                                 [lastposterid]=ISNULL(@lastforumposterid,'0')
  507.                                 WHERE (CHARINDEX(',' + RTRIM([fid]) + ',', ',' +
  508.                                 (SELECT @fidlist AS [fid]) + ',') > 0)
  509.                     
  510.                                 SELECT TOP 1 @pid = [pid], @tid = [tid],@posterid = [posterid], @postdatetime = [postdatetime], @title = [title], @poster = [poster] FROM [dnt_posts1] WHERE [posterid]=@posterid ORDER BY [pid] DESC
  511.                     
  512.                                 UPDATE [dnt_users] SET
  513.                     
  514.                                 [lastpost] = @postdatetime,
  515.                                 [lastpostid] = @pid,
  516.                                 [lastposttitle] = ISNULL(@title,'')
  517.                     
  518.                                 WHERE [uid] = @posterid
  519.                     
  520.                             END
  521. GO
  522. IF OBJECT_ID('[dnt_deletetopictags]','P') IS NOT NULL
  523. DROP PROC [dnt_deletetopictags]
  524. GO
  525. CREATE PROCEDURE [dnt_deletetopictags]
  526. @tid int
  527.  AS
  528. BEGIN       
  529. UPDATE [dnt_tags] SET [count]=[count]-1,[fcount]=[fcount]-1 
  530. WHERE EXISTS (SELECT [tagid] FROM [dnt_topictags] WHERE [tid] = @tid AND [tagid] = [dnt_tags].[tagid])
  531.     DELETE FROM [dnt_topictags] WHERE [tid] = @tid
  532. END
  533. GO
  534. IF OBJECT_ID('dnt_getalltopiccount','P') IS NOT NULL
  535. DROP PROC dnt_getalltopiccount
  536. GO
  537. CREATE PROCEDURE dnt_getalltopiccount
  538. @fid int
  539. AS
  540. SELECT COUNT(tid) FROM [dnt_topics] WHERE ([fid]=@fid   OR   [fid]  IN (  SELECT fid  FROM [dnt_forums]  WHERE  CHARINDEX(',' + RTRIM(@fid) + ',', ',' + RTRIM(parentidlist) + ',') > 0))  AND [displayorder]>=0
  541. GO
  542. IF OBJECT_ID('[dnt_getdebatepostlist1]','P') IS NOT NULL
  543. DROP PROC [dnt_getdebatepostlist1]
  544. GO
  545. CREATE PROCEDURE [dnt_getdebatepostlist1] 
  546. @tid int,
  547. @opinion int,
  548. @pagesize int,
  549. @pageindex int
  550. AS
  551. BEGIN
  552. DECLARE @pagetop int
  553. SET @pagetop = (@pageindex-1)*@pagesize
  554. IF @pageindex = 1 
  555. EXEC('SELECT 
  556. [dnt_posts1].[attachment],
  557. [dnt_posts1].[bbcodeoff],
  558. [dnt_posts1].[fid],
  559. [dnt_posts1].[htmlon],
  560. [dnt_posts1].[invisible],
  561. [dnt_posts1].[ip],
  562. [dnt_posts1].[lastedit],
  563. [dnt_posts1].[layer],
  564. [dnt_posts1].[message],
  565. [dnt_posts1].[parentid],
  566. [dnt_posts1].[parseurloff],
  567. [dnt_posts1].[pid],
  568. [dnt_posts1].[postdatetime],
  569. [dnt_posts1].[poster],
  570. [dnt_posts1].[posterid],
  571. [dnt_posts1].[rate],
  572. [dnt_posts1].[ratetimes],
  573. [dnt_posts1].[smileyoff],
  574. [dnt_posts1].[tid],
  575. [dnt_posts1].[title],
  576. [dnt_posts1].[usesig],
  577. [dnt_users].[accessmasks], 
  578. [dnt_users].[adminid],
  579. [dnt_users].[avatarshowid],
  580. [dnt_users].[bday],
  581. [dnt_users].[credits],
  582. [dnt_users].[digestposts],
  583. [dnt_users].[email],
  584. [dnt_users].[extcredits1],
  585. [dnt_users].[extcredits2],
  586. [dnt_users].[extcredits3],
  587. [dnt_users].[extcredits4],
  588. [dnt_users].[extcredits5],
  589. [dnt_users].[extcredits6],
  590. [dnt_users].[extcredits7],
  591. [dnt_users].[extcredits8],
  592. [dnt_users].[extgroupids],
  593. [dnt_users].[gender],
  594. [dnt_users].[groupexpiry],
  595. [dnt_users].[groupid],
  596. [dnt_users].[joindate],
  597. [dnt_users].[lastactivity],
  598. [dnt_users].[lastip],
  599. [dnt_users].[lastpost],
  600. [dnt_users].[lastpostid],
  601. [dnt_users].[lastposttitle],
  602. [dnt_users].[lastvisit],
  603. [dnt_users].[newpm],
  604. [dnt_users].[newpmcount],
  605. [dnt_users].[newsletter],
  606. [dnt_users].[nickname],
  607. [dnt_users].[oltime],
  608. [dnt_users].[onlinestate],
  609. [dnt_users].[pageviews],
  610. [dnt_users].[password],
  611. [dnt_users].[pmsound],
  612. [dnt_users].[posts],
  613. [dnt_users].[ppp],
  614. [dnt_users].[regip],
  615. [dnt_users].[secques],
  616. [dnt_users].[showemail],
  617. [dnt_users].[sigstatus],
  618. [dnt_users].[spaceid],
  619. [dnt_users].[templateid],
  620. [dnt_users].[tpp],
  621. [dnt_users].[uid],
  622. [dnt_users].[username],
  623. [dnt_userfields].[authflag],
  624. [dnt_userfields].[authstr],
  625. [dnt_userfields].[authtime],
  626. [dnt_userfields].[avatar],
  627. [dnt_userfields].[avatarheight],
  628. [dnt_userfields].[avatarwidth],
  629. [dnt_userfields].[bio],
  630. [dnt_userfields].[customstatus],
  631. [dnt_userfields].[icq],
  632. [dnt_userfields].[idcard],
  633. [dnt_userfields].[ignorepm],
  634. [dnt_userfields].[location],
  635. [dnt_userfields].[medals],
  636. [dnt_userfields].[mobile],
  637. [dnt_userfields].[msn],
  638. [dnt_userfields].[phone],
  639. [dnt_userfields].[qq],
  640. [dnt_userfields].[realname],
  641. [dnt_userfields].[sightml],
  642. [dnt_userfields].[signature],
  643. [dnt_userfields].[skype],
  644. [dnt_userfields].[website],
  645. [dnt_userfields].[yahoo] FROM [dnt_posts1] 
  646. LEFT JOIN dnt_users ON dnt_users.uid = [dnt_posts1].posterid 
  647. LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] 
  648. WHERE [dnt_posts1].invisible=0 AND [dnt_posts1].pid IN 
  649. (SELECT TOP ' + @pagesize + ' pid FROM dnt_postdebatefields 
  650.  WHERE opinion=' + @opinion + ' AND 
  651. tid=' + @tid+')')
  652. ELSE
  653. EXEC('SELECT 
  654. [dnt_posts1].[attachment],
  655. [dnt_posts1].[bbcodeoff],
  656. [dnt_posts1].[fid],
  657. [dnt_posts1].[htmlon],
  658. [dnt_posts1].[invisible],
  659. [dnt_posts1].[ip],
  660. [dnt_posts1].[lastedit],
  661. [dnt_posts1].[layer],
  662. [dnt_posts1].[message],
  663. [dnt_posts1].[parentid],
  664. [dnt_posts1].[parseurloff],
  665. [dnt_posts1].[pid],
  666. [dnt_posts1].[postdatetime],
  667. [dnt_posts1].[poster],
  668. [dnt_posts1].[posterid],
  669. [dnt_posts1].[rate],
  670. [dnt_posts1].[ratetimes],
  671. [dnt_posts1].[smileyoff],
  672. [dnt_posts1].[tid],
  673. [dnt_posts1].[title],
  674. [dnt_posts1].[usesig],
  675. [dnt_users].[accessmasks], 
  676. [dnt_users].[adminid],
  677. [dnt_users].[avatarshowid],
  678. [dnt_users].[bday],
  679. [dnt_users].[credits],
  680. [dnt_users].[digestposts],
  681. [dnt_users].[email],
  682. [dnt_users].[extcredits1],
  683. [dnt_users].[extcredits2],
  684. [dnt_users].[extcredits3],
  685. [dnt_users].[extcredits4],
  686. [dnt_users].[extcredits5],
  687. [dnt_users].[extcredits6],
  688. [dnt_users].[extcredits7],
  689. [dnt_users].[extcredits8],
  690. [dnt_users].[extgroupids],
  691. [dnt_users].[gender],
  692. [dnt_users].[groupexpiry],
  693. [dnt_users].[groupid],
  694. [dnt_users].[joindate],
  695. [dnt_users].[lastactivity],
  696. [dnt_users].[lastip],
  697. [dnt_users].[lastpost],
  698. [dnt_users].[lastpostid],
  699. [dnt_users].[lastposttitle],
  700. [dnt_users].[lastvisit],
  701. [dnt_users].[newpm],
  702. [dnt_users].[newpmcount],
  703. [dnt_users].[newsletter],
  704. [dnt_users].[nickname],
  705. [dnt_users].[oltime],
  706. [dnt_users].[onlinestate],
  707. [dnt_users].[pageviews],
  708. [dnt_users].[password],
  709. [dnt_users].[pmsound],
  710. [dnt_users].[posts],
  711. [dnt_users].[ppp],
  712. [dnt_users].[regip],
  713. [dnt_users].[secques],
  714. [dnt_users].[showemail],
  715. [dnt_users].[sigstatus],
  716. [dnt_users].[spaceid],
  717. [dnt_users].[templateid],
  718. [dnt_users].[tpp],
  719. [dnt_users].[uid],
  720. [dnt_users].[username],
  721. [dnt_userfields].[authflag],
  722. [dnt_userfields].[authstr],
  723. [dnt_userfields].[authtime],
  724. [dnt_userfields].[avatar],
  725. [dnt_userfields].[avatarheight],
  726. [dnt_userfields].[avatarwidth],
  727. [dnt_userfields].[bio],
  728. [dnt_userfields].[customstatus],
  729. [dnt_userfields].[icq],
  730. [dnt_userfields].[idcard],
  731. [dnt_userfields].[ignorepm],
  732. [dnt_userfields].[location],
  733. [dnt_userfields].[medals],
  734. [dnt_userfields].[mobile],
  735. [dnt_userfields].[msn],
  736. [dnt_userfields].[phone],
  737. [dnt_userfields].[qq],
  738. [dnt_userfields].[realname],
  739. [dnt_userfields].[sightml],
  740. [dnt_userfields].[signature],
  741. [dnt_userfields].[skype],
  742. [dnt_userfields].[website],
  743. [dnt_userfields].[yahoo] FROM [dnt_posts1] 
  744. LEFT JOIN dnt_users ON dnt_users.uid = [dnt_posts1].posterid 
  745. LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] 
  746. WHERE [dnt_posts1].invisible=0 AND [dnt_posts1].pid IN 
  747. (SELECT TOP ' + @pagesize + ' pid FROM dnt_postdebatefields 
  748.  WHERE opinion=' + @opinion + ' AND 
  749. tid=' + @tid+' AND pid > (SELECT MAX(pid) FROM (
  750. SELECT TOP ' + @pagetop + ' pid FROM dnt_postdebatefields 
  751. WHERE opinion=' + @opinion + ' AND 
  752. tid=' + @tid+' ORDER BY pid) AS tblTmp) ORDER BY pid)')
  753. END
  754. GO
  755. IF OBJECT_ID('dnt_getfavoritescount','P') IS NOT NULL
  756. DROP PROC dnt_getfavoritescount
  757. GO
  758. CREATE PROCEDURE dnt_getfavoritescount
  759. @uid int,
  760. @typeid int
  761. AS
  762. SELECT COUNT(uid) as c FROM [dnt_favorites] WHERE [uid]=@uid and typeid=@typeid
  763. GO
  764. IF OBJECT_ID('dnt_getfavoritescountbytype','P') IS NOT NULL
  765. DROP PROC dnt_getfavoritescountbytype
  766. GO
  767. CREATE PROCEDURE dnt_getfavoritescountbytype
  768. @uid int,
  769. @typeid tinyint
  770. AS
  771. SELECT COUNT(uid) as c FROM [dnt_favorites] WHERE [uid]=@uid AND [typeid]=@typeid
  772. GO
  773. IF OBJECT_ID('dnt_getfavoriteslist','P') IS NOT NULL
  774. DROP PROC dnt_getfavoriteslist
  775. GO
  776. CREATE PROCEDURE dnt_getfavoriteslist
  777. @uid int,
  778. @pagesize int,
  779. @pageindex int
  780. AS
  781. DECLARE @strSQL varchar(5000)
  782. SET @strSQL='SELECT [f].[uid],[f].[tid],[topics].[title],[topics].[poster],[topics].[postdatetime],[topics].[replies],[topics].[views],[topics].[posterid] FROM [dnt_favorites] [f],[dnt_topics] [topics] WHERE [f].[tid]=[topics].[tid] AND [f].[typeid]=0 AND [f].[uid]=' + STR(@uid)
  783. IF @pageindex = 1
  784. BEGIN
  785. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'  [uid],[tid],[title],[poster],[postdatetime],[replies],[views],[posterid]  FROM (' + @strSQL + ') f' + '  ORDER BY [tid] DESC'
  786. END
  787. ELSE
  788. BEGIN
  789. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'  [uid],[tid],[title],[poster],[postdatetime],[replies],[views],[posterid]  FROM (' + @strSQL + ') f1 WHERE [tid] < (SELECT MIN([tid]) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [tid] FROM (' + @strSQL + ') f2' + '  ORDER BY [tid] DESC) AS tblTmp)' + '  ORDER BY [tid] DESC'
  790. END
  791. EXEC(@strSQL)
  792. GO
  793. IF OBJECT_ID('dnt_getfirstpost1id','P') IS NOT NULL
  794. DROP PROC dnt_getfirstpost1id
  795. GO
  796. CREATE PROCEDURE dnt_getfirstpost1id
  797. @tid int
  798. AS
  799. SELECT TOP 1 [pid] FROM [dnt_posts1] WHERE [tid]=@tid ORDER BY [pid]
  800. GO
  801. IF OBJECT_ID('[dnt_getlastexecutescheduledeventdatetime]','P') IS NOT NULL
  802. DROP PROC [dnt_getlastexecutescheduledeventdatetime]
  803. GO
  804. CREATE PROCEDURE [dnt_getlastexecutescheduledeventdatetime]
  805. (
  806. @key VARCHAR(100),
  807. @servername VARCHAR(100),
  808. @lastexecuted DATETIME OUTPUT
  809. )
  810. AS
  811. SELECT @lastexecuted = MAX([lastexecuted]) FROM [dnt_scheduledevents] WHERE [key] = @key AND [servername] = @servername
  812. IF(@lastexecuted IS NULL)
  813. BEGIN
  814. SET @lastexecuted = DATEADD(YEAR,-1,GETDATE())
  815. END
  816. GO
  817. IF OBJECT_ID('[dnt_getlastpostlist1]','P') IS NOT NULL
  818. DROP PROC [dnt_getlastpostlist1]
  819. GO
  820. CREATE PROCEDURE [dnt_getlastpostlist1]
  821. @tid int,
  822. @postnum int
  823. AS
  824. EXEC('SELECT TOP ' + @postnum + ' [dnt_posts1].[pid], [dnt_posts1].[fid], [dnt_posts1].[layer], [dnt_posts1].[posterid], [dnt_posts1].[title], [dnt_posts1].[message], [dnt_posts1].[postdatetime], [dnt_posts1].[attachment], [dnt_posts1].[poster], [dnt_posts1].[posterid], [dnt_posts1].[invisible], [dnt_posts1].[usesig], [dnt_posts1].[htmlon], [dnt_posts1].[smileyoff], [dnt_posts1].[parseurloff], [dnt_posts1].[bbcodeoff], [dnt_posts1].[rate], [dnt_posts1].[ratetimes], [dnt_users].[username], [dnt_users].[email], [dnt_users].[showemail], [dnt_userfields].[avatar], [dnt_userfields].[avatarwidth], [dnt_userfields].[avatarheight], [dnt_userfields].[sightml] AS signature, [dnt_userfields].[location], [dnt_userfields].[customstatus] FROM [dnt_posts1] LEFT JOIN [dnt_users] ON [dnt_users].[uid]=[dnt_posts1].[posterid] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] WHERE [dnt_posts1].[tid]=' + @tid + '  AND  [dnt_posts1].[invisible] <=0 AND [dnt_posts1].layer <> 0 ORDER BY [dnt_posts1].[pid] DESC')
  825. GO
  826. IF OBJECT_ID('[dnt_getmyattachments]','P') IS NOT NULL
  827. DROP PROC [dnt_getmyattachments]
  828. GO
  829. CREATE PROCEDURE [dnt_getmyattachments]
  830. @uid int,
  831. @pageindex int,
  832. @pagesize int
  833.  AS
  834. DECLARE @strSQL varchar(5000)
  835. IF @pageindex = 1
  836. BEGIN
  837. SET @strSQL ='select TOP  '+ STR(@pagesize) + ' [aid],[uid],[attachment],[description],[downloads],[extname],[filename],[pid],[postdatetime],[tid]  from [dnt_myattachments]  where  [uid]='+STR(@uid)+'  order by [aid] desc'
  838. END
  839. ELSE
  840. BEGIN
  841. SET @strSQL = 'SELECT TOP  '+STR(@pagesize)+' [aid],[uid],[attachment],[description],[downloads],[extname],[filename],[pid],[postdatetime],[tid] FROM [dnt_myattachments] WHERE [aid] >(SELECT ISNULL(MAX([aid]),0) FROM (SELECT TOP '+STR((@pageindex-1)*@pagesize)+' [aid] FROM [dnt_myattachments]  ORDER BY aid) as A) and [uid]='+ STR(@uid)+'  ORDER BY aid '
  842. END
  843. EXEC(@strSQL)
  844. GO
  845. IF OBJECT_ID('[dnt_getmyattachmentsbytype]','P') IS NOT NULL
  846. DROP PROC [dnt_getmyattachmentsbytype]
  847. GO
  848. CREATE PROCEDURE [dnt_getmyattachmentsbytype]
  849. @uid int,
  850. @pageindex int,
  851. @pagesize int,
  852. @extlist as varchar(100)
  853.  AS
  854. DECLARE @strSQL varchar(5000)
  855. IF @pageindex = 1
  856. BEGIN
  857. SET @strSQL ='select TOP '+ STR(@pagesize) + ' [aid],[uid],[attachment],[description],[downloads],[extname],[filename],[pid],[postdatetime],[tid]  from [dnt_myattachments] where  [extname] in ('+@extlist+') and [uid]='+STR(@uid)+' order by [aid] desc'
  858. END
  859. ELSE
  860. BEGIN
  861. SET @strSQL = 'select TOP '+ STR(@pagesize) + ' [aid],[uid],[attachment],[description],[downloads],[extname],[filename],[pid],[postdatetime],[tid]  from dnt_myattachments where [extname] in ('+@extlist+')  and [aid] >(SELECT ISNULL(MAX([aid]),0) FROM (SELECT TOP '+STR((@pageindex-1)*@pagesize)+' [aid] FROM [dnt_myattachments]  where [extname] in ('+@extlist+') ORDER BY aid) as A) and [uid]='+STR(@uid)+' ORDER BY aid '
  862. END
  863. EXEC(@strSQL)
  864. GO
  865. IF OBJECT_ID('[dnt_getmyposts]','P') IS NOT NULL
  866. DROP PROC [dnt_getmyposts]
  867. GO
  868. CREATE PROCEDURE [dnt_getmyposts]
  869. @uid int,
  870. @pageindex int,
  871. @pagesize int
  872.  AS
  873. DECLARE @strSQL varchar(5000)
  874. IF @pageindex = 1
  875. BEGIN
  876. SET @strSQL = 'SELECT [tid], [fid], [iconid], [typeid], [readperm], [price], [poster], [posterid], [title], [postdatetime], [lastpost], [lastpostid], [lastposter], [lastposterid], [views], [replies], [displayorder], [highlight], [digest], [rate], [hide], [special], [attachment], [moderated], [closed], [magic]
  877.  FROM [dnt_topics] 
  878. WHERE [tid] IN (
  879. SELECT DISTINCT TOP ' + STR(@pagesize) + ' [tid] 
  880. FROM [dnt_myposts] 
  881. WHERE [uid]=' + STR(@uid) + ' 
  882. ORDER BY [tid] DESC
  883. ORDER BY [tid] DESC'
  884. END
  885. ELSE
  886. BEGIN
  887. SET @strSQL = 'SELECT [tid], [fid], [iconid], [typeid], [readperm], [price], [poster], [posterid], [title], [postdatetime], [lastpost], [lastpostid], [lastposter], [lastposterid], [views], [replies], [displayorder], [highlight], [digest], [rate], [hide], [special], [attachment], [moderated], [closed], [magic]
  888.  FROM [dnt_topics] 
  889. WHERE [tid] IN (
  890. SELECT DISTINCT TOP ' + STR(@pagesize) + ' [tid] 
  891. FROM [dnt_myposts] 
  892. WHERE [uid]=' + STR(@uid) + ' 
  893. AND [tid] < (
  894. SELECT MIN([tid])
  895. FROM (
  896. SELECT DISTINCT TOP ' + STR((@pageindex-1)*@pagesize) + ' [tid] 
  897. FROM [dnt_myposts]
  898. WHERE [uid]=' + STR(@uid) + ' 
  899. ORDER BY [tid] DESC
  900.  ) AS [ttt]
  901. )
  902. ORDER BY [tid] DESC
  903. ORDER BY [tid] DESC'
  904. END
  905. EXEC(@strSQL)
  906. GO
  907. IF OBJECT_ID('[dnt_getmytopics]','P') IS NOT NULL
  908. DROP PROC [dnt_getmytopics]
  909. GO
  910. CREATE PROCEDURE [dnt_getmytopics]
  911. @uid int,
  912. @pageindex int,
  913. @pagesize int
  914.  AS
  915. DECLARE @strSQL varchar(5000)
  916. IF @pageindex = 1
  917. BEGIN
  918. SET @strSQL = 'SELECT [tid], [fid], [iconid], [typeid], [readperm], [price], [poster], [posterid], [title], [postdatetime], [lastpost], [lastpostid], [lastposter], [lastposterid], [views], [replies], [displayorder], [highlight], [digest], [rate], [hide], [special], [attachment], [moderated], [closed], [magic]
  919.  FROM [dnt_topics] 
  920. WHERE [tid] IN (
  921. SELECT TOP ' + STR(@pagesize) + ' [tid] 
  922. FROM [dnt_mytopics] 
  923. WHERE [uid]=' + STR(@uid) + ' 
  924. ORDER BY [tid] DESC
  925. ORDER BY [tid] DESC'
  926. END
  927. ELSE
  928. BEGIN
  929. SET @strSQL = 'SELECT [tid], [fid], [iconid], [typeid], [readperm], [price], [poster], [posterid], [title], [postdatetime], [lastpost], [lastpostid], [lastposter], [lastposterid], [views], [replies], [displayorder], [highlight], [digest], [rate], [hide], [special], [attachment], [moderated], [closed], [magic]
  930.  FROM [dnt_topics] 
  931. WHERE [tid] IN (
  932. SELECT TOP ' + STR(@pagesize) + ' [tid] 
  933. FROM [dnt_mytopics] 
  934. WHERE [uid]=' + STR(@uid) + ' 
  935. AND [tid] < (
  936. SELECT MIN([tid])
  937. FROM (
  938. SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [tid] 
  939. FROM [dnt_mytopics]
  940. WHERE [uid]=' + STR(@uid) + ' 
  941. ORDER BY [tid] DESC
  942.  ) AS [ttt]
  943. )
  944. ORDER BY [tid] DESC
  945. ORDER BY [tid] DESC'
  946. END
  947. EXEC(@strSQL)
  948. GO
  949. IF OBJECT_ID('dnt_getpmcount','P') IS NOT NULL
  950. DROP PROC dnt_getpmcount
  951. GO
  952. CREATE PROCEDURE dnt_getpmcount
  953. @userid int,
  954. @folder int=0,
  955. @state int=-1
  956. AS
  957. IF @folder=-1
  958. BEGIN
  959.   SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE ([msgtoid]=@userid AND [folder]=0) OR ([msgfromid] = @userid AND [folder] = 1) OR ([msgfromid] = @userid AND [folder] = 2)
  960. END
  961. ELSE
  962.     BEGIN
  963. IF @folder=0
  964. BEGIN
  965. IF @state=-1
  966. BEGIN
  967. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgtoid]=@userid AND [folder]=@folder
  968. END
  969. ELSE IF @state=2
  970. BEGIN
  971. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgtoid]=@userid AND [folder]=@folder AND [new]=1 AND GETDATE()-[postdatetime]<3
  972. END
  973. ELSE
  974. BEGIN
  975. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgtoid]=@userid AND [folder]=@folder AND [new]=@state
  976. END
  977. END
  978. ELSE
  979. BEGIN
  980. IF @state=-1
  981. BEGIN
  982. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgfromid]=@userid AND [folder]=@folder
  983. END
  984. ELSE IF @state=2
  985. BEGIN
  986. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgfromid]=@userid AND [folder]=@folder AND [new]=1 AND GETDATE()-[postdatetime]<3
  987. END
  988. ELSE
  989. BEGIN
  990. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgfromid]=@userid AND [folder]=@folder AND [new]=@state
  991. END
  992. END
  993. END
  994. GO
  995. IF OBJECT_ID('dnt_getnoticecount','P') IS NOT NULL
  996. DROP PROC dnt_getnoticecount
  997. GO
  998. CREATE PROCEDURE dnt_getnoticecount
  999. @userid int,
  1000. @type int = -1,
  1001. @state int=-1
  1002. AS
  1003. IF @type = -1
  1004. BEGIN
  1005. IF @state = -1
  1006. BEGIN
  1007. SELECT COUNT(nid) AS [pmcount] FROM [dnt_notices] WHERE [uid]=@userid
  1008. END
  1009. ELSE
  1010. BEGIN
  1011. SELECT COUNT(nid) AS [pmcount] FROM [dnt_notices] WHERE [uid]=@userid AND [new]=@state
  1012. END
  1013. END
  1014. ELSE
  1015. BEGIN
  1016. IF @state = -1
  1017. BEGIN
  1018. SELECT COUNT(nid) AS [pmcount] FROM [dnt_notices] WHERE [uid]=@userid AND [type]=@type
  1019. END
  1020. ELSE
  1021. BEGIN
  1022. SELECT COUNT(nid) AS [pmcount] FROM [dnt_notices] WHERE [uid]=@userid AND [new]=@state AND [type]=@type
  1023. END
  1024. END
  1025. GO
  1026. IF OBJECT_ID('dnt_getpmlist','P') IS NOT NULL
  1027. DROP PROC dnt_getpmlist
  1028. GO
  1029. CREATE PROCEDURE dnt_getpmlist
  1030. @userid int,
  1031. @folder int,
  1032. @pagesize int,
  1033. @pageindex int,
  1034. @inttype int
  1035. AS
  1036. DECLARE @strSQL varchar(5000)
  1037. DECLARE @msgformORtoID varchar(10)
  1038. SET @msgformortoid='msgtoid'
  1039. IF @folder=1 OR @folder=2
  1040. BEGIN
  1041. SET @msgformortoid='msgfromid'
  1042. END
  1043. IF @pageindex = 1
  1044. BEGIN
  1045. IF (@inttype <> 1)
  1046. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [pmid],[msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message] FROM [dnt_pms] WHERE [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' +STR(@folder)  + ' ORDER BY [pmid] DESC'
  1047. ELSE
  1048. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [pmid],[msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message] FROM [dnt_pms] WHERE [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' +STR(@folder) + ' ORDER BY [pmid] DESC'
  1049. END
  1050. ELSE
  1051. BEGIN
  1052. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [pmid],[msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message] FROM [dnt_pms] WHERE [pmid] < (SELECT MIN([pmid]) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [pmid] FROM [dnt_pms] WHERE [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' +STR(@folder) + ' ORDER BY [pmid] DESC) AS tblTmp) AND [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' + STR(@folder) + ' ORDER BY [pmid] DESC'
  1053. IF (@inttype <> 1)
  1054. BEGIN
  1055. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [pmid],[msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message] FROM [dnt_pms] WHERE [pmid] < (SELECT MIN([pmid]) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [pmid] FROM [dnt_pms] WHERE [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' +STR(@folder) + ' AND ' + ' ORDER BY [pmid] DESC) AS tblTmp) AND [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' +STR(@folder) +  ' ORDER BY [pmid] DESC'
  1056. END
  1057. END
  1058. EXEC(@strSQL)
  1059. GO
  1060. IF OBJECT_ID('dnt_getpost1count','P') IS NOT NULL
  1061. DROP PROC dnt_getpost1count
  1062. GO
  1063. CREATE PROCEDURE dnt_getpost1count
  1064. @tid int
  1065. AS
  1066. SELECT COUNT(pid) FROM [dnt_posts1] WHERE [tid]=@tid AND [invisible]=0 AND layer>0
  1067. GO
  1068. IF OBJECT_ID('dnt_getpost1tree','P') IS NOT NULL
  1069. DROP PROC dnt_getpost1tree
  1070. GO
  1071. CREATE PROCEDURE dnt_getpost1tree
  1072. @tid int
  1073. AS
  1074. SELECT [pid], [layer], [title], [poster], [posterid],[postdatetime],[message] FROM [dnt_posts1] WHERE [tid]=@tid AND [invisible]=0 ORDER BY [parentid];
  1075. GO
  1076. IF OBJECT_ID('[dnt_getpostcountbycondition1]','P') IS NOT NULL
  1077. DROP PROC [dnt_getpostcountbycondition1]
  1078. GO
  1079. CREATE PROCEDURE [dnt_getpostcountbycondition1]
  1080. @tid int,
  1081. @posterid int
  1082. AS
  1083. SELECT COUNT(pid) FROM [dnt_posts1] WHERE [tid] = @tid AND [posterid] = @posterid  AND [layer]>=0
  1084. GO
  1085. IF OBJECT_ID('dnt_getshortuserinfo','P') IS NOT NULL
  1086. DROP PROC dnt_getshortuserinfo
  1087. GO
  1088. CREATE PROCEDURE dnt_getshortuserinfo
  1089. @uid int
  1090. AS
  1091. SELECT TOP 1 * FROM [dnt_users] WHERE [uid]=@uid
  1092. GO
  1093. if exists (select * from sysobjects where id = object_id(N'[dnt_getsinglepost1]') and OBJECTPROPERTY(id,N'IsProcedure') = 1)
  1094. drop procedure [dnt_getsinglepost1]
  1095. GO
  1096. CREATE PROCEDURE [dnt_getsinglepost1]
  1097.                     @tid int,
  1098.                     @pid int
  1099.                     AS
  1100.                     SELECT [aid], [tid], [pid], [postdatetime], [readperm], [filename], [description], [filetype], [filesize], [attachment], [downloads], [attachprice], [uid]  FROM [dnt_attachments] WHERE [tid]=@tid
  1101.                     SELECT TOP 1 
  1102.                                 [dnt_posts1].[pid], 
  1103.                                 [dnt_posts1].[fid], 
  1104.                                 [dnt_posts1].[title], 
  1105.                                 [dnt_posts1].[layer],
  1106.                                 [dnt_posts1].[message], 
  1107.                                 [dnt_posts1].[ip], 
  1108.                                 [dnt_posts1].[lastedit], 
  1109.                                 [dnt_posts1].[postdatetime], 
  1110.                                 [dnt_posts1].[attachment], 
  1111.                                 [dnt_posts1].[poster], 
  1112.                                 [dnt_posts1].[invisible], 
  1113.                                 [dnt_posts1].[usesig], 
  1114.                                 [dnt_posts1].[htmlon], 
  1115.                                 [dnt_posts1].[smileyoff], 
  1116.                                 [dnt_posts1].[parseurloff], 
  1117.                                 [dnt_posts1].[bbcodeoff], 
  1118.                                 [dnt_posts1].[rate], 
  1119.                                 [dnt_posts1].[ratetimes], 
  1120.                                 [dnt_posts1].[posterid], 
  1121.                                 [dnt_users].[nickname],  
  1122.                                 [dnt_users].[username], 
  1123.                                 [dnt_users].[groupid],
  1124.                                     [dnt_users].[spaceid],
  1125.                                     [dnt_users].[gender],
  1126. [dnt_users].[bday], 
  1127.                                 [dnt_users].[email], 
  1128.                                 [dnt_users].[showemail], 
  1129.                                 [dnt_users].[digestposts], 
  1130.                                 [dnt_users].[credits], 
  1131.                                 [dnt_users].[extcredits1], 
  1132.                                 [dnt_users].[extcredits2], 
  1133.                                 [dnt_users].[extcredits3], 
  1134.                                 [dnt_users].[extcredits4], 
  1135.                                 [dnt_users].[extcredits5], 
  1136.                                 [dnt_users].[extcredits6], 
  1137.                                 [dnt_users].[extcredits7], 
  1138.                                 [dnt_users].[extcredits8], 
  1139.                                 [dnt_users].[posts], 
  1140.                                 [dnt_users].[joindate], 
  1141.                                 [dnt_users].[onlinestate], 
  1142.                                 [dnt_users].[lastactivity], 
  1143.                                 [dnt_users].[invisible], 
  1144.                                 [dnt_users].[oltime],
  1145.                                 [dnt_users].[lastvisit],
  1146.                                 [dnt_userfields].[avatar], 
  1147.                                 [dnt_userfields].[avatarwidth], 
  1148.                                 [dnt_userfields].[avatarheight], 
  1149.                                 [dnt_userfields].[medals], 
  1150.                                 [dnt_userfields].[sightml] AS signature, 
  1151.                                 [dnt_userfields].[location], 
  1152.                                 [dnt_userfields].[customstatus], 
  1153.                                 [dnt_userfields].[website], 
  1154.                                 [dnt_userfields].[icq], 
  1155.                                 [dnt_userfields].[qq], 
  1156.                                 [dnt_userfields].[msn], 
  1157.                                 [dnt_userfields].[yahoo], 
  1158.                                 [dnt_userfields].[skype] 
  1159.                     FROM [dnt_posts1] LEFT JOIN [dnt_users] ON [dnt_users].[uid]=[dnt_posts1].[posterid] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] WHERE [dnt_posts1].[pid]=@pid
  1160. GO
  1161. IF OBJECT_ID('dnt_getsitemapnewtopics','P') IS NOT NULL
  1162. DROP PROC dnt_getsitemapnewtopics
  1163. GO
  1164. CREATE PROCEDURE dnt_getsitemapnewtopics
  1165. @fidlist VARCHAR(500)
  1166. AS
  1167. IF @fidlist<>''
  1168.      BEGIN
  1169.       DECLARE @strSQL VARCHAR(5000)
  1170.       SET @strSQL = 'SELECT TOP 20 [tid], [fid], [title], [poster], [postdatetime], [lastpost], [replies], [views], [digest] FROM [dnt_topics] WHERE [fid] 
  1171. NOT IN ('+@fidlist +') ORDER BY [tid] DESC' 
  1172.      END
  1173. ELSE
  1174.      BEGIN
  1175.       SET @strSQL = 'SELECT TOP 20 [tid], [fid], [title], [poster], [postdatetime], [lastpost], [replies], [views], [digest] FROM [dnt_topics] ORDER BY [tid] 
  1176. DESC'
  1177.      END
  1178.   EXEC(@strSQL)
  1179. GO
  1180. IF OBJECT_ID('dnt_gettopiccount','P') IS NOT NULL
  1181. DROP PROC dnt_gettopiccount
  1182. GO
  1183. CREATE PROCEDURE dnt_gettopiccount
  1184. @fid int
  1185. AS
  1186. SELECT [curtopics] FROM [dnt_forums] WHERE [fid]=@fid
  1187. GO
  1188. IF OBJECT_ID('dnt_gettopiccountbycondition','P') IS NOT NULL
  1189. DROP PROC dnt_gettopiccountbycondition
  1190. GO
  1191. CREATE PROCEDURE dnt_gettopiccountbycondition
  1192. @fid int,
  1193. @state int=0,
  1194. @condition varchar(80)=null
  1195. AS
  1196. DECLARE @sql varchar(500)
  1197. IF @state=-1
  1198. BEGIN
  1199. set @sql ='SELECT COUNT(tid) FROM [dnt_topics] WHERE [fid]='+str(@fid)+' AND [displayorder]>-1 AND [closed]<=1'+@condition
  1200. END
  1201. ELSE
  1202. BEGIN
  1203. set @sql ='SELECT COUNT(tid) FROM [dnt_topics] WHERE [fid]='+str(@fid)+' AND [displayorder]>-1 AND [closed]='+str(@state)+' AND [closed]<=1'+@condition
  1204. END
  1205. exec(@sql)
  1206. GO
  1207. IF OBJECT_ID('dnt_gettopiccountbytype','P') IS NOT NULL
  1208. DROP PROC dnt_gettopiccountbytype
  1209. GO
  1210. CREATE PROCEDURE dnt_gettopiccountbytype
  1211. @condition varchar(4000)
  1212. AS
  1213. DECLARE @sql varchar(4100)
  1214. set @sql ='SELECT COUNT(tid) FROM [dnt_topics] WHERE [displayorder]>-1 AND [closed]<=1 '+@condition
  1215. exec(@sql)
  1216. GO
  1217. IF OBJECT_ID('[dnt_gettopiclistbycondition]','P') IS NOT NULL
  1218. DROP PROC [dnt_gettopiclistbycondition]
  1219. GO
  1220. CREATE PROCEDURE [dnt_gettopiclistbycondition]
  1221. @fid int,
  1222. @pagesize int,
  1223. @pageindex int,
  1224. @startnum int,
  1225. @condition varchar(80)
  1226. AS
  1227. DECLARE @strSQL varchar(5000)
  1228. IF @pageindex = 1
  1229. BEGIN
  1230. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [rate],[tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1231. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1232. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[special] FROM 
  1233. [dnt_topics] WHERE [fid]=' +STR(@fid) + ' AND [displayorder]=0' + @condition + ' ORDER BY [lastpostid] DESC'
  1234. END
  1235. ELSE
  1236. BEGIN
  1237. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'[rate], [tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1238. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1239. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[special] FROM 
  1240. [dnt_topics] WHERE [lastpostid] < (SELECT min([lastpostid])  FROM (SELECT TOP ' + STR
  1241. ((@pageindex-1)*@pagesize-@startnum) + ' [lastpostid] FROM [dnt_topics] WHERE [fid]=' +STR
  1242. (@fid) + ' AND [displayorder]=0' + @condition + ' ORDER BY [lastpostid] DESC) AS tblTmp ) 
  1243. AND [fid]=' +STR(@fid) + ' AND [displayorder]=0' + @condition + ' ORDER BY [lastpostid] DESC'
  1244. END
  1245. EXEC(@strSQL)
  1246. GO
  1247. IF OBJECT_ID('[dnt_gettopiclist]','P') IS NOT NULL
  1248. DROP PROC [dnt_gettopiclist]
  1249. GO
  1250. CREATE PROCEDURE [dnt_gettopiclist]
  1251. @fid int,
  1252. @pagesize int,
  1253. @startnum int,
  1254. @pageindex int
  1255. AS
  1256. DECLARE @strSQL varchar(5000)
  1257. IF @pageindex = 1
  1258. BEGIN
  1259. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [rate],[tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1260. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1261. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[special] FROM 
  1262. [dnt_topics] WHERE [fid]=' +STR(@fid) + ' AND [displayorder]=0  ORDER BY [lastpostid] DESC'
  1263. END
  1264. ELSE
  1265. BEGIN
  1266. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'[rate], [tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1267. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1268. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[special] FROM 
  1269. [dnt_topics] WHERE [lastpostid] < (SELECT min([lastpostid])  FROM (SELECT TOP ' + STR
  1270. ((@pageindex-1)*@pagesize-@startnum) + ' [lastpostid] FROM [dnt_topics] WHERE [fid]=' +STR
  1271. (@fid) + ' AND [displayorder]=0 ORDER BY [lastpostid] DESC) AS tblTmp ) 
  1272. AND [fid]=' +STR(@fid) + ' AND [displayorder]=0 ORDER BY [lastpostid] DESC'
  1273. END
  1274. EXEC(@strSQL)
  1275. GO
  1276. IF OBJECT_ID('dnt_gettopiclistbydate','P') IS NOT NULL
  1277. DROP PROC dnt_gettopiclistbydate
  1278. GO
  1279. CREATE PROCEDURE dnt_gettopiclistbydate
  1280. @fid int,
  1281. @pagesize int,
  1282. @pageindex int,
  1283. @startnum int,
  1284. @condition varchar(100),
  1285. @orderby varchar(100),
  1286. @ascdesc int
  1287. AS
  1288. DECLARE @strsql varchar(5000)
  1289. DECLARE @sorttype varchar(5)
  1290. IF @ascdesc=0
  1291.    SET @sorttype='ASC'
  1292. ELSE
  1293.    SET @sorttype='DESC'
  1294. IF @pageindex = 1
  1295. BEGIN
  1296. SET @strsql = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[title],[price],[typeid],[readperm],[hide],[special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[rate] FROM [dnt_topics] WHERE [fid]=' +STR(@fid) + ' AND [displayorder]=0'+@condition+' ORDER BY '+@orderby+' '+@sorttype
  1297. END
  1298. ELSE
  1299.            IF @sorttype='DESC'
  1300. BEGIN
  1301. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[title],[price],[typeid],[hide],[readperm],[special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[rate] FROM [dnt_topics] WHERE ['+@orderby+'] < (SELECT min(['+@orderby+']) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize-@startnum) + ' ['+@orderby+']  FROM [dnt_topics] WHERE [fid]=' +STR(@fid) + ' AND [displayorder]=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype+')AS tblTmp ) AND [fid]=' +STR(@fid) + ' AND [displayorder]=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype
  1302. END
  1303.       ELSE
  1304.              BEGIN
  1305. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[title],[price],[hide],[typeid],[readperm],[special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[rate] FROM [dnt_topics] WHERE ['+@orderby+'] > (SELECT MAX(['+@orderby+']) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize-@startnum) + ' ['+@orderby+'] FROM [dnt_topics] WHERE [fid]=' +STR(@fid) + ' AND [displayorder]=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype+')AS tblTmp ) AND [fid]=' +STR(@fid) + ' AND [displayorder]=0'+@condition+' ORDER BY '+@orderby+' '+@sorttype
  1306.             END
  1307. EXEC(@strsql)
  1308. GO
  1309. IF OBJECT_ID('[dnt_gettopiclistbytag]','P') IS NOT NULL
  1310. DROP PROC [dnt_gettopiclistbytag]
  1311. GO
  1312. CREATE PROCEDURE [dnt_gettopiclistbytag]
  1313. @tagid int,
  1314. @pageindex int,
  1315. @pagesize int
  1316. AS
  1317. BEGIN
  1318. DECLARE @strSQL varchar(2000)
  1319. IF @pageindex = 1
  1320. BEGIN
  1321. SET @strSQL='SELECT TOP ' + STR(@pagesize) + ' [t].[tid], [t].[title],[t].[poster],[t].[posterid],[t].[fid],[t].[postdatetime],[t].[replies],[t].[views],[t].[lastposter],[t].[lastposterid],[t].[lastpost] 
  1322. FROM [dnt_topictags] AS [tt], [dnt_topics] AS [t] 
  1323. WHERE [t].[tid] = [tt].[tid] AND [t].[displayorder] >=0 AND [tt].[tagid] = ' + STR(@tagid) + ' 
  1324. ORDER BY [t].[lastpostid] DESC'
  1325. END
  1326. ELSE
  1327. BEGIN
  1328. SET @strSQL='SELECT TOP ' + STR(@pagesize) + ' [t].[tid], [t].[title],[t].[poster],[t].[posterid],[t].[fid],[t].[postdatetime],[t].[replies],[t].[views],[t].[lastposter],[t].[lastposterid],[t].[lastpost] 
  1329. FROM [dnt_topictags] AS [tt], [dnt_topics] AS [t] 
  1330. WHERE [t].[tid] = [tt].[tid] AND [t].[displayorder] >=0 AND [tt].[tagid] = ' + STR(@tagid) + ' 
  1331. AND [t].[lastpostid] < (SELECT MIN([lastpostid]) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' 
  1332. [lastpostid] FROM [dnt_topictags] AS [tt], [dnt_topics] AS [t] 
  1333. WHERE [t].[tid] = [tt].[tid] AND [t].[displayorder] >=0 AND [tt].[tagid] = ' + STR(@tagid) + ' 
  1334. ORDER BY [t].[lastpostid] DESC) as tblTmp) 
  1335. ORDER BY [t].[lastpostid] DESC'
  1336. END
  1337. EXEC(@strSQL)
  1338. END
  1339. GO
  1340. IF OBJECT_ID('[dnt_gettopiclistbytype]','P') IS NOT NULL
  1341. DROP PROC [dnt_gettopiclistbytype]
  1342. GO
  1343. CREATE PROCEDURE [dnt_gettopiclistbytype]
  1344. @pagesize int,
  1345. @pageindex int,
  1346. @startnum int,
  1347. @condition varchar(1000),
  1348. @ascdesc int
  1349. AS
  1350. DECLARE @strSQL varchar(5000)
  1351. DECLARE @sorttype varchar(5)
  1352. IF @ascdesc=0
  1353.    SET @sorttype='ASC'
  1354. ELSE
  1355.    SET @sorttype='DESC'
  1356. IF @pageindex = 1
  1357. BEGIN
  1358. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1359. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1360. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[rate] FROM 
  1361. [dnt_topics] WHERE  [displayorder]>=0' + @condition + ' ORDER BY [lastpostid] '+@sorttype +',  [tid] '+@sorttype
  1362. END
  1363. ELSE
  1364. BEGIN
  1365. IF @sorttype='DESC'
  1366. BEGIN
  1367. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1368. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1369. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[rate] FROM 
  1370. [dnt_topics] WHERE [lastpostid] < (SELECT min([lastpostid])  FROM (SELECT TOP ' + STR
  1371. ((@pageindex-1)*@pagesize-@startnum) + ' [lastpostid] FROM [dnt_topics] WHERE  [displayorder]>=0' + @condition + ' ORDER BY [tid] ' + @sorttype + ' , [lastpostid] ' + @sorttype + ') AS tblTmp ) 
  1372. AND  [displayorder]>=0' + @condition +'ORDER BY [lastpostid] ' + @sorttype + ' ,  [tid] ' + @sorttype
  1373. END
  1374. ELSE
  1375. BEGIN
  1376. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1377. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1378. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic] FROM 
  1379. [dnt_topics] WHERE [lastpostid] > (SELECT MAX([lastpostid])  FROM (SELECT TOP ' + STR
  1380. ((@pageindex-1)*@pagesize-@startnum) + ' [lastpostid] FROM [dnt_topics] WHERE  [displayorder]>=0' + @condition + ' ORDER BY [tid] ' + @sorttype + ' , [lastpostid] ' + @sorttype + ') AS tblTmp ) 
  1381. AND  [displayorder]>=0' + @condition +'ORDER BY [lastpostid] ' + @sorttype + ' ,  [tid] ' + @sorttype
  1382. END
  1383. END
  1384. EXEC(@strSQL)
  1385. GO
  1386. IF OBJECT_ID('dnt_gettopiclistbytypedate','P') IS NOT NULL
  1387. DROP PROC dnt_gettopiclistbytypedate
  1388. GO
  1389. CREATE PROCEDURE dnt_gettopiclistbytypedate
  1390. @pagesize int,
  1391. @pageindex int,
  1392. @startnum int,
  1393. @condition varchar(1000),
  1394. @orderby varchar(100),
  1395. @ascdesc int
  1396. AS
  1397. DECLARE @strsql varchar(5000)
  1398. DECLARE @sorttype varchar(5)
  1399. IF @ascdesc=0
  1400.    SET @sorttype='ASC'
  1401. ELSE
  1402.    SET @sorttype='DESC'
  1403. IF @pageindex = 1
  1404. BEGIN
  1405. SET @strsql = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[special],[price],[hide],[readperm],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[highlight],[digest],[displayorder],[closed],[attachment],[magic],[rate] FROM [dnt_topics] WHERE [displayorder]>=0'+@condition+' ORDER BY '+@orderby+' '+@sorttype
  1406. END
  1407. ELSE
  1408.            IF @sorttype='DESC'
  1409. BEGIN
  1410. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[special],[price],[hide],[readperm],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[highlight],[digest],[displayorder],[closed],[attachment],[magic],[rate] FROM [dnt_topics] WHERE ['+@orderby+'] < (SELECT min(['+@orderby+']) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize-@startnum) + ' ['+@orderby+']  FROM [dnt_topics] WHERE  [displayorder]>=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype+')AS tblTmp ) AND [displayorder]>=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype
  1411. END
  1412.       ELSE
  1413.              BEGIN
  1414. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[special],[price],[hide],[readperm],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[highlight],[digest],[displayorder],[closed],[attachment],[magic],[rate] FROM [dnt_topics] WHERE ['+@orderby+'] > (SELECT MAX(['+@orderby+']) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize-@startnum) + ' ['+@orderby+'] FROM [dnt_topics] WHERE [displayorder]>=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype+')AS tblTmp ) AND [displayorder]>=0'+@condition+' ORDER BY '+@orderby+' '+@sorttype
  1415.             END
  1416. EXEC(@strsql)
  1417. GO
  1418. IF OBJECT_ID('dnt_gettoptopiclist','P') IS NOT NULL
  1419. DROP PROC [dnt_gettoptopiclist]
  1420. GO
  1421. CREATE PROCEDURE dnt_gettoptopiclist
  1422. @fid int,
  1423. @pagesize int,
  1424. @pageindex int,
  1425. @tids varchar(500)
  1426. AS
  1427. DECLARE @strSQL varchar(5000)
  1428. IF @pageindex = 1
  1429. BEGIN
  1430. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) + '[rate], [tid],[fid],[typeid],[iconid],[title],[price],[hide],[readperm], [special],[poster],[posterid],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[closed],[attachment],[magic] FROM [dnt_topics] WHERE [displayorder]>0 AND charindex('',''+CAST([tid] AS varchar(10))+'','' , '','+@tids+','')>0  ORDER BY [displayorder] DESC, [lastpost] DESC'
  1431. END
  1432. ELSE
  1433. BEGIN
  1434. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) + ' [rate], [tid],[fid],[typeid],[iconid],[title],[price],[hide],[readperm], [special],[poster],[posterid],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[closed],[attachment],[magic] FROM [dnt_topics]
  1435. WHERE (EXISTS   (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [tid]
  1436.                  FROM [dnt_topics]
  1437.                  WHERE [displayorder] > 0 AND  charindex('',''+CAST([tid] AS varchar(10))+'','' , '','+@tids+','')>0
  1438.                  ORDER BY [lastpost] DESC)) AND (displayorder > 0) AND 
  1439.       ( charindex('',''+CAST([tid] AS varchar(10))+'','' , '','+@tids+','')>0)
  1440. ORDER BY [displayorder] DESC, [lastpost] DESC'
  1441. END
  1442. EXEC(@strSQL)
  1443. GO
  1444. IF OBJECT_ID('[dnt_getuserinfo]','P') IS NOT NULL
  1445. DROP PROC [dnt_getuserinfo]
  1446. GO
  1447. CREATE PROCEDURE [dnt_getuserinfo]
  1448. @uid int
  1449. AS
  1450. SELECT TOP 1 
  1451. [dnt_users].[accessmasks], 
  1452. [dnt_users].[adminid],
  1453. [dnt_users].[avatarshowid],
  1454. [dnt_users].[bday],
  1455. [dnt_users].[credits],
  1456. [dnt_users].[digestposts],
  1457. [dnt_users].[email],
  1458. [dnt_users].[extcredits1],
  1459. [dnt_users].[extcredits2],
  1460. [dnt_users].[extcredits3],
  1461. [dnt_users].[extcredits4],
  1462. [dnt_users].[extcredits5],
  1463. [dnt_users].[extcredits6],
  1464. [dnt_users].[extcredits7],
  1465. [dnt_users].[extcredits8],
  1466. [dnt_users].[extgroupids],
  1467. [dnt_users].[gender],
  1468. [dnt_users].[groupexpiry],
  1469. [dnt_users].[groupid],
  1470. [dnt_users].[invisible],
  1471. [dnt_users].[joindate],
  1472. [dnt_users].[lastactivity],
  1473. [dnt_users].[lastip],
  1474. [dnt_users].[lastpost],
  1475. [dnt_users].[lastpostid],
  1476. [dnt_users].[lastposttitle],
  1477. [dnt_users].[lastvisit],
  1478. [dnt_users].[newpm],
  1479. [dnt_users].[newpmcount],
  1480. [dnt_users].[newsletter],
  1481. [dnt_users].[nickname],
  1482. [dnt_users].[oltime],
  1483. [dnt_users].[onlinestate],
  1484. [dnt_users].[pageviews],
  1485. [dnt_users].[password],
  1486. [dnt_users].[pmsound],
  1487. [dnt_users].[posts],
  1488. [dnt_users].[ppp],
  1489. [dnt_users].[regip],
  1490. [dnt_users].[secques],
  1491. [dnt_users].[showemail],
  1492. [dnt_users].[sigstatus],
  1493. [dnt_users].[spaceid],
  1494. [dnt_users].[templateid],
  1495. [dnt_users].[tpp],
  1496. [dnt_users].[uid],
  1497. [dnt_users].[username],
  1498. [dnt_users].[salt],
  1499. [dnt_userfields].[authflag],
  1500. [dnt_userfields].[authstr],
  1501. [dnt_userfields].[authtime],
  1502. [dnt_userfields].[avatar],
  1503. [dnt_userfields].[avatarheight],
  1504. [dnt_userfields].[avatarwidth],
  1505. [dnt_userfields].[bio],
  1506. [dnt_userfields].[customstatus],
  1507. [dnt_userfields].[icq],
  1508. [dnt_userfields].[idcard],
  1509. [dnt_userfields].[ignorepm],
  1510. [dnt_userfields].[location],
  1511. [dnt_userfields].[medals],
  1512. [dnt_userfields].[mobile],
  1513. [dnt_userfields].[msn],
  1514. [dnt_userfields].[phone],
  1515. [dnt_userfields].[qq],
  1516. [dnt_userfields].[realname],
  1517. [dnt_userfields].[sightml],
  1518. [dnt_userfields].[signature],
  1519. [dnt_userfields].[skype],
  1520. [dnt_userfields].[uid],
  1521. [dnt_userfields].[website],
  1522. [dnt_userfields].[yahoo]
  1523. FROM [dnt_users] LEFT JOIN [dnt_userfields] ON [dnt_users].[uid]=[dnt_userfields].[uid] 
  1524. WHERE [dnt_users].[uid]=@uid
  1525. GO
  1526. IF OBJECT_ID('dnt_getuserlist','P') IS NOT NULL
  1527. DROP PROC [dnt_getuserlist]
  1528. GO
  1529. CREATE PROCEDURE [dnt_getuserlist]
  1530. @pagesize int,
  1531. @pageindex int,
  1532. @column varchar(20),
  1533. @ordertype AS varchar(5)
  1534. AS
  1535. DECLARE @pagetop int
  1536. DECLARE @sql varchar(1000)
  1537. SET @pagetop = (@pageindex-1)*@pagesize
  1538. IF @column = 'uid'
  1539. BEGIN
  1540. SET @column = '[dnt_users].[uid]'
  1541. END
  1542. IF @pageindex = 1
  1543. BEGIN
  1544. SET @sql = 'SELECT TOP ' + CAST(@pagesize AS varchar(10)) + ' [dnt_users].[uid], 
  1545. [dnt_users].[groupid],
  1546. [dnt_users].[username], 
  1547. [dnt_users].[nickname], 
  1548. [dnt_users].[joindate], 
  1549. [dnt_users].[credits], 
  1550. [dnt_users].[posts], 
  1551. [dnt_users].[lastactivity], 
  1552. [dnt_users].[email], 
  1553. [dnt_users].[oltime], 
  1554. [dnt_userfields].[location] 
  1555. FROM [dnt_users] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid] = [dnt_users].[uid] ORDER BY ' + @column + ' ' + @ordertype
  1556. END
  1557. ELSE
  1558. BEGIN
  1559. SET @sql = 'SELECT TOP ' + CAST(@pagesize AS varchar(10)) + ' [dnt_users].[uid], 
  1560. [dnt_users].[groupid], 
  1561. [dnt_users].[username], 
  1562. [dnt_users].[nickname], 
  1563. [dnt_users].[joindate], 
  1564. [dnt_users].[credits], 
  1565. [dnt_users].[posts], 
  1566. [dnt_users].[email], 
  1567. [dnt_users].[lastactivity], 
  1568. [dnt_users].[oltime], 
  1569. [dnt_userfields].[location] 
  1570. FROM [dnt_users] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid] = [dnt_users].[uid] WHERE [dnt_users].[uid] NOT IN (SELECT TOP ' + CAST(@pagetop AS varchar(10)) + ' [uid] FROM [dnt_users] ORDER BY ' + @column + ' ' + @ordertype + ')ORDER BY '+ @column + ' ' + @ordertype
  1571. END
  1572. EXEC(@sql)
  1573. GO
  1574. IF OBJECT_ID('[dnt_neatenrelatetopic]','P') IS NOT NULL
  1575. DROP PROC [dnt_neatenrelatetopic]
  1576. GO
  1577. CREATE PROCEDURE [dnt_neatenrelatetopic]
  1578. AS
  1579. BEGIN
  1580. DECLARE @tagid int
  1581. DECLARE [tag_cursor] CURSOR FOR
  1582. SELECT DISTINCT [tagid] FROM [dnt_topictags]
  1583. OPEN [tag_cursor]
  1584. FETCH NEXT FROM [tag_cursor] INTO @tagid
  1585. WHILE @@FETCH_STATUS = 0
  1586. BEGIN
  1587. INSERT INTO [dnt_topictagcaches] 
  1588. SELECT [t1].[tid],[t2].[tid],[t2].[title] FROM (SELECT [tid] FROM [dnt_topictags]
  1589. WHERE [tagid] = @tagid) AS [t1],(SELECT [t].[tid],[t].[title] FROM [dnt_topics] AS [t],[dnt_topictags] AS [tt] 
  1590. WHERE [tt].[tagid] = @tagid AND [t].[tid] = [tt].[tid] AND [t].[displayorder] >=0) AS [t2] 
  1591. WHERE [t1].[tid] <> [t2].[tid] AND NOT EXISTS (SELECT 1 FROM [dnt_topictagcaches] WHERE [tid]=[t1].[tid] AND [linktid]=[t2].[tid])
  1592. FETCH NEXT FROM [tag_cursor] INTO @tagid
  1593. END;
  1594. CLOSE [tag_cursor]
  1595. DEALLOCATE [tag_cursor]
  1596. END
  1597. GO
  1598. IF OBJECT_ID('[dnt_revisedebatetopicdiggs]','P') IS NOT NULL
  1599. DROP PROC [dnt_revisedebatetopicdiggs]
  1600. GO
  1601. CREATE PROCEDURE [dnt_revisedebatetopicdiggs]
  1602. @tid int,
  1603. @opinion int,
  1604. @count int out
  1605. AS
  1606. BEGIN
  1607. SELECT @count=COUNT(1) FROM [dnt_postdebatefields] WHERE [tid] = @tid AND [opinion] = @opinion
  1608. IF @opinion=1
  1609. BEGIN
  1610. UPDATE [dnt_debates] SET [positivediggs]=(SELECT SUM(diggs + 1) FROM [dnt_postdebatefields] WHERE [tid] = @tid AND [opinion] = @opinion) WHERE [tid] = @tid
  1611. END
  1612. ELSE
  1613. BEGIN
  1614. UPDATE [dnt_debates] SET [negativediggs]=(SELECT SUM(diggs + 1) FROM [dnt_postdebatefields] WHERE [tid] = @tid AND [opinion] = @opinion) WHERE [tid] = @tid
  1615. END
  1616. END
  1617. GO
  1618. IF OBJECT_ID('[dnt_setlastexecutescheduledeventdatetime]','P') IS NOT NULL
  1619. DROP PROC [dnt_setlastexecutescheduledeventdatetime]
  1620. GO
  1621. CREATE PROCEDURE [dnt_setlastexecutescheduledeventdatetime]
  1622. (
  1623. @key VARCHAR(100),
  1624. @servername VARCHAR(100),
  1625. @lastexecuted DATETIME
  1626. )
  1627. AS
  1628. DELETE FROM [dnt_scheduledevents] WHERE ([key]=@key) AND ([lastexecuted] < DATEADD([day], - 7, GETDATE()))
  1629. INSERT [dnt_scheduledevents] ([key], [servername], [lastexecuted]) Values (@key, @servername, @lastexecuted)
  1630. GO
  1631. IF OBJECT_ID('dnt_shrinklog','P') IS NOT NULL
  1632. DROP PROC dnt_shrinklog
  1633. GO
  1634. CREATE PROCEDURE dnt_shrinklog  
  1635. @DBName  nchar(50) 
  1636. AS
  1637. Begin
  1638. exec('BACKUP LOG ['+@DBName+']  WITH NO_LOG')
  1639. exec('DBCC  SHRINKDATABASE(['+@DBName+'])')
  1640. End
  1641. GO
  1642. IF OBJECT_ID('dnt_updateadmingroup','P') IS NOT NULL
  1643. DROP PROC dnt_updateadmingroup
  1644. GO
  1645. CREATE PROCEDURE dnt_updateadmingroup
  1646. @admingid smallint,
  1647. @alloweditpost tinyint,
  1648. @alloweditpoll tinyint,
  1649. @allowstickthread tinyint,
  1650. @allowmodpost tinyint,
  1651. @allowdelpost tinyint,
  1652. @allowmassprune tinyint,
  1653. @allowrefund tinyint,
  1654. @allowcensorword tinyint,
  1655. @allowviewip tinyint,
  1656. @allowbanip tinyint,
  1657. @allowedituser tinyint,
  1658. @allowmoduser tinyint,
  1659. @allowbanuser tinyint,
  1660. @allowpostannounce tinyint,
  1661. @allowviewlog tinyint,
  1662. @disablepostctrl tinyint,
  1663. @allowviewrealname tinyint
  1664. AS
  1665. UPDATE dnt_admingroups SET 
  1666. [alloweditpost]=@alloweditpost,
  1667. [alloweditpoll]=@alloweditpoll,
  1668. [allowstickthread]=@allowstickthread,
  1669. [allowmodpost]=@allowmodpost,
  1670. [allowdelpost]=@allowdelpost,
  1671. [allowmassprune]=@allowmassprune,
  1672. [allowrefund]=@allowrefund,
  1673. [allowcensorword]=@allowcensorword,
  1674. [allowviewip]=@allowviewip,
  1675. [allowbanip]=@allowbanip,
  1676. [allowedituser]=@allowedituser,
  1677. [allowmoduser]=@allowmoduser,
  1678. [allowbanuser]=@allowbanuser,
  1679. [allowpostannounce]=@allowpostannounce,
  1680. [allowviewlog]=@allowviewlog,
  1681. [disablepostctrl]=@disablepostctrl,
  1682. [allowviewrealname]=@allowviewrealname
  1683. WHERE [admingid]=@admingid
  1684. GO
  1685. IF OBJECT_ID('dnt_updatepost1','P') IS NOT NULL
  1686. DROP PROC dnt_updatepost1
  1687. GO
  1688. CREATE PROCEDURE dnt_updatepost1
  1689. @pid int,
  1690. @title nvarchar(160),
  1691. @message ntext,
  1692. @lastedit nvarchar(50),
  1693. @invisible int,
  1694. @usesig int,
  1695. @htmlon int,
  1696. @smileyoff int,
  1697. @bbcodeoff int,
  1698. @parseurloff int
  1699. AS
  1700. UPDATE dnt_posts1 SET 
  1701. [title]=@title,
  1702. [message]=@message,
  1703. [lastedit]=@lastedit,
  1704. [invisible]=@invisible,
  1705. [usesig]=@usesig,
  1706. [htmlon]=@htmlon,
  1707. [smileyoff]=@smileyoff,
  1708. [bbcodeoff]=@bbcodeoff,
  1709. [parseurloff]=@parseurloff WHERE [pid]=@pid
  1710. GO
  1711. IF OBJECT_ID('dnt_updatetopic','P') IS NOT NULL
  1712. DROP PROC dnt_updatetopic
  1713. GO
  1714. CREATE PROCEDURE dnt_updatetopic
  1715. @tid int,
  1716. @fid smallint,
  1717. @iconid smallint,
  1718. @title nchar(60),
  1719. @typeid smallint,
  1720. @readperm int,
  1721. @price smallint,
  1722. @poster char(20),
  1723. @posterid int,
  1724. @postdatetime smalldatetime,
  1725. @lastpostid int,
  1726. @lastpost smalldatetime,
  1727. @lastposter char(20),
  1728. @replies int,
  1729. @displayorder int,
  1730. @highlight varchar(500),
  1731. @digest int,
  1732. @rate int,
  1733. @hide int,
  1734.         @special int,
  1735. @attachment int,
  1736. @moderated int,
  1737. @closed int,
  1738. @magic int
  1739. AS
  1740. UPDATE dnt_topics SET
  1741. [fid]=@fid,
  1742. [iconid]=@iconid,
  1743. [title]=@title,
  1744. [typeid]=@typeid,
  1745. [readperm]=@readperm,
  1746. [price]=@price,
  1747. [poster]=@poster,
  1748. [posterid]=@posterid,
  1749. [postdatetime]=@postdatetime,
  1750. [lastpostid]=@lastpostid,
  1751. [lastpost]=@lastpost,
  1752. [lastposter]=@lastposter,
  1753. [replies]=@replies,
  1754. [displayorder]=@displayorder,
  1755. [highlight]=@highlight,
  1756. [digest]=@digest,
  1757. [rate]=@rate,
  1758. [hide]=@hide,
  1759.     [special]=@special,
  1760. [attachment]=@attachment,
  1761. [moderated]=@moderated,
  1762. [closed]=@closed,
  1763. [magic]=@magic WHERE [tid]=@tid 
  1764. GO
  1765. IF OBJECT_ID('dnt_updatetopicviewcount','P') IS NOT NULL
  1766. DROP PROC dnt_updatetopicviewcount
  1767. GO
  1768. CREATE PROCEDURE dnt_updatetopicviewcount
  1769. @tid int,
  1770. @viewcount int
  1771. AS
  1772. UPDATE [dnt_topics]  SET [views]= [views] + @viewcount WHERE [tid]=@tid
  1773. GO
  1774. IF OBJECT_ID('dnt_updateuserauthstr','P') IS NOT NULL
  1775. DROP PROC dnt_updateuserauthstr
  1776. GO
  1777. CREATE PROCEDURE dnt_updateuserauthstr
  1778. @uid int,
  1779. @authstr char(20),
  1780. @authflag int =1
  1781. AS
  1782. UPDATE [dnt_userfields] SET [authstr]=@authstr, [authtime] = getdate(), [authflag]=@authflag WHERE [uid]=@uid
  1783. GO
  1784. IF OBJECT_ID('[dnt_updateuserforumsetting]','P') IS NOT NULL
  1785. DROP PROC [dnt_updateuserforumsetting]
  1786. GO
  1787. CREATE PROCEDURE [dnt_updateuserforumsetting]
  1788. @uid int,
  1789. @tpp int,
  1790. @ppp int,
  1791. @invisible int,
  1792. @customstatus varchar(30)
  1793. AS
  1794. UPDATE [dnt_users] SET [tpp]=@tpp, [ppp]=@ppp, [invisible]=@invisible WHERE [uid]=@uid
  1795. UPDATE [dnt_userfields] SET [customstatus]=@customstatus WHERE [uid]=@uid
  1796. GO
  1797. IF OBJECT_ID('dnt_updateuserpassword','P') IS NOT NULL
  1798. DROP PROC dnt_updateuserpassword
  1799. GO
  1800. CREATE PROCEDURE dnt_updateuserpassword
  1801. @uid int,
  1802. @password char(44)
  1803. AS
  1804. UPDATE [dnt_users] SET [password]=@password WHERE [uid]=@uid
  1805. GO
  1806. IF OBJECT_ID('dnt_updateuserpreference','P') IS NOT NULL
  1807. DROP PROC dnt_updateuserpreference
  1808. GO
  1809. CREATE PROCEDURE dnt_updateuserpreference
  1810. @uid int,
  1811. @avatar varchar(255),
  1812. @avatarwidth int,
  1813. @avatarheight int,
  1814. @templateid int
  1815. AS
  1816. UPDATE [dnt_userfields] SET [avatar]=@avatar, [avatarwidth]=@avatarwidth, [avatarheight]=@avatarheight WHERE [uid]=@uid
  1817. UPDATE [dnt_users] SET [templateid]=@templateid WHERE [uid]=@uid
  1818. GO
  1819. IF OBJECT_ID('[dnt_updateuserprofile]','P') IS NOT NULL
  1820. DROP PROC [dnt_updateuserprofile]
  1821. GO
  1822. CREATE PROCEDURE [dnt_updateuserprofile]
  1823. @uid int,
  1824. @nickname nchar(20),
  1825. @gender int,
  1826. @email char(50),
  1827. @bday char(10),
  1828. @showemail int,
  1829. @website nvarchar(80),
  1830. @icq varchar(12),
  1831. @qq varchar(12),
  1832. @yahoo varchar(40),
  1833. @msn varchar(40),
  1834. @skype varchar(40),
  1835. @location nvarchar(30),
  1836. @bio nvarchar(500),
  1837. @signature nvarchar(500),
  1838. @sigstatus int,
  1839. @sightml nvarchar(1000),
  1840. @realname nvarchar(10),
  1841. @idcard varchar(20),
  1842. @mobile varchar(20),
  1843. @phone varchar(20)
  1844. AS
  1845. UPDATE [dnt_users] SET [nickname]=@nickname, [gender]=@gender , [email]=@email , [bday]=@bday, [sigstatus]=@sigstatus, [showemail]=@showemail WHERE [uid]=@uid
  1846. UPDATE [dnt_userfields] SET [website]=@website , [icq]=@icq , [qq]=@qq , [yahoo]=@yahoo , [msn]=@msn , [skype]=@skype , [location]=@location , [bio]=@bio, [signature]=@signature, [sightml]=@sightml, [realname]=@realname,[idcard]=@idcard,[mobile]=@mobile,[phone]=@phone  WHERE [uid]=@uid
  1847. GO
  1848. IF OBJECT_ID('dnt_getforumnewtopics','P') IS NOT NULL
  1849. DROP PROC dnt_getforumnewtopics
  1850. GO
  1851. CREATE PROCEDURE dnt_getforumnewtopics
  1852. @fid int
  1853. AS
  1854. SELECT TOP 20 [dnt_topics].[tid],[dnt_topics].[title],[dnt_topics].[poster],[dnt_topics].[postdatetime],[dnt_posts1].[message] FROM [dnt_topics] LEFT JOIN [dnt_posts1] ON [dnt_topics].[tid]=[dnt_posts1].[tid]  WHERE [dnt_posts1].[layer]=0 AND  [dnt_topics].[fid]=@fid ORDER BY [lastpost] DESC
  1855. GO
  1856. IF OBJECT_ID('[dnt_createtopictags]','P') IS NOT NULL
  1857. DROP PROC [dnt_createtopictags]
  1858. GO
  1859. CREATE PROCEDURE [dnt_createtopictags]
  1860. @tags nvarchar(55),
  1861. @tid int,
  1862. @userid int,
  1863. @postdatetime datetime
  1864. AS
  1865. BEGIN
  1866. exec [dnt_createtags] @tags, @userid, @postdatetime
  1867. UPDATE [dnt_tags] SET [fcount]=[fcount]+1,[count]=[count]+1
  1868. WHERE EXISTS (SELECT [item] FROM [dnt_split](@tags, ' ') AS [newtags] WHERE [newtags].[item] = [tagname])
  1869. INSERT INTO [dnt_topictags] (tagid, tid)
  1870. SELECT tagid, @tid FROM [dnt_tags] WHERE EXISTS (SELECT * FROM [dnt_split](@tags, ' ') WHERE [item] = [dnt_tags].[tagname])
  1871. END
  1872. GO
  1873. IF OBJECT_ID('dnt_getfavoriteslistbyalbum','P') IS NOT NULL
  1874. DROP PROC dnt_getfavoriteslistbyalbum
  1875. GO
  1876. CREATE PROCEDURE dnt_getfavoriteslistbyalbum
  1877. @uid int,
  1878. @pagesize int,
  1879. @pageindex int
  1880. AS
  1881. DECLARE @strSQL varchar(5000)
  1882. SET @strSQL='SELECT [f].[tid], [f].[uid], [albumid], [albumcateid], [userid] AS [posterid], [username] AS [poster], [title], [description], [logo], [password], [imgcount], [views], [type], [createdatetime] AS [postdatetime] FROM [dnt_favorites] [f],[dnt_albums] [albums] WHERE [f].[tid]=[albums].[albumid] AND [f].[typeid]=1 AND [f].[uid]=' + STR(@uid)
  1883. IF @pageindex = 1
  1884. BEGIN
  1885. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'  [tid], [uid], [albumid], [albumcateid], [posterid], [poster], [title], [description], [logo], [password], [imgcount], [views], [type], [postdatetime]  FROM (' + @strSQL + ') f' + '  ORDER BY [tid] DESC'
  1886. END
  1887. ELSE
  1888. BEGIN
  1889. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'  [tid], [uid], [albumid], [albumcateid], [posterid], [poster], [title], [description], [logo], [password], [imgcount], [views], [type], [postdatetime]  FROM (' + @strSQL + ') f1 WHERE [tid] < (SELECT MIN([tid]) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [tid] FROM (' + @strSQL + ') f2' + '  ORDER BY [tid] DESC) AS tblTmp)' + '  ORDER BY [tid] DESC'
  1890. END
  1891. EXEC(@strSQL)
  1892. GO
  1893. if exists(select * from sysobjects where id=object_id(N'[dnt_getnewtopics1]')and OBJECTPROPERTY(id,N'IsProcedure') = 1) 
  1894. drop procedure [dnt_getnewtopics1]
  1895. GO
  1896. CREATE PROCEDURE [dnt_getnewtopics1]
  1897. @fidlist VARCHAR(500)
  1898. AS
  1899. IF @fidlist <> ''
  1900. BEGIN
  1901. SELECT TOP 20 
  1902. [dnt_posts1].[tid], 
  1903.         [dnt_posts1].[title], 
  1904.         [dnt_posts1].[poster], 
  1905.         [dnt_posts1].[postdatetime], 
  1906.         [dnt_posts1].[message],
  1907.         [dnt_forums].[name] 
  1908.         FROM [dnt_posts1]  
  1909.         LEFT JOIN [dnt_forums] ON [dnt_posts1].[fid]=[dnt_forums].[fid]
  1910.         LEFT JOIN [dnt_topics] ON [dnt_posts1].[tid]=[dnt_topics].[tid]
  1911.         WHERE CHARINDEX(','+RTRIM([dnt_forums].[fid])+',', ','+@fidlist+',') > 0 
  1912.         AND [dnt_posts1].[layer]=0 AND [dnt_topics].[displayorder] >= 0
  1913.         ORDER BY [dnt_posts1].[tid] DESC
  1914.     END 
  1915.     ELSE
  1916.     BEGIN
  1917. SELECT TOP 20 
  1918. [dnt_posts1].[tid], 
  1919.         [dnt_posts1].[title], 
  1920.         [dnt_posts1].[poster], 
  1921.         [dnt_posts1].[postdatetime], 
  1922.         [dnt_posts1].[message],
  1923.         [dnt_forums].[name] 
  1924.         FROM [dnt_posts1]
  1925.         LEFT JOIN [dnt_forums] ON [dnt_posts1].[fid]=[dnt_forums].[fid]
  1926.         LEFT JOIN [dnt_topics] ON [dnt_posts1].[tid]=[dnt_topics].[tid]
  1927.         WHERE [dnt_posts1].[layer]=0 AND [dnt_topics].[displayorder] >= 0
  1928.         ORDER BY [dnt_posts1].[tid] DESC
  1929.     END
  1930. GO
  1931. IF OBJECT_ID('[dnt_getattentiontopics]','P') IS NOT NULL
  1932. DROP PROC [dnt_getattentiontopics]
  1933. GO
  1934. CREATE PROCEDURE [dnt_getattentiontopics] 
  1935. @fid varchar(255)='',
  1936. @tpp int,
  1937. @pageid int,
  1938. @condition nvarchar(255)=''
  1939. AS
  1940. DECLARE @pagetop int,@strSQL varchar(5000)
  1941. SET @pagetop = (@pageid-1)*@tpp
  1942. IF @pageid = 1
  1943. BEGIN
  1944. SET @strSQL = 'SELECT TOP  ' +STR( @tpp) + '  * FROM [dnt_topics] WHERE [displayorder]>=0  AND [attention]=1'
  1945.                      
  1946. IF @fid<>'0'
  1947.                             SELECT  @strSQL=@strSQL+'  AND [fid] IN ('+@fid+')'
  1948.                             IF @condition<>''
  1949.                             SELECT  @strSQL=@strSQL+@condition
  1950.                            SELECT @strSQL=@strSQL+'  ORDER BY [lastpost] DESC'
  1951.                             
  1952.       
  1953. END
  1954. ELSE
  1955. BEGIN
  1956. SET @strSQL = 'SELECT TOP  ' +STR( @tpp) + '  * FROM [dnt_topics]  WHERE [tid] < (SELECT MIN([tid])  FROM (SELECT TOP '+STR(@pagetop)+' [tid] FROM [dnt_topics]   WHERE [displayorder]>=0  AND [attention]=1'
  1957.  IF @fid<>'0'
  1958.  
  1959.                             SELECT  @strSQL=@strSQL+'  AND [fid] IN ('+@fid+')'
  1960.                           
  1961.                             IF @condition<>''
  1962.                             SELECT  @strSQL=@strSQL+@condition
  1963.                      
  1964.                           SELECT @strSQL=@strSQL+'   ORDER BY [tid] DESC'
  1965.                           SELECT @strSQL=@strSQL+'  )  AS T) '
  1966.  IF @fid<>'0'
  1967.  
  1968.                            SELECT  @strSQL=@strSQL+'  AND [fid] IN ('+@fid+')'
  1969.     IF @condition<>''
  1970.                             SELECT  @strSQL=@strSQL+@condition
  1971.                            SELECT @strSQL=@strSQL+'  AND [displayorder]>=0  AND [attention]=1 ORDER BY [tid] DESC'
  1972.                                  
  1973. END
  1974. EXEC(@strSQL)
  1975. GO
  1976. IF OBJECT_ID('[dnt_updateuser]','P') IS NOT NULL
  1977. DROP PROC [dnt_updateuser]
  1978. GO
  1979. CREATE PROCEDURE [dnt_updateuser]
  1980. @username nchar(20),
  1981. @nickname nchar(20),
  1982. @password char(32),
  1983. @secques char(8),
  1984. @spaceid int,
  1985. @gender int,
  1986. @adminid int,
  1987. @groupid smallint,
  1988. @groupexpiry int,
  1989. @extgroupids char(60),
  1990. @regip char(15),
  1991. @joindate char(19),
  1992. @lastip char(15),
  1993. @lastvisit char(19),
  1994. @lastactivity char(19),
  1995. @lastpost char(19),
  1996. @lastpostid int,
  1997. @lastposttitle nchar(60),
  1998. @posts int,
  1999. @digestposts smallint,
  2000. @oltime int,
  2001. @pageviews int,
  2002. @credits int,
  2003. @extcredits1 float,
  2004. @extcredits2 float,
  2005. @extcredits3 float,
  2006. @extcredits4 float,
  2007. @extcredits5 float,
  2008. @extcredits6 float,
  2009. @extcredits7 float,
  2010. @extcredits8 float,
  2011. @avatarshowid int,
  2012. @email char(50),
  2013. @bday char(19),
  2014. @sigstatus int,
  2015. @tpp int,
  2016. @ppp int,
  2017. @templateid smallint,
  2018. @pmsound int,
  2019. @showemail int,
  2020. @newsletter int,
  2021. @invisible int,
  2022. @newpm int,
  2023. @newpmcount int,
  2024. @accessmasks int,
  2025. @onlinestate int,
  2026. @website varchar(80),
  2027. @icq varchar(12),
  2028. @qq varchar(12),
  2029. @yahoo varchar(40),
  2030. @msn varchar(40),
  2031. @skype varchar(40),
  2032. @location nvarchar(30),
  2033. @customstatus varchar(30),
  2034. @avatar varchar(255),
  2035. @avatarwidth int,
  2036. @avatarheight int,
  2037. @medals varchar(300),
  2038. @bio nvarchar(500),
  2039. @signature nvarchar(500),
  2040. @sightml nvarchar(1000),
  2041. @authstr varchar(20),
  2042. @authtime smalldatetime,
  2043. @authflag tinyint,
  2044. @realname nvarchar(10),
  2045. @idcard varchar(20),
  2046. @mobile varchar(20),
  2047. @phone varchar(20),
  2048. @ignorepm nvarchar(1000),
  2049. @uid int
  2050. AS
  2051. UPDATE [dnt_users] SET [username]=@username,[nickname]=@nickname, [password]=@password, [secques]=@secques, [spaceid]=@spaceid, [gender]=@gender, [adminid]=@adminid, [groupid]=@groupid, [groupexpiry]=@groupexpiry, 
  2052. [extgroupids]=@extgroupids, [regip]= @regip, [joindate]= @joindate, [lastip]=@lastip, [lastvisit]=@lastvisit, [lastactivity]=@lastactivity, [lastpost]=@lastpost, 
  2053. [lastpostid]=@lastpostid, [lastposttitle]=@lastposttitle, [posts]=@posts, [digestposts]=@digestposts, [oltime]=@oltime, [pageviews]=@pageviews, [credits]=@credits, 
  2054. [extcredits1]=@extcredits1, [extcredits2]=@extcredits2, [extcredits3]=@extcredits3, [extcredits4]=@extcredits4, [extcredits5]=@extcredits5, [extcredits6]=@extcredits6, 
  2055. [extcredits7]=@extcredits7, [extcredits8]=@extcredits8, [avatarshowid]=@avatarshowid, [email]=@email, [bday]=@bday, [sigstatus]=@sigstatus, [tpp]=@tpp, [ppp]=@ppp, 
  2056. [templateid]=@templateid, [pmsound]=@pmsound, [showemail]=@showemail, [newsletter]=@newsletter, [invisible]=@invisible, [newpm]=@newpm, [newpmcount]=@newpmcount, [accessmasks]=@accessmasks, [onlinestate]=@onlinestate 
  2057. WHERE [uid]=@uid
  2058. UPDATE [dnt_userfields] SET [website]=@website,[icq]=@icq,[qq]=@qq,[yahoo]=@yahoo,[msn]=@msn,[skype]=@skype,[location]=@location,[customstatus]=@customstatus,
  2059. [avatar]=@avatar,[avatarwidth]=@avatarwidth,[avatarheight]=@avatarheight,[medals]=@medals,[bio]=@bio,[signature]=@signature,[sightml]=@sightml,[authstr]=@authstr,
  2060. [authtime]=@authtime,[authflag]=@authflag,[realname]=@realname,[idcard]=@idcard,[mobile]=@mobile,[phone]=@phone,[ignorepm]=@ignorepm 
  2061. WHERE [uid]=@uid
  2062. GO
  2063. IF OBJECT_ID('[dnt_split]') IS NOT NULL
  2064. DROP FUNCTION [dnt_split]
  2065. GO
  2066. CREATE FUNCTION [dnt_split]
  2067. (
  2068.  @splitstring NVARCHAR(4000),
  2069.  @separator CHAR(1) = ','
  2070. )
  2071. RETURNS @splitstringstable TABLE
  2072. (
  2073.  [item] NVARCHAR(200)
  2074. )
  2075. AS
  2076. BEGIN
  2077.     DECLARE @currentindex INT
  2078.     DECLARE @nextindex INT
  2079.     DECLARE @returntext NVARCHAR(200)
  2080.     SELECT @currentindex=1
  2081.     WHILE(@currentindex<=datalength(@splitstring)/2)
  2082.     BEGIN
  2083.         SELECT @nextindex=charindex(@separator,@splitstring,@currentindex)
  2084.         IF(@nextindex=0 OR @nextindex IS NULL)
  2085.             SELECT @nextindex=datalength(@splitstring)/2+1
  2086.         
  2087.         SELECT @returntext=substring(@splitstring,@currentindex,@nextindex-@currentindex)
  2088.         INSERT INTO @splitstringstable([item])
  2089.         VALUES(@returntext)
  2090.         
  2091.         SELECT @currentindex=@nextindex+1
  2092.     END
  2093.     RETURN
  2094. END
  2095. GO
  2096. if exists (select * from sysobjects where id = object_id(N'[dnt_getindexforumlist]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2097. drop procedure [dnt_getindexforumlist]
  2098. GO
  2099. if exists (select * from sysobjects where id = object_id(N'[dnt_getonlineuser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2100. drop procedure [dnt_getonlineuser]
  2101. GO
  2102. if exists (select * from sysobjects where id = object_id(N'[dnt_getonlineuserlist]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2103. drop procedure [dnt_getonlineuserlist]
  2104. GO
  2105. if exists (select * from sysobjects where id = object_id(N'[dnt_getonlineuserlistbyfid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2106. drop procedure [dnt_getonlineuserlistbyfid]
  2107. GO
  2108. if exists (select * from sysobjects where id = object_id(N'[dnt_getrelatedtopics]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2109. drop procedure [dnt_getrelatedtopics]
  2110. GO
  2111. if exists (select * from sysobjects where id = object_id(N'[dnt_gettopicinfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2112. drop procedure [dnt_gettopicinfo]
  2113. GO
  2114. if exists (select * from sysobjects where id = object_id(N'[dnt_createonlineuser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2115. drop procedure [dnt_createonlineuser]
  2116. GO
  2117. if exists (select * from sysobjects where id = object_id(N'[dnt_deleteonlineusers]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2118. drop procedure [dnt_deleteonlineusers]
  2119. GO
  2120. if exists (select * from sysobjects where id = object_id(N'[dnt_getexpiredonlineuserlist]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2121. drop procedure [dnt_getexpiredonlineuserlist]
  2122. GO
  2123. if exists (select * from sysobjects where id = object_id(N'[dnt_updateuseronlinestates]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2124. drop procedure [dnt_updateuseronlinestates]
  2125. GO
  2126. if exists (select * from sysobjects where id = object_id(N'[dnt_updateonlineaction]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2127. drop procedure [dnt_updateonlineaction]
  2128. GO
  2129. CREATE PROCEDURE [dnt_updateonlineaction] 
  2130. @action smallint,
  2131. @lastupdatetime datetime,
  2132. @forumid int,
  2133. @forumname nvarchar(100),
  2134. @titleid int,
  2135. @title nvarchar(160),
  2136. @olid int
  2137. AS
  2138. UPDATE [dnt_online] SET [lastactivity]=[action],[action]=@action,[lastupdatetime]=@lastupdatetime,[forumid]=@forumid,[forumname]=@forumname,[titleid]=@titleid,[title]=@title WHERE [olid]=@olid
  2139. GO
  2140. if exists (select * from sysobjects where id = object_id(N'[dnt_gettopictags]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2141. drop procedure [dnt_gettopictags]
  2142. GO
  2143. CREATE PROCEDURE [dnt_getindexforumlist]
  2144. AS
  2145. SELECT CASE WHEN DATEDIFF(n, [lastpost], GETDATE())<600 THEN 'new' ELSE 'old' END AS [havenew],[dnt_forums].*, [dnt_forumfields].* FROM [dnt_forums] LEFT JOIN [dnt_forumfields] ON [dnt_forums].[fid]=[dnt_forumfields].[fid] WHERE [dnt_forums].[parentid] NOT IN (SELECT [fid] FROM [dnt_forums] WHERE [status] < 1 AND [layer] = 0) AND [dnt_forums].[status] > 0 AND [layer] <= 1 ORDER BY [displayorder]
  2146. GO
  2147. IF OBJECT_ID('[dnt_getonlineuser]','P') IS NOT NULL
  2148. DROP PROC [dnt_getonlineuser]
  2149. GO
  2150. CREATE PROCEDURE [dnt_getonlineuser]
  2151. @userid int,
  2152. @password char(32)
  2153. AS
  2154. SELECT TOP 1 [olid]
  2155.       ,[userid]
  2156.       ,[ip]
  2157.       ,[username]
  2158.       ,[nickname]
  2159.       ,[password]
  2160.       ,[groupid]
  2161.       ,[olimg]
  2162.       ,[adminid]
  2163.       ,[invisible]
  2164.       ,[action]
  2165.       ,[lastactivity]
  2166.       ,[lastposttime]
  2167.       ,[lastpostpmtime]
  2168.       ,[lastsearchtime]
  2169.       ,[lastupdatetime]
  2170.       ,[forumid]
  2171.       ,[forumname]
  2172.       ,[titleid]
  2173.       ,[title]
  2174.       ,[verifycode]
  2175.       ,[newpms]
  2176.       ,[newnotices] FROM [dnt_online] WHERE [userid]=@userid AND [password]=@password
  2177. GO
  2178. IF OBJECT_ID('[dnt_getonlineuserlist]','P') IS NOT NULL
  2179. DROP PROC [dnt_getonlineuserlist]
  2180. GO
  2181. CREATE PROCEDURE [dnt_getonlineuserlist]
  2182. AS
  2183. SELECT [olid]
  2184.       ,[userid]
  2185.       ,[ip]
  2186.       ,[username]
  2187.       ,[nickname]
  2188.       ,[password]
  2189.       ,[groupid]
  2190.       ,[olimg]
  2191.       ,[adminid]
  2192.       ,[invisible]
  2193.       ,[action]
  2194.       ,[lastactivity]
  2195.       ,[lastposttime]
  2196.       ,[lastpostpmtime]
  2197.       ,[lastsearchtime]
  2198.       ,[lastupdatetime]
  2199.       ,[forumid]
  2200.       ,[forumname]
  2201.       ,[titleid]
  2202.       ,[title]
  2203.       ,[verifycode]
  2204.       ,[newpms]
  2205.       ,[newnotices] FROM [dnt_online]
  2206. GO
  2207. IF OBJECT_ID('[dnt_getonlineuserlistbyfid]','P') IS NOT NULL
  2208. DROP PROC [dnt_getonlineuserlistbyfid]
  2209. GO
  2210. CREATE PROCEDURE [dnt_getonlineuserlistbyfid]
  2211. @fid int
  2212. AS
  2213. SELECT [olid]
  2214.       ,[userid]
  2215.       ,[ip]
  2216.       ,[username]
  2217.       ,[nickname]
  2218.       ,[password]
  2219.       ,[groupid]
  2220.       ,[olimg]
  2221.       ,[adminid]
  2222.       ,[invisible]
  2223.       ,[action]
  2224.       ,[lastactivity]
  2225.       ,[lastposttime]
  2226.       ,[lastpostpmtime]
  2227.       ,[lastsearchtime]
  2228.       ,[lastupdatetime]
  2229.       ,[forumid]
  2230.       ,[forumname]
  2231.       ,[titleid]
  2232.       ,[title]
  2233.       ,[verifycode]
  2234.       ,[newpms]
  2235.       ,[newnotices] FROM [dnt_online] WHERE [forumid]=@fid
  2236. GO
  2237. IF OBJECT_ID('[dnt_getrelatedtopics]','P') IS NOT NULL
  2238. DROP PROC [dnt_getrelatedtopics]
  2239. GO
  2240. CREATE PROCEDURE [dnt_getrelatedtopics]
  2241. @count int,
  2242. @tid int
  2243. AS
  2244. EXEC('SELECT TOP ' + @count + ' [linktid],[linktitle],[tid] FROM [dnt_topictagcaches] WHERE [tid]=' + @tid + ' ORDER BY [linktid] DESC')
  2245. GO
  2246. IF OBJECT_ID('[dnt_gettopicinfo]','P') IS NOT NULL
  2247. DROP PROC [dnt_gettopicinfo]
  2248. GO
  2249. CREATE PROCEDURE [dnt_gettopicinfo]
  2250. @tid int,
  2251. @fid int,
  2252. @mode int
  2253. AS
  2254. IF @mode = 1
  2255. BEGIN
  2256.        SELECT TOP 1 [tid]
  2257.       ,[fid]
  2258.       ,[iconid]
  2259.       ,[readperm]
  2260.       ,[price]
  2261.       ,[poster]
  2262.       ,[posterid]
  2263.       ,[title]
  2264.       ,[postdatetime]
  2265.       ,[lastpost]
  2266.       ,[lastpostid]
  2267.       ,[lastposter]
  2268.       ,[lastposterid]
  2269.       ,[views]
  2270.       ,[replies]
  2271.       ,[displayorder]
  2272.       ,[highlight]
  2273.       ,[digest]
  2274.       ,[hide]
  2275.       ,[attachment]
  2276.       ,[moderated]
  2277.       ,[closed]
  2278.       ,[magic]
  2279.       ,[identify]
  2280.       ,[special]
  2281.       ,[typeid]
  2282.       ,[rate]
  2283.       ,[attention] FROM [dnt_topics] WHERE [fid]=@fid AND [tid]<@tid AND [displayorder]>=0 ORDER BY [tid] DESC
  2284. END
  2285. ELSE IF @mode = 2
  2286. BEGIN
  2287.        SELECT TOP 1 [tid]
  2288.       ,[fid]
  2289.       ,[iconid]
  2290.       ,[readperm]
  2291.       ,[price]
  2292.       ,[poster]
  2293.       ,[posterid]
  2294.       ,[title]
  2295.       ,[postdatetime]
  2296.       ,[lastpost]
  2297.       ,[lastpostid]
  2298.       ,[lastposter]
  2299.       ,[lastposterid]
  2300.       ,[views]
  2301.       ,[replies]
  2302.       ,[displayorder]
  2303.       ,[highlight]
  2304.       ,[digest]
  2305.       ,[hide]
  2306.       ,[attachment]
  2307.       ,[moderated]
  2308.       ,[closed]
  2309.       ,[magic]
  2310.       ,[identify]
  2311.       ,[special]
  2312.       ,[typeid]
  2313.       ,[rate]
  2314.       ,[attention] FROM [dnt_topics] WHERE [fid]=@fid AND [tid]>@tid AND [displayorder]>=0 ORDER BY [tid] ASC
  2315. END
  2316. ELSE
  2317. BEGIN
  2318.        SELECT TOP 1 [tid]
  2319.       ,[fid]
  2320.       ,[iconid]
  2321.       ,[readperm]
  2322.       ,[price]
  2323.       ,[poster]
  2324.       ,[posterid]
  2325.       ,[title]
  2326.       ,[postdatetime]
  2327.       ,[lastpost]
  2328.       ,[lastpostid]
  2329.       ,[lastposter]
  2330.       ,[lastposterid]
  2331.       ,[views]
  2332.       ,[replies]
  2333.       ,[displayorder]
  2334.       ,[highlight]
  2335.       ,[digest]
  2336.       ,[hide]
  2337.       ,[attachment]
  2338.       ,[moderated]
  2339.       ,[closed]
  2340.       ,[magic]
  2341.       ,[identify]
  2342.       ,[special]
  2343.       ,[typeid]
  2344.       ,[rate]
  2345.       ,[attention] FROM [dnt_topics] WHERE [tid]=@tid
  2346. END
  2347. GO
  2348. IF OBJECT_ID('[dnt_gettopictags]','P') IS NOT NULL
  2349. DROP PROC [dnt_gettopictags]
  2350. GO
  2351. CREATE PROCEDURE [dnt_gettopictags]
  2352. @topicid int
  2353. AS
  2354. SELECT t.* FROM [dnt_tags] t, [dnt_topictags] tt WHERE tt.[tagid] = t.[tagid] AND tt.[tid] = @topicid ORDER BY [orderid]
  2355. GO
  2356. IF OBJECT_ID('[dnt_createonlineuser]','P') IS NOT NULL
  2357. DROP PROC [dnt_createonlineuser]
  2358. GO
  2359. CREATE PROCEDURE [dnt_createonlineuser] 
  2360. @onlinestate int,
  2361. @userid int,
  2362. @ip varchar(15),
  2363. @username nvarchar(40),
  2364. @nickname nvarchar(40),
  2365. @password char(32),
  2366. @groupid smallint,
  2367. @olimg varchar(80),
  2368. @adminid smallint,
  2369. @invisible smallint,
  2370. @action smallint,
  2371. @lastactivity smallint,
  2372. @lastposttime datetime,
  2373. @lastpostpmtime datetime,
  2374. @lastsearchtime datetime,
  2375. @lastupdatetime datetime,
  2376. @forumid int,
  2377. @forumname nvarchar(50),
  2378. @titleid int,
  2379. @title nvarchar(80),
  2380. @verifycode varchar(10),
  2381. @newpms smallint,
  2382. @newnotices smallint
  2383. AS
  2384. IF @onlinestate = 0
  2385. BEGIN
  2386. UPDATE [dnt_users] SET [onlinestate]=1 WHERE [uid]=@userid
  2387. END
  2388. INSERT INTO [dnt_online] ([userid],[ip],[username],[nickname],[password],[groupid],[olimg],[adminid],[invisible],[action],[lastactivity],[lastposttime],[lastpostpmtime],[lastsearchtime],[lastupdatetime],[forumid],[forumname],[titleid],[title],[verifycode],[newpms],[newnotices])VALUES(@userid,@ip,@username,@nickname,@password,@groupid,@olimg,@adminid,@invisible,@action,@lastactivity,@lastposttime,@lastpostpmtime,@lastsearchtime,@lastupdatetime,@forumid,@forumname,@titleid,@title,@verifycode,@newpms,@newnotices);SELECT SCOPE_IDENTITY()
  2389. GO
  2390. IF OBJECT_ID('[dnt_deleteonlineusers]','P') IS NOT NULL
  2391. DROP PROC [dnt_deleteonlineusers]
  2392. GO
  2393. CREATE PROCEDURE [dnt_deleteonlineusers] 
  2394. @olidlist varchar(5000) = ''
  2395. AS
  2396. DELETE FROM [dnt_online] WHERE CHARINDEX(','+RTRIM([olid])+',', ','+@olidlist+',') > 0
  2397. GO
  2398. IF OBJECT_ID('[dnt_getexpiredonlineuserlist]','P') IS NOT NULL
  2399. DROP PROC [dnt_getexpiredonlineuserlist]
  2400. GO
  2401. CREATE PROCEDURE [dnt_getexpiredonlineuserlist]
  2402. @expires datetime
  2403. AS
  2404. SELECT [olid], [userid] FROM [dnt_online] WHERE [lastupdatetime]<@expires
  2405. GO
  2406. IF OBJECT_ID('[dnt_updateuseronlinestates]','P') IS NOT NULL
  2407. DROP PROC [dnt_updateuseronlinestates]
  2408. GO
  2409. CREATE PROCEDURE [dnt_updateuseronlinestates] 
  2410. @uidlist varchar(5000) = '' 
  2411. AS
  2412. UPDATE [dnt_users] SET [onlinestate]=0,[lastactivity]=GETDATE() WHERE CHARINDEX(','+RTRIM([uid])+',', ','+@uidlist+',') > 0
  2413. GO
  2414. if exists (select * from sysobjects where id = object_id(N'[dnt_getonlineuserbyip]') and OBJECTPROPERTY(id,N'IsProcedure') = 1)
  2415. drop procedure [dnt_getonlineuserbyip]
  2416. GO
  2417. CREATE PROCEDURE [dnt_getonlineuserbyip]
  2418. @userid int,
  2419. @ip varchar(15)
  2420. AS
  2421. SELECT TOP 1 [olid]
  2422.       ,[userid]
  2423.       ,[ip]
  2424.       ,[username]
  2425.       ,[nickname]
  2426.       ,[password]
  2427.       ,[groupid]
  2428.       ,[olimg]
  2429.       ,[adminid]
  2430.       ,[invisible]
  2431.       ,[action]
  2432.       ,[lastactivity]
  2433.       ,[lastposttime]
  2434.       ,[lastpostpmtime]
  2435.       ,[lastsearchtime]
  2436.       ,[lastupdatetime]
  2437.       ,[forumid]
  2438.       ,[forumname]
  2439.       ,[titleid]
  2440.       ,[title]
  2441.       ,[verifycode]
  2442.       ,[newpms]
  2443.       ,[newnotices] FROM [dnt_online] WHERE [userid]=@userid AND [ip]=@ip
  2444. GO
  2445. if exists (select * from sysobjects where id = object_id(N'[dnt_getreplypid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2446. drop procedure [dnt_getreplypid]
  2447. GO
  2448. if exists (select * from sysobjects where id = object_id(N'[dnt_gettodayuploadedfilesize]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2449. drop procedure [dnt_gettodayuploadedfilesize]
  2450. GO
  2451. if exists (select * from sysobjects where id = object_id(N'[dnt_getuseridbyemail]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2452. drop procedure [dnt_getuseridbyemail]
  2453. GO
  2454. if exists (select * from sysobjects where id = object_id(N'[dnt_getuserinfobyip]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2455. drop procedure [dnt_getuserinfobyip]
  2456. GO
  2457. IF OBJECT_ID('[dnt_getreplypid1]','P') IS NOT NULL
  2458. DROP PROC [dnt_getreplypid1]
  2459. GO
  2460. CREATE PROCEDURE [dnt_getreplypid1]
  2461. @uid int,
  2462. @tid int
  2463. AS
  2464. SELECT TOP 1 [pid] FROM [dnt_posts1] WHERE [tid] =@tid AND [posterid]=@uid
  2465. GO
  2466. IF OBJECT_ID('dnt_gettodayuploadedfilesize','P') IS NOT NULL
  2467. DROP PROC dnt_gettodayuploadedfilesize
  2468. GO
  2469. CREATE PROCEDURE dnt_gettodayuploadedfilesize 
  2470. @uid int
  2471. AS
  2472. SELECT SUM([filesize]) AS [todaysize] FROM [dnt_attachments] WHERE [uid]=@uid AND DATEDIFF(d,[postdatetime],GETDATE())=0
  2473. GO
  2474. IF OBJECT_ID('dnt_getuseridbyemail','P') IS NOT NULL
  2475. DROP PROC dnt_getuseridbyemail
  2476. GO
  2477. CREATE PROCEDURE dnt_getuseridbyemail
  2478. @email char(50)
  2479. AS
  2480. SELECT TOP 1 [uid] FROM [dnt_users] WHERE [email]=@email
  2481. GO
  2482. IF OBJECT_ID('[dnt_getuserinfobyip]','P') IS NOT NULL
  2483. DROP PROC [dnt_getuserinfobyip]
  2484. GO
  2485. CREATE PROCEDURE [dnt_getuserinfobyip]
  2486. @regip char(15)
  2487. AS
  2488. SELECT TOP 1 [u].[uid], [u].[username], [u].[nickname], [u].[password], [u].[secques], [u].[spaceid], [u].[gender], [u].[adminid], [u].[groupid], [u].[groupexpiry], [u].[extgroupids], [u].[regip], [u].[joindate], [u].[lastip], [u].[lastvisit], [u].[lastactivity], [u].[lastpost], [u].[lastpostid], [u].[lastposttitle], [u].[posts], [u].[digestposts], [u].[oltime], [u].[pageviews], [u].[credits], [u].[extcredits1], [u].[extcredits2], [u].[extcredits3], [u].[extcredits4], [u].[extcredits5], [u].[extcredits6], [u].[extcredits7], [u].[extcredits8], [u].[avatarshowid], [u].[email], [u].[bday], [u].[sigstatus], [u].[tpp], [u].[ppp], [u].[templateid], [u].[pmsound], [u].[showemail], [u].[invisible], [u].[newpm], [u].[newpmcount], [u].[accessmasks], [u].[onlinestate], [u].[newsletter],[u].[salt], [uf].[website], [uf].[icq], [uf].[qq], [uf].[yahoo], [uf].[msn], [uf].[skype], [uf].[location], [uf].[customstatus], [uf].[avatar], [uf].[avatarwidth], [uf].[avatarheight], [uf].[medals], [uf].[bio], [uf].[signature], [uf].[sightml], [uf].[authstr], [uf].[authtime], [uf].[authflag], [uf].[realname], [uf].[idcard], [uf].[mobile], [uf].[phone], [uf].[ignorepm] FROM [dnt_users] [u] LEFT JOIN [dnt_userfields] [uf] ON [u].[uid]=[uf].[uid] WHERE [u].[regip]=@regip ORDER BY [u].[uid] DESC
  2489. GO
  2490. if exists (select * from sysobjects where id = object_id(N'[dnt_getnoticebyuid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2491. drop procedure [dnt_getnoticebyuid]
  2492. GO
  2493. CREATE PROCEDURE [dnt_getnoticebyuid]
  2494. @uid int,
  2495. @type int
  2496. AS
  2497. IF @type = 0
  2498.      SELECT nid, uid, type, new, posterid, poster, note, postdatetime FROM [dnt_notices] WHERE [uid] = @uid  ORDER BY [postdatetime] DESC
  2499. ELSE
  2500.     SELECT nid, uid, type, new, posterid, poster, note, postdatetime  FROM [dnt_notices] WHERE [uid] = @uid AND [type] = @type ORDER BY [postdatetime] DESC
  2501. GO
  2502. if exists (select * from sysobjects where id = object_id(N'[dnt_createnotice]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2503. drop procedure [dnt_createnotice]
  2504. GO
  2505. CREATE PROCEDURE [dnt_createnotice]
  2506. @uid int,
  2507. @type int,
  2508. @new  int,
  2509. @posterid int,
  2510. @poster nchar(20),
  2511. @note ntext,
  2512. @postdatetime datetime
  2513. AS
  2514. INSERT INTO [dnt_notices] ([uid], [type], [new], [posterid], [poster], [note], [postdatetime]) VALUES (@uid, @type, @new, @posterid, @poster, @note, @postdatetime);
  2515. SELECT SCOPE_IDENTITY()  AS 'nid'
  2516. GO
  2517. if exists (select * from sysobjects where id = object_id(N'[dnt_getnewnoticecountbyuid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2518. drop procedure [dnt_getnewnoticecountbyuid]
  2519. GO
  2520. CREATE PROCEDURE [dnt_getnewnoticecountbyuid]
  2521. @uid int
  2522. AS
  2523. SELECT COUNT(nid) FROM [dnt_notices] WHERE [uid] =  @uid  AND [new] = 1
  2524. GO
  2525. if exists (select * from sysobjects where id = object_id(N'[dnt_getnoticecountbyuid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2526. drop procedure [dnt_getnoticecountbyuid]
  2527. GO
  2528. CREATE PROCEDURE [dnt_getnoticecountbyuid]
  2529. @uid int,
  2530. @type int
  2531. AS
  2532. IF @type = -1
  2533.    SELECT COUNT(nid) FROM [dnt_notices] WHERE [uid] = @uid
  2534. ELSE
  2535.     SELECT COUNT(nid) FROM [dnt_notices] WHERE [uid] = @uid AND [type]=@type
  2536. GO
  2537. if exists (select * from sysobjects where id = object_id(N'[dnt_getpostlist1]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2538. drop procedure [dnt_getpostlist1]
  2539. GO
  2540. CREATE PROCEDURE [dnt_getpostlist1]
  2541. @tid int,
  2542. @pagesize int,
  2543. @pageindex int
  2544. AS
  2545. DECLARE @pagetop int