ড্রুপাল 8 এর জন্য একটি কাস্টম ওয়েবফর্ম হ্যান্ডলার প্লাগইন তৈরি করা হচ্ছে।
এই দস্তাবেজটি ধরে নিয়েছে আপনি ইতিমধ্যে ইনস্টল করেছেন এবং ওয়েবফর্ম এবং ওয়েবফর্ম-ইউআই সক্ষম করেছেন
1) আপনার ওয়েবফর্মটি তৈরি করুন। - কাঠামো -> ওয়েবফর্মগুলিতে যান এবং "+ ওয়েবফর্ম যোগ করুন" বোতাম টিপুন। - আপনি হয় ইউআই ব্যবহার করতে পারেন বা ইয়ামল ব্যবহার করতে পারেন, এটি আপনার উপর নির্ভর করে। একটি ইমেল ঠিকানা গ্রহণ করে এমন একটি ক্ষেত্র ফর্মের জন্য yaml উদাহরণ:
email:
'#type': email
'#title': email
'#title_display': invisible
'#placeholder': 'ENTER YOUR EMAIL'
'#attributes':
class:
- my-ip
ইন্ডেলটি ইয়ামলের জন্য গুরুত্বপূর্ণ তাই নিশ্চিত হয়ে নিন যে আপনি এটি সঠিকভাবে পেয়েছেন। ইনডেন্ট স্পেস হয়।
এখন আপনার ফর্ম সংরক্ষণ করুন।
2) একটি ওয়েবফর্ম হ্যান্ডলার প্লাগইন তৈরি করা
এর পরে আমরা একটি নতুন প্লাগইন তৈরি করতে পারি যা ওয়েবফর্মটি সম্পাদনা করার সময় "ইমেল / হ্যান্ডলার" বিভাগে প্রদর্শিত হবে। আমি এটিকে মাইহ্যান্ডলার বলব, আপনি যা চান তা কল করতে পারেন, তবে আপনি যে নামটি বেছে নেবেন তার সাথে মাইহ্যান্ডলারের সমস্ত উল্লেখ প্রতিস্থাপন করুন।
ক) আপনার প্লাগইনের জন্য একটি নতুন ফোল্ডার তৈরি করুন, নিম্নলিখিত সাবফোল্ডারটিতে আপনার ড্রুপাল রুট (এখানে / var / www / html / হিসাবে উল্লেখ করা হয়) করুন: / var / www / এইচটিএমএল / মডিউল / কাস্টম / মাইহ্যান্ডলার
খ) উপরের ডিরেক্টরিতে একটি নতুন ফাইল তৈরি করুন myhandler.info.yml এই ফাইলটিতে নিম্নলিখিত রয়েছে:
name: My Form Handler
description: handles form submits, does something with them.
package: Custom
type: module
version: 1.0
core: 8.x
3) আপনার মডিউল ডিরেক্টরিতে একটি এসসিআর ডিরেক্টরি তৈরি করুন, যেমন: / var / www / এইচটিএমএল / মডিউল / কাস্টম / মাইহ্যান্ডলার / এসসিআর ইন সিআরসি প্লাগ ইন প্লাগইন তৈরি করুন ওয়েবফর্মহ্যান্ডলার তৈরি করুন
(এটি ব্যবহার করে একসাথে অর্জন করা যেতে পারে
mkdir -p /var/www/html/modules/Custom/myhandler/src/Plugin/WebformHandler/
যা পুরো কাঠামোটিকে একসাথে এম-পিডি-তে পতাকা ব্যবহার করে তৈরি করবে))
4) একটি নতুন ফাইল তৈরি করুন /var/www/html/modules/Custom/myhandler/src/Plugin/WebformHandler/MyFormHandler.php
এই ফাইলটিতে নিম্নলিখিত পিএইচপি কোডটি যায়, আমি কনফিগার ফর্ম সেটআপটি রেখে দিয়েছি যাতে প্রয়োজনে আপনার প্লাগইনটি কীভাবে কনফিগার করতে হয় তা আপনি দেখতে পারেন।
<?php
namespace Drupal\myhandler\Plugin\WebformHandler;
use Drupal\Core\Session\AccountInterface;
use Drupal\Core\Serialization\Yaml;
use Drupal\Core\Form\FormStateInterface;
use Drupal\webform\Plugin\WebformHandlerBase;
use Drupal\webform\webformSubmissionInterface;
/**
* Form submission handler.
*
* @WebformHandler(
* id = "myhandler_form_handler",
* label = @Translation("MyHandler form handler"),
* category = @Translation("Form Handler"),
* description = @Translation("Do something extra with form submissions"),
* cardinality = \Drupal\webform\Plugin\WebformHandlerInterface::CARDINALITY_SINGLE,
* results = \Drupal\webform\Plugin\WebformHandlerInterface::RESULTS_PROCESSED,
* )
*/
class MyFormHandler extends WebformHandlerBase {
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return [
'submission_url' => 'https://api.example.org/SOME/ENDPOINT',
];
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form['submission_url'] = [
'#type' => 'textfield',
'#title' => $this->t('Submission URL to api.example.org'),
'#description' => $this->t('The URL to post the submission data to.'),
'#default_value' => $this->configuration['submission_url'],
'#required' => TRUE,
];
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state, WebformSubmissionInterface $webform_submission) {
// Your code here.
// Get an array of the values from the submission.
$values = $webform_submission->getData();
// Get the URL to post the data to.
$post_url = $this->configuration['submission_url'];
$message = "MyHandler got form data:".print_r($values,1);
\Drupal::logger('myformhandler')->error($message);
return true;
}
}
?>
৫) আপনার মাইহ্যান্ডলার মডিউলটি সক্ষম করুন (ড্রশ বা প্রসারিত মেনু ব্যবহার করে) এবং তারপরে আপনার ড্রুপাল ক্যাশে পুনরায় নির্মাণ করুন (আপনার ড্রুপাল মূলের নীচে যে কোনও জায়গা থেকে "ড্রশ ক্র্যাও" (এখানে / var / www / html এখানে) আপনি যদি ড্রাশ ব্যবহার করেন তবে তা করতে হবে)
)) আপনার ওয়েবফর্মটি সম্পাদনা করুন, "ইমেল / হ্যান্ডলারগুলি" এ যান এবং "+ হ্যান্ডলার যুক্ত করুন" বোতামে ক্লিক করুন আপনার তালিকাভুক্ত প্লাগইনটি দেখতে হবে, হ্যান্ডলারের অ্যাড ক্লিক করুন, আপনার এখন সাবমিশন ইউআরএল চেয়ে একটি বাক্স দেখতে হবে। সংরক্ষণ বাটন ক্লিক করুন। যদি কিছু ঠিক মতো না দেখায় বা এটি কাজ না করে থাকে তবে অ্যাপাচি ত্রুটি লগটি পরীক্ষা করুন, আপনি সেখানে কিছু সহায়ক পেতে পারেন।
।) আপনার ফর্মটি পরীক্ষা করুন - ফর্মটিতে একটি জমা দিন এবং তারপরে ওয়াচডগ লগ (ড্রাশ ডাব্লুএস) পরীক্ষা করুন, আপনার এতে পাঠানো মানগুলি দেখতে হবে। আপনি যে আউটপুট দেখছেন সেগুলিতে এগুলি কেটে যেতে পারে, আতঙ্কিত হবেন না, সব আছে। আপনি এখন এটি দিয়ে যা করেন তা আপনার হাতে।
আশা করি এটি কাউকে সাহায্য করবে। আমি জায়গাটির চারপাশে পাওয়া স্টাফ থেকে এটি একসাথে আবদ্ধ করেছিলাম এবং এটি একটি একক দস্তাবেজে লিখেছিলাম। অন্যদের যারা আমাকে এখানে পেয়েছেন ধন্যবাদ।
hook_form_alter()
হবে, বা আপনি কী ভুল করছেন তা আপনাকে বলা কিছুটা শক্ত। এছাড়াও, আপনার কোন রূপটি পরিবর্তনের চেষ্টা করছেন তাও বলা উচিত।