DEFINE CLASS FoxWebForum as Custom
nForumID = 0
cErrorMsg = ""
nTopicID = 0
cDataPath = '\FoxWeb\Portal\forum\data\'
cSubject = ''
cMessage = ''
PROCEDURE init()
this.OpenData()
ENDPROC
PROCEDURE OpenData()
lcDataPath = this.cDataPath
TRY
if not used("FoxWebforum")
use (lcDataPath) + "FoxWebforum" in 0
endif
if not used("FoxWebforumDetails")
use (lcDataPath) + "FoxWebforumDetails" in 0
endif
if not used("FoxWebforumTopics")
use (lcDataPath) + "FoxWebforumTopics" in 0
endif
CATCH TO loexp
response.write(loExp.message)
ENDTRY
ENDPROC
PROCEDURE GetForumDetail()
LOCAL lnForum, lcCursor
lcCursor = SYS(2015)
lnForum = this.nForumID
IF lnForum = 0
this.cErrorMsg = "Invalid forum ID selected"
RETURN ""
ENDIF
select FoxWebforum
set order to iid
if not seek(lnForum)
this.cErrorMsg = "Forum ID was not found."
RETURN ""
endif
select FoxWebforumDetails
set order to fk_forum
if seek(lnforum)
replace Viewcount with Viewcount + 1
endif
select FoxWebForumDetails.*,;
FoxWebForum.Forumtitle ;
from FoxWebForumDetails ;
left outer join FoxWebForum ;
on FoxWebForumDetails.fk_forum = FoxWebForum.IID ;
where fk_forum = lnforum ;
order by FoxWebForumDetails.LastPost desc ;
into cursor (lcCursor)
RETURN (lcCursor)
ENDPROC
PROCEDURE Gettopic()
LOCAL lnTopic, lcCursor
lnTopic = this.nTopicID
lcCursor = SYS(2015)
SELECT FoxWebForumDetails
SET ORDER TO IID
IF SEEK(lnTopic)
REPLACE ViewCount WITH ViewCount + 1
ENDIF
select FoxWebForumtopics.*,;
FoxWebForum.Forumtitle, ;
foxWebforum.IID as Forum,;
foxWebForumDetails.Topic ;
from ;
FoxWebForumTopics ;
Left outer join FoxWebForumDetails ;
on FoxWebForumtopics.fk_topic = FoxWebForumDetails.IID ;
left outer join FoxWebForum ;
on FoxWebForumDetails.fk_forum = FoxWebForum.IID ;
where fk_topic = lntopic ;
order by FoxWebForumTopics.PostDate ;
into cursor (lcCursor)
RETURN (lcCursor)
ENDPROC
PROCEDURE AddNewPost()
LOCAL lnForum, lcMessage, lcSubject, lnTopicIID
lnForum = this.nForumID
lcMessage = this.cMessage
lcSubject = this.cSubject
select FoxWebforumdetails
append blank
replace fk_forum with lnforum,;
topic with lcSubject,;
Adduser with auth.userid,;
LastPost with datetime(),;
LastPostBy with auth.userid,;
AddDate with datetime()
lntopiciid = FoxWebForumDetails.iid
select FoxWebForumTopics
append blank
repl fk_topic with lntopiciid,;
postdate with datetime(),;
PostUser with auth.userid,;
Message with lcMessage
RETURN
ENDPROC
PROCEDURE AddNewReply()
LOCAL lnForum, lcMessage, lcSubject, lnTopicIID
lnTopic = this.nTopicID
lcMessage = this.cMessage
SELECT FoxWebForumDetails
SET ORDER TO IID
IF SEEK(lnTopic)
REPLACE ReplyCount WITH ReplyCount + 1
ENDIF
select FoxWebForumTopics
append blank
repl fk_topic with lntopic,;
postdate with datetime(),;
PostUser with auth.userid,;
Message with lcMessage
RETURN
ENDPROC
ENDDEFINE
|