مرجع پارسی MyBB

نسخه‌ی کامل: فصل دوم نوشتن پلاگین
شما درحال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب‌بندی مناسب.

درود
مثل جت میریم ببینیم چی میشه بهتر برای یاداوری به این لینک بروید
خب بریم سراغ درس کد بعدی

توضیحات کد بالا فقط دوستان این توضیحات محاوره ای میباشد برا اینکه علمی برخورد کنید باید از کتابهای php استفاده بکنید
کد function closethread_activate()
که به معنی اینکه وقتی پلاگین closethread فعال میشود باید اتفاق های کدهای زیر من بیوفتدTongue
---------------------------------------------------------------------------------------------
کد{
global $db, $mybb;
به ما میگه که با دیتابیس و مای بی بی کدهای زیر کار دارند کد $db بیانگر دیتا بیس و $mybb بیانگر مای بی بی میباشد
----------------------------------------------------------------------------------------------
کد
$closethread_group = array(
به ما میگه که تو بخش تنظیمات تو کنترل پنل باید چطوری باشد ( این کدها دقیقا مانند کد return array( در درس یک میباشد)
--------------------------------------------------------------------------------------------------
کد
"name" => "closethread",
اسم پلاگین را مشخص میکند لازم به ذکر هست که بعدا با این اسامی که برای تنظیمات میگذاریم کار داریم پس حواستون خوب باشهBig Grin
----------------------------------------------------------------------------------------------------
کد"title" => "بستن موضوع",
موضوع یا تیتری که شما تو تنظیمات انجمن خواهید دید را برای شما بیان میکند
---------------------------------------------------------------------------------------------------
کد
"description" => "تنظیمات پلاگین.",
که شرحی یا توضیحاتی زیر تیتر یا موضوع در قسمت تنظیمات پلاگین قرار میگیرد
---------------------------------------------------------------------------------------------------
کد
"disporder" => "1",
خب من این کد را به دلخواه خودم گذاشتم کد ترتیبBig GrinTongue این کد به شما امکان ترتیب دادن به تنظیمات میدهد چون در این پلاگین یک تنظیم در بخش موضوعات تنظیمات داریم همین باشه اوکی
-----------------------------------------------------------------------------------------------------------
$db->insert_query("settinggroups", $closethread_group);
$gid = $db->insert_id();
این کدها برای ثبت تنظیمات انها در دیتا بیس به هر حال اطلاعات شما باید در دیتابیس ذخیره شود و این نقش آن را دارد
------------------------------------------------------------------------------------------------------------------------
کد
$closethread_setting_1
تنظیمات یک پلاگین( وقتی که داخل تنظیمات میشوید)
بقیه کدها رو تا بالا دادم تا کد
"optionscode" => "yesno",
خب خب خب رسیدیم به جای یکم سخت( نترسیداTongue)
این گزینه برای مود و امکانات تنظیم میباشد که چند نوع دارد
دوستان باز میگم من عامیانه توضیح میدم بهتر متوجه شوید و از اصطلاحات (من دراوردی) میباشد در جایی ابراز نکنید(عواقب ابروتون با خودتونهTongueBig Grin)
yesno:این گزینه به معنی چند گزینه کردن میباشد که میتوانید با تیک تنظیمات را شخص مشخص کند
textarea:این گزینه به عنوان جعبه متن بزرگ میباشد که میتوانید متن های بلد را شخص وارد کنید
text:این گزینه به عنوان جعبه من کوچک میباشد که متن های کوتاه در آن اوصولا استفاده میشود
ترس داشتTongue
------------------------------------------------------------------------------------------------
کد بعدی
"value" => "no",
این کد حالت اولیه پلاگین را مشخص میکند ( در این پلاگین وقتی یک نفر پلاگین را فعال میکند کار نمیکند تا برود در تنظیمات و فعال بودن پلاگین را بلی کند)
به اصطلاع من تنظیمات کارخانه میباشدBig Grin
---------------------------------------------------------------------------------------------------------
این کد
rebuild_settings();
هم نقش ساختن تنظیمات در رادارد و باید اخر تنظیمات ذکر شود
تنظیماتشم ساختیمWink
درود
کد ها رو نذاشتید؟
من بذارم؟!!!Big GrinTongue
لازم نیست هرکی خواست از فصل اول بردارد دانلود کند
خواستیدم بزاریدWink
آقا می شه یکم جمع و جور تر بنویسید؟

آدم نمی فهمه کی به کیه.Blush
درود
از چه لحاظ؟Huh
کد:
کد ها این باشه


قبل هر کردوم از توضیحات شماره بدید که بفهمیم کدوم واسه کدومه.Blush
درود
کدها جداسازی شدWink
تو این قسمت یعنی ما هر کدوم رو که لازم باشه میتونیم بزاریم یا نه به انتخاب خودمونه؟
نقل‌قول: yesno:این گزینه به معنی چند گزینه کردن میباشد که میتوانید با تیک تنظیمات را شخص مشخص کند
textarea:این گزینه به عنوان جعبه متن بزرگ میباشد که میتوانید متن های بلد را شخص وارد کنید
text:این گزینه به عنوان جعبه من کوچک میباشد که متن های کوتاه در آن اوصولا استفاده میشود
من اینطور متوجه شدم که یعنی اگر پلاگینی بود که نیاز داشت میتونیم استفاده کنیم نه اینکه دل بخواهی باشه.
Wink درود
دقیقاCool
با اجازه آقای doodoo
کد این قسمت:
کد:
function closethread_activate()
{
    global $db, $mybb;

    $closethread_group = array(
        "gid"            => "NULL",        "name"            => "closethread",        "title"         => "بستن موضوع",        "description"    => "تنظیمات پلاگین.",        "disporder"        => "1",        "isdefault"        => "no",    "gid"            => intval($gid),   );
    $db->insert_query("settinggroups", $closethread_group);
    $gid = $db->insert_id();
    
    $closethread_setting_1 = array(
        "sid"            => "NULL",        "name"            => "closethread_power",        "title"            => "فعال کردن",        "description"    => "ایا میخواهید پلاگین فعال شود ?",        "optionscode"    => "yesno",        "value"            => "no",        "disporder"        => "1",     "gid"            => intval($gid),    );

    $db->insert_query("settings", $closethread_setting_1);

    $closethread_setting_2 = array(
        "sid"            => "NULL",        "name"            => "closethread_uid",        "title"            => "ای دی موضوع ",        "description"    => "ای دی موضوع را وارد کنید ,",        "optionscode"    => "textarea",        "value"            => "0",        "disporder"        => "2",        "gid"            => intval($gid),    );

    $db->insert_query("settings", $closethread_setting_2);
        $closethread_setting_3 = array(
        "sid"            => "NULL",        "name"            => "doodoo",        "title"            => "متن ارور",        "description"    => "متن ارور برای بستن موضوع انجمن ,",        "optionscode"    => "textarea",        "value"            => "درود دسترسی به این موضوع توسط مدیریت بسته شده لطفا برای اطلاعات بیشتر با مدیریت تماس بگیرید",        "disporder"        => "3",        "gid"            => intval($gid),    );

    $db->insert_query("settings", $closethread_setting_3);

    rebuild_settings();
}

function closethread_deactivate()
{
    global $db, $mybb;

    $db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='closethread'");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='closethread_power'");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='closethread_uid'");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='doodoo'");
    rebuild_settings();
}

$plugins->add_hook("global_end", "closethread");
function closethread()
{
    global $mybb;
    $power = $mybb->settings['closethread_power'];
    $you = $mybb->input['tid'];
    $they = explode(",",$mybb->settings['closethread_uid']);

    if ($power != "0")
    {if (in_array($you,$they)){error($mybb->settings['doodoo']);}}
}
?>
میباشد(برای یاد گیری سریع تر گذاشتمCool