Hola a todos.
Tengo una consulta, a ver si me ayudan a ordenarme.
Resulta que tengo un tipo de contenido 'articulo' con un campo 'referencia de termino' el cual puedo escoger 2 elementos, por lo que se habilita el checkbox y muestra una lista del vocabulario.
Me gustaría ordenarlo en forma horizontal, mas compacta, por lo que ya tengo el css que permite hacerlo, un 'display:inline-block' conectado a ese campo.
Sin embargo, por lo que he visto, es necesario hacer un 'hook' al 'node-form' que permita reconfigurar el formulario de edición. Aquí me pierdo (segun lo que sale aca: http://www.lightrains.com/blog/theming-node-forms-drupal-7) ya que en el subtheme de omega es un poco distinto el orden y ademas aun no se como conectarle el archivo css que defina los estilos del formulario.
Añado las imágenes.
| Attachment | Size |
|---|---|
| articulo_p1.png | 23.1 KB |
| articulo_p2.png | 68.11 KB |
| node-form.odt | 109.07 KB |

Comments
.
Para poner un inline-block en un css, no necesitas nada de lo que aparece en ese tutorial. Ese tutorial es para modificación del html de un formulario a través de un módulo custom.(me parece que se puede hacer exactamente lo mismo desde el theme, en caso de ser necesario)
Un subtheme de Omega tiene hojas de estilo. Dependiendo de como estás construyendo tu theme depende dónde vaya ese estilo.(nunca modificar las hojas de estilo originales del theme sino las del subtheme)
Creo "al ojo" que el estilo debería ir en tu hoja "wide" o "normal" considerando que, deberías hacer el subtheme "mobile first" y que el "inline-block" va a hacer que se vea mal en pantallas estrechas (por lo que se debería ver igual el listado hacia abajo en "narrow" y "default")
Igual trata de que el estilo no afecte a todos los form-item existentes. Sería mejor algo así como:
.node-articulo-form .form-item
...y creo que de hecho debería ser aún más específico que eso...
Lo último, para hacer un subtheme con Omega y cachar lo básico, hay un tutorial de Omega publicado en drupal.org que te podría servir.
Si no cachai de media queries, sería bueno que buscaras un tutorial para entender el concepto.
suerte!
Gracias!
Si, respecto al tutorial me parecía raro pero fue lo único que explicaba como modificar el node-form para ajustarlo a una edicición más amigable, creo que de todas formas lo trabajaré mas adelante ya que se ve bastante interesante la intervención del theme.
Ahora, respecto al estilo creo que no será necesario ajustar el node-form a medios portátiles ya que es para publicar contenido y veo poco practico publicar desde un telefono, aunque de todas maneras seguiré el consejo para practicar.
Ahora último he estado aprendiendo CSS con el libro Beginning CSS3 y voy un poco antes de las media query, no sabía que podían ser útiles tan pronto así que seguiré estudiando el tema.
Respecto al tutorial omega, comenzaré a verlo más en serio, ya que solo he visto sobre la creación de un subtheme genérico y no más que eso además de las recomendaciones de diseño responsive.
Gracias nuevamente por los concejos, continuaré experimientando ;)
F:+56 9 82142267
Pensamos el mundo que soñamos
Creemos en lo que pensamos
Hacemos lo que creemos
Vivimos en el mundo que construimos.
----------------EL Jerbo Pigmeo--------------
Hola a todos
Tengo un problema y tal vez alguno de ustedes me pueda ayudar. He creado un tipo de contenido Prestamo, que tiene un campo usuario y un campo libro, lo que necesito es que no se repita la informacion usuario-libro, es decir, que no se pueda adicionar dos veces un usuario con el mismo libro, no se si me explico bien.
Si tienen alguna sugerencia para ayudarme se los voy a agradecer!!!!. Saludossss
.
Entendí que si ya tengo creado un préstamo con el usuario UA y el libro LA, no debería poder crear otro préstamo (otro nodo) con el mismo usuario y libro. ¿Es así?
Así es.....
Es exactamente así, sabes como puedo validar eso???
.
Desconozco si existe algún módulo contribuido capaz de hacer eso, quizás podrías mirar Rules Forms Support, pero dudo mucho, creo que esto validará los campos con respecto a los demás del mismo formulario/entidad. En cambio, la validación que requieres tiene que ver con respecto a lo que ya esta ingresado.
Personalmente desarrollaría un módulo, en el crear un form_alter para adjuntar un #validate
Te adjunto un ejemplo de como podría ser
<?php
/*
* Implements hook_form_alter().
*/
function mi_modulo_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'CONTENT_TYPE_node_form') {
$form['#validate'][] = 'mi_modulo_validar_usuario_libro';
}
}
// Aquí hacemos la validación
function mi_modulo_validar_usuario_libro($form, &$form_state) {
$values = $form_state['values'];
// Debemos capturar los valores.
// Cada field puede tener una estructura distinta, puede terminar en value,
// tid (termino), uid (user), nid (nodo), etc... puedes hacer un print_r($values) y
// ver la estructura.
$usuario = $values['field_NOMBRE_CAMPO_USUARIO'][LANGUAGE_NONE][0]['value'];
$libro = $values['field_NOMBRE_CAMPO_LIBRO'][LANGUAGE_NONE][0]['value'];
$nid = isset($values['nid']) ? $values['nid'] : NULL;
// Validamos si existe en otro contenido.
if (mi_modulo_usuario_libro_exists($usuario, $libro, $nid)) {
// Elige el mensaje de error.
form_set_error('field_NOMBRE_CAMPO_USUARIO', 'El usuario ya esta relacionado al libro en otro prestamo');
}
}
/**
* Retorna TRUE o FALSE, dependiendo si encuentra, al menos, un registro.
*/
function mi_modulo_usuario_libro_exists($usuario, $libro, $nid) {
// Aquí puedes hacer la consulta a la base de datos, en donde consulta por los
// nodos que tenga los datos de usuario y libro simultáneamente. Si el nid es NULL
// Entonces que la consulta lo haga con respecto a todos los nodos existentes
// del tipo. En caso contrario, debes descartar el nid de la consulta.
// Ejemplo usando EntityFieldQuery().
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'CONTENT_TYPE') // Aquí colocas el tipo de contenido.
->fieldCondition('field_NOMBRE_CAMPO_USUARIO', 'value', $usuario, '=')
->fieldCondition('field_NOMBRE_CAMPO_LIBRO', 'value', $libro, '=');
if (!is_null($nid)) {
// Tiene que ser distinto al que estamos editando.
$query->propertyCondition('nid', $nid, '!=');
}
$count = $query->count()->execute();
// Si encontro más de uno entonces existe
if ($count > 0) {
return TRUE;
}
// En caso contrario no existe otro préstamo con estos datos.
return FALSE;
}
?>
No lo he probado, pero debería dar la base para que funcione.
Saludos!
preguntas distintas en posts distintos
Hola ylrondon,
Porfa, en general si vas a preguntar algo que no tiene nada que ver con el problema del autor del post , mejor crea un post nuevo.
Eso ayuda a que la información del grupo esté más ordenada y le pueda servir a más personas ;)
saludos
Unique fields
Quizás te sirva este: https://www.drupal.org/project/unique_field.
slds
Sobre Prestamo
Para eso tienes que crear un campo de referencia a termino o referencia a usuario que tenga como límite 1 en cantidad.
F:+56 9 82142267
Pensamos el mundo que soñamos
Creemos en lo que pensamos
Hacemos lo que creemos
Vivimos en el mundo que construimos.
----------------EL Jerbo Pigmeo--------------
Gracias a todos!!!
Mochas gracias a los que se han tomado un tiempo para ayudarme, ya resolvi el problema con el modulo rules, es que soy nueva en el uso de drupal y solo tengo los conocimientos muy basicos, los demas los voy cogiendo con la practica. Saludos a todos y nuevamente muchas gracias..
Hola ylrondon, He creado un
Hola ylrondon,
He creado un tipo de contenido SOLICITUD, que tiene un campo FERIA, quiero controlar que si el USUARIO tiene creada una SOLICITUD a la una FERIA no le permita crear otra SOLICITUD a la misma feria, es decir, el usuario no puede crear dos veces la solicitud con la misma feria, no se si me explico bien. Cabe mencionar que en el formulario la feria es un campo referencia a un termino.
Me podrias ayudar por favor, explicándome como resolviste mediante el modulo rules. Que regla aplicaste???.
Gracias