نصب ماژول

نصب ماژول


به نام خدا

ماژول نویسی دورپال ۷قسمت چهارم

تا اینجا با مفاهیم اولیه ماژول آشنا شدیم واز  این مقاله به بعد قصد داریم کار را عملی کنیم و به طور عملی شما را با مفاهیم زیر آشنا کنیم.

ماژول نویسی

  • چگونگی ایجاد اولین ماژول ها
  • کار با Hook ها
  • تعریف نقش ها و مجوز های دسترسی متفاوت
  • کنترل دسترسی
  • اضافه کردن یک آیتم منو را به یک Adim interface
  • استفاده از Form API(FAPI) به منظور ایجاد سریع یک فرم
  • ایجاد فرم های اعتبار سنجی سفارشی
  • ایجاد نوع محتوا سفارشی به صورت دستی
  • اعتبار سنجی ورود کاربر
  • وارد کردن محتوا با استفاده از Feed ها
  • ایجاد Block
  • شناخت بهترین شیوه برنامه نویسی استاندارد

بسیار خب دوستان شروع میکنیم

اقدامات لازم برای شروع ماژول نویسی

  1. سازمان دهی پوشه ماژول
  2. نصب دروپال
  3. محل مدیریت ماژول به عنوان مثال site/all/modules/custom/wind farms

نکته : windfarms  نام ماژول ماست.

  1. ویرایشگر کد می توانیم از  نرم افزار Net Beans 7.2 php  استفاده کنیم که لینک دانلود آن http://netbeans.org  است و همچنین برای پیکربندی آن میتوانید به این آدرس مراجعه کنید http://drupal.org/node/1019816

من از phpstorm  استفاده میکنم.

بعد از انجام این اقدامات شروع به ماژول نویسی میکنیم نام ماژول ما windfarms  هست. و اقدامات لازم را مرحله به مرحله توضیح می دهیم.

  1. ایجاد مسیر ، مسیر خود را site/all/modules قرارمی دهیم و در این قسمت پوشه windfarms   را می سازیم.
  2. ایجاد فایل .info در مسیر site/all/modules/windfarms فایل info  را قرار می دهیم و درون آن کدهای زیر را قرار می دهیم.

name= Wind Farms

description= A database of wind farms

core= 7.x

version=7.x-0.1-dev

با مطالب توضیح داده شده شما باید بتوانید همه محتوای این فایل وفایل ماژول را متوجه شوید.

نکته : برچسب های نسخه ی مشترک ماژول

  • dev نسخه پیشرفته
  • alpha مرحله اول نسخه آزمایشی
  • beta نسخه کامل شده بسیاری از مشکلات و ویژگی های لازم که در نسخه آلفا نیاز بود در این نسخه انجام شده است.
  • rc نسخه پیشنهاد داده شده برای انتشار
  1. ایجاد فایل . module در مسیر گفته شده فایل module  را ایجاد می کنیم. ودرون آن کدهای زیر را قرار می دهیم.

 

 

<?php

/**

*@file

* custom functionality for a wind farm database

*/

/**

*   Impelements hook_help

*/

Function windfarms_help($path, $avg){

   Switch ($path){

     Case ‘admin/help#windfarms’:{

      $ret_val= ‘<h3>’.t(‘about’).'</h3>’;

      $ret_val= ‘<p>’.t(‘the wind farms module makes it easy to manage a database of a wind farms’).'</p>’;

     return $ret_val;

     break;

     }

   }

 }

در این مقاله ما در ابتدا قسمت مدیریت ماژول را کد نویسی میکنیم وبعد به قسمت کاربر می پردازیم.

در مقاله قبل ما درباره با ساختار hook  صحبت کردیم و در نوشتن ماژول ما با هوک های زیادی بر خورد میکنیم hook_help  ما از دروپال می خواهیم که هنگامی که داره فرایند help  انجام بشه ما به دروپال میگیم که میخواهیم بهت قلاب بشیم و این کار من رو هم انجام بده.

پارامتر $path  مربوط به مسیر ما است .

کد admin/help#windfarms برای پیوند از صفحه اصلی راهنمای دروپال استفاده میشود (admin/help or ?q=admin/help). میتوانید به کد فوق متن بیشتری برای بهبود راهنمایی کاربر اضافه کنید.

همچنین می توانید به لینک زیر برای به دست آوردن اطلاعات بیشتر درباره hook_help  مراجعه کنید.

https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_help/7.x

ماژول نویسی

ماژول نویسی

شکل تغییرات بعد از اضافه کردن کد را نشان می دهد که همانطور مشاهده می کنید لینک کمک اضافه شده

نکته : وقتی از هوک ها استفاده میکنیم مثلا در phpstorm  متغیر های پیش فرض اون هوک را برای ما به صورت پیش فرض نمایش می دهد حال اگر بخواهیم متوجه بشیم که این متغیرها چه نوعی هستند. مثلا شامل چه attribute  هایی است و در کل اطلاعاتی درباره این متغیرها به دست آوریم ما باید اول ماژول devel  رو نصب کنیم و بعد از آن در قسمتی که هوک ما اجرا می شود از دستور kpr($Variable)  و یا dpm($Variable)   استفاده می کنیم. به کدزیر و اجرا آن در سایت دقت کنید.

function windfarms_help($path, $avg){
kpr($path);
kpr($avg);
}

drupal module development 4 2 900x450 1 - ماژول نویسی دروپال7 قسمت چهارم

باتوجه به شکل متوجه میشوید که $pach  مسیر رو به ما نشان می دهد و $avg  مسیر رو به صورت جدا گانه نمایش نشان می دهد. با رفتن به مسیر های دیگر و چک کردن متغیرها متوجه این موضوع خواهید شد.

در این قسمت می خواهیم کنترل دسترسی به ماژول با استفاده از hook_permission   آموزش دهیم کد زیر را به فایل .module  خود اضافه کنید.

/**

* Impelements hook_permission()

*/

function windfarms_permission(){

  return array(

   ‘administer windfarms’=>array(

   ‘title’=> t(‘administer’),

   ‘description’=> t(‘description’),

  ),

  );

}

بعد از اضافه کردن این کد به فایل خود خواهیم دید که لینک مجوزها به صفحه ماژول اضافه شده است و میتوانیم مجوزهای هر نقش را برای دسترسی به ماژول خود تعیین کنیم. همچنین از قسمت افراد/مجوزها  هم می توانیم این کار را انجام دهیم. در کد بالا ما آرایه ای را برگرداندیم که کلید آن administer windfarms  ومقدار آن خود یک آرایه است که شامل کلید title و مقدار آن عبارت روبروی آن است.

برای نوشتن آرایه شما باید نوشتن آرایه های انجمنی را بلد باشیدکه با یک جستجو در این باره میتوانید  متوجه شوید.

 کد بالا رو به این صورت با توجه به تعریف آرایه های انجمنی هم می توانیم بنویسیم پس پیشنهاد من این است حتماآرایه های انجمنی را یاد بگیرید.

function windfarms_permission(){

  $per=array();

  $per[‘administerwindfarms’]=array(

   ‘title’=> t(‘administer’),

   ‘description’=> t(‘description’),

  );

  return $per;

}

توجه :چون hook  ها کش می شوند بعد از تغییرات در ماژول خود، پاک کردن حافظه نهان (کش دروپال ) فراموش نشود.

در مقاله بعدی می خواهیم نحوه کار با hook_menu  را توضیح دهیم.

با ما همراه باشید.

آموزش دروپال

امکان ارسال نظر وجود ندارد!