সিস্টেম সেটিং ভেরিয়েবল হিসাবে 'টেক্সট_ফর্ম্যাট' টাইপের ক্ষেত্র সংরক্ষণ করা


19

আমি আমার কন্টেন্ট সম্পাদকদের একটি কাস্টম মডিউলটির জন্য একটি পরিবর্তনশীল পরিবর্তন করার ক্ষমতা দেওয়ার চেষ্টা করছি। এই পরিবর্তনশীল এইচটিএমএল থাকতে পারে। আমি তাদের কোনও এইচটিএমএল সম্পর্কিত কোনও জ্ঞান থাকতে চাই না, তাই আমি তাদের কার্যকর করার জন্য তাদের আমাদের উইসিউইগ (সিকেইডিটর মডিউল দ্বারা প্রদত্ত সিকেডিডিটার) দেওয়ার ক্ষমতা দিতে চাই। যাইহোক, এখন হিসাবে, ডেটা ভেরিয়েবল হিসাবে সংরক্ষণ করে না। আমি কয়েকটি জায়গায় পড়েছি (কর, স্ট্যাকেক্সচেঞ্জ) যা আমাকে এরকম কিছু করার দরকার ছিল:

  $form['foo']['bar'] = array(
    '#type'     => 'text_format',
    '#title'    => 'Bar',
    '#definition' => 'Foo Bar',
    '#default_value' => variable_get('bar', ''),
    '#weight'   => 1,
    '#format' => 'filtered_html',
    '#required' => FALSE,
  ); 

এটি সিস্টেম_সেটিংস_ফর্ম ($ ফর্ম) এর সাথে বাক্সের বাইরে কাজ করে না। একটি var_dump একটি সংরক্ষণের পরে এটি দেখায়:

array (size=7)
  '#type' => string 'text_format' (length=11)
  '#title' => string 'Bar' (length=7)
  '#definition' => string 'Foo Bar' (length=74)
  '#default_value' => 
    array (size=2)
      'value' => string '' (length=0)
      'format' => string 'filtered_html' (length=9)
  '#weight' => int 1
  '#format' => string 'filtered_html' (length=9)
  '#required' => boolean false

এ থেকে, আপনি দেখতে পাবেন যে 'ফর্ম্যাট' সঠিকভাবে সংরক্ষণ করে, তবে 'মান' দেয় না। আমি কী মিস করছি?

এছাড়াও, যদি এটি করার আরও ভাল উপায় থাকে তবে দয়া করে জানান।

উত্তর:


28

নিম্নলিখিতগুলি আমার পক্ষে কাজ করেছিল; # ডিফল্ট_মূল্যটি একটি স্ট্রিংয়ের প্রত্যাশা করছে তবে পাঠ্য_ফর্ম্যাট ফর্ম উপাদানটি অ্যারে হিসাবে সংরক্ষণ করা হবে।

$barvalue = variable_get('bar', array('value' => '', 'format' => NULL));

$form['foo']['bar'] = array(
'#type'     => 'text_format',
'#title'    => 'Bar',
'#definition' => 'Foo Bar',
'#default_value' => $barvalue['value'],
'#weight'   => 1,
'#format' => $barvalue['format'],
'#required' => FALSE,
); 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.