Form elem sorrend megváltoztatása

szt képe

Node beküldésekor van egy kitöltendő "Date From" mező, amihez egy "Befejező dátum mutatása" feliratú checkbox segítségével hozzá lehet adni a "Date To" mezőt is (ajaxosan).
Ez oké, de a formban a megjelenési sorrendjüket szeretném megváltoztatni.

Most így van:
-checkbox
-date from
-date to
Én így szeretném:
-date from
-checkbox
-date to

Ha a date_elements.inc fájlban átírnám a Weight értékét -20-ról 2.1-re, akkor jó lenne:

  1. $element['show_todate'] = array(
  2. '#title' => t('Show End Date'),
  3. '#type' => 'checkbox',
  4. '#default_value' => $show_todate,
  5. '#weight' => -20,
  6. '#access' => $field['settings']['todate'] == 'optional',
  7. '#prefix' => '<div class="date-float">',
  8. '#suffix' => '</div>',
  9. );

De persze szeretném nem-heckelős módon megoldani :)

A hook_form_FORM_ID_alter-ben csak "egyben" látom a Date field elemet, nem tudok belenyúlni, szóval az az érzésem, hogy ez nem jó irány. Vagy igen?

Melyik függvénnyel szokás ezt megváltoztatni drupalista módon?

Köszi előre is!

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
szantog képe

A date kimondottan szemét formalterezés szempontjából: http://szantogabor.com/hirek/date-mezo-alapertelmezett-szovegenek-cserej...

1
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

szt képe

Köszi, ez ismét rendkívül hasznos volt!
Ennek alapján a feladatomra a minimodul az alábbi:

datecomboweight.info:

  1. name = Date Combo Weight
  2. description = Custom weight settings for Date Combo (node/add/program)
  3. core = 7.x

datecomboweight.module:
  1. /**
  2.  * Implementation of hook_element_info_alter().
  3.  */
  4. function datecomboweight_element_info_alter(&$type) {
  5. if (isset($type['date_combo'])) {
  6. $type['date_combo']['#process'][] = 'datecomboweight_combo_element_process';
  7. }
  8. }
  9.  
  10. /**
  11.  * Modify default weight was set in date date_combo process
  12.  *
  13.  * @see date_combo_element_process($element, &$form_state, $form)
  14.  */
  15. function datecomboweight_combo_element_process($element, &$form_state, $form) {
  16. $element['value']['#weight'] = 1;
  17. $element['show_todate']['#weight'] = 2;
  18. $element['value2']['#weight'] = 3;
  19. return $element;
  20. }
1
0