saludos estoy desarrollando un modulo, en dicho modulo creo un tipo de contenido y determinados campos en el archivo install, uno de esos campos es un campo datetime, a continuación el código que tengo desarrollado en el hook_ ... installed_instances() :
'field_fecha' => array(
'field_name' => 'field_fecha',
'label' => $t('Fecha del Proyecto'),
'description' => $t('Indique la fecha de inicio del proyecto'),
'required' => TRUE,
'type' => 'datetime',
'widget' => array(
'type' => 'date_popup',
//desde aca mi dolor de cabeza :)
'settings' => array(
'date_year_range' => '-10:+0',
'date_format' => 'Y-m-d',
),
'default_value' => date('Y-m-d'),
),
'states' => array(
'invisible' => array(
':input[name="field[settings][granularity][minute]"]' => array('checked' => FALSE),
),
),
),
No se si después del comentario ("mi dolor de cabeza"), la forma en la que desarrollo el código es la correcta, revise la api y el modulo date para ver si observa otra visión pero sigo sin lograr algo.
¿Que quiero lograr?
quiero tener el campo pero sin la opción de time, por lo general esto lo podría lograr tan solo desactivandolo por la interfaz pero quiero desarrollar ese código que por defecto traiga la hora y minutos desactivada, permitiendome el trabajar solo con el campo fecha y el widget date_popup, saludos y agradecido
| Attachment | Size |
|---|---|
| Captura de pantalla de 2014-07-15 17:02:45.png | 4.83 KB |
| Captura de pantalla de 2014-07-15 17:02:50.png | 4.65 KB |
Comments
Yo nunca he intentado crear
Yo nunca he intentado crear campos desde ese hook_installed_instances. No lo había visto. Lo sacaste del "examples" module?
Me parece que es más sencillo utilizar features para eso. Creas tu content type desde la interfaz. Lo configuras como quieras. Lo exportas a un feature que ya va a traer el código como lo quieres.
También, cuando pongas código, intenta formatearlo un poco mejor porque así es muy difícil de leer. Lee las instrucciones debajo de "input format". Por ejemplo, el código PHP se puede ver así:
<?php$arr = array('una llave' => 'un valor');
foreach ($arr as $value) {
echo $value;
}
?>
Coincido con jackbravo
Perdón que me meta donde nadie me habla, pero coincido con Joaquín. A mí me ha resultado muy fácil hacer los tipos de contenido y configurar sus fields y todo lo referente al content type y luego crear un feature para exportar toda esa información en forma de módulo. Tomas ese módulo, lo pones en otro sitio de Drupal y al habilitarlo (normal, como habilitarías cualquier otro módulo) ya tienes tu content type con todos sus fields, sin tener que preocuparte de hacerlo a mano, como lo estás haciendo actualmente.
A menos que exista una razón especial para hacerlo, creo que lo más sencillo es features, en verdad es una cosa de un dos por tres.
Saludos.
resuelto el tema creando un campo datetime
saludos, bueno el modulo lo desarrollo un compañero del trabajo y por lo tanto tenia que mejorarlo un poco.
en lo personal me gusta aprender código :) aunque para proyectos de poco tiempo no descarto la posibilidad de implementarlo, gracias por la sugerencia Elias.
para poder resolver mi problema me guié por el modulo date, tenia un conocimiento vago sobre el como implementar ambos hook y de alli mi dificultad.
Jack creo que si esta disponible en el modulo de ejemplos https://api.drupal.org/api/examples/node_example%21node_example.module/function/_node_example_installed_instances/7
la solución que le di fue que en el hook_installed_fields() agregue los campos que necesitaba los cuales eran día, mes y año y por el hook_installed_instances() establezco el tipo de widget a usar :)
saludos y muchas gracias por sus respuestas.