آموزش ساخت افزونه 3
در قسمت اول تمرین کردیم که چگونه می توان یک پلاگین ساده ایجاد نمود و با ساختار عمومی پلاگین سازی آشنا شدیم. در قسمت دوم تمرین شد که چگونه می توان برای پلاگین ها ابزارک ایجاد نمود.
حال تمرین می کنیم که چگونه می توان برای پلاگین یک پنل ادمین ایجاد نمود.
* دقت کنید که فعلاً بنا نداریم تا پلاگینی در حالت عملیاتی ایجاد کنیم، بلکه فعلاً سعی می کنیم پلاگین ساده ی اولیه خود را به مرور توسعه دهیم. در واقع یکی از روش های ساختاری پلاگین سازی این است که نویسندگان، پلت فرمی از انواع باکس ها و ارتباطات درونی بین باکس ها در حالت حداکثری تولید می کنند و سپس در مواقع مختلف و بر حسب نیازهای مختلف کدها و روتین های عملیاتی خود را درون باکس ها جایگذاری می کنند. تقریباً شبیه پوسته سازی – همانطور که می دانیم پوسته ها از لحاظ ساختار به هم شبیه اند و عموماً در جایگذاری ها با هم تفاوت دارند. شبیه همین اتفاق نیز می تواند برای عموم پلاگین ها انجام شود.
بطور عمومی پنل ادمین دارای ساختاری شبیه به سایر صفحات سایت است – یعنی می تواند شامل انواع اسکریپت ها و فرم ها باشد. همچنین می باید بین این صفحه و دیتابیس وردپرس ارتباط ایجاد نمود تا بتوان تغییرات ذخیره شده در پلاگین را در دیتابیس ذخیره کرد.
پس این بار به پوشه پلاگین OMG Plug-in پوشه دیگری به نام admin اضافه می کنیم تا فایل های admin.php و admin.js و admin.css را درون آن ایجاد نماییم.
اما قبل از آن یک کار کوچک دیگر نیز انجام می دهیم و آن افزودن فایل functions.php به افزونه است. کارکرد این فایل این است که به جای آنکه توابع فعال سازی و غیر فعال سازی و توابع برقراری ارتباط بین باکس های افزونه را در جاهای مختلف پراکنده کنیم در این فایل به صورت متمرکز قرار می دهیم. دقت کنید که فعلاً این فایل را صرفاً برای انجام و اجرای توابع غیر عملیاتی افزونه استفاده می کنیم. منظور از توابع غیر عملیاتی یعنی مثلاً برقراری ارتباط با دیتابیس – فعال سازی افزونه – غیر فعال سازی افزونه – ایجاد شورت کد – لودینگ اسکریپت ها و … و منظور از توابع عملیاتی آن هایی است که قرار است هدف نهایی افزونه باشد. مثلاً نمایش آب و هوا – محاسبه و نمایش تعداد بازدید ها – نمایش اطلاعات کاربری و ….
پس بااین حساب به ساختار فولدر پوشه پلاگین ما قطعات زیر اضافه می گردد:
= پوشه پلاگین: omg-plugin
== فایل فانکشن functions.php
== پوشه ادمین admin
==== فایل admin.php
==== فایل admin.js
==== فایل admin.css
قبل از اینکه محتویات این فایل ها را تکمیل کنیم باید مسیری را طی نماییم تا با فعال شدن پلاگین این فایل ها لود و اجرایی شوند و در نهایت صفحه ادمین در محیط بک پنل وردپرس ایجاد گردد. چگونه؟ اینگونه که در فایل اصلی افزونه (omg.php) با فراخوانی های زیر، فایلهای ادمین پنل لود می شوند:
اما قرار بر این شد که فراخوانی ها در فایل فانکشن اجرایی گردند پس باید فایل فانکشن را در فایل اصلی افزونه (omg.php) معرفی کنیم:
include_once dirname(__FILE__) . '/functions.php';
برای فراخوانی تابع ایجاد منو در بین منوهای ادمین پنل وردپرس:
add_action('admin_menu', 'omg_add_menu_page');
برای فراخوانی اسکریپت های پنل ادمین افزونه:
add_action('admin_enqueue_scripts', 'omg_admin_scripts');
البته بعداً فایل omg.php را خلوت تر هم می کنیم – یعنی فعال و غیر فعال سازی و یا ایجاد شورتکد را نیز از درونش به فانکشن منتقل می کنیم تا با دست باز تر بتوانیم توابع و روتین های عملیاتی افزونه را درونش قرار دهیم.
اما حالا بریم سراغ فایل فانکشن:
در بالا دیدید که در omg.php تابع ایجاد منوی ادمین پنل فراخوانی شد – اما خود تابع این کار را باید در functions.php قرار دهیم:
اگر بخواهیم این منو در کنار سایر منوها و در سطح یک قرار بگیرد:
function omg_add_menu_page() { add_menu_page("OMG Admin", "OMG Admin Panel", "activate_plugins", "omg", "omg_admin_page"); }
اما اگر بخواهیم این منو در درون منوی “تنظیمات” (settings) باشد:
function omg_add_menu_page() { add_options_page("OMG Admin", "OMG Admin Panel", "activate_plugins", "omg", "omg_admin_page"); }
پس از ایجاد صفحه برای ادمین حال باید خود فایل ادمین اجرا شود:
function omg_admin_page() { include_once dirname(__FILE__) . '/admin/admin.php'; }
حال نوبت می رسد به اسکریپت هایی که قرار است فایل admin.php را هندل کنند مانند استایل و جاوا اسکریپت و …
function omg_admin_scripts() { wp_register_style('omg_admin_css', plugins_url('admin/admin.css', __FILE__)); wp_enqueue_style('omg_admin_css'); wp_register_script('omg_admin_js', plugins_url('admin/admin.js', __FILE__)); wp_enqueue_script('omg_admin_js'); wp_enqueue_script('jquery'); }
* در بالا بنا را بر این گذاشتیم که از جی کوئری داخلی وردپرس استفاده کنیم – شما می توایند از سایر جی کوئری ها مانند گوگل و یا هر نشانی دلخواه دیگری استفاده نمایید.
خب تا اینجا توانستیم برای پلاگین OMG پنل ادمین نیز تولید کنیم – البته هنوز این پنل خالی است که به مرور تکمیل خواهد شد
امیدوارم در قسمت بعد بتوانیم برای این admin.php محتویاتی را نیز تولید نماییم و همچنین برخی از وظایف فایل omg.php را به فایل functions.php منتقل کنیم.
=======
تمرینی برای ساخت افزونه – یک
تمرینی برای ساخت افزونه – دو
مطالب زیر را حتما بخوانید:
قوانین ارسال دیدگاه در سایت
- چنانچه دیدگاهی توهین آمیز باشد و متوجه اشخاص مدیر، نویسندگان و سایر کاربران باشد تایید نخواهد شد.
- چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
- چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
- چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
- چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.
لطفا فایل کامل رو پیوست کنید