Stick/Edit topic question - نوشته شده در (1613 Views)
کاربر قفل شده
philsbbs
مطلب: 397
397
Hi,

I want to automatically send a private message to an author when a moderator or administrator edits or makes there topic sticky or unsticky.
Has anyone done such coding on there forum that they wish to share.
Thanks in advance.
Phil
 پیش‌فرض مرتب‌سازی برای تاریخ DESC به معنی جدیدترین است  
 تعداد در صفحه 
نوشته شده در
Advanced Member
Carefree
مطلب: 4224
4224
I haven't, no, but I'll write it for you tonight.
نوشته شده در
Advanced Member
Carefree
مطلب: 4224
4224
Here you are.

In "pop_lock.asp", look for the following lines (appx 192-196):

Code:

	case "StickyTopic"
strEncodedPassword = sha256("" & strPassword)
mLev = cLng(chkUser(strDBNTFUserName, strEncodedPassword,-1))
if mLev > 0 then '## is Member
if (chkForumModerator(Forum_ID, strDBNTFUserName) = "1") or (mLev = 4) then


Replace them with the following:

case "StickyTopic"
strEncodedPassword = sha256("" & strPassword)
mLev = cLng(chkUser(strDBNTFUserName, strEncodedPassword,-1))
if mLev > 0 then '## is Member
if (chkForumModerator(Forum_ID, strDBNTFUserName) = "1") or (mLev > 2) then
strSql="SELECT M.M_EMAIL, M.M_NAME, M.MEMBER_ID, T.T_AUTHOR, T.T_SUBJECT, T.TOPIC_ID FROM " & strMemberTablePrefix &_
"MEMBERS M INNER JOIN " & strTablePrefix & "TOPICS T ON (T.T_AUTHOR=M.MEMBER_ID AND T.TOPIC_ID="& Topic_ID &")"
set rsPost=my_Conn.Execute(strSql)
if not rsPost.EOF then
strT2=rsPost("T_SUBJECT")
strT3=rsPost("M_EMAIL")
strT4=rsPost("M_NAME")
end if
rsPost.Close
set rsPost=Nothing
strRecipients = chkString(strT3,"SQLString")
strRecipientsName = chkString(strT4,"SQLString")
strFrom = strSender
strFromName = strForumTitle
strsubject = strForumTitle & " Sticky Topic Change, "&strRecipientsName
strMessage = strMessage & "Your topic on "& strForumTitle &", titled: "& chr(34)& strT2 & chr(34) &" was made sticky by staff member: "& strDBNTFUserName& vbNewLine& "Link: "&strForumURL& "topic.asp?topic_id="&Topic_ID & vbNewLine
%>
<!--#INCLUDE FILE="inc_mail.asp" -->
<%

Then, in "pop_open.asp", look for the following lines (appx 156-160):

Code:

	case "UnStickyTopic"
strEncodedPassword = sha256("" & strPassword)
mLev = cLng(ChkUser(strDBNTFUserName, strEncodedPassword,-1))
if mLev > 0 then '## is Member
if (chkForumModerator(Forum_ID, strDBNTFUserName) = "1") or (mLev = 4) then


Replace them with the following:

case "UnStickyTopic"
strEncodedPassword = sha256("" & strPassword)
mLev = cLng(ChkUser(strDBNTFUserName, strEncodedPassword,-1))
if mLev > 0 then '## is Member
if (chkForumModerator(Forum_ID, strDBNTFUserName) = "1") or (mLev > 2) then
strSql="SELECT M.M_EMAIL, M.M_NAME, M.MEMBER_ID, T.T_AUTHOR, T.T_SUBJECT, T.TOPIC_ID FROM " & strMemberTablePrefix &_
"MEMBERS M INNER JOIN " & strTablePrefix & "TOPICS T ON (T.T_AUTHOR=M.MEMBER_ID AND T.TOPIC_ID="& Topic_ID &")"
set rsPost=my_Conn.Execute(strSql)
if not rsPost.EOF then
strT2=rsPost("T_SUBJECT")
strT3=rsPost("M_EMAIL")
strT4=rsPost("M_NAME")
end if
rsPost.Close
set rsPost=Nothing
strRecipients = chkString(strT3,"SQLString")
strRecipientsName = chkString(strT4,"SQLString")
strFrom = strSender
strFromName = strForumTitle
strsubject = strForumTitle & " Sticky Topic Change, "&strRecipientsName
strMessage = strMessage & "Your topic on "& strForumTitle &", titled: "& chr(34)& strT2 & chr(34) &" was made un-sticky by staff member: "& strDBNTFUserName& vbNewLine& "Link: "&strForumURL& "topic.asp?topic_id="&Topic_ID & vbNewLine
%>
<!--#INCLUDE FILE="inc_mail.asp" -->
<%
نوشته شده در
کاربر قفل شده
philsbbs
مطلب: 397
397
Thanks it works a treat, is it possible to have it also send a private message as well as a email ??
Phil
نوشته شده در
Advanced Member
Carefree
مطلب: 4224
4224
Sure. I'll add that today for you.
نوشته شده در
Advanced Member
Carefree
مطلب: 4224
4224
To also send a PM to the topic's author, replace the routines as follows.
"pop_lock.asp"

Code:

	case "StickyTopic"
strEncodedPassword = sha256("" & strPassword)
mLev = cLng(chkUser(strDBNTFUserName, strEncodedPassword,-1))
if mLev > 0 then '## is Member
if (chkForumModerator(Forum_ID, strDBNTFUserName) = "1") or (mLev > 2) then
strSql="SELECT M.M_EMAIL, M.M_NAME, M.MEMBER_ID, T.T_AUTHOR, T.T_SUBJECT, T.TOPIC_ID FROM " & strMemberTablePrefix &_
"MEMBERS M INNER JOIN " & strTablePrefix & "TOPICS T ON (T.T_AUTHOR=M.MEMBER_ID AND T.TOPIC_ID="& Topic_ID &")"
set rsPost=my_Conn.Execute(strSql)
if not rsPost.EOF then
T1=rsPost("T_AUTHOR")
strT2=rsPost("T_SUBJECT")
strT3=rsPost("M_EMAIL")
strT4=rsPost("M_NAME")
end if
rsPost.Close
set rsPost=Nothing
strRecipients = chkString(strT3,"SQLString")
strRecipientsName = chkString(strT4,"SQLString")
strFrom = strSender
strFromName = strForumTitle
strsubject = strForumTitle & " Sticky Topic Change, "&strRecipientsName
strMessage = strMessage & "Your topic on "& strForumTitle &", titled: "& chr(34)& strT2 & chr(34) &" was made sticky by staff member: "& strDBNTFUserName& vbNewLine& "Link: "&strForumURL& "topic.asp?topic_id="&Topic_ID & vbNewLine
%>
<!--#INCLUDE FILE="inc_mail.asp" -->
<%
strSql="INSERT INTO " & strTablePrefix & "PM (M_SUBJECT, M_MESSAGE, M_TO, M_FROM, M_SENT, M_MAIL, M_READ, M_OUTBOX) VALUES ('" & strSubject & "', '" & strMessage & "', " & t1 & ", " & MEMBERID & ", '" & DateToStr(strForumTimeAdjust) & "', " & "0,0,1)"
Response.Write strSql

"pop_open.asp"

Code:

				strSql="SELECT M.M_EMAIL, M.M_NAME, M.MEMBER_ID, T.T_AUTHOR, T.T_SUBJECT, T.TOPIC_ID FROM " & strMemberTablePrefix &_
"MEMBERS M INNER JOIN " & strTablePrefix & "TOPICS T ON (T.T_AUTHOR=M.MEMBER_ID AND T.TOPIC_ID="& Topic_ID &")"
set rsPost=my_Conn.Execute(strSql)
if not rsPost.EOF then
T1=rsPost("T_AUTHOR")
strT2=rsPost("T_SUBJECT")
strT3=rsPost("M_EMAIL")
strT4=rsPost("M_NAME")
end if
rsPost.Close
set rsPost=Nothing
strRecipients = chkString(strT3,"SQLString")
strRecipientsName = chkString(strT4,"SQLString")
strFrom = strSender
strFromName = strForumTitle
strsubject = strForumTitle & " Sticky Topic Change, "&strRecipientsName
strMessage = strMessage & "Your topic on "& strForumTitle &", titled: "& chr(34)& strT2 & chr(34) &" was made un-sticky by staff member: "& strDBNTFUserName& vbNewLine& "Link: "&strForumURL& "topic.asp?topic_id="&Topic_ID & vbNewLine
%>
<!--#INCLUDE FILE="inc_mail.asp" -->
<%
strSql="INSERT INTO " & strTablePrefix & "PM (M_SUBJECT, M_MESSAGE, M_TO, M_FROM, M_SENT, M_MAIL, M_READ, M_OUTBOX) VALUES ('" & strSubject & "', '" & strMessage & "', " & t1 & ", " & MEMBERID & ", '" & DateToStr(strForumTimeAdjust) & "', " & "0,0,1)"
Response.Write strSql
 
شما باید یک متن وارد کنید