logo

Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll

#states-ի օգտագործումը hook_form_alter-ում

22/02/2025, by Անանուն (չի ստուգվել)

Բարև ձեզ։ Փորձում եմ լուծել դաշտերի կախվածության հարցը Drupal 7-ում։ Շատ հարցերից պարզ դարձավ, որ 7-րդ Drupal-ում ավելի լավ է օգտագործել #states, փոխարենը պայմանական դաշտերի։ Ինչպես պարզվեց, այս մոդուլի մեկ այլ խնդիրն է բազմաքայլ մոդուլի օգտագործման ժամանակ կախվածության խնդիրը։

Ընդհանուր առմամբ, ինչպես է աշխատում #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' => '56'),
  ),
);
}
?>

 

Այդպիսով, փորձում եմ անել այնպես, որ field_sity2 դաշտում (տերմինի հղում) 56-րդ արժեքը ընտրելու դեպքում body դաշտը անհետանա։
Ընդհանուր առմամբ, ոչինչ չի աշխատում։ Փորձել եմ տարբեր կերպ, բայց կարծես ոչ մի անգամ չեմ կարողացել ճիշտ անել։ Խնդրում եմ խորհուրդ։

P.S. Հնարավոր է, որ նաև կարողանաք խորհուրդ տալ, թե ինչ օգտագործել նյութի ստեղծման բազմաքայլ ձևեր ստեղծելու համար, կախված դաշտերով։ Եվ որպեսզի հետագայում նյութը խմբագրելու համար, այն հնարավոր լինի խմբագրել թերթիկների միջոցով, այլ ոչ թե քայլերով։