Drupal-ում մոդուլի ստեղծում, արագ մեկնարկ
Սկսենք api.drupal.org կայքից, բացեք hook_node_presave() հուկի էջը, որը գործարկվում է նախքան նոդի ավելացումը։
http://api.drupal.org/api/drupal/modules!node!node.api.php/function/hook_node_validate/7
Հուքերը թույլ են տալիս մեզ ներդնել մեր կոդը Դրուպալի ընթացիկ գործընթացների մեջ, ավելացնել ստուգումներ, տվյալների դաշտեր, ձևերի տարրեր և այլն։
Ավելացնենք մեր մոդուլը sites/all/modules թղթապանակում՝ հետևյալ կառուցվածքով․
sites/all/modules/custom/ sites/all/modules/custom/custom.info sites/all/modules/custom/custom.module
custom.info ֆայլում գրեք՝
name = Custom description = Custom core = 7.x
custom.module ֆայլում կատարենք ստուգում, որ բոդի դաշտում ինչ-որ բան մուտքագրված լինի։ Եթե դաշտը դատարկ է, կցուցադրենք սխալ (չնայած նույնն էլ կարելի էր անել ադմին հատվածում՝ դաշտը պարտադիր դարձնելով, բայց...):
custom.module
<?php
function custom_node_validate($node){
if (empty($node->body['und'][0]['value'])) {
form_set_error('node-body', 'Body is empty'); // Ցուցադրում ենք սխալը և այդ կերպ նոդը չի պահվում
}
}
Մեր դեպքում, երբ կայքում լեզուն միայն մեկն է և դա էլ und է (undefined - չսահմանված), ապա ստուգում ենք body դաշտի առաջին textarea-ի արժեքը (չէ՞ որ հնարավոր է դաշտի համար մի քանի textarea թույլ տալ):
Օգտագործեք devel մոդուլը և դրա dsm() ֆունկցիան՝ էկրանին օբյեկտ կամ զանգված տպելու համար․
<?php
function custom_node_view($node){
dsm($node);
}