দ্রুপাল_জেট_ফর্ম এবং দ্রুপাল_রেট্রিভে_ফর্মের মধ্যে পার্থক্য কী?


10

মধ্যে পার্থক্য কি drupal_get_form()এবং drupal_retrieve_form()? কেউ পার্থক্য ব্যাখ্যা করতে পারেন? আমি এপিআইয়ের দিকে নজর দিই, তবে বর্ণনাটি আমার কাছে অনুরূপ।


আমি মনে করি একটি মূল পার্থক্য হ'ল drupal_retrieve_form()আপনার কোডটি $form_stateরেফারেন্স দ্বারা পাস হওয়ার সাথে সাথে আপডেটটি অ্যাক্সেসের অনুমতি দেয় তবে drupal_get_form()কেবল $formরাষ্ট্রটি নয়, এটি ফিরিয়ে দিন ।
ফেলিক্স

উত্তর:


10

পার্থক্যটি হ'ল drupal_get_form()মডিউলগুলির জন্য স্বয়ংক্রিয়ভাবে রেন্ডার এইচটিএমএল ফর্মটি পুনরুদ্ধার, প্রক্রিয়াকরণ এবং প্রদর্শন পরিচালনা করে এবং ফর্মকে drupal_retrieve_form()সংজ্ঞায়িত স্ট্রাকচারযুক্ত অ্যারে প্রদান করে।

ফর্মটি পুনরুদ্ধার করা হচ্ছে

drupal_get_form()form_get_cache () সহ ফর্মটি ক্যাশে উপস্থিত রয়েছে কিনা তা প্রথমে পরীক্ষা করে ; যদি এটি উপস্থিত না থাকে তবে এটি ড্রপাল_রেট্রিভ_ফর্ম () এবং ড্রপাল_প্রিপারে_ফর্ম () বলে

ফর্মটি প্রক্রিয়াজাতকরণ

drupal_get_form()কলকে ড্রুপাল_প্রসেস_ফর্ম () বলে , যা ফাংশন যা ড্রপাল_ডিয়ালিটি_ফর্ম () কল করে এবং যা ফর্ম_এক্সেকিউট_হ্যান্ডলার () সহ জমা হ্যান্ডলারের অনুরোধ জানায় ।

ফর্মটি রেন্ডারিং করা হচ্ছে

রেন্ডারিংটি সম্পন্ন হয়েছে drupal_process_form(), যা ফর্ম_বিল্ডার () বলে

বেশিরভাগ ক্ষেত্রে, drupal_get_form()ব্যবহার করা ফাংশন যেমন নীচের কোডে থাকে।

function node_menu() {
  $items['admin/content'] = array(
    'title' => 'Content', 
    'description' => 'Find and manage content.', 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('node_admin_content'), 
    'access arguments' => array('access content overview'), 
    'weight' => -10, 
    'file' => 'node.admin.inc',
  );

  // …

  return $items;
}

আমি কেবলমাত্র মডিউলটি দেখতে পেয়েছি যে drupal_retrieve_form()সরাসরি কল করছে সেটি হ'ল মলম_মোড্রেট () এর মলম মডিউল , যা এটি ফর্ম জমা দেওয়ার জন্য এটি স্বয়ংক্রিয়ভাবে ব্যবহার করে। কোডটি ড্রুপাল_ফর্ম_সাম্বিট () ব্যবহার করতে পারে , তবে (একটি মন্তব্য হিসাবে), "প্রোগ্রাম্যাটিক ফর্ম জমাগুলি স্বয়ংক্রিয়ভাবে প্রাথমিক ফর্ম জমা বোতাম / ক্রিয়া ব্যবহার করতে সক্ষম নয়, তাই আমাদের সাদৃশ্য থাকা দরকার need drupal_form_submit()"

  $form_id = $form_info['delete form'];
  $form_state = form_state_defaults();
  // We assume that all delete confirmation forms take the fully loaded
  // entity as (only) argument.
  $messages[] = "Attempt to load $form_info[entity] entity via entity_load().";
  $entities = entity_load($data->entity, array($data->id));
  $form_state['build_info']['args'][] = $entities[$data->id];
  $form = drupal_retrieve_form($form_id, $form_state);

  $form_state['values'] = array();
  $form_state['values']['mollom']['feedback'] = '';
  // Take over the primary submit button of confirm_form().
  $form_state['values']['op'] = $form['actions']['submit']['#value'];

  $form_state['input'] = $form_state['values'];
  $form_state['programmed'] = TRUE;
  // Programmed forms are always submitted.
  $form_state['submitted'] = TRUE;

  // Reset form validation.
  $form_state['must_validate'] = TRUE;
  form_clear_error();

  drupal_prepare_form($form_id, $form, $form_state);
  drupal_process_form($form_id, $form, $form_state);

  $result = $form_state['executed'];
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.