آموزش تطبیق کل سایت، با سیستم login و logout انجمن mybb
فرض کنید که یک سایت داریم که برای آن، یک انجمن mybb نصب کرده ایم و اکنون قصد داریم که از سیستم login و logout انجمن mybb برای کل سایت استفاده کنیم. مثلا اگر کاربر وارد صفحه اصلی سایت بشود، با وجودی که درون انجمن mybb نیست، اما سایت وی را شناسایی کرده و نام و مشخصاتش را نمایش بدهد و یا اینکه اگر هنوز وارد نشده است، گزینه ای برای ورود کاربر، به وی نمایش داده شود.
مهمترین نکته : قبل از اعمال تغییرات، از انجمن و سایت خود، backup بگیرید.
قبل از هر چیز، باید به کنترل پنل مدیر کل رفته و سپس به مسیر زیر بروید :
سپس گزینه های زیر را مطابق مقدار نوشته شده در جلوی آنها قرار بدهید :
Cookie Path: /
Cookie Prefix: (خالی بگذارید)
که در آن، mydomain.com ، نام دامنه سایت شما می باشد.
دقت داشته باشید که پس از اعمال این تغییر، ممکن است که سیستم login و logout انجمن mybb ، کمی به هم بریزد، مثلا نتوانید از سیستم خارج شوید و یا به سیستم وارد شوید. این مشکل، به دلیل تغییر Cookie ها و قرار داشتن Cookie های قدیمی در مرورگر اینترنت می باشد. بنابراین یا Cookie های مرورگر اینترنت خود را پاک کنید و یا با یک مرورگر دیگر که تابحال با آن به سایت متصل نشده اید، به سایت متصل شوید.
خوب، اکنون در هر صفحه ای که قصد دارید سیستم login و logout انجمن mybb به کار رود، در اولین خط های کد صفحه، کدهای زیر را بنویسید (توصیه می شود ابتدا برای یک صفحه تست کنید و اگر درست بود، برای سایر صفحات نیز به کار ببرید) :
define("IN_MYBB", 1);
require("forum/global.php");
?>
ممکن است که مسیر نصب انجمن mybb شما متفاوت باشد، بنابراین باید در کد بالا، مسیر صحیح برای دسترسی به فایل global.php که در فولدر اصلی انجمن قرار دارد را بنویسید.
سپس در هر کجا از صفحه که دوست دارید مشخصات کاربر یا گزینه هایی برای ورود کاربر به سیستم نمایش داده شود، کدهای زیر را بنویسید :
if($mybb->user['uid'])
{
// If the user if logged in, display a welcoming message.
echo "Welcome back ".$mybb->user['username']."!<br />";
echo "Thanks for logging in.";
}
else
{
// If the user is not logged in, display the login form.
echo "<form action='forum/member.php' method='post'>";
echo "<input type='hidden' name='action' value='do_login' />";
echo "<input type='hidden' name='url' value='../index.php' />";
echo "Username: <input type='text' name='username' maxlength='30' /><br />";
echo "Password: <input type='password' name='password' /><br />";
echo "<input type='submit' name='submit' value='Login' />";
echo "</form>";
}
?>
با توجه به مسیر نصب انجمن، باید در کد بالا، مسیر صحیح برای دسترسی به فایل member.php را بنویسید.
کد بالا ابتدا تشخیص می دهد که آیا کاربر به سیستم وارد شده است یا خیر. اگر وارد شده باشد، نام کاربر و پیام خوش آمدی را نمایش می دهد و اگر کاربر وارد نشده باشد، یک فرم کوچک را نمایش می دهد که کاربر می تواند در آن، username و password خود را نوشته و سپس با فشردن دکمه، به سیستم وارد شود.
همچنین به خط زیر از کدها توجه کنید :
این خط از کدها، باعث می شود که پس از ورود کاربر به سیستم، به صفحه اصلی سایت (نه صفحه اصلی انجمن) هدایت شود (آن را مطابق مسیر نصب انجمن، تغییر بدهید).
اگر قصد دارید که کاربر، پس از ورود به سیستم، به صفحه اصلی انجمن هدایت شود، باید کدهای زیر را به جای آن بنویسید :
مراحلی که تا اینجا گفته شد، پایه و اساس استفاده از سیستم login و logout انجمن mybb بود (البته می توانید روش های دلخواه دیگر را نیز تست کنید)، اکنون به تعدادی نکته دیگر اشاره می کنیم که می تواند یک سری ویژگی را به این تطبیق، اضافه نماید.
تشخیص گروه کاربری کاربران :
فرض کنید که بخواهیم گروه کاربری کاربر را تشخیص داده و یک سری ویژگی ها را برای هر گروه کاربری، به کار ببریم. برای این منظور، باید کدهایی مشابه کدهای زیر بنویسیم :
$usergroup = $mybb->user['usergroup'];
if ($usergroup == '1') {
//content for admins only
} else if ($usergroup == '5') {
//content for users in group with id 5
}
?>
بنابراین، شما باید شماره مربوط به گروه های کاربری مختلف را بدانید و پس از تشخیص گروه کاربری بر اساس شماره، باید کدهای مورد نظر خود برای هر گروه را بنویسید.
نمایش آواتار کاربران :
چنانچه بخواهیم عکس مربوط به آواتار کاربر نیز نمایش داده شود، باید کدهای زیر را بنویسیم :
if ($mybb->user['avatartype'] == "upload") {
echo "<img src=\"http://www.mydomain.com/forum/".substr($mybb->user['avatar'], 2)."\" alt=\"".$mybb->user['username']."'s Avatar\" style=\"width: ". $dimensions[0]."px; height: ".$dimensions[1]."px;\" />";
} else {
echo "<img src=\"http://www.mydomain.com/forum/".$mybb->user['avatar']."\" alt=\"".$mybb->user['username']."'s Avatar\" style=\"width: ".$dimensions[0]."px; height: ".$dimensions[1]."px;\" />";
}
در کد بالا، مسیر نصب انجمن، به صورت www.mydomain.com/forum/ در نظر گرفته شده که شما باید مسیر مربوط به سایت خود را به جای آن بنویسید.
خروج کاربر از سیستم :
برای خروج کاربر از سیستم، می توان از کد زیر استفاده نمود :
در کد بالا، مسیر نصب انجمن، به صورت www.mydomain.com/forum/ در نظر گرفته شده که شما باید مسیر مربوط به سایت خود را به جای آن بنویسید.
منابع :
http://community.mybb.com/thread-60422.html
http://community.mybb.com/thread-127734-page-2.html
http://community.mybb.com/thread-60422-page-3.html