آموزش ساخت انجمن (با انجمن ساز MyBB)
دسته بندی ( ۵۸ آموزش )
نمایش دسته بندی ها (۵۸ آموزش)
مباحث اصلی مرتبط با انجمن mybb (نصب، انتقال، ارتقا و ...)
مباحث اصلی مرتبط با انجمن mybb (نصب، انتقال، ارتقا و ...) 4
توسعه انجمن mybb
توسعه انجمن mybb 4
پلاگین ها، در انجمن MyBB
پلاگین ها، در انجمن MyBB 14
امنیت، در انجمن MyBB
امنیت، در انجمن MyBB 4
پایگاه داده (Database) مربوط به انجمن mybb
پایگاه داده (Database) مربوط به انجمن mybb 1
شیوه کار با بخش های مختلف انجمن mybb (هم برای مدیران و هم برای کاربران)
شیوه کار با بخش های مختلف انجمن mybb (هم برای مدیران و هم برای کاربران) 1
گروه های کاربری، در انجمن MyBB
گروه های کاربری، در انجمن MyBB 1
پیوست ها، در انجمن MyBB
پیوست ها، در انجمن MyBB 2
شکلک ها، در انجمن MyBB
شکلک ها، در انجمن MyBB 1
صفحه اصلی (صفحه اول) انجمن mybb
صفحه اصلی (صفحه اول) انجمن mybb 2
انجمن ها (forums) و زیرانجمن ها (subforums)، در انجمن MyBB
انجمن ها (forums) و زیرانجمن ها (subforums)، در انجمن MyBB 2
موضوع ها (threads)، در انجمن MyBB
موضوع ها (threads)، در انجمن MyBB 1
ارسال ها (posts) و بخش Post Bit ، در انجمن MyBB
ارسال ها (posts) و بخش Post Bit ، در انجمن MyBB 4
راست چین - چپ چین کردن عنصرها (بخش ها)، در انجمن MyBB
راست چین - چپ چین کردن عنصرها (بخش ها)، در انجمن MyBB 1
تگ head و بخش header ، در انجمن MyBB
تگ head و بخش header ، در انجمن MyBB 1
نمایش عکس، آواتار، Favicon و ... ، در انجمن MyBB
نمایش عکس، آواتار، Favicon و ... ، در انجمن MyBB 1
تاریخ و ساعت، در انجمن MyBB
تاریخ و ساعت، در انجمن MyBB 1
پوسته ها و قالب ها، در انجمن MyBB
پوسته ها و قالب ها، در انجمن MyBB 2
موارد مرتبط با زبان PHP ، در انجمن MyBB
موارد مرتبط با زبان PHP ، در انجمن MyBB 2
ارسال ایمیل (email)، در انجمن MyBB
ارسال ایمیل (email)، در انجمن MyBB 4
محل قرارگیری عنصرها و بخش های مختلف، در میان کدهای قالب (theme)، در انجمن MyBB
محل قرارگیری عنصرها و بخش های مختلف، در میان کدهای قالب (theme)، در انجمن MyBB 1
بلوک نقل قول (blockquote)، در انجمن MyBB
بلوک نقل قول (blockquote)، در انجمن MyBB 1
کش (cache)، در انجمن MyBB
کش (cache)، در انجمن MyBB 1
مباحث عمومی، در انجمن MyBB
مباحث عمومی، در انجمن MyBB 2

آموزش تطبیق کل سایت، با سیستم 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

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

جستجو در کلیدستان، توسط گوگل

جستجو در عنوان کلیدها

دسترسی سریع

کلید
×

شماره کلید


دسته بندی
×

شماره دسته کلید


جستجو
×

جستجو