Drupal WebForm մոդուլ։ Արտադրանքի պատվերի ձևի ստեղծում
Եկեք վերադառնանք մեր ապրանքների կատալոգին, որը ստեղծել էինք նախորդ դասերից մեկում։ Կատալոգը հաջողությամբ լրացվում է և որոշ չափով ցուցադրվում է, սակայն ապրանքը պատվիրելը հետադարձ կապի ձևով բավականին անհարմար է․ պետք է պատճենել անվանումը, ապրանքի կոդը, հետո տեղադրել դրանք ձևում և գրել հաղորդագրություն։ Եկեք ստեղծենք ձև, որը կպարզեցնի պատվերի գործընթացը։ Դրա համար մեզ անհրաժեշտ կլինի Webform մոդուլը, որը ձևեր ստեղծելու համար է Դրուպալում։ Ձևով մենք կփոխանցենք ապրանքի անվանումը և քանակը, եթե Ձեզ անհրաժեշտ է նաև ապրանքի կոդը՝ կարող եք նաև այն փոխանցել՝ նույն սկզբունքով։
Ներբեռնեք և տեղադրեք Webform մոդուլը։
Տեղադրումից հետո պետք է հայտնվի բովանդակության նոր տիպ՝ Webform։ Ստեղծեք այս տիպի նյութ՝ անվանելով այն Ապրանքի պատվերի ձև (կամ ինչպես Ձեզ հարմար է)։ Ստեղծումից հետո դուք կտեղափոխվեք ձևի կարգավորման էջ։
Անհրաժեշտ է ստեղծել երկու դաշտ՝ ապրանքի անվանման և քանակի համար, դրա համար պետք կգան երկու textfield (տեքստային դաշտեր)։
Անվանման դաշտում գրեք՝ %get[product]
Քանակի դաշտում կանխադրված արժեքը նշեք «1»։
Ավելացրեք նաև textfield դաշտ՝ էլ․ փոստի համար և text area՝ հաճախորդների ցանկությունների և մեկնաբանությունների համար։
%get[product] - նման է php-ի $_GET['product'] փոփոխականին, որը URL-ից վերցնում է արժեք։
Ձևը պատրաստ է։ Այժմ պետք է ստեղծել հղում դեպի այս ձևը՝ ավելացնելով product պարամետր, որտեղ կգրվի ապրանքի անվանումը։ Եկեք այս հղումը ձևավորենք որպես առանձին բլոկ, որը տեղադրվելու է յուրաքանչյուր ապրանքի նյութի ներքևի մասում։
Հաջորդ գործողությունները կատարելու համար անհրաժեշտ է միացնել PHP filter ներկառուցված մոդուլը, որը թույլ է տալիս PHP կոդ տեղադրել բլոկի կամ նյութի մեջ։ Միացնելուց հետո կհայտնվի նոր մուտքի ձևաչափ՝ PHP code։
Ստեղծեք նոր բլոկ և ընտրեք մուտքի ձևաչափ՝ PHP code։ Բլոկի տեքստում տեղադրեք հետևյալը՝
<a href="<?php print base_path(); ?>node/6?product=<?php print drupal_get_title(); ?>">Պատվիրել ապրանք</a>
որտեղ node/6-ը պատվերի վեբ-ձևի նոդի հասցեն է։
drupal_get_title() ֆունկցիան վերադարձնում է նոդի վերնագիրը, այս դեպքում՝ ապրանքի անվանումը, իսկ base_path() ֆունկցիան վերադարձնում է կայքի արմատային ուղին (օրինակ՝ drupalbook.org/)։ Այժմ պետք է բլոկը տեղադրել Բովանդակություն (Content) շրջանում։ Եվ սահմանել բլոկի տեսանելիություն՝ PHP ռեժիմով՝
$types['tovar'] = 1; $match = false; if ((arg(0) == 'node') && is_numeric(arg(1))) { $node = node_load(arg(1)); $match = isset($types[$node->type]); } return $match;
Այստեղ tovar-ը Տեսակ (Content type) «Ապրանք»-ի մեքենայական անունն է։
Մեր ապրանքի պատվերի ձևը պատրաստ է։