مرجع پارسی MyBB

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

درود
تند بریم سراغ ادامه کدها که خیلی دیر شده
کد php:
function closeprofile_deactivate()
{
    global 
$db$mybb;

    
$db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='closeprofile'");
    
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='closeprofile_power'");
    
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='closeprofile_uid'");
    
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='doodoo'");
    
rebuild_settings();

خوب توضیحات

کد
کد php:
function closeprofile_deactivate() 
به منظور غیر فعال کردن پلاگین یعنی وقتی پلاگین غیر فعال میشه اتفاق های زیر که میگم باید روی بدهد


کد php:
    global $db$mybb
این کد به منظور اینه که با کجای دیتابیس کار داره با دیتا بیس و بخش مای بی بی اون


کد
کد php:
    $db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='closeprofile'");
    
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='closeprofile_power'");
    
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='closeprofile_uid'");
    
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='doodoo'"); 
به معنی حذف جداول از دیتا بس مای بی بی میباشد
که اگر دقت کنید کد
name='doodoo
اسم هر یک از تنظیمات که موقع فعال کردن پلاگین در دیتا سیو کردیم حالا موقع غیر فعال کردن پلاگین باید حذفش کنیم که به مشکل نخوریم


کد
کد php:
$plugins->add_hook("global_end""closeprofile"); 
میشه گفت 95% پلاگین به این کد وابسته هستش این کد به ما نشان میده که در کدام قالب از مای بی بی کار داریم که اول همیشه قالبی که باهاش کار داریم و بعدی هم متغییر تابع میباشد


رسیدیم به اخرین کدها
کد php:
function closeprofile()
{
    global 
$mybb;
    
$power $mybb->settings['closeprofile"_power'];
    
$you $mybb->input['uid'];
    
$they explode(",",$mybb->settings['closeprofile_uid']);

    if (
$power != "0")
    {if (
in_array($you,$they)){error($mybb->settings['doodoo']);}}

کدfunction closeprofile()
میشه وقتی که متغییر فعال بشه کدهای زیر من اتفاق بیوفته
global $mybb;
کد میگه با مای بی بی کار دارم
کد php:
$power $mybb->settings['closeprofile"_power']; 
این کد بهمون میگه که پاور باید طبق تنظیمات انجام شود نکته جالب اینه که اسم این متغییر را میتوانید هرچی که دوست دارید بزارید مهم نیست
کد
کد php:
$you $mybb->input['uid'
یعنی متغییر ذکر شده وقتی عمل کنه که روی ادی طرف ما کلیک میکنیم
uid به معنی ادی یوزر
و input کد اچ تی امل به منعنی که نمیشه گفت ولی منظورش کلیک کردن روش
اونم به معنی مای بی بی معلوم
کد php:
$they explode(",",$mybb->settings['closeprofile_uid']); 
متغییر که اسمی به دلخواه و explode به معنی منفجر شدن میباشد یا نمایان شدن (",",$mybb->settings['closeprofile_uid']);
به معنی تنظیمات یوزر مورد نظر
حال معنی کلی کد
یعنی وقتی تنظیمات مورد نظر اتفاق میوفتد کدهای زیر این متغییر نمایان شود
کد php:
    if ($power != "0"
این کد به معنی اینه که اگر تنظیمات پاور 0 باشد اتفاق یا کد زیر عمل شود
پاور 0 یعنی اگر تنظیمات اولیه باشد پاور
این کد
کد php:
{if (in_array($you,$they)){error($mybb->settings['doodoo']);}} 
اگر متغییر یو و they باشد اروری که در تنظیمات مورد نظر نوشتیم نمایان شود


واقعا توضیح دادن این قسمت خیلی سخت بود دوستان
کد:
$plugins->add_hook("global_end", "closeprofile");

رو لطفا بیشتر توضیح بدید
هوک
بیشتر نقشش پیدا کردن قالب و اضافه کردن متغییر دلخواه به قالب هست
Wink
عزيز ميتوني اين قسمتو يكم جامع تر توضيح بدي؟ مثل همين توضيحي كه تو پست قبل براي هوك دادي ، منظورم اينه كه شما تو آموزشتون يه جورايي كاركرد متغيير ها و آرايه هاي پلاگين خودتون رو گفتيد اگه ميتونيد يكم جامع تر بگيد هر پلاگيني رو نميشه همينطوري نوشت بهتره كه كاركرد هر آرايه و متغيير رو بدونيم.

بعد اين بخش آخر آموزش بود يا ادامه داره؟ چون تا اينجا مطالب سطحش يكم پيش پا افتاده بود خوب بود ولي نميشه باهاش پلاگين هاي حرفه اي نوشت.

اگه ميشه يه توضيحاتي هم راجب گرافيك توي پلاگين ها بديد ، مثلا فرض كنيد تو پلاگينم ميخوام يك صفحه جديد درست كنم چيكار كنم و براي گرافيكاش بايد چيكار كنم و شيوه ي ارجاع دادن فايل زبان به فايل پلاگين رو هم اگه ميشه توضيح بديد.
http://community.mybbiran.com/thread-11331.html
درود لینک بالا مطالعه کنید شما الان در حد -1 پلاگین نوشتن وارد هستید گرافیک هم باید داخل پلاگینها css کار کنید تو استایل که برای دورههای بعدی اگر دلتون میخواد بالا بیایید به اموزش های بعدی به لینک الا بروید
در رابطه با متغییر ها همین را شما فعلا اوکی کنید زیرا لینک بالا اکثر متغییرهای هوک را پیوست کردمWink
یك سوال داشتم ، میخوام تو تنظیمات یك بخش اضافه كنم كه تایم داشته باشه یعنی مثلا طرف تنظیم كنه این پلاگین اینقدر ساعت فعال باشه بعدش غیر فعال بشه ، میشه راهنماییم كنی از چه كدی باید استفاده كنم؟
مثلا فرض كن میخوام یه پلاگین بنویسم كه تو روزای مشخصی سایت رو ببنده یا مثلا طرف ثبت نام رو برای یك مدت مشخصی ببنده.

ممنون
پس يعني برا اين دوره پلاگين نويسي خيلي زوده Big Grin ممنون فقط كاش برا پلاگين نوشتن يه الگوريتم ميداديد همه از رو اون مينوشتن اينطوري آدم گيج ميشه داشتم رو يه پلاگين كار ميكردم ولي اينطوري كه ميگيد خيلي سخت و كاربره نوشتنش.Heart
اگرم ميشه اون قسمت $you و $they رو كلشو يكم بيشتر توضيح بديد كلا نگرفتم كاربردش چيه و چيكار ميكنه يعني تو اين پلاگين فهميدما ولي اينكه بخوام تو يه پلاگين ديگه تغييرش بدم چه كار هايي ميشه كرد رو نگرفتم مثلا جاي explode چه چيز هاي ديگه اي ميتونيم بذاريم و كار هر كدوم چيه.

ممنون.
دوستان بادمجون واكس نزدم سوال كردم Big Grin ميشه لطفا جواب بديد برا نوشتن پلاگيني كه قراره تحويل بدم لازم دارم Heart ممنونHeart
درود
اون دو متغییر میتونی هرچی دوست داری بزاری و بعدش فراخوانی کنی از جمله بادمجون
برای سوال دوم زودBig Grin
این پلاگین یک پلاگین تک نیست از این نوع میتونی حتی ده ها و صدها بنویسی پس عجله نکنید و اینو تحویل بده
تو اکثر پلاگین ها که من دیدم explode یعنی باید بیادBig GrinTongue
درود
اگر اشتباه نکنم زیر رشته ها زیاد کارایی ندارد درسته؟Angel