نصب ماژول

نصب ماژول


به نام خدا

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

در بخش قبلی با اعتبار سنجی فرم ها آشنا شدیم

فایل .install :

نصب ماژول

این فایل در هنگام -نصب ماژول- اجرا می شود درخواست های که برای دیتابیس داریم مثلا ساخت یک جدول را در این فایل انجام میدهیم همچنین داده های پیش فرض و یا مقداری که کاربر یا مدیر سایت برای ماژول وارد میکنند را در این فایل فراخوانی میکنیم.

چرا دستورات variable_get  را درفایل .install خود قرار میدهیم.

  1. در هنگام اجرا فقط با فرم ها کار میکنیم ونیاز به این داده ها داریم
  2. اگر فرم ارسال نشود متغیرها نمیتوانند ذخیره بشوند

Hook_install :

  1. اجازه تعامل با هسته دروپال را به ما میدهد.
  2. توابع زیادی دراین هوک پیاده سازی شده اند.
  3. اطلاعات کامل مراجعه به سایت

 

  1. نصب ماژول

    نصب ماژول

    هنگام نصب ماژول اجرا می شود.

فایل .install (windfarms.install)  را در پوشه ماژولمون ایجاد میکنیم.

و کدهای زیر را درون آن قرار میدهیم.

<?php
/*
* @FILE
* windfarme installation
*/
/*
* Impelements hook_installation().
*/
function windfarms_install(){
//set default variables.
variable_set(‘windfarms_gmap’,۱);
variable_get(‘windfarm_default_center_lat’,۳۲.۴۲۷۹);
variable_get(‘windfarm_default_center_long’,۵۳.۶۸۸۰);
variable_get(‘windfarms_default_gmap_zoom’,۸);
//get localization function for installation as t() may be unavalible.
$t=get_t();
//Give uaser feed back.
drupal_set_message($t(‘windfarms variables created.’));

}

نصب ماژول

نصب ماژول

توضیحات درباره با تابع get_t() :

وقتی دروپال درحال نصب است تابع t() که مربوط به ترجمه است در دسترس نیست و این تابع فقط زمانی که نصب تموم میشه قابل دسترس هست اما اگربخواهیم در هنگام نصب دروپال مثلا در پروفایل نصب متنی را ترجمه کنیم با استفاده از این تابع، نام تابع مناسب برای ترجمه رو می توانیم پیداکنیم وقتی تابع get_t را صدا میزنیم  یه دسته بر میگردونه که نام تابع ترجمه است که t(),st() است و درحقیقت خروجی تابع get_t هنگام نصب دروپال ،st() وزمانی که نصب تمام شده است t() است.

  1. اطلاعات بیشتر مراجعه به آدرس

در فایل.install ما hook_uninstall رو داریم که هنگامی که ما میخواهیم ماژول عزل بشه دستوراتی که در این هوک قرار دارد اجرا می شود مثلا میخواهیم عناصر ذخیره شده حذف شوند.

Hook_uninstall ماژول خود را برای حذف متغیرها درنظر گرفته ایم.

/*
* Impelements hook_uninstall().
*/
function windfarms_uninstall(){
//delet variables
variable_del(‘windfarms_gmap’);
variable_del(‘windfarm_default_center_lat’);
variable_del(‘windfarm_default_center_long’);
variable_del(‘windfarms_default_gmap_zoom’);
//inform the user of the removal
$t=get_t();
drupal_set_message($t(‘windfarms variables remove’));
}

به دلیل اینکه متغیرهامون رو در فایل نصبمون مقدار دهی کردیم و مقدار پیش فرض رو به آن ها دادیم پس دیگه نیازی به مقدار پیش فرض در فایل .module نداریم. و هم چنین برای ارسال فرم خود میتوانیم از تابع system_settings_form() استفاده کنیم پس قسمت فرم در فایل .moduleاینگونه تغییر میکند.

/**
*Impelement hook_form
*/
function windfarms_admin_settings_form($node ,&$form_state){
$form[‘overview’]=array(
‘#markup’=>t(‘this interface allows administratrs to manage general wind farm setting’),
‘#prefix’=>‘<p>’,
‘#suffix’=>‘</p>’,
);
$form[‘windfarms_gmap’]=array(
‘#title’=> t(‘enble google map’),
‘#description’=> t(‘when enabled, google maps will berendered if latitude and logitude are known’),
‘#type’=> ‘checkbox’,
‘#default_value’=> variable_get(‘windfarms_gmap’),
);
$form[‘default_center’]=array(
‘#title’=> t(‘map center’),
‘#description’=> t(‘location of the center of the map of wind farms.’),
‘#type’=>‘fieldset’,
‘#collapsible’=> TRUE,
‘#collapsed’=>FAlSE,
);
$form[‘default_center’][‘windfarm_default_center_lat’]= array(
‘#title’=> t(‘latitude’),
‘#description’=> t(‘signed degrees format(DDD.dddd)’),
‘#type’=> ‘textfield’,
‘#default_value’=> variable_get(‘windfarm_default_center_lat’ ),
‘#required’=> true,
);
$form[‘default_center’][‘windfarm_default_center_long’]= array(
‘#title’=> t(‘longitude’),
‘#description’=> t(‘signed degrees format(DDD.dddd)’),
‘#type’=> ‘textfield’,
‘#default_value’=> variable_get(‘windfarm_default_center_long’ ),
‘#required’=> true,
);
$options=range(۰,۲۰,۱);
$options[0]=t(‘۰-furthest’);
$options[20]=t(’۲۰-closest’);
$form[‘windfarms_default_gmap_zoom’]=array(
‘#title’=> t(‘Google map zoom’),
‘#description’=> t(‘Default level of zoom, between 0 and 20.’),
‘#type’=>‘select’,
‘#options’=> $options,
‘#default_value’=> variable_get(‘windfarms_default_gmap_zoom’),
‘#required’=> true,

);

return system_settings_form($form);
}

/*
* validates wind farms adminsettings.
*/
function windfarms_admin_settings_form_validate($form, &$form_state){
//regular expression for validating signed degrees
$signed_degree_regex=‘/^[+-]?\d+(\.\d+)?$/’;
//shorthand for long array name
$lat= $form_state[‘values’][‘windfarm_default_center_lat’];
$long= $form_state[‘values’][‘windfarm_default_center_long’];
//validation latitude and longitude format
if (!preg_match($signed_degree_regex,$lat)){
form_set_error(‘windfarms_default_center_lat’,t(‘Invalid latitude ,mustbe a signed degree(DDD.dddd).’));
}
if (!preg_match($signed_degree_regex,$long)){
form_set_error(‘windfarms_default_center_long’,t(‘Invalid longitude ,mustbe a signed degree(DDD.dddd).’));
}
//validate latitude and longitude values.
if (!((-۱۸۰<=$lat)&&($lat<=180))){
form_set_error(‘windfarms_default_center_lat’,t(‘latitude must be between -180 and 180’));
}
if (!((-۱۸۰<=$long)&&($long<=180))){
form_set_error(‘windfarms_default_center_long’,t(‘longitude must be between -180 and 180’));
}
dpm($form_state[‘rebuild’]);
}

برای اینکه فایل .install ما اجرا شود ماژول را عزل و دوباره نصب میکنیم.

شکل روبرو پیغام بعد از نصب دوباره ماژول نمایش میدهد همانطور که میبینید پیغامی که در فایل .install قرار دادیم را نمایش می دهد.

 

نصب ماژول

نصب ماژول

هم چنین برای اینکه بتوانیم قسمت تنظیمات رادر صفحه نصب ماژول ببینیم کد زیر را به فایل .info خود اضافه میکنیم.

configure=admin/config/windfarms/manage

بعد ازپاک کردن کش سایت در صفحه نصب ماژول،  لینک زیر را خواهید دید.

 

نصب ماژول

نصب ماژول

آموزش دروپال

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