Ít nhất 5MB cho lưu trữ file và 5MB cho cơ sở dữ liệu 3 Cài đặt 3.1 Bước 1: Tải file lên server Tạo một thư mục trên server của bạn dùng để chứ file chương trình.. Vd, nếu bạn muốn truy
Trang 11 Giới thiệu
Invision Power Board (IPB) là một giải pháp dùng để xây dựng cộng đồng trên internet (forum) IPB được viết bằng PHP và sử dụng cơ sở dữ liệu chủ yếu là MySQL
Thông tin về IPB
Hãng phát triển: Invision Power Services
Website: http://invisionpower.com/
Cộng đồng dùng IPB: http://www.ipsbeyond.com
Lưu ý: IPB là một sản phẩm thương mại, nếu bạn cần tìm một sản phẩm miễn phí, chúng tôi khuyên bạn nên dùng phpBB
2 Các yêu cầu trước khi cài đặt
2.1 Yêu cầu server
Bạn phải có một webserver đã cài sẵn PHP 4.3.0 (hoặc cao hơn) và MySQL 3.23 (hoặc cao hơn)
IPB hoạt động tốt nhất với Apache server Tuy nhiên bạn có thể chạy trên IIS
Thông tin về cài đặt webserver xin tham khảo tại:
http://www.thegioiphp.com/news_cats.php?cat_id=22
2.2 Các yêu cầu khác
Bạn phải có một tài khỏan trong MySQl với các quyền CREATE, DROP và ALTER
Ít nhất 5MB cho lưu trữ file và 5MB cho cơ sở dữ liệu
3 Cài đặt
3.1 Bước 1: Tải file lên server
Tạo một thư mục trên server của bạn dùng để chứ file chương trình Vd, nếu bạn muốn truy cập vào forum thông qua địa chỉ ‘http://www.domain.com/forums/’, hãy tạo một thư mục con tên là ‘forum’ trong thư mục ‘public_html’ hoặc ‘www’ của webserver
Giải nén file chương trình
Sử dụng một trình FTP client để chép toàn bộ file có trong thư mục ‘upload’ của gói file vừa giải nén nên thư mục forum của server mà bạn vừa tạo ở trên
Chuyển quyền ‘write’ cho các thư mục ‘skin_cache’, ‘uploads’ và file
‘config_global.php’ (0775 hoặc 0777 nếu server của bạn dùng hệ điều hành Linux; Writeable cho IIS_User nếu là Windows)
Những công việc vất vả đã qua, bây giờ chúng ta chuyển sang bước tiếp theo
Trang 23.2 Bước 2: Sử dụng trình cài đặt
Bật trình duyệt và chạy trình cài đặt bằng cách gõ URL vào thanh địa chỉ của trình duyệt
Vd, nếu bạn tạo thư mục có cấu trúc như bước 1, hãy gõ vào
http://www.domain.com/forums/install/index.php, thay ‘domain.com’ bằng địa chỉa website của bạn
Màn hình đầu tiên: Một giới thiệu ngắn và IPB và kết quả kiểm tra quyền ở một số file, thư mục
Nếu quá trình kiểm tra thành công, nhấn vào nút ‘Proceed’ để tiếp tục
Màn hình thứ 2: Yêu cầu bạn khai báo các thông số kết nối cơ sở dữ liệu và thông tin tài khỏan đăng nhập dành cho người quản trị (Admin)
Trang 3Nhập các thông số cần thiết rồi tiếp tục nhấn nút ‘Proceed’
Ở các màn hình tiếp theo, bạn hãy cứ ngồi chờ cho chương trình tự làm
Quá trình cài đặt sẽ tự hoàn tất sau vài bước nữa Nhấn vào dòng link ở màn cuối cùng của trình cài đặt để vào forum Khi trang forum hiện ra, hãy nhập vào thông tin mà bạn
đã chọn làm tài khỏan Admin để vào forum Tại đây, bạn có thể nhấn vào link ‘Admin CP’ để chuyển đến trang dành cho nhà quản trị
3.3 Bước 3: Sau khi cài đặt
Để bảo đảm an toàn, hãy xóa file ‘install/index.php’ để không ai có thể cài lại forum được nữa
Trình quản trị được thiết kế rất thân thiện, tại đây bạn có tòan quyền để thiết lập cấu hình cho forum của mình như tạo room mới, quản lý tài khỏan, giao diện…
Làm 1 4rum IBF-too easy
Nói trước là cái này dành cho người ko bít gì về làm 4rum hít,các bác nào tài giỏi đừng vào nói này nói nọ
+Bước 1: register 1 4rum
Bạn có thể lên cái host free register 1 4rum IBF
http://www.bbfree.com http:///www.invisionfree.com
Trang 4www.forumhoster.com
+Bước 2:chọn skin
Bạn vào đây chọn skin cho 4rum của mình http://skins.invisionize.com/
Đăng nhập= nick: TNam ,pass: ttmh (trong đây cũng có rất nhìu avatar,icon,pip ect ) chọn skin và download về máy mình
Vào Acp( Admin control panel) upload skin lên
Sau khi uploads lên forum của bạn sẽ tự động import nếu thành công nó sẽ báo là skin was uploads complete nếu không thành công bạn cố gắng up lại
Tiếp theo vào import skin files
sau đó vào Skins & Templaties >Manage Skin set >Create New Skin Set Chọn skin vừa import và nhấn Create New Skin
Vậy là xong
+Bước 3:Bỏ banner quảng cáo
- Vào ACP, Skins & Templates, Board Wrappers
- Chọn Tên Skin, Edit
- Trong phần content, thay
Trích dẫn:
<% BOARD HEADER %>
Thành
Trích dẫn:
<% MEMBER BAR %><br />
Tìm đoạn code sau
Trích dẫn:
<% COPYRIGHT %>
Thay đoạn code đó bằng code này
Trích dẫn:
<div style="visibility:hidden"><% COPYRIGHT %></div>
Trang 5+Bước 4:chèn bộ gõ cho 4rum
Vào acp > skin & template > board wrapper > edit ( chọn cái skin mà bạn muốn edit nếu bạn dùng nhiều skin) > thêm vào sau <head> và <title> d0oạn code sau
Trích dẫn:
<script src='http://www.ysvn.net/viettyping.js' language='JavaScript'
type="text/javascript"></SCRIPT>
đoạn trong src là nguồn của bộ gõ,bạn có thay nó = các nguồn khác nếu có
+Bước 5:Việt hóa trang Index
Bạn có thể việt hóa từng phần = cách Languages/Manage Languages/English
(Default Language)=>edit
Bạn sẽ thấy dòng Please select a language file to edit==>Edit this language file
nó sẽ xuất hiện bảng sau Block Name/ Content ==>Việt hóa bên content
Còn đây là code Việt hóa toàn bộ trang Index
Vào : HTML template > manager HTML > Boad Index Section > Boad Index page top Thay toàn bộ đoạn mã trong đó bằng đoạn mã dưới đây:
Trích dẫn:
<div id='userlinks'><div align='left' style='float:left;text-align:left;padding-bottom:4px'>
<b>Chào bạn trở lại , lần truy cập trước của bạn là</b></div>
<div align='right'><! IBF.NEWSLINK >
</div></div><br />
<! IBF.QUICK_LOG_IN > </P>
Vào HTML template > manager HTML > Boad Index Section > Start Category Table Thay toàn bộ bằng đoạn mã sau:
Trích dẫn:
<div class="tableborder">
<div class='maintitle' align='left'>· <a
href="{ibf.script_url}c={$Data['id']}">{$Data['name']}</a> ·</div>
<table width="100%" border="0" cellspacing="1" cellpadding="4">
<tr>
<th align="center" width="2%" class='titlemedium'><img
src="{ibf.vars.img_url}/spacer.gif" alt="" width="28" height="1" /></th>
<th align="left" width="59%" class='titlemedium'>Diễn đàn</th>
<th align="center" width="7%" class='titlemedium'>Chủ đề</th>
Trang 6<th align="center" width="7%" class='titlemedium'>Trả lời</th>
<th align="left" width="25%" class='titlemedium'>Bài trả lời sau cùng</th>
</tr>
Vào : HTML template > manager HTML > Boad Index Section > + Board Index Forum Row
Code:
Trích dẫn:
<tr>
<td class="row4" align="center">{$info['img_new_post']}</td>
<td class="row4" onfiltered="this.className='rowh'"
onfiltered="this.className='row4'"><b><a
href="{ibf.script_url}showforum={$info['id']}">{$info['name']}</a></b><br /><span class='desc'>{$info['description']}</span></td>
<td class="row2" align="center">{$info['topics']}</td>
<td class="row2" align="center">{$info['posts']}</td>
<td class="row2" nowrap="nowrap">{$info['last_post']}<br /><font
color="228b22">Trong box</font>: {$info['last_unread']}{$info['last_topic']}<br /><font color="228b22">Bài trả lời cuối</font>: {$info['last_poster']}</td>
+Bước 5:Thay logo cho 4rum
Vào
HTML Templates > Manager HTML > Global HTML elements > Board Header (logo, links, etc) > Edit Single
Tìm đoạn mã sau :
Trích dẫn:
<a href='{ibf.script_url}' title='Board Home'><img src='{ibf.vars.img_url}/logo4.gif' alt='Powered by Invision Power Board' border="0" /></a>
Thay bằng đoạn mã này :
Trích dẫn:
<a href='{ibf.script_url}' title='Board Home'><img src='địa chỉ hình bạn muốn đưa vào' alt='Powered by Invision Power Board' border="0" /></a>
Trang 7+Bước 6:Tạo 4rum và mod fast reply
Vào Acp/new catelory để tạo 1 box lớn
Acp/new 4rum để tạo 1 4rum con trong catelory
(lưu ý là trong acp ko type được tiếng việt,bạn có thể type ở 4rum rồi paste wa )
sau khi creat 1 forrum mới bạn vào lại Setting ->Turn on the Quick Reply Box? ->
chọn yes
forum mới nào cũng làm như vậy nhé
Sau đó vào Admin CP ->Skins & templates ->HTML Templates >manage >Topic
View Section ->edit signer ->quick_reply_box_open
Thay toàn bộ bằng đoạn mã sau
Trích dẫn:
<script language="javascript1.2" type="text/javascript">
<!
var MessageMax = "{ibf.lang.the_max_length}";
var Override = "{ibf.lang.override}";
MessageMax = parseInt(MessageMax);
if ( MessageMax < 0 )
{
MessageMax = 0;
}
function emo_pop()
{
window.open('index.{ibf.vars.php_ext}?act=legends&CODE=emoticons&s={ibf.session_id}','Legen 0,resizable=yes,scrollbars=yes');
}
function bbc_pop()
{
window.open('index.{ibf.vars.php_ext}?act=legends&CODE=bbcode&s={ibf.session_id}','Legends' 0,resizable=yes,scrollbars=yes');
}
function CheckLength() {
MessageLength = document.REPLIER.Post.value.length;
message = "";
if (MessageMax > 0) {
message = "{ibf.lang.js_post}: {ibf.lang.js_max_length} " + MessageMax + " {ibf.lang.js_characters } else {
message = "";
Trang 8}
alert(message + " {ibf.lang.js_used} " + MessageLength + " {ibf.lang.js_characters}.");
}
function ValidateForm(isMsg) {
MessageLength = document.REPLIER.Post.value.length;
errors = "";
if (isMsg == 1)
{
if (document.REPLIER.msg_title.value.length < 2)
{
errors = "{ibf.lang.msg_no_title}";
}
}
if (MessageLength < 2) {
errors = "{ibf.lang.js_no_message}";
}
if (MessageMax !=0) {
if (MessageLength > MessageMax) {
errors = "{ibf.lang.js_max_length} " + MessageMax + " {ibf.lang.js_characters} {ibf.lang.js_current }
}
if (errors != "" && Override == "") {
alert(errors);
return false;
} else {
document.REPLIER.submit.disabled = true;
return true;
}
}
// IBC Code stuff
var text_enter_url = "{ibf.lang.jscode_text_enter_url}";
var text_enter_url_name = "{ibf.lang.jscode_text_enter_url_name}";
var text_enter_image = "{ibf.lang.jscode_text_enter_image}";
var text_enter_email = "{ibf.lang.jscode_text_enter_email}";
var text_enter_flash = "{ibf.lang.jscode_text_enter_flash}";
var text_code = "{ibf.lang.jscode_text_code}";
var text_quote = "{ibf.lang.jscode_text_quote}";
var error_no_url = "{ibf.lang.jscode_error_no_url}";
Trang 9var error_no_title = "{ibf.lang.jscode_error_no_title}";
var error_no_email = "{ibf.lang.jscode_error_no_email}";
var error_no_width = "{ibf.lang.jscode_error_no_width}";
var error_no_height = "{ibf.lang.jscode_error_no_height}";
var prompt_start = "{ibf.lang.js_text_to_format}";
var help_bold = "{ibf.lang.hb_bold}";
var help_italic = "{ibf.lang.hb_italic}";
var help_under = "{ibf.lang.hb_under}";
var help_font = "{ibf.lang.hb_font}";
var help_size = "{ibf.lang.hb_size}";
var help_color = "{ibf.lang.hb_color}";
var help_close = "{ibf.lang.hb_close}";
var help_url = "{ibf.lang.hb_url}";
var help_img = "{ibf.lang.hb_img}";
var help_email = "{ibf.lang.hb_email}";
var help_quote = "{ibf.lang.hb_quote}";
var help_list = "{ibf.lang.hb_list}";
var help_code = "{ibf.lang.hb_code}";
var help_click_close = "{ibf.lang.hb_click_close}";
var list_prompt = "{ibf.lang.js_tag_list}";
// >
</script>
<br />
<div align='left' id='qr_open' style="display:$show;position:relative;">
<form name='REPLIER' action="{ibf.script_url}" method='post' onSubmit='return ValidateForm()' e data'>
<input type='hidden' name='act' value='Post' />
<input type='hidden' name='CODE' value='03' />
<input type='hidden' name='f' value='$fid' />
<input type='hidden' name='t' value='$tid' />
<input type='hidden' name='st' value='{$ibforums->input['st']}' />
<input type='hidden' name='auth_key' value='$key' />
<! TITLE DIV >
<div class="tableborder">
<div class='maintitle'><{CAT_IMG}> {ibf.lang.qr_title}</div>
Trang 10<table align='center'>
<tr><td class="row1">
<input type='radio' class='radiobutton' name='bbmode' value='ezmode' onclick='setmode(this.value)' Mode</b><br />
<input type='radio' class='radiobutton' name='bbmode' value='normal' onclick='setmode(this.value)' c /> <b>Normal Mode</b>
<script type='text/javascript' src='html/ibfcode.js'></script>
</td>
<td class="row1">
<input type='button' accesskey='b' value=' B ' onclick='simpletag("B")' class='codebuttons' name='B' onmouseover="hstat('bold')" />
<input type='button' accesskey='i' value=' I ' onclick='simpletag("I")' class='codebuttons' name='I' sty onmouseover="hstat('italic')" />
<input type='button' accesskey='u' value=' U ' onclick='simpletag("U")' class='codebuttons' name='U' decoration:underline" onmouseover="hstat('under')" />
<select name='ffont' class='codebuttons' onchange="alterfont(this.options[this.selectedIndex].value, ' onmouseover="hstat('font')">
<option value='0'>{ibf.lang.ct_font}</option>
<option value='Arial' style='font-family:Arial'>{ibf.lang.ct_arial}</option>
<option value='Times' style='font-family:Times'>{ibf.lang.ct_times}</option>
<option value='Courier' style='font-family:Courier'>{ibf.lang.ct_courier}</option>
<option value='Impact' style='font-family:Impact'>{ibf.lang.ct_impact}</option>
<option value='Geneva' style='font-family:Geneva'>{ibf.lang.ct_geneva}</option>
<option value='Optima' style='font-family:Optima'>Optima</option>
</select><select name='fsize' class='codebuttons' onchange="alterfont(this.options[this.selectedIndex onmouseover="hstat('size')">
<option value='0'>{ibf.lang.ct_size}</option>
<option value='1'>{ibf.lang.ct_sml}</option>
<option value='7'>{ibf.lang.ct_lrg}</option>
<option value='14'>{ibf.lang.ct_lest}</option>
</select><select name='fcolor' class='codebuttons' onchange="alterfont(this.options[this.selectedInde onmouseover="hstat('color')">
<option value='0'>{ibf.lang.ct_color}</option>
<option value='blue' style='color:blue'>{ibf.lang.ct_blue}</option>
<option value='red' style='color:red'>{ibf.lang.ct_red}</option>
<option value='purple' style='color:purple'>{ibf.lang.ct_purple}</option>
<option value='orange' style='color:orange'>{ibf.lang.ct_orange}</option>
<option value='yellow' style='color:yellow'>{ibf.lang.ct_yellow}</option>
<option value='gray' style='color:gray'>{ibf.lang.ct_grey}</option>
<option value='green' style='color:green'>{ibf.lang.ct_green}</option>