প্রোগ্রামিয়ালি ড্রুপাল 8 এ একটি ফর্ম পান


12

ডকুমেন্টেশন পদ বলে:

GetForm () পদ্ধতিতে পাস হওয়া আর্গুমেন্টটি সেই শ্রেণীর নাম যা আপনার ফর্মটি সংজ্ঞায়িত করে এবং এটি \ দ্রুপাল ore কোর \ ফর্ম \ ফর্মবিল্ডার ইন্টারফেসের একটি বাস্তবায়ন।

আমি কীভাবে ক্লাসের নামটি জানতে পারি যা মূল যোগাযোগের মডিউল দ্বারা প্রদত্ত ওয়েবসাইট প্রতিক্রিয়া ফর্মটি নির্ধারণ করে (ফর্ম আইডিটি হ'ল )।feedback_contact_message_form

আমি যখন dpm()ফর্মটি দেখতে পারি সেখানে একটি শ্রেণি সংজ্ঞায়িত করা হয়েছে:

$input array(30)
  '#attributes' => array(1)
    'class' => array(3)
      string(29) "feedback-contact-message-form"
      string(20) "contact-message-form"
      string(12) "contact-form"

আমি প্যারামিটারটি পাস করার জন্য এর বিভিন্ন রূপ চেষ্টা করেছি:

\Drupal::formBuilder()->getForm();

তবে ভাগ্য নেই ধন্যবাদ


1
যোগাযোগের ফর্মগুলি সত্তা, তাই আমি ভাবতাম সেগুলি সমস্তগুলি এসেছে Drupal\contact\ContactFormEditForm। নিশ্চিত না যে এটি সন্ধান করার একটি সহজ উপায় আছে যদি না আপনি জানেন যে এটি সত্তা ফর্ম যদিও। srcযার নাম দিয়ে শেষ হয় সেই ফাইলগুলির জন্য মডিউলটির ফোল্ডারের নিচে থাকা সবচেয়ে ভাল উপায় হতে পারে Form.php। আমি মনে করি এটি অনুসরণ করার জন্য একটি নিরাপদ সম্মেলন
ক্লাইভ

আমার প্রশ্নে বার্ডিরের উত্তর কি সহায়ক হবে না? drupal.stackexchange.com/questions/146617/…
alexej_d

ধন্যবাদ, তবে আমি বারডিরের উত্তর অনুসরণ করি না। আমি আমার উত্তর নীচে আমার ব্লক প্লাগইন যোগ করেছি - আপনার কোড নমুনা থেকে প্রথম দুটি লাইন যুক্ত। আমি এখান থেকে কোথায় যাব? ধন্যবাদ।
dbj44

উত্তর:


13

এটি একটি ব্লক প্লাগইনের মধ্যে রেন্ডার করে:

class myModule extends BlockBase {
  public function build() {

    $default_form = \Drupal::config('contact.settings')->get('default_form');
    $entity = \Drupal::entityManager()->getStorage('contact_form')->load($default_form);

    $message = \Drupal::entityManager()
      ->getStorage('contact_message')
      ->create(array(
        'contact_form' => $entity->id(),
      ));

    $form = \Drupal::service('entity.form_builder')->getForm($message);

    return $form;
  }
}

আমি একই সমস্যা হচ্ছে। আমরা কি নোট শেয়ার এবং চ্যাট করতে পারি? আমি যা করতে চাই তা হ'ল সাইটের যে কোনও জায়গা থেকে একটি ফর্ম নেওয়া এবং এটি কোনও পিএইচপি সক্ষম টেক্সট ফিল্ডের ভিতরে অন্য কোথাও আউটপুট।
পটোশি パ ト シ

আমি কীভাবে এই সত্তা ফর্মটি অগ্রগতিতে জমা দিতে পারি?
উন্নীকৃষ্ণান

এজাক্স অপারেশনের জন্য, যদি ফর্মটির # after_build এ কাজ করা দরকার হয়, তবে আমাদের কি কোনও সমাধান আছে?
allabakash.g
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.