"
NewsRS.Close
Set NewsRS = Nothing
NewsCN.Close
Set NewsCN = Nothing
SendFooter
End Sub
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 NewKey
Function NewKey
Dim Counter
Dim TempString
Randomize()
TempString=""
For Counter = 1 To 50
TempString = TempString & Chr(65+Int((26 * Rnd)))
Next
NewKey = Left(TempString, 40)
End Function
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 ExpireAfterMinute
Function ExpireAfterMinute(ExpiredMinutes)
Dim dd,mm,yy,hh,nn,ss,MName,DName,Wday
Dim CurrentTime,ExpireTime
CurrentTime=Now
ExpireTime=DateAdd("n",ExpiredMinutes,CurrentTime)
dd=Day(ExpireTime)
mm=Month(ExpireTime)
yy=Year(ExpireTime)
hh=Hour(ExpireTime)
nn=Minute(ExpireTime)
ss=Second(ExpireTime)
Select Case mm
Case 1 MName = "Jan"
Case 2 MName = "Feb"
Case 3 MName = "Mar"
Case 4 MName = "Apr"
Case 5 MName = "May"
Case 6 MName = "Jun"
Case 7 MName = "Jul"
Case 8 MName = "Aug"
Case 9 MName = "Sep"
Case 10 MName = "Oct"
Case 11 MName = "Nov"
Case 12 MName = "Dec"
End Select
Wday=Weekday(ExpireTime)
Select Case Wday
Case 1 DName="Sunday"
Case 2 DName="Monday"
Case 3 DName="Tuesday"
Case 4 DName="Wednesday"
Case 5 DName="Thursday"
Case 6 DName="Friday"
Case 7 DName="Saturday"
End Select
ExpireAfterMinute=DName & ", "& dd & "-" & MName & "-" & yy & " " & hh & ":" & nn & ":" & ss & " GMT"
'Friday, 31-Dec-2002 23:59:59 GMT
End Function
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧Links
Function Links(Url1,Url2)
Dim Res
If Trim(Url1)<>"" Then Res="" & Url1 & " "
If Trim(Url2)<>"" Then Res=Res & "" & Url2 & " "
Links=Res
End Function
Function MailTo(MailAddress)
MailTo="" & MailAddress & ""
End Function
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧IsEmail
Function IsEmail(byVal mailaddress)
Dim tmp, x, y, bErr, tmp2, objReg
Dim objMatch, z, i
bErr = False
tmp = Trim( mailaddress )
tmp = CStr( mailaddress )
' minimum 6 characters...
if Len(tmp) < 6 then
IsEmail = False
Exit Function
end if
' need an @ but only 1 is allowed
If instr(tmp, "@") then
x = instr(tmp, "@")
y = instr(x + 1, tmp, "@")
On Error Resume Next
y = CLng(y)
If Err Then bErr = True Else bErr = False
On Error GoTo 0
If bErr Then
IsEmail = False
Exit Function
End If
if y <> 0 then
IsEmail = False
Exit Function
end if
Else
IsEmail = False
Exit Function
End If
' needs to have at least 2 characters (letters) after the . (dot)
z = InStr( tmp, "." )
tmp2 = Right( tmp, Len(tmp) - z )
Set objReg = New RegExp
With objReg
.Global = True
.IgnoreCase = True
.Pattern = "[A-Z][A-Z]"
Set objMatch = .Execute(tmp2)
End With
If objMatch.Count = 0 then
IsEmail = False
Exit Function
End If
Set objMatch = Nothing
Set objReg = Nothing
' check for illegal characters
For i = 1 to Len(tmp)
tmp2 = Mid( tmp, i, 1 )
Select Case tmp2
Case "(", ")", ";", ":", ",", "/", "'", chr(34), _
"~", "`", "!", "#", "$", "%", "^", "&", "*", _
"+", "=", "[", "]", "{", "}", "|", "\", "?", _
" ", "<", ">"
IsEmail = False
Exit Function
Case Else
End Select
Next
' if an address makes it through, it's an email address
IsEmail = True
End Function
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧delDelimiter
Function DelImportantChars(str)
Dim Rez
Rez=str & " "
Rez=Replace(Rez,vbCrLf," ")
Rez=Replace(Rez,vbLf," ")
Rez=Replace(Rez,vbCr," ")
DelImportantChars=Rez
End Function
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧delDelimiter
Function DelBreaks(str)
Dim Rez
Rez=str & " "
Rez=Replace(Rez,vbCrLf," ")
Rez=Replace(Rez,vbLf," ")
Rez=Replace(Rez,vbCr," ")
Rez=Replace(Rez," "," ")
Rez=Replace(Rez," "," ")
Rez=Replace(Rez," "," ")
DelBreaks=Rez
End Function
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 MsgError
Sub MsgError(Title, Text)
SendHeader Title
Send "
"
Send ""
Send Text
Send "
"
SendFooter
End Sub
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 MsgInfo
Sub MsgInfo(Title,Text)
SendHeader Title
Send "
"
Send ""
Send Text
Send ""
Send "
"
SendFooter
End Sub
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 FormLogIn
Sub LogInForm(RefMessage)
SendHeader "Log In"
Send "
"
Send ""
Send "
"
SendFooter
End Sub
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧LogIn()
Sub LogIn(RefUserName,RefPassWord)
Dim SetKeyRez
OpenUsersDataBase "SELECT * FROM Users WHERE UserName='" & RefUserName & "' AND PassWord='" & RefPassWord & "';",10
If UsersRS.EOF=True AND UsersRS.BOF=True Then
MsgError "Access denied", "Access denied! User with specified name and/or password not found."
Exit Sub
End If
If UCase(UsersRS.Fields("Status").Value)<>"ACTIVATED" Then
MsgError "Access denied", "Access denied! User not have status ""Activated""."
Exit Sub
End If
If UsersRS.Fields("IsAdmin").Value<>True Then
MsgError "Admin denied", "Amin denied! Specified user is not an administrator."
Exit Sub
End If
SetKeyRez = NewKey
UsersRS.Fields("SKey").Value = SetKeyRez
UsersRS.Fields("LoginTimeStamp").Value = Now
UsersRS.Update
Send ""
MsgInfo "LogIn Ok","LogIn Ok! Please select any commands from menu!"
End Sub
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧LogIn()
Sub LogOut(RefKey)
Dim SetKeyRez
OpenUsersDataBase "SELECT * FROM Users WHERE SKey='" & RefKey & "';",10
If UsersRS.EOF=True AND UsersRS.BOF=True Then
MsgError "Uknown key", "User with identification key not found. Please make log in!"
Exit Sub
End If
SetKeyRez = NewKey
UsersRS.Fields("SKey").Value = SetKeyRez
UsersRS.Update
CloseUsersDataBase
MsgInfo "Log out Ok","Log out Ok! Registration data was deleted from database. Thanks!"
End Sub
'____________________________________________________SendHeader
Sub SendHeader(TitleMessage)
Dim Sp
If GetParam("Menu")="Left" Then Sp = "colspan='2'"
Send ""
Send "" & sNewsTitle & " - " & TitleMessage & ""
Send sStyle
Send "" & vbCrLf
Send ""
Send vbCrLf
Send "
" & vbNewLine
LeftMenu = R
End Function
'____________________________________________________Send
Sub Send(OutString)
Response.Write OutString & vbCrLf
End Sub
Sub JSWrite (OutJSString)
Response.Write "document.write(""" & OutJSString & """);" & vbCrLf
End Sub
'____________________________________________________SendFooter
Sub SendFooter
Dim Sp
If GetParam("Menu")="Left" Then Sp = "colspan='2'"
Send vbCrLf
Send "
"
Send "
"
Send "
"
Send "
"
Send "
"
Send "
"
Send "
" & sNewsCopyright
Send "
"
Send "
"
Send "
"
Send "
"
Send "
"
Send "
"
Send "
"
Send ""
Send ""
End Sub
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧 CkPermissions
Function CkPermissions(RefCokie,Rights)
Dim CurrentTime, LoginTime, IsUser, IsAdmin, IsAuthor
OpenUsersDataBase "SELECT * FROM Users WHERE SKey='" & RefCokie & "';", 1
If UsersRS.EOF = True And UsersRS.BOF = True Then
CkPermissions = False
Exit Function
Else
LoginTime = UsersRS.Fields("LoginTimeStamp").Value
sCurrentUserName = UsersRS.Fields("UserName").Value
sCurrentUserID = UsersRS.Fields("ID").Value
sCurrentFullName = UsersRS.Fields("FullName").Value
IsUser = UsersRS.Fields("IsUser").Value
IsAuthor = UsersRS.Fields("IsAuthor").Value
IsAdmin = UsersRS.Fields("IsAdmin").Value
CloseUsersDataBase
End If
If IsAdmin=True AND Rights="Admin" Then
CkPermissions = True
Exit Function
ElseIf IsAuthor=True AND Rights="Author" Then
CkPermissions = True
Exit Function
ElseIf IsUser=True AND Rights="User" Then
CkPermissions = True
Exit Function
End If
CurrentTime = Now
If DateDiff("n",CurrentTime,LoginTime)>1 Then
CkPermissions=False
Exit Function
End If
CkPermissions=False
End Function
'____________________________________________________DocumentVerify
Function DocumentVerify
Dim Res
Res=""
If Trim(sCategory)="" Then
Res=Res & "
It is necessary to type a name of a category," & _
" where to place the ready document. We recommend to click the name" & _
"""Category"" and receive the list already of known categories!
"
End If
If Len(sContent)<2 Then
Res=Res & "
""Document complete content !""." & _
" Describe this field in more details, please!
"
End If
If IsMyDate(sPublicationDate)<> True Then
Res=Res & "
""Publication date !""." & _
" The date format error please use format ""DD.MM.YYYY""!
"
End If
If (Trim(sEmail) <> "") And (Not iSEmail(sEmail)) Then
Res=Res & "
Not valid a e-mail address. Enter other, please!
"
End If
If (Trim(sLink1) <> "") And LCase(Left(sLink1,5))<>"http:" Then
Res=Res & "
It is necessary that the ""links"" began by the letters ""http:"" Retype it, please!
"
End If
If (Trim(sLink2) <> "") And LCase(Left(sLink2,5))<>"http:" Then
Res=Res & "
It is necessary that the ""links"" began by the letters ""http:"" Retype it, please!
"
End If
If Res<>"" Then
DocumentVerify="" & _
"
Detected ERRORS
"& _
"
"& _
"
"& _
"" & Res & ""& _
"
"
Else
DocumentVerify=True
End If
End Function
'____________________________________________________ PublishEvent
'Recived data from publisher check and add to database if ok.
Sub DocumentSave(RefDocumentID,SaveAsNew)
Dim CheckData
CheckData=DocumentVerify
If CheckData<>True Then
MsgError "Errors", CheckData
Exit Sub
End If
If SaveAsNew = True Then
sSQL = "SELECT * FROM Documents ORDER BY ID DESC;"
Else
sSQL = "SELECT * FROM Documents WHERE ID=" & RefDocumentID & " ORDER BY ID;"
End If
OpenNewsDataBase sSQL,1
If SaveAsNew = True Then
NewsRS.AddNew
End If
NewsRS.Fields("Status").Value ="Public"
NewsRS.Fields("AuthorName").Value =sUserName & " "
NewsRS.Fields("Description").Value =sDescription & " "
NewsRS.Fields("Content").Value =sContent & " "
NewsRS.Fields("Title").Value =sTitle & " "
NewsRS.Fields("Link1").Value =sLink1 & " "
NewsRS.Fields("Link2").Value =sLink2 & " "
NewsRS.Fields("Language").Value =sLanguage & " "
NewsRS.Fields("Email").Value =sEmail & " "
NewsRS.Fields("Category").Value =sCategory & " "
NewsRS.Fields("TimeStamp").Value =MyDate2Date(sPublicationDate)
NewsRS.Update
If SaveAsNew = True Then
NewsRS.Requery
RefDocumentID =NewsRS.Fields("ID")
End If
CloseNewsDataBase
If SaveAsNew = True Then
MsgInfo "Publish article","Article was published under ID " & RefDocumentID
Else
MsgInfo "Update article","Article under ID " & RefDocumentID & " was updated!"
End If
End Sub
'____________________________________________________ DocumentStatusSet
Sub DocumentStatusSet(RefID, RefStatus)
If IsNumeric(RefID)=False Then
MsgInfo "Error ID", "Wrong ID, please verify article ID."
Exit Sub
End If
sSQL = "SELECT * FROM Documents WHERE ID=" & RefID & ";"
OpenNewsDataBase sSQL, 1
If NewsRS.BOF And NewsRS.EOF Then
MsgInfo "Record not found", "Record under code " & sID & " not found."
Exit Sub
End If
NewsRS.Fields("Status").Value = RefStatus
NewsRS.Update
CloseNewsDataBase
MsgInfo "Set status","Status for article under ID " & RefID & " set as " & RefStatus
End Sub
'覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧ClearDeleted
Sub DocumentDelete(RefID)
sSQL = "DELETE * FROM Documents WHERE ID="& RefID &";"
OpenNewsDataBase sSQL, 1
MsgInfo "Delete article","Article under ID " & RefID & " was deleted from database!"
End Sub
'____________________________________________________SelectorCategory
Function SelectorCategory(SelectedItem)
Dim R, S, C, Cnt
sSQL = "SELECT Count(*) AS Cnt, Category FROM Documents GROUP BY Category;"
OpenNewsDataBase sSQL,100
If NewsRS.EOF=True AND NewsRS.BOF=True Then
SelectorCategories="Empty Category fields"
Exit Function
End If
R =""
R = R & ""
SelectorCategory = R & vbNewLine
CloseNewsDataBase
End Function
'____________________________________________________DocumentEditor
Sub DocumentEditor(RefID,OpenBlankEditor)
If OpenBlankEditor <> True Then
sSQL = "SELECT * FROM Documents WHERE ID=" & sID & ";"
OpenNewsDataBase sSQL, 1
If NewsRS.BOF And NewsRS.EOF Then
MsgError "Record not found", "Record under code " & sID & " not found."
Exit Sub
End If
sDescription =NewsRS.Fields("Description")
sContent =NewsRS.Fields("Content")
sTitle =NewsRS.Fields("Title")
sLink1 =NewsRS.Fields("Link1")
sLink2 =NewsRS.Fields("Link2")
sLanguage =NewsRS.Fields("Language")
sEmail =NewsRS.Fields("Email")
sTimeStamp =NewsRS.Fields("Timestamp")
sCategory =NewsRS.Fields("Category")
CloseNewsDataBase
End If
SendHeader "Editor, article: " & sTitle
Send " "
Send "
"
Send "
"
Send "
"
Send "
"
Send "
"
Send " "
Send "
"
Send "
"
Send "
"
Send "
"
Send "
"
Send " "
SendFooter
End Sub
Sub SendPublisherSimple
SendHeader "News publisher (simple form)"
Send " "
Send "
"
Send "
"
Send "
"
Send " "
Send "
"
Send "
"
Send "
"
Send " "
SendFooter
End Sub
'____________________________________________________
Sub SendStart
Dim Tmp
SendHeader "Start page"
Tmp="
"
Tmp=Tmp & "[ View available news ] "
Tmp=Tmp & "[ View available news in brief ] "
Send Tmp
SendFooter
End Sub
'____________________________________________________ Start
Sub SendStartAdvance
Dim Tmp
SendHeader "Advance search news"
Send "
"
Send Tmp
SendFooter
End Sub
'____________________________________________________ SendAllNews
Sub SendAllNews(Cat,Lng)
Dim TotalArticles
Dim CurrentColor
Dim CurrentCorner
Dim Index3
Dim d1, d2, d3
Dim q1
Dim str1
Dim Pg
OpenNewsDataBase "SELECT Count(*) AS Cnt FROM Documents WHERE Status LIKE 'Pub%';",1
TotalArticles = NewsRS.Fields("Cnt").Value
CloseNewsDataBase
SetLocale("fr")
SendHeader "All available news (" & TotalArticles & " articles)"
If sDateFrom<>"" AND Not IsDate (sDateFrom) Then
Send "
"
Send "
"
Send "
"
Send "From Date format is incorrect!"
Send "
"
Send "
"
Exit Sub
End If
If sDateTo<>"" AND Not IsDate (sDateTo) Then
Send "
"
Send "
"
Send "
"
Send "To Date format is incorrect!"
Send "
"
Send "
"
Exit Sub
End If
If sDateFrom<>"" AND IsDate(sDateFrom) Then
d1 = Day (sDateFrom)
d2 = Month (sDateFrom)
d3 = Year (sDateFrom)
sDateFrom = d2 & "/" & d1 & "/" & d3 & " 00:00:00"
End If
If sDateTo<>"" AND IsDate(sDateTo) Then
d1 = Day (sDateTo)
d2 = Month (sDateTo)
d3 = Year (sDateTo)
sDateTo = d2 & "/" & d1 & "/" & d3 & " 23:59:59"
End If
str1 = ") "
sSQL = "SELECT * FROM Documents WHERE (Status='Public' "
If sSearchString<>"" Then
str1 = ""
q1 = Split (sSearchString, " ")
sSQL = sSQL & ") AND ("
For i = lBound(q1) to uBound(q1)
If i<>uBound(q1) Then
sSQL = sSQL & " Title LIKE '%" & q1(i) & "%' OR "
End if
Next
For i = lBound(q1) to uBound(q1)
If i<>uBound(q1) Then
sSQL = sSQL & " (Content LIKE '%" & q1(i) & "%') AND "
Else
sSQL = sSQL & " (Content LIKE '%" & q1(i) & "%') "
End if
Next
sSQL = sSQL & ") "
End If
If (sDateFrom<>"" OR sDateTo<>"") AND sSearchString="" Then
str1 = ""
sSQL = sSQL & ") "
End If
sSQL = sSQL & str1
If Trim(Cat)<>"" Then sSQL = sSQL & "AND Category='" & Cat & "' "
If Trim(Lng)<>"" Then sSQL = sSQL & "AND Language='" & Lng & "' "
If sDateFrom<>"" AND sDateTo="" Then
sSQL = sSQL & " AND TimeStamp>=#" & sDateFrom & "#"
ElseIf sDateFrom="" AND sDateTo<>"" Then
sSQL = sSQL & " AND TimeStamp<=#" & sDateTo & "#"
ElseIf sDateFrom<>"" AND sDateTo<>"" Then
sSQL = sSQL & " AND TimeStamp>=#" & sDateFrom &"# AND TimeStamp<=#" & DateTo & "#"
End if
sSQL=sSQL & " Order By Timestamp DESC"
Send ""
sSQL=sSQL & ";"
OpenNewsDataBase sSql, sPageSize
sPageCount = NewsRS.PageCount
If iSNumeric(sPage) Then sPageCurrent = CInt(sPage)
If sPageCurrent > sPageCount Then sPageCurrent = sPageCount
If sPageCurrent < 1 Then sPageCurrent = 1
If sPageCount = 0 Then
Send "
"
Send "
"
Send "
"
Send "No documents found!"
Send "
"
Send "
"
Else
NewsRS.AbsolutePage = sPageCurrent
Send "
"
CurrentColor=ColorTon2
Send "
"
Send "
"
Send "Click on news in order to get the full article"
Send "
"
Send "
"
Send "Page " & sPageCurrent & " "
Send "
"
Send "
"
sRecordsShown = 0
Do While sRecordsShown < sPageSize And Not NewsRS.EOF
sID =NewsRS.Fields("ID")
sTitle =NewsRS.Fields("Title")
sContent =Left(NewsRS.Fields("Content"),200)
sTimeStamp =NewsRS.Fields("TimeStamp")
If CurrentColor=ColorTon1 Then
CurrentColor=ColorTon2
CurrentCorner="left_top_corner2.gif"
Else
CurrentColor=ColorTon1
CurrentCorner="left_top_corner1.gif"
End If
Send "