Bài 3: Chào mừng 1. Mở file ha_language_file_inc.asp a.1. Tìm dòng code Const strTxtFemale = "Nữ" a.2. Thêm xuống dưới Const strTxtWelcomeHA = "Chào mừng bạn đến với Cộng đồng ASP Việt Nam" Const strTxtWelcomeDetail1 = "Nếu là lần đầu tiên bạn duyệt Diễn đàn này, hãy click chuột vào" Const strTxtWelcomeDetail2 = "để xem hướng dẫn. Bạn nên" Const strTxtWelcomeDetail3 = "trước khi gửi bài. Để xem các bài viết, hãy chọn các Diễn đàn mà bạn muốn ở bên dưới. " 2. Mở file default.asp a.1. Tìm dòng code vbCrLf & " </td>") End If %> </table> a.2. Thêm xuống dưới <table cellspacing="1" cellpadding="3" class="tableBorder" align="center"> <tr class="tableLedger"> <td> + <% = strTxtWelcomeHA %> + </td> </tr> <tr> <td colspan="5" class="tableRow"><% = strTxtWelcomeDetail1 %> <a href="help.asp"><% = strTxtHelp %></a> <% = strTxtWelcomeDetail2 %> <a href="registration_rules.asp?FID=0"><% = strTxtRegister %></a> <% = strTxtWelcomeDetail3 %></td> </tr> </table><br /> Bài 4: Thành viên tích cực – thành viên mới – chủ đề mới – bài viết mới 1. Mở file ha_language_file_inc.asp a.1. Tìm dòng code Const strTxtWelcomeDetail3 = "trước khi gửi bài. Để xem các bài viết, hãy chọn các Diễn đàn mà bạn muốn ở bên dưới. " a.2. Thêm xuống dưới Const strTxtBestMember = "Thành viên tích cực" Const strTxtNewMember = "Thành viên mới" Const strTxtLastNewTopic = "Chủ đề mới" Const strTxtLastNewPost = "Bài viết mới" Const strTxtNoMember = "Không có Thành viên nào cả" Const strTxtNoTopic = "Không có Chủ đề nào cả" Const strTxtNoPost = "Không có Bài viết nào cả" 2. Mở file default.asp a.1. Tìm dòng code 'Clean up Call closeDatabase() a.2. Thay thế bằng 'Clean up 'Call closeDatabase() b.1. Tìm dòng code %> </table> <br /> <table class="basicTable" border="0" cellspacing="0" cellpadding="2" align="center" style="width:550px;"> <tr class="smText"> b.2. Thêm lên trên 'Clean up Set rsCommon = Nothing Call closeDatabase() c.1. Tìm dòng code <td colspan="5" class="tableRow"><% = strTxtWelcomeDetail1 %> <a href="help.asp"><% = strTxtHelp %></a> <% = strTxtWelcomeDetail2 %> <a href="registration_rules.asp?FID=0"><% = strTxtRegister %></a> <% = strTxtWelcomeDetail3 %></td> </tr> </table><br /> c.2. Thêm xuống dưới <%Dim intLoop%> <table cellspacing="1" cellpadding="3" class="tableBorder" align="center"> <tr class="tableLedger"> <td width="25%" align="center"> + <% = strTxtBestMember %> + </td> <td width="25%" align="center"> + <% = strTxtNewMember %> + </td> <td width="25%" align="center"> + <% = strTxtLastNewTopic %> + </td> <td width="25%" align="center"> + <% = strTxtLastNewPost %> + </td> </tr> <tr class="tableRow"> <td valign=top align="left"> <% strSQL = "SELECT TOP 10 " & strDbTable & "Author.Username, " & strDbTable & "Author.Author_ID , " & strDbTable & "Author.No_of_posts " & _ "FROM " & strDbTable & "Author" & strDBNoLock & " " & _ "WHERE " & strDbTable & "Author.No_of_posts > 0 " & _ "ORDER BY " & strDbTable & "Author.No_of_posts DESC;" 'Query the database rsCommon.Open strSQL, adoCon, 3, 3 if rsCommon.RecordCount > 0 then For intLoop = 1 To rsCommon.RecordCount if rsCommon.EOF then exit For if Len(intLoop) < 2 then intLoop = 0 & intLoop Response.Write intLoop & ". <A HREF=""member_profile.asp?PF=" & rsCommon("Author_ID") & " & rsCommon("Username") & "</A> [" & strTxtPosts & ": " & rsCommon("No_of_posts") & "]<BR>" rsCommon.MoveNext Next else Response.Write(vbCrLf & "<img src=" & strImagePath & "moved_icon.gif border=0> " & strTxtNoMember) end if 'Clean up rsCommon.close %> </td> <td valign=top align="left"> <% strSQL = "SELECT TOP 10 " & strDbTable & "Author.Username, " & strDbTable & "Author.Author_ID , " & strDbTable & "Author.No_of_posts " & _ "FROM " & strDbTable & "Author" & strDBNoLock & " " & _ "WHERE " & strDbTable & "Author.Author_ID > 2 " & _ "ORDER BY " & strDbTable & "Author.Author_ID DESC;" 'Query the database rsCommon.Open strSQL, adoCon, 3, 3 if rsCommon.RecordCount > 0 then For intLoop = 1 To rsCommon.RecordCount if rsCommon.EOF then exit For if Len(intLoop) < 2 then intLoop = 0 & intLoop Response.Write intLoop & ". <A HREF=""member_profile.asp?PF=" & rsCommon("Author_ID") & """>" & rsCommon("Username") & "</A> [" & strTxtPosts & ": " & rsCommon("No_of_posts") & "]<BR>" rsCommon.MoveNext Next else Response.Write(vbCrLf & "<img src=" & strImagePath & "moved_icon.gif border=0> " & strTxtNoMember) end if 'Clean up rsCommon.close %> </td> <td valign=top align="left"> <% strSQL = "SELECT TOP 10 " & strDbTable & "Topic.Topic_ID, " & strDbTable & "Topic.Subject , " & strDbTable & "Topic.No_of_replies " & _ "FROM " & strDbTable & "Topic" & strDBNoLock & " " & _ "ORDER BY " & strDbTable & "Topic.Topic_ID DESC;" 'Query the database rsCommon.Open strSQL, adoCon, 3, 3 if rsCommon.RecordCount > 0 then For intLoop = 1 To rsCommon.RecordCount if rsCommon.EOF then exit For if Len(intLoop) < 2 then intLoop = 0 & intLoop Response.Write intLoop & ". <A HREF=""forum_posts.asp?TID=" & rsCommon("Topic_ID") & """>" & Left(rsCommon("Subject"), 20) & "</A> [" & strTxtReplies & ": " & rsCommon("No_of_replies") & "]<BR>" rsCommon.MoveNext Next else Response.Write(vbCrLf & "<img src=" & strImagePath & "moved_icon.gif border=0> " & strTxtNoTopic) end if 'Clean up rsCommon.close %> </td> <td valign=top align="left"> <% strSQL = "SELECT TOP 10 " & strDbTable & "Topic.Topic_ID, " & strDbTable & "Topic.Subject , " & strDbTable & "Topic.No_of_replies, " & strDbTable & "Topic.Last_Thread_ID, " & strDbTable & "Thread.Message, " & strDbTable & "Thread.Message_date, " & strDbTable & "Thread.Thread_ID " & _ "FROM " & strDbTable & "Topic" & strDBNoLock & "," & strDbTable & "Thread" & strDBNoLock & " " & _ "WHERE " & strDbTable & "Topic.Last_Thread_ID = " & strDbTable & "Thread.Thread_ID " & _ "ORDER BY " & strDbTable & "Topic.Last_Thread_ID DESC;" 'Query the database rsCommon.Open strSQL, adoCon, 3, 3 if rsCommon.RecordCount > 0 then For intLoop = 1 To rsCommon.RecordCount if rsCommon.EOF then exit For if Len(intLoop) < 2 then intLoop = 0 & intLoop Response.Write intLoop & ". <A TITLE=""" & removeHTML(rsCommon("Message"), 150, true) & """ HREF=""forum_posts.asp?TID=" & rsCommon("Topic_ID") & "&get=last#" & rsCommon("Thread_ID") & """>" & Left(rsCommon("Subject"), 20) & "</A> [" & strTxtReplies & ": " & rsCommon("No_of_replies") & "]<BR>" rsCommon.MoveNext Next else Response.Write(vbCrLf & "<img src=" & strImagePath & "moved_icon.gif border=0> " & strTxtNoTopic) end if 'Clean up rsCommon.close %> </td> </tr> </tr> </table><br /> . gửi b& #22 4;i. & #27 2;ể xem c& #22 5;c b& #22 4;i viết, h& #22 7;y chọn c& #22 5;c Diễn & #27 3;& #22 4;n m& #22 4; bạn. xem c& #22 5;c b& #22 4;i viết, h& #22 7;y chọn c& #22 5;c Diễn & #27 3;& #22 4;n m& #22 4; bạn muốn ở b& #23 4;n d 32; ới ti& #23 4;n bạn duyệt Diễn & #27 3;& #22 4;n n& #22 4;y, h& #22 7;y click chuột v& #22 4;o" Const strTxtWelcomeDetail2 = "& #27 3;ể