آموزش ساخت انجمن (با انجمن ساز MyBB)
۵۸ آموزش
نمایش دسته بندی ها (۵۸ آموزش)

آموزش تطبیق کل سایت، با سیستم login و logout انجمن mybb

فرض کنید که یک سایت داریم که برای آن، یک انجمن mybb نصب کرده ایم و اکنون قصد داریم که از سیستم login و logout انجمن mybb برای کل سایت استفاده کنیم. مثلا اگر کاربر وارد صفحه اصلی سایت بشود، با وجودی که درون انجمن mybb نیست، اما سایت وی را شناسایی کرده و نام و مشخصاتش را نمایش بدهد و یا اینکه اگر هنوز وارد نشده است، گزینه ای برای ورود کاربر، به وی نمایش داده شود.

مهمترین نکته : قبل از اعمال تغییرات، از انجمن و سایت خود، backup بگیرید.

قبل از هر چیز، باید به کنترل پنل مدیر کل رفته و سپس به مسیر زیر بروید :


Configuration -> Settings -> General Configuration

سپس گزینه های زیر را مطابق مقدار نوشته شده در جلوی آنها قرار بدهید :


Cooke Domain: .mydomain.com
Cookie Path: /
Cookie Prefix: (خالی بگذارید)

که در آن، mydomain.com ، نام دامنه سایت شما می باشد.

دقت داشته باشید که پس از اعمال این تغییر، ممکن است که سیستم login و logout انجمن mybb ، کمی به هم بریزد، مثلا نتوانید از سیستم خارج شوید و یا به سیستم وارد شوید. این مشکل، به دلیل تغییر Cookie ها و قرار داشتن Cookie های قدیمی در مرورگر اینترنت می باشد. بنابراین یا Cookie های مرورگر اینترنت خود را پاک کنید و یا با یک مرورگر دیگر که تابحال با آن به سایت متصل نشده اید، به سایت متصل شوید.

خوب، اکنون در هر صفحه ای که قصد دارید سیستم login و logout انجمن mybb به کار رود، در اولین خط های کد صفحه، کدهای زیر را بنویسید (توصیه می شود ابتدا برای یک صفحه تست کنید و اگر درست بود، برای سایر صفحات نیز به کار ببرید) :


<?php
define("IN_MYBB", 1);
require("forum/global.php");
?>

ممکن است که مسیر نصب انجمن mybb شما متفاوت باشد، بنابراین باید در کد بالا، مسیر صحیح برای دسترسی به فایل global.php که در فولدر اصلی انجمن قرار دارد را بنویسید.

سپس در هر کجا از صفحه که دوست دارید مشخصات کاربر یا گزینه هایی برای ورود کاربر به سیستم نمایش داده شود، کدهای زیر را بنویسید :


<?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 خود را نوشته و سپس با فشردن دکمه، به سیستم وارد شود.

همچنین به خط زیر از کدها توجه کنید :


echo "<input type='hidden' name='url' value='../index.php' />";

این خط از کدها، باعث می شود که پس از ورود کاربر به سیستم، به صفحه اصلی سایت (نه صفحه اصلی انجمن) هدایت شود (آن را مطابق مسیر نصب انجمن، تغییر بدهید).

اگر قصد دارید که کاربر، پس از ورود به سیستم، به صفحه اصلی انجمن هدایت شود، باید کدهای زیر را به جای آن بنویسید :


echo "<input type='hidden' name='url' value='index.php' />";

مراحلی که تا اینجا گفته شد، پایه و اساس استفاده از سیستم login و logout انجمن mybb بود (البته می توانید روش های دلخواه دیگر را نیز تست کنید)، اکنون به تعدادی نکته دیگر اشاره می کنیم که می تواند یک سری ویژگی را به این تطبیق، اضافه نماید.

تشخیص گروه کاربری کاربران :

فرض کنید که بخواهیم گروه کاربری کاربر را تشخیص داده و یک سری ویژگی ها را برای هر گروه کاربری، به کار ببریم. برای این منظور، باید کدهایی مشابه کدهای زیر بنویسیم :


<?php
$usergroup = $mybb->user['usergroup'];
if ($usergroup == '1') {
//content for admins only
} else if ($usergroup == '5') {
//content for users in group with id 5
}
?>

بنابراین، شما باید شماره مربوط به گروه های کاربری مختلف را بدانید و پس از تشخیص گروه کاربری بر اساس شماره، باید کدهای مورد نظر خود برای هر گروه را بنویسید.

نمایش آواتار کاربران :

چنانچه بخواهیم عکس مربوط به آواتار کاربر نیز نمایش داده شود، باید کدهای زیر را بنویسیم :


$dimensions = explode('|', $mybb->user['avatardimensions']);

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/ در نظر گرفته شده که شما باید مسیر مربوط به سایت خود را به جای آن بنویسید.

خروج کاربر از سیستم :

برای خروج کاربر از سیستم، می توان از کد زیر استفاده نمود :


echo "<a href=\"http://www.mydomain.com/forum/member.php?action=logout&logoutkey=" . $mybb->user['logoutkey'] . "\" style=\"padding-left:10px;\">خروج</a>"

در کد بالا، مسیر نصب انجمن، به صورت 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

نویسنده علیرضا گلمکانی
شماره کلید 605
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)