logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल

#states का उपयोग hook_form_alter में

22/02/2025, by अज्ञात (सत्यापित नहीं)
मंच(फोरम्स)

नमस्ते। मैं Drupal 7 में फ़ील्ड निर्भरताओं को लागू करने के बारे में एक समस्या हल करने की कोशिश कर रहा हूँ। कई सवालों से यह स्पष्ट हो गया है कि 7वें Drupal में #states का उपयोग करना conditional fields के बजाय अधिक अनुकूल है। ऐसा लगता है कि इस मॉड्यूल में एक और समस्या multi_step मॉड्यूल के उपयोग के दौरान निर्भरता है।

कुल मिलाकर, मैंने समझ लिया है कि #states कैसे काम करता है। लेकिन मैंने केवल अपनी फॉर्म hook_form बनाने के समय इसे कैसे काम करता है, यह समझा है। लेकिन मेरा कार्य पहले से तैयार सामग्री जोड़ने के फॉर्म को फिर से बनाना है।

hook_form_ID_FORM_alter

मैं इसका उपयोग कर रहा हूँ। dsm($form); के माध्यम से ऐरे खोजता हूँ;
लेकिन मैं सही तरीके से निर्भरताएँ कैसे लिखनी हैं, यह नहीं समझ पा रहा हूँ।

मान लीजिए, मैंने बनाई गई फॉर्म में इसे इस तरह किया:

<?php $form['radio_type'] = array(
    
'#type' => 'radios',
    
'#options' => array(
      
'0'   => t('पॉपअप समूह प्रकट होता है'),
      
'1' => t('फील्ड टेक्स्ट सक्रिय नहीं है'),       '2'      => t('चेकबॉक्स गायब हो जाते हैं'),
    ),
    
'#title' => t('क्रिया चुनें')
  );
  
  
$form['grupa'] = array(
    
'#type' => 'fieldset',
    
'#title' => t('समूह'),
    
'#states' => array(
      
'visible' => array(
        
':input[name="radio_type"]' => array('value' => '0'),
      ),
    ),
  );
?>

 

hook_from_alter फ़ंक्शन में (अभी के लिए template में लिख रहा हूँ)
मैं कुछ ऐसा करने की कोशिश कर रहा हूँ:

<?phpfunction theme_form_zavedeniya_node_form_alter(&$form, &$form_state$form_id) {
   
dpm($form); 
   
$form['body']['und']['0']['value']['#states']  = array(
  
'invisible' => array(
    
':input[name="field_sity2"]' => array('value' => array('56'),),
),   );
}
?>

 

यानी, मैं ऐसा कर रहा हूँ कि जब field_sity2 (टर्म पर लिंक) में 56वां मान चुना जाता है, तो body फ़ील्ड गायब हो जाए।
संक्षेप में, कुछ भी काम नहीं कर रहा है। मैंने विभिन्न तरीकों से प्रयास किया, लेकिन ऐसा लगता है कि कभी भी सही नहीं हुआ। कृपया सलाह दें।

P.S. क्या आप यह भी सुझाव दे सकते हैं कि सामग्री बनाने के लिए बहु-चरणीय फॉर्म बनाने के लिए क्या उपयोग करें, जिसमें निर्भर फ़ील्ड हों। और आगे चलकर, सामग्री को संपादित करने के लिए, इसे चरणों के बजाय टैब के माध्यम से संपादित किया जा सके।