হুক_ফর্ম_ল্টার () এ # স্টেট ব্যবহার করে একটি সিসি ফিল্ডগ্রুপ গোপন করবেন?


9

আমার একটি কাস্টম মডিউল রয়েছে এবং যখন কোনও আইটেম ড্রপ-ডাউন নির্বাচনী তালিকায় নির্বাচিত হয় তখন আমি "# স্টেটস" ব্যবহার করে সিসি ফিল্ডগ্রুপটি আড়াল করার চেষ্টা করছি।

আমি হুক_ফর্ম_ল্টার () এর মধ্যে থেকে রাষ্ট্রগুলি ব্যবহার করার চেষ্টা করেছি, এরকম:

$form['group_mygroup']['#states']['invisible'] = array(
  ':input[name="field_trigger[' . LANGUAGE_NONE. ']"]' => array( 'value' => 'hide' ),
);

এটি কিছুই করতে পারে বলে মনে হচ্ছে না।

আমি http://proofgroup.com/blog/2008/dec/modifying_cck_fieldgroups_hook_form_alter এর মতো বিভিন্ন সাইট অনুযায়ী আমার মডিউলের ওজন পরিবর্তন করতে দেখেছি ।

কিন্তু এখনও কোন লাভ হয়নি। আমি ফিল্ডগ্রুপের মধ্যে সমস্ত ফর্ম উপাদানগুলি রাজ্যগুলি ব্যবহার করে গোপন করতে পারি তবে ফিল্ড গ্রুপটি নয়। কারও কি কোন ধারণা আছে?


ভবিষ্যতের দর্শকদের জন্য: @ অ্যান্ড্রি-ম্যালিশ 'উত্তরটি সঠিক।
আল্ট্রাসোবিব

উত্তর:


11
/ **
 * হুক_ফিল্ড_গ্রুপ_বিল্ড_প্রিয়_রেেন্ডার_াল্টার কার্যকর করে।
 * /
ফাংশন মায়োমডিউল_ফিল্ড_গ্রুপ_বিল্ড_প্রিপরেেন্ডার_াল্টার (& $ উপাদান) {
  যদি (আইসেট ($ উপাদান ['# ফর্ম_আইডি'])) {
    যদি ($ উপাদান ['# ফর্ম_আইডি'] == 'মায়োনিডেটাইপ_নোড_ফর্ম') {
      $ উপাদান ['group_myfieldgroup'] ['# রাজ্য'] = অ্যারে (
        'দৃশ্যমান' => অ্যারে (
          ': ইনপুট [নাম = "ফিল্ড_মিফিল্ড [und]"]' => অ্যারে ('পরীক্ষিত' => সত্য),
        )
      );
      $ উপাদান ['গোষ্ঠী_মিফিল্ডগ্রুপ'] ['# আইডি'] = 'গোষ্ঠী_মিফিল্ডগ্রুপ';
    }
  }
}

আমি আমার ক্ষেত্রের গোষ্ঠীটি গোপন করতে এই হুক ব্যবহার করি। চেকবক্সটি field_myfieldচেক করা থাকলেই এটি দৃশ্যমান ।

এই হুকটিতে $elementপরিবর্তনশীল অন্বেষণ করতে আমি ব্যবহার করেছি

die('<pre>'.print_r($element, 1).'</pre>');

পরিবর্তে dpm()

আশা করি এটি সাহায্য করেছে :)


1

ক্ষেত্রগোষ্ঠীগুলির মূলটিতে সংজ্ঞা দেওয়া হয় না $form। মনে হচ্ছে আপনার ব্যবহার করা উচিত নয় $form['group_mygroup'], তবে $form['#fieldgroups']['group_mygroup']


0

আপনি তাকান করতে পারেন উদাহরণস্বরূপ মডিউল দেখতে কিভাবে তারা fieldsets আড়াল । এর ভিত্তিতে আমার ধারণা আপনার কোডটি হওয়া উচিত:

$form['group_mygroup']['#states'] = array(
  'invisible' => array(
    ':input[name="field_trigger"]' => array('value' => 'hide'),
  ),
),

2
আপনার পরামর্শের জন্য ধন্যবাদ. যদিও এটি আমার কোডের মতো একই তবে কেবল কিছুটা আলাদা ঘোষণা করা হয়েছে। আমি যদি এফএপিআই ব্যবহার করে ফর্ম এবং ফিল্ডসেটটি ঘোষণা করি তবে ফিল্ডসেটগুলি আড়াল করতে পারি। আমার সমস্যাটি হুক_ফর্ম_াল্টার () এর মধ্যে সিসিके ফিল্ড গ্রুপগুলির সাথে কাজ করে না।
দ্য পিয়ারসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.