Nghĩa là khi bạn xem trên máy tính sẽ hiển thị giao diện dành cho máy tính (web), khi xem trên các thiết bị di động (ví dụ: iPhone, Android, Windows Phone, Blackberry,...) thì sẽ hiển thị với giao diện di động (wap).
Hướng dẫn:
Bước 1: Trước hết bạn phải chắc chắn là diễn đàn đã cài đặt giao diện dành cho mobile. Nếu bạn chưa có giao diện này, bạn có thể tải giao diện phpbb3 dành cho di động sau đó cài đặt giao diện bình thường.
Sau khi cài đặt xong, bạn vào Bảng điều khiển của Quản trị viên ~> chọn tab Giao diện
Ở mục liệt kê những giao diện đã cài đặt, bạn bấm vào "xem trước" tại giao diện dành cho mobile bạn đã cài đặt.
Ở địa chỉ URL của trang xem trước này, bạn để ý giá trị của style. Trong ví dụ minh họa cho bài viết này, giá trị style mình biết được là 3.
Bước 2: Bắt đầu chỉnh sửa các file:
- Mở file includes/session.php, tìm đoạn mã (bấm Ctrl+F để tìm):
$result = $db->sql_query($sql, 3600);Thêm đoạn mã bên dưới vào trước đoạn mã vừa tìm được:
$this->theme = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
// User has wrong style
// MOD start: Mobile/SEO styleTiếp tục tìm đoạn mã:
if($this->check_mobile($sql, $style))
{
// MOD end: Mobile/SEO style
if (!$this->theme)Thêm đoạn mã bên dưới vào ngay trước đoạn mã vừa tìm được:
{
trigger_error('Could not get style data', E_USER_ERROR);
}
// MOD start: Mobile/SEO styleTiếp tục tìm đoạn mã:
}
if(defined('MOBILE_DEVICE_OFF'))
{
global $SID, $_EXTRA_URL;
$SID .= '&nomobile=1';
$_EXTRA_URL[] = 'nomobile=1';
}
// MOD end: Mobile/SEO style
/**Thêm đoạn mã bên dưới vào ngay trước đoạn mã vừa tìm được:
* More advanced language substitution
// MOD start: Mobile/SEO styleChú ý: Thay xxxxxxxxxxxxxxxxx thành giá trị style bạn đã xác định ở bước 1 (Nghĩa là thay bằng giá trị 3)
/**
* Check for mobile/seo, get style
*/
function check_mobile($sql, $style)
{
$browser = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
if (empty($this->data['is_bot']) && strpos($browser, 'Mobile') === false && strpos($browser, 'Symbian') === false && strpos($browser, 'Opera M') === false && strpos($browser, 'Android') === false && stripos($browser, 'HTC_') === false && strpos($browser, 'Fennec/') === false && stripos($browser, 'Blackberry') === false && strpos($browser, 'Windows Phone') === false && strpos($browser, 'WP7') === false && strpos($browser, 'WP8') === false)
{
return true;
}
define('MOBILE_DEVICE', true);
if(!empty($_REQUEST['nomobile']))
{
define('MOBILE_DEVICE_OFF', true);
return true;
}
global $db;
// Important: change number 0 below to ID of Artodia:Mobile style.
// If it is set to 0, script will automatically find style, but it will use extra time and resources.
$mobile_style_id = xxxxxxxxxxxxxxxxx;
if($mobile_style_id)
{
$sql2 = str_replace('s.style_id = ' . $style, 's.style_id = ' . $mobile_style_id, $sql);
$result = $db->sql_query($sql2, 3600);
$this->theme = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if($this->theme !== false)
{
define('MOBILE_STYLE', true);
return false;
}
}
// try to find style
global $phpbb_root_path;
$files = scandir($phpbb_root_path . 'styles');
$base = $phpbb_root_path . 'styles/';
for($i=0; $i<count($files); $i++)
{
if($files[$i] != '.' && $files[$i] != '..' && is_dir($base . $files[$i]) && @file_exists($base . $files[$i] . '/style.cfg'))
{
// found directory with style
$data = file_get_contents($base . $files[$i] . '/style.cfg');
if(strpos($data, 'mobile = 1') !== false && ($pos = strpos($data, 'name = ')) !== false)
{
$list = explode("n", substr($data, $pos + 7), 2);
$name = trim($list[0]);
// found style
$sql2 = str_replace('s.style_id = ' . $style, 's.style_name = '' . $db->sql_escape($name) . ''', $sql);
$result = $db->sql_query($sql2, 3600);
$this->theme = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if($this->theme !== false)
{
define('MOBILE_STYLE', true);
return false;
}
}
}
}
return true;
}
// MOD end: Mobile/SEO style
- Mở file includes/functions.php, tìm đoạn mã:
// The following assigns all _common_ variables that may be used at any point in a template.Thay đoạn mã bên dưới vào ngay trước đoạn mã vừa tìm được:
// MOD start: Mobile/SEO style- Lưu tất cả các file lại là xong.
if(defined('MOBILE_DEVICE'))
{
$full_style = defined('MOBILE_DEVICE_OFF');
if($full_style)
{
$s_search_hidden_fields['nomobile'] = 1;
$mobile_text = isset($user->lang['MOBILE_ON']) ? $user->lang['MOBILE_ON'] : 'Mobile Version';
$mobile_link = str_replace('nomobile=1&', '', append_sid("{$phpbb_root_path}index.$phpEx", 'nomobile=0'));
}
else
{
$mobile_text = isset($user->lang['MOBILE_OFF']) ? $user->lang['MOBILE_OFF'] : 'Full Version';
$mobile_link = append_sid("{$phpbb_root_path}index.$phpEx", 'nomobile=1');
}
$mobile_html = '' . $mobile_text . '';
$user->lang['TRANSLATION_INFO'] = (isset($user->lang['TRANSLATION_INFO']) ? $user->lang['TRANSLATION_INFO'] . ' ' : '') . $mobile_html;
$template->assign_var('MOBILE_LINK', $mobile_html);
}
// MOD end: Mobile/SEO style
Chúc các bạn thành công!
Parse error: syntax error, unexpected T_VARIABLE in /home/a3636349/public_html/includes/session.php on line 1962
The la sao?