• Save
برنامه نویسی ماژول دروپال در 5 مرحله
Upcoming SlideShare
Loading in...5
×
 

برنامه نویسی ماژول دروپال در 5 مرحله

on

  • 536 views

Drupal Module development in 5 steps

Drupal Module development in 5 steps

By drupalika.org

Statistics

Views

Total Views
536
Views on SlideShare
536
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

برنامه نویسی ماژول دروپال در 5 مرحله برنامه نویسی ماژول دروپال در 5 مرحله Presentation Transcript

  • ‫دروپا‬ ‫ماژول‬ ‫نویسی‬ ‫برنامه‬‫ل‬‫در‬5‫ساده‬ ‫گام‬‫توسط‬ ‫شده‬ ‫نوشته‬:‫دروپال‬‫یکـا‬drupalika.org
  • ‫دروپالیکا‬info@drupalika.orgdrupalika.org
  • ‫اول‬ ‫گام‬:‫تعیین‬‫ایجاد‬ ‫و‬ ‫ماژول‬ ‫نام‬‫آن‬ ‫فولدر‬‫شود‬ ‫می‬ ‫شناخته‬ ‫نام‬ ‫آن‬ ‫به‬ ‫دروپال‬ ‫سیستم‬ ‫توسط‬ ‫که‬ ‫دارد‬ ‫نام‬ ‫یک‬ ‫ماژول‬ ‫هر‬.‫کوچک‬ ‫حروف‬ ‫با‬ ‫باید‬ ‫نام‬ ‫این‬‫التین‬‫شود‬ ‫نوشته‬.‫زیرخط‬ ‫از‬ ‫استفاده‬ ‫آن‬ ‫ادامه‬ ‫در‬ ‫و‬ ‫باشد‬ ‫التین‬ ‫حرف‬ ‫یک‬ ‫با‬ ‫باید‬ ‫آن‬ ‫شروع‬‫و‬‫های‬ ‫کاراکتر‬‫عددی‬‫است‬ ‫بالمانع‬.‫وج‬ ‫آن‬ ‫مشابه‬ ‫دروپال‬ ‫دیگر‬ ‫های‬ ‫قالب‬ ‫و‬ ‫ها‬ ‫ماژول‬ ‫میان‬ ‫در‬ ‫و‬ ‫باشد‬ ‫یکتا‬ ‫نامی‬ ‫باید‬ ‫نام‬ ‫این‬‫ود‬‫باشد‬ ‫نداشته‬.‫مانند‬:drupalika_module‫خود‬ ‫دروپالی‬ ‫سایت‬ ‫های‬ ‫فایل‬ ‫از‬ ‫زیر‬ ‫مسیر‬ ‫در‬ ‫جدید‬ ‫فولدر‬ ‫یک‬‫بسازید‬:sites/all/modules‫دهید‬ ‫تغییر‬ ،‫اید‬ ‫کرده‬ ‫انتخاب‬ ‫که‬ ‫نامی‬ ‫به‬ ‫را‬ ‫فولدر‬ ‫این‬ ‫نام‬.‫بای‬ ‫تاکنون‬ ‫بنابراین‬‫با‬ ‫فولدری‬ ‫د‬‫باشیم‬ ‫داشته‬ ‫زیر‬ ‫مسیر‬:sites/all/modules/drupalika_moduledrupalika.org
  • ‫دوم‬ ‫گام‬:‫ماژو‬ ‫شناساندن‬‫ل‬‫دروپال‬ ‫به‬‫ک‬ ‫ایجاد‬ ‫ماژول‬ ‫اطالعات‬ ‫حاوی‬ ‫فایل‬ ‫یک‬ ‫باید‬ ،‫دروپال‬ ‫به‬ ‫ماژول‬ ‫شناساندن‬ ‫و‬ ‫معرفی‬ ‫برای‬‫و‬ ‫نیم‬‫بدهیم‬ ‫قرار‬ ‫ماژول‬ ‫فولدر‬ ‫در‬.‫پس‬ ‫و‬ ‫باشد‬ ‫یکسان‬ ‫کردیم‬ ‫تعیین‬ ‫قبل‬ ‫مرحله‬ ‫در‬ ‫که‬ ‫ماژول‬ ‫نام‬ ‫با‬ ‫باید‬ ‫فایل‬ ‫این‬ ‫نام‬‫آن‬ ‫وند‬‫نیز‬info‫باشد‬.‫فایل‬ ‫باید‬ ‫کردیم‬ ‫کار‬ ‫که‬ ‫ای‬ ‫نمونه‬ ‫در‬ ‫بنابراین‬drupalika_module.info‫را‬‫فولدر‬ ‫در‬drupalika_module‫درست‬‫کنیم‬.‫دهیم‬ ‫می‬ ‫قرار‬ ‫را‬ ‫زیر‬ ‫متن‬ ‫فایل‬ ‫این‬ ‫در‬ ،‫شروع‬ ‫برای‬:drupalika.orgname = Drupalika First Moduledescription = This is a short description about modulecore = 7.xpackage = Drupalika
  • ‫فایل‬ ‫اطالعات‬infodrupalika.org‫مقابل‬ ‫که‬ ‫مقداری‬name‫قرار‬‫سایت‬ ‫مدیر‬ ‫که‬ ‫است‬ ‫نامی‬ ،‫گیرد‬ ‫می‬‫می‬ ‫مشاهده‬ ‫سایت‬ ‫های‬ ‫ماژول‬ ‫مدیریت‬ ‫صفحه‬ ‫در‬ ‫ها‬ ‫ماژول‬ ‫لیست‬ ‫در‬‫کند‬.‫باشد‬ ‫نیز‬ ‫فاصله‬ ‫حاوی‬ ‫تواند‬ ‫می‬ ‫نام‬ ‫این‬.name‫مقابل‬ ‫در‬ ‫که‬ ‫مقداری‬description‫قرار‬‫ای‬ ‫خالصه‬ ‫توضیح‬ ،‫گیرد‬ ‫می‬‫در‬ ‫سایت‬ ‫مدیر‬ ‫به‬ ‫نمایش‬ ‫جهت‬ ‫فقط‬ ‫که‬ ‫است‬ ‫آن‬ ‫کارکرد‬ ‫و‬ ‫ماژول‬ ‫از‬‫است‬ ‫سایت‬ ‫های‬ ‫ماژول‬ ‫مدیریت‬ ‫صفحه‬ ‫در‬ ‫ها‬ ‫ماژول‬ ‫لیست‬.description‫مقابل‬ ‫که‬ ‫مقداری‬core‫قرار‬‫را‬ ‫دروپال‬ ‫از‬ ‫ای‬ ‫نسخه‬ ‫شماره‬ ،‫گیرد‬ ‫می‬‫است‬ ‫شده‬ ‫نوشته‬ ‫آن‬ ‫برای‬ ‫ماژول‬ ‫این‬ ‫که‬ ‫کند‬ ‫می‬ ‫معین‬.‫اینجا‬ ‫در‬‫مقدار‬7.x‫نشان‬‫دروپال‬ ‫های‬ ‫نسخه‬ ‫تمام‬ ‫برای‬ ‫ماژول‬ ‫این‬ ‫که‬ ‫دهد‬ ‫می‬7‫کند‬ ‫می‬ ‫کار‬.core‫مقابل‬ ‫که‬ ‫مقداری‬package‫قرار‬‫است‬ ‫ماژول‬ ‫گروه‬ ‫نام‬ ،‫گیرد‬ ‫می‬.‫در‬‫نمایش‬ ‫هایی‬ ‫گروه‬ ‫در‬ ‫ها‬ ‫ماژول‬ ،‫سایت‬ ‫در‬ ‫ها‬ ‫ماژول‬ ‫مدیریت‬ ‫صفحه‬‫شوند‬ ‫می‬ ‫داده‬.‫کنیم‬ ‫می‬ ‫تعیین‬ ‫را‬ ‫گروه‬ ‫این‬ ‫اینجا‬ ‫در‬.package
  • ‫سوم‬ ‫گام‬:‫ایجاد‬‫کد‬ ‫حاوی‬ ‫فایل‬‫های‬PHP‫های‬ ‫کد‬ ‫گرفتن‬ ‫قرار‬ ‫محل‬ ‫ماژول‬ ‫ساخت‬ ‫در‬ ‫بخش‬ ‫مهمترین‬PHP‫است‬.‫های‬ ‫کد‬ ‫نوشتن‬ ‫جهت‬ ‫فایل‬ ‫یک‬ ‫باید‬ ‫شروع‬ ‫برای‬ ‫بنابراین‬PHP‫در‬‫کنیم‬ ‫ایجاد‬ ،‫آن‬.‫کد‬ ‫حاوی‬ ‫فایل‬ ‫ترین‬ ‫اصلی‬ ‫که‬ ‫فایل‬ ‫این‬‫های‬‫پسوند‬ ‫دارای‬ ‫باید‬ ،‫است‬ ‫ماژول‬.module‫باشد‬.‫بنابراین‬‫اضاف‬ ‫خود‬ ‫ماژول‬ ‫فولدر‬ ‫به‬ ‫را‬ ‫فایلی‬ ‫چنین‬ ‫باید‬ ‫کردیم‬ ‫کار‬ ‫که‬ ‫ای‬ ‫نمونه‬ ‫در‬‫کنیم‬ ‫ه‬:drupalika_module.module‫های‬ ‫کد‬ ‫کننده‬ ‫شروع‬ ‫تگ‬ ،‫فایل‬ ‫این‬ ‫در‬PHP‫را‬‫می‬‫نویسیم‬.drupalika.org
  • ‫چهارم‬ ‫گام‬:‫ایجاد‬‫در‬ ‫صفحه‬ ‫یک‬‫برنام‬ ‫با‬ ‫سایت‬‫ه‬‫نویسی‬PHP‫اساس‬ ‫بر‬ ‫را‬ ‫داریم‬ ‫توقع‬ ‫ماژول‬ ‫از‬ ‫که‬ ‫امکاناتی‬ ‫باید‬ ،‫مرحله‬ ‫این‬ ‫در‬Drupal API‫و‬‫زبان‬ ‫با‬‫نویسی‬ ‫برنامه‬PHP‫مشخص‬‫کنیم‬.‫در‬‫آن‬ ‫آدرس‬ ‫که‬ ‫کنیم‬ ‫اضافه‬ ‫سایت‬ ‫به‬ ‫جدید‬ ‫صفحه‬ ‫یک‬ ‫داریم‬ ‫تصمیم‬ ‫ماژول‬ ‫این‬drupalika/develop‫است‬.‫باشیم‬ ‫داشته‬ ‫آدرسی‬ ‫چنین‬ ‫سایت‬ ‫این‬ ‫در‬ ‫مثال‬:http://drupalika.org/drupalika/develop‫باید‬ ‫کنیم‬ ‫معرفی‬ ‫دروپال‬ ‫به‬ ‫را‬ ‫جدید‬ ‫آدرس‬ ‫یک‬ ‫اینکه‬ ‫برای‬hook_menu‫سازی‬ ‫پیاده‬ ‫را‬‫کنیم‬.‫آن‬ ‫نام‬ ‫که‬ ‫باشیم‬ ‫داشته‬ ‫خود‬ ‫ماژول‬ ‫های‬ ‫کد‬ ‫در‬ ‫تابعی‬ ‫باید‬ ‫ما‬ ‫که‬ ‫باشد‬ ‫می‬ ‫معنی‬ ‫این‬ ‫به‬ ‫این‬drupalika_module_menu‫است‬.‫رشته‬ ‫جای‬ ‫به‬ ‫کنید‬ ‫دقت‬ ‫اگر‬hook‫نام‬‫ایم‬ ‫داده‬ ‫قرار‬ ‫را‬ ‫خود‬ ‫ماژول‬.‫اساس‬ ‫بر‬Drupal API‫سای‬ ‫به‬ ‫خواهیم‬ ‫می‬ ‫که‬ ‫جدیدی‬ ‫های‬ ‫آدرس‬ ‫به‬ ‫مربوط‬ ‫اطالعات‬ ‫از‬ ‫آرایه‬ ‫یک‬ ‫باید‬ ‫تابع‬ ‫این‬‫ت‬‫برگرداند‬ ،‫شود‬ ‫اضافه‬ ‫دروپالی‬.drupalika.org
  • ‫سازی‬ ‫پیاده‬hook_menu‫برای‬‫ماژول‬ ‫در‬ ‫تابع‬ ‫این‬ ‫سازی‬ ‫پیاده‬ ‫به‬ ‫نمونه‬drupalika_module‫توجه‬‫نمائید‬:drupalika.orgfunction drupalika_module_menu() {$items = array();$items[drupalika/develop] = array(title => Developing a new module,page callback => drupalika_develop_page,access callback => TRUE,);return $items;}
  • ‫هر‬ ‫اطالعات‬‫آدرس‬‫یک‬ ‫تابع‬ ‫این‬ ‫در‬‫آرایه‬($items)‫آن‬ ‫در‬ ‫را‬ ‫ماژول‬ ‫های‬ ‫آدرس‬ ‫اطالعات‬ ‫که‬ ‫ایم‬ ‫کرده‬ ‫تعریف‬‫گردانیم‬ ‫برمی‬ ‫تابع‬ ‫از‬ ‫را‬ ‫آن‬ ‫نهایت‬ ‫در‬ ‫و‬ ‫کنیم‬ ‫می‬ ‫نگهداری‬.‫نصب‬ ‫ماژول‬ ‫این‬ ‫که‬ ‫زمانی‬،‫شود‬ ‫می‬‫سیستم‬ ‫در‬ ‫را‬ ‫اید‬ ‫کرده‬ ‫معرفی‬ ‫که‬ ‫هایی‬ ‫آدرس‬ ‫و‬ ‫کند‬ ‫می‬ ‫فراخوانی‬ ‫را‬ ‫تابع‬ ‫این‬ ‫دروپال‬‫می‬ ‫ثبت‬‫کند‬(‫کند‬ ‫می‬ ‫ذخیره‬ ‫دیتابیس‬ ‫در‬.)‫هستند‬ ‫کند‬ ‫می‬ ‫ثبت‬ ‫ماژول‬ ‫که‬ ‫هایی‬ ‫آدرس‬ ،‫آرایه‬ ‫این‬ ‫های‬ ‫ایندکس‬.‫این‬ ‫از‬ ‫خانه‬ ‫هر‬ ‫مقدار‬‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬ ‫آدرس‬ ‫آن‬ ‫اطالعات‬ ‫که‬ ‫است‬ ‫آرایه‬ ‫یک‬ ‫خود‬ ،‫کلید‬ ‫هر‬ ‫مقدار‬ ‫یا‬ ‫آرایه‬.‫بر‬‫ای‬‫نمونه‬:drupalika.org$items[drupalika/develop] = array(title => Developing a new module,page callback => drupalika_develop_page,access callback => TRUE,);
  • ‫هر‬ ‫اطالعات‬‫آدرس‬drupalika.org‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬ ‫صفحه‬ ‫عنوان‬. title‫دارد‬ ‫عهده‬ ‫بر‬ ‫را‬ ‫صفحه‬ ‫محتوای‬ ‫تولید‬ ‫که‬ ‫تابعی‬ ‫نام‬. page callback‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬ ‫صفحه‬ ‫به‬ ‫دسترسی‬ ‫نحوه‬.‫این‬ ‫برای‬ ‫فعال‬‫که‬‫مقدار‬ ،‫دارد‬ ‫قرار‬ ‫همه‬ ‫دسترس‬ ‫در‬ ‫عمومی‬ ‫صورت‬ ‫به‬ ‫صفحه‬TRUE‫را‬‫ایم‬ ‫گرفته‬ ‫نظر‬ ‫در‬ ‫آن‬ ‫برای‬.access callback‫کند‬ ‫می‬ ‫مشخص‬ ‫را‬ ‫صفحه‬ ‫عنوان‬. title
  • ‫تولید‬ ‫تابع‬‫صفحه‬ ‫محتوای‬‫توضیحات‬ ‫به‬ ‫توجه‬ ‫با‬ ‫ولی‬ ‫کردیم‬ ‫مشخص‬ ‫را‬ ‫خواستیم‬ ‫می‬ ‫که‬ ‫جدیدی‬ ‫آدرس‬ ‫اینجا‬ ‫تا‬‫جدول‬‫است‬ ‫مانده‬ ‫باقی‬ ‫ما‬ ‫کار‬ ‫از‬ ‫قدری‬ ‫هنوز‬ ،‫باال‬.‫محت‬ ‫که‬ ‫کنیم‬ ‫سازی‬ ‫پیاده‬ ‫را‬ ‫تابعی‬ ‫باید‬‫را‬ ‫صفحه‬ ‫وای‬‫کند‬ ‫می‬ ‫تولید‬.‫ایندکس‬ ‫در‬ ‫را‬ ‫تابع‬ ‫این‬ ‫نام‬page callback‫تعیین‬‫ایم‬ ‫کرده‬.‫اکنون‬ ‫بنابراین‬‫کنیم‬ ‫سازی‬ ‫پیاده‬ ‫را‬ ‫تابع‬ ‫این‬ ‫باید‬:‫ایم‬ ‫برگردانده‬ ‫را‬ ‫رشته‬ ‫یک‬ ‫فقط‬ ‫ما‬ ،‫ساده‬ ‫نمونه‬ ‫این‬ ‫در‬.‫کد‬ ‫هر‬ ‫توانید‬ ‫می‬ ‫شما‬HTML‫دیگر‬‫را‬‫برگردانید‬ ‫تابع‬ ‫این‬ ‫از‬ ‫و‬ ‫کنید‬ ‫تولید‬.‫آ‬ ‫چه‬ ‫اینکه‬ ‫تشخیص‬ ‫با‬ ‫دروپال‬ ،‫زنیم‬ ‫می‬ ‫مرورگر‬ ‫در‬ ‫را‬ ‫نظر‬ ‫مورد‬ ‫صفحه‬ ‫آدرس‬ ‫که‬ ‫زمانی‬‫درسی‬‫تابع‬ ،‫است‬ ‫شده‬ ‫وارد‬drupalika_develop_page‫که‬‫صفح‬ ‫محتوای‬ ‫کننده‬ ‫تولید‬ ‫عنوان‬ ‫به‬‫ه‬‫م‬ ‫نمایش‬ ‫صفحه‬ ‫در‬ ‫گرداند‬ ‫می‬ ‫بر‬ ‫که‬ ‫را‬ ‫مقداری‬ ‫و‬ ‫کند‬ ‫می‬ ‫فراخوانی‬ ‫را‬ ‫است‬ ‫شده‬ ‫معرفی‬‫ی‬‫دهد‬.drupalika.orgfunction drupalika_develop_page() {return "This is the content of drupalika/develop page.";}
  • ‫پنجم‬ ‫گام‬:‫نصب‬‫دروپال‬ ‫در‬ ‫ماژول‬‫می‬ ‫ها‬ ‫ماژول‬ ‫لیست‬ ‫در‬ ‫را‬ ‫خود‬ ‫ماژول‬ ‫و‬ ‫رویم‬ ‫می‬ ‫دروپال‬ ‫در‬ ‫ها‬ ‫ماژول‬ ‫مدیریت‬ ‫صفحه‬ ‫به‬ ‫اکنون‬‫کنیم‬ ‫می‬ ‫نصب‬ ‫و‬ ‫زده‬ ‫عالمت‬ ‫را‬ ‫آن‬ ‫و‬ ‫یابیم‬.drupalika.org
  • ‫صفحه‬ ‫مشاهده‬drupalika.org‫صف‬ ‫تا‬ ‫کنیم‬ ‫می‬ ‫اینتر‬ ‫و‬ ‫کرده‬ ‫وارد‬ ‫مرورگر‬ ‫در‬ ‫را‬ ‫آن‬ ‫آدرس‬ ،‫ماژول‬ ‫نصب‬ ‫از‬ ‫پس‬‫را‬ ‫حه‬‫کنیم‬ ‫مالحظه‬.
  • ‫به‬ ‫دروپال‬ ‫درباره‬ ‫بیشتر‬ ‫مقاالت‬ ‫مطالعه‬ ‫برای‬‫دروپالیکا‬ ‫سایت‬‫کنید‬ ‫مراجعه‬.‫ایمیل‬ ‫آدرس‬ ‫با‬ ‫توانید‬ ‫می‬info@drupalika.org‫بگیرید‬ ‫تماس‬ ‫نیز‬.drupalika.org