Showing posts with label Thủ thuật xenforo. Show all posts
Showing posts with label Thủ thuật xenforo. Show all posts

Thursday, August 23, 2012

Cách chống spam link cho XenForo

Để chống việc spam link tràn lan cố tình hay vô tình tại diễn đàn XenForo , và làm cho Google không theo những link spam đó. Bài viết này sẽ hướng dẫn các bạn một cách đơn giản và nhanh nhất.


Áp dụng cho XenForo v1.1.2, các phiên khác cũng tương tự. Bạn vào đây: XenForo 
v1.1.2/forum/library/XenForo/Helper


File làm việc: String.php ( XenForo v1.1.2/forum/library/XenForo/Helper/ String.php) tìm đoạn sau:




public static function getLinkClassTarget($url)
{
$target = '_blank';
$class = 'externalLink';
$type = 'external';

$urlInfo = @parse_url($url);
if ($urlInfo)
{
$host = $urlInfo['host'] . (!empty($urlInfo['port']) ? ":$urlInfo[port]" : '');
if ($host == XenForo_Application::$host)
{
$target = '';
$class = 'internalLink';
$type = 'internal';
}
}

return array($class, $target, $type);
}


Và thay thế bằng đoạn sau:


public static function getLinkClassTarget($url)
{
$target = '_blank';
$class = 'externalLink" rel="nofollow '; # Thêm vào rel="nofollow", lưu ý không có dấu " ở cuối cùng.
$type = 'external';

$urlInfo = @parse_url($url);
if ($urlInfo)
{
$host = $urlInfo['host'] . (!empty($urlInfo['port']) ? ":$urlInfo[port]" : '');
if ($host == XenForo_Application::$host) # Đây là check tên miền đang sử dụng, không cần thay đổi.
{
$target = '';
$class = 'internalLink';
$type = 'internal';
}


# Đây là tùy biến, nếu bạn muốn cho phép 1 tên miền nào đó được Google theo link, và thêm target="_blank" để mở 1 cửa số mới.
if ($host == "kenhdaihoc.com")
{
$target = '_blank ';
$class = 'internalLink';
$type = 'internal';
}
}

return array($class, $target, $type);
}

Tùy vào từng forum mà các cách tùy biến khác nhau, cho phép Google theo các link từ site: mở cửa sổ mới, còn các link khác thì không cho phép Google theo link.
Với các mã nguồn có phiên bản khác, bạn cũng tìm đoạn public static function getLinkClassTarget($url) và tiến hành giống như vậy.
Chúc bạn thành công.
Sưu tầm

Wednesday, August 22, 2012

Khắc phục lỗi upload avatar trên mã nguồn xenforo


Chào các bạn,
Đối với Power Hosting PowerNet sử dụng DirectAdmin khi các bạn upload hay chỉnh sửa avatar cài mã nguồn XenForo có thể sẽ gặp lỗi sau.
mkdir() [function.mkdir ]: Permission denied
  1. XenForo_Application::handlePhpError()
  2. mkdir() in XenForo/Helper/File.php at line 66
  3. XenForo_Helper_File::createDirectory() in XenForo/Model/Avatar.php at line 335
  4. XenForo_Model_Avatar->_writeAvatar() in XenForo/Model/Avatar.php at line 206
  5. XenForo_Model_Avatar->applyAvatar() in XenForo/Model/Avatar.php at line 69
  6. XenForo_Model_Avatar->uploadAvatar() in XenForo/ControllerAdmin/User.php at line 534
  7. XenForo_ControllerAdmin_User->actionAvatarUpload() in XenForo/FrontController.php at line 310
  8. XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 132
  9. XenForo_FrontController->run() in /home/awthnhyr/domains/powernet.vn/public_html/forums/admin.php at line 13 (nhớ coi kỹ thư mục thực hiện nhé vì có thể thư mục của bạn khác với thư mục forums) 
Bạn vào upload 1 hình ảnh lên avatar nó sẽ báo lỗi ...avatars/m uid ... Bạn đăng nhập vào DirectAdmin, phần File Manager, đi tới thư mục đó và nhấn Reset Owner . Rồi tiếp tục up lại cho đến khi nào hiện ra ảnh là okie.
các folder con trong thư mục public_html/forums/data/avatars
m/0
l/0
s/0
Phương án thay thế là có thể vào thư mục public_html/forums/data/avatars và tạo các thư mục sau và CHMOD 777 với tất cả các thư mục được tạo :
public_html/forums/data/ avatars/m , public_html/forums/data/ avatars/m/0
public_html/forums/data/ avatars/l , public_html/forums/data/ avatars/l/0
public_html/forums/data/ avatars/s , public_html/forums/data/ avatars/s/0
và như thế sẽ đỡ tốn thời gian hơn nếu làm theo cách đầu tiên.
Xem thêm như thế nào là Reset Owner tại đây: Reset Owner đối với Hosting linux dùng Directadmin
Cập nhật 01/06/2012: Thư mục public_html/forums/internal_data cũng cần CHMOD 777 và reset owner đối với các thư mục con 
Chúc các bạn thành công

SƯU TẦM

Friday, August 17, 2012

SEO URL Tiếng Việt không dấu cho XenForo

Quá trình làm trên XenForo v1.1.2 , các phiên bản khác cũng tương tự.

Bước 1: Các bạn cần có một phần mềm PHP Editor (nên sử dụng Notepad ++)

Bước 2:
 Mở file XenForo v1.1.2/library/XenForo/Link.php, trên thanh menu của Notepad ++, các bạn chỉnh Encoding > Encode in UTF-8 without BOM


Bước 3:
 Tìm đoạn code sau

if ($romanize)
{
$title = utf8_romanize(utf8_deaccent($title));
}

Bước 4:
 Thêm vào bên dưới đoạn code sau :


$aPattern = array (
"a" => "á|à|ạ|ả|ã|ă|ắ|ằ|ặ|ẳ|ẵ|â|ấ|ầ|ậ|ẩ|ẫ|Á|À|Ạ|Ả|Ã|Ă|Ắ|Ằ|Ặ|Ẳ|Ẵ|Â|Ấ|Ầ|Ậ|Ẩ|Ẫ",
"o" => "ó|ò|ọ|ỏ|õ|ô|ố|ồ|ộ|ổ|ỗ|ơ|ớ|ờ|ợ|ở|ỡ|Ó|Ò|Ọ|Ỏ|Õ|Ô|Ố|Ồ|Ộ|Ổ|Ỗ|Ơ|Ớ|Ờ|Ợ|Ở|Ỡ",
"e" => "é|è|ẹ|ẻ|ẽ|ê|ế|ề|ệ|ể|ễ|É|È|Ẹ|Ẻ|Ẽ|Ê|Ế|Ề|Ệ|Ể|Ễ",
"u" => "ú|ù|ụ|ủ|ũ|ư|ứ|ừ|ự|ử|ữ|Ú|Ù|Ụ|Ủ|Ũ|Ư|Ứ|Ừ|Ự|Ử|Ữ",
"i" => "í|ì|ị|ỉ|ĩ|Í|Ì|Ị|Ỉ|Ĩ",
"y" => "ý|ỳ|ỵ|ỷ|ỹ|Ý|Ỳ|Ỵ|Ỷ|Ỹ",
"d" => "đ|Đ",
);
while(list($key,$value) = each($aPattern))
{
$title = @ereg_replace($value, $key, $title);
}

Ta cũng có thể dùng một cách khác với Bước 1 và Bước 2 tương tự:



Bước 3: Tìm đến dòng sau:
return strtr($title, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz');

Bước 4:
 Thêm lên trên đoạn code sau:
$aPattern = array (
"a" => "á|à|ạ|ả|ã|ă|ắ|ằ|ặ|ẳ|ẵ|â|ấ|ầ|ậ|ẩ|ẫ|Á|À|Ạ|Ả|Ã|Ă|Ắ|Ằ|Ặ|Ẳ|Ẵ|Â|Ấ|Ầ|Ậ|Ẩ|Ẫ",
"o" => "ó|ò|ọ|ỏ|õ|ô|ố|ồ|ộ|ổ|ỗ|ơ|ớ|ờ|ợ|ở|ỡ|Ó|Ò|Ọ|Ỏ|Õ|Ô|Ố|Ồ|Ộ|Ổ|Ỗ|Ơ|Ớ|Ờ|Ợ|Ở|Ỡ",
"e" => "é|è|ẹ|ẻ|ẽ|ê|ế|ề|ệ|ể|ễ|É|È|Ẹ|Ẻ|Ẽ|Ê|Ế|Ề|Ệ|Ể|Ễ",
"u" => "ú|ù|ụ|ủ|ũ|ư|ứ|ừ|ự|ử|ữ|Ú|Ù|Ụ|Ủ|Ũ|Ư|Ứ|Ừ|Ự|Ử|Ữ",
"i" => "í|ì|ị|ỉ|ĩ|Í|Ì|Ị|Ỉ|Ĩ",
"y" => "ý|ỳ|ỵ|ỷ|ỹ|Ý|Ỳ|Ỵ|Ỷ|Ỹ",
"d" => "đ|Đ",
);
while(list($key,$value) = each($aPattern))
{
$title = preg_replace('/'.$value.'/i', $key, $title);
}

Chúc bạn thành công

SƯU TẦM

Wednesday, August 15, 2012

phục Lỗi khi cài đặt Xenforo

Khi bạn tiến hành cài đặt XenForo hiện lên thông báo này:
XenForo 1.1.2 - Errors

The following errors occurred while verifying that your server can run XenForo:

PHP must not be running in safe_mode. Please ask your host to disable the PHP safe_mode setting.
The directory ../public_html/data must be writable. Please change the permissions on this directory to be world writable (chmod 0777). If the directory does not exist, please create it.


Việc safe mode ON làm cho quá trình cài đặt không thể thành công. Cách khắc phục như sau:


Đầu tiên bạn nên CHMOD 777 với thư mục: ../public_html/data và thư mục../public_html/internal_data ( nếu khi cài đặt yêu cầu)


Sau đó vào vào đường dẫn này: ../public_html/library/XenForo/Install/Model/Install.php
tìm và xóa đoạn code sau trong file Install.php ( Có thể vì phiên bản cập nhật mà cấu trúc sẽ khác, nên tìm đoạn này: php_must_not_be_in_safe_mode) :


if (@ini_get('safe_mode'))
{
$errors['safe_mode'] = new XenForo_Phrase('php_must_not_be_in_safe_mode');
}

Đối với XenForo v1.1.2

if ($isSafeMode)
{
$errors['safe_mode'] = new XenForo_Phrase('php_must_not_be_in_safe_mode');
}

Sau đó tiếp tục cài đặt, chúc bạn thành công.

Sưu tầm- Trích FORUM thủ thật xenforo

Tuesday, August 14, 2012

bảo mật cho XenForo

1. Bảo mật với CHMOD
Bạn theo hình dưới đây:


Thư mục: public_html ( http://sv7154.powernet.vn:2222/CMD_F...vn/public_html) cũng nên Chmod thành 711

2. Bảo mật với .htaccess

Việc sử dụng htaccess giúp hạn chế tối đa việc chèn Shell nếu có lỗi.
Các thư mục sau: public_html/data , public_html/styles , public_html/js bạn up file .htaccess với nội dung sau:
<FilesMatch "\.(cgi|pl|php)$"> # Bạn có thể tự cập nhật file không cho phép chạy, ở đây chỉ cấm 03 loại file: cgi, pl và php
Order Deny,Allow
Deny from all
</FilesMatch>
Các thư mục sau: public_html/library , public_html/internal_data ,public_html/install (tùy)bạn up file .htaccess với nội dung sau:
Order deny,allow
Deny from all

3. Bảo mật file admin.php
 (Chỉ áp dụng với IP tĩnh)

Sửa file .htaccess ( public_html/.htaccess) và thêm đoạn code sau:
<Files admin.php>
Order Deny,Allow
Deny from all
Allow from 222.255.167.154 # Điền IP của bạn
</Files>
Đang cập nhật 

Nếu bạn thấy bài viết này hay và có ích với bạn hãy nhấn nhấn "Thank" và chia sẻ bài viết này nhé

Thursday, August 9, 2012

Khắc phục lỗi " Please enter a valid callback method"


Mô tả lỗi:

Tiếng Việt: Xin vui lòng nhập giá trị callback method
Tiếng Anh: Please enter a valid callback method

Hãy nhớ Upload các file lên trước khi tiến hành cài đặt Add On . Như thế sẽ khắc phục được.

Chúc bạn thành công.

Reset Owner đối với Hosting linux dùng Directadmin


Bạn xem hình đính kèm,
1. Với trường hợp ô vuông màu xanh, đó là file sẽ chạy được vì quyền sử dụng là user: lfwvfcvy tức bạn. File đó sẽ hoạt động bình thường
2. Với trường hợp ô vuông màu đỏ, hiện tại file đó quyền sử dụng là apache nên khi bạn chạy thì quyền apache sẽ không thể lấn sang quyền user: lfwvfcvy. File không hoạt động và báo lỗi

Cách khắc phục,
1. Đối với việc sử dụng quản lý tại Directadmin http://sv7154.powernet.vn:2222, bạn vào nhấn vào chữ Reset Owner, như thế sẽ sử dụng bình thường.
2. Trường hợp đối với nhiều file ( hiện tại mình thấy rất nhiều page trong thư mục đó) Bạn chỉ cần dùng cuteFTP down toàn bộ thư mục về máy tính, sau đó xóa trên hosting và up lại từ máy tính lên lại trên host, lúc up lại như thế thì hệ thống sẽ tự động xác định quyền user: lfwvfcvy cho những file đó

Và như thế file sẽ hoạt động bình thường.
Đây là do chế độ phân quyền trong server nhằm hạn chế việc leo thang chiếm quyền nên đã xảy ra như vậy. Việc khắc phục này có thể sẽ áp dụng với nhiều trường hợp.

Wednesday, August 1, 2012

Cài đặt Email Options (SMTP) trong Xenforo

Nhiều Hosting không hỗ trợ hàm Email nên dẫn tới diễn đàn không thể gửi được. Set return path with -f parameter (recommended, but does not work on all servers)

Trích: FORUM thủ thuật xenforo
Mình hướng dẫn các bạn cài đặt phương thức SMTP cho Xenforo để có thể gửi Email (kích hoạt, chúc mừng sinh nhật, tin nhắn,...)

Bạn vào: admin.php?options/list/emailOptions chọn phương thức SMTP


Tại đây bạn cài đặt theo hình sau, ở đây Email là dùng Email Google cho Tên miền, bạn cũng có thể dùng Email Gmail nếu chưa có \

Email Google cho Tên miền


Chúc bạn thành công.

Ghi chú: Nếu có lỗi bạn kiểm tra tại: admin.php?logs/server-error xem lỗi gì ( Thường là lỗi server không mở Port OUT 465
 

Nếu bạn thấy bài viết này hay và có ích với bạn hãy nhấn nhấn "Thank" và chia sẻ bài viết này nhé