Estoy intentando crear un formulario de nodo para un tipo personalizado. Tengo habilitados los grupos orgánicos y la taxonomía, pero quiero que sus elementos salgan en un orden no estándar. Así que implementé hook_form_alter
y configuré la propiedad #weight
del subarreglo og_nodeapi
en -1000, pero todavía va después de la taxonomía y el menú. Incluso intenté cambiar el subcampo por un fieldset (para forzarlo a que se renderice realmente), pero no por los dados. También probé el establecimiento¿Por qué la propiedad '#weight' a veces no tiene ningún efecto en los formularios de Drupal?
$form['taxonomy']['#weight'] = 1000
(tengo dos vocabs por lo que ya está siendo presentado como un conjunto de campos), pero que no funcionó bien.
Configuré el peso de mi módulo muy alto y confirmé en la tabla del sistema que efectivamente es el módulo más alto en el sitio, así que me quedé sin ideas. ¿Alguna sugerencia?
Actualización:
Aunque no estoy muy seguro de cómo, me las arreglé para obtener el conjunto de campos taxonomía a hundirse por debajo de todo lo demás, pero ahora tengo un problema relacionado que es de esperar que sea más manejable de entender. Dentro del conjunto de campos taxonomía, tengo dos elementos (a etiquetas y una selección múltiple), y yo quería añadir algunas instrucciones en hook_form_alter de la siguiente manera:
$form['taxonomy']['instructions'] = array(
'#value' => "These are the instructions",
'#weight' => -1,
);
lo has adivinado, esto parece después los términos insertados por el módulo de taxonomía. Sin embargo, si cambio a un conjunto de campos:
$form['taxonomy']['instructions'] = array(
'#type' => 'fieldset', // <-- here
'#title' => 'Instructions', // <-- and here for good measure
'#value' => "These are the instructions",
'#weight' => -1,
);
entonces mágicamente flota en la superficie como lo que pretendía. También probé textarea (esto también funcionó) y explícitamente diciendo markup (esto no fue así).
Básicamente, cambiar el tipo de "marcado" (el IIRC predeterminado) a "fieldset" tiene el efecto de no seguir ignorando su peso.
¿Está tratando de alterar el orden en el formulario o en la página representada? No creo que hook form alter lo cambie para ambos. –
Solo en el formulario. –
Actualicé mi respuesta a continuación, agregando otra razón posible cuando se ejecuta con el módulo CCK instalado. –