যোগাযোগের আকারে টেক্সেরিয়া ক্ষেত্রের জন্য কীভাবে একটি সর্বাধিক দৈর্ঘ্য সেট করা যায়


11

আমি কোর মডিউল পরিচিতি ফর্মের টেক্সটরিয়া বার্তাটি একটি নির্দিষ্ট সংখ্যক চরিত্রের মধ্যে সীমাবদ্ধ করতে হবে।

এখানে তথ্য আছে

  1. ফর্ম এপিআই একটি পাঠ্য ক্ষেত্রের ধরণগুলিতে সর্বাধিক দৈর্ঘ্য সেট করার অনুমতি দেয় না [যখন সরল এইচটিএমএল করে]

  2. MAXLENGTH মডিউল, আপনি আসলে সর্বাধিক দৈর্ঘ্য সেট করতে অনুমতি দেয় না। এটি ক্ষেত্রের সর্বোচ্চ দৈর্ঘ্য থেকে প্রতিটি সর্বাধিক দৈর্ঘ্য থেকে প্রাপ্ত হয়, প্রতিটি সামগ্রীর ধরণের পরিচালনা ক্ষেত্র বিভাগে সংজ্ঞায়িত হয়

  3. Hook_element_info ব্যবহার করে একটি নতুন ফর্ম উপাদান টাইপ তৈরি করা, এখনও গ্যারান্টি দেয় না যে আমি টেক্সটরিয়ায় যুক্ত করতে পারি #maxlength। আমি যদি সফল হয় তবে তা ছাড়া আমার সাথে যোগাযোগের ফর্ম মডিউলটি আবার পরিবর্তন করতে হবে যা আমার সাথে সত্যিকারের বার্তাটির পাঠ্য ক্ষেত্রকে অগ্রাহ্য করতে পারে।

সুতরাং আমি কি এটি সহজ এবং সরলভাবে পরিবর্তন করতে পারি?

ওয়েবসাইটের সমস্ত পাঠ্য ক্ষেত্র পরিবর্তন করার জন্য সেরা ধারণাটি কী?

উত্তর:


6

ফর্ম এপিআই পাঠ্য ক্ষেত্রের ধরণগুলিতে সর্বাধিক দৈর্ঘ্য সেট করার অনুমতি দেয় না [যখন সরল এইচটিএমএল করে]

এটি কঠোরভাবে সত্য নয় ... এইচটিএমএল 5 টেক্সারিয়াসের জন্য একটি সর্বাধিক দৈর্ঘ্যের সম্পত্তি প্রবর্তন করেছে, পূর্ববর্তী সংস্করণগুলিতে এটি নেই ( https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea দেখুন )।

ড্রুপাল 7 এর সাথে আসা ডিফল্ট টেম্পলেটগুলি সমস্ত এক্সএইচটিএমএল ব্যবহার করে, তাই এইচটিএমএল 5 এর জন্য সুস্পষ্ট সমর্থনের অভাবটি সঠিকভাবে বোঝায়।

যতদিন আপনার DOCTYPE হয় HTML5 এর, এই সম্ভবত কাজ করবে:

$form['element'] = array(
  '#type' => 'textarea',
  '#attributes' => array('maxlength' => 200),
);

ক্লাইভ আমি আসলে একটি কাজের সমাধান পেয়েছি, আমি এটি নীচে পোস্ট করেছি। আপনার উত্তরের জন্য ধন্যবাদ.
drupal_stuff_alter

6

আপনি ম্যাক্সলেথিউড মডিউলটি এটির মতো ব্যবহার করতে পারেন , আপনি নিয়ন্ত্রণ করতে চান এমন উপাদানগুলিতে # সর্বোচ্চ দৈর্ঘ্য এবং # সর্বোচ্চ দৈর্ঘ্য_জে উভয় বৈশিষ্ট্য রাখুন।

$form['comments'] = array(
  '#type' => 'textarea',
  '#title' => t('Comments'),
  '#maxlength_js' => TRUE,
  '#maxlength' => 1000,
);

4

প্রথমত আমি একটি সেটিং ফর্মটি সংজ্ঞায়িত করেছি, তারপরে একটি হুক ফর্মটি পরিবর্তন করেছি:

function contact_form_form_alter(&$form, &$form_state, $form_id) {

  if ($form_id == 'contact_site_form') {
    $maximum_limit = (int) variable_get('contact_form_maxlength', 500);
    if($maximum_limit && is_numeric($maximum_limit)) {
    $form['message']['#title'] = $form['message']['#title'] . t(' (maximum @max characters)', array( '@max' => $maximum_limit));
    $form['message']['#maxlength'] = $maximum_limit ;
    }
  }
}

এটি ঠিকঠাক কাজ করছে বলে মনে হচ্ছে।


একদিকে যেমন আপনি হুক_ফর্ম_এফএআরএম_আইডি_এল্টার প্রয়োগ করতে এবং ফর্ম আইডি চেক সংরক্ষণ করতে পারেন, যেমন: যোগাযোগ_রফর্ম_ফর্ম_কন্ট্যাক্ট_সাইট_ফর্ম_ল্টার। ফাংশন নাম হিসাবে মুখের বিট, স্বীকার করে।
আলফ্রেড আর্মস্ট্রং

এটা একটা খুব ভাল বুদ্ধি. আমার এই অভ্যাস নেই :-)
drupal_stuff_alter
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.