martes, 13 de marzo de 2012

Form, date_select, Modalframe, clone, bind, DOM


  • En Drupal 6:
    • En una función de formulario:
      • tipo 'item' permite mostrar un valor.
      • tipo 'date' permite mostrar una fecha. El valor se debe indicar como un array('year'=>2012, 'month'=>3, 'day'=>13).
        En caso de que se calcule a partir de una fecha mydate, es conveniente usar date('Y', mydate),  date('n', mydate), y date('j', mydate) para el año mes y día, respectivamente.
      • '#after_build'=>array('mymodule_myform_check') permite que mymodule_myform_check ($form_element, &$form_state) devuelva una versión corregida del $form_element
      • Usar tipo 'date' tiene el inconveniente de no setear correctamente un valor en blanco (le asigna una fecha de 1969, el primer día de la función date). Es mejor usar el tipo 'date_select', usando '#date_format' para indicar el orden de los selects. (Date API form elements)
    • usando modalframe, en la función que crea el form, usar modalframe_child_js() previene que la salida se muestre enmarcada por el cms. En lugar de eso se presenta tal cual, lo cual permite mostrarla en el dialog.

  • En jQuery:
    • x.clone() permite obtener un clon de x y x.clone(true) indica que el clon tenga asociado también las funciones que se haya asociado a x.
    • x.bind(e, f) permite asociar la función f a x, para que ocurra cuando e se produzca sobre x.
    • y.delegate(x, e, f) permite asociar la función f a y, para que ocurra cuando e se produzca sobre x. Eso permite que nuevas instancias de x dentro de y tengan también la asociación.
    • x.live(e, f) es equivalente a document.delegate(x, e, f)
    • x.append(y) permite agregar y al final de x
    • x.prepend(y) permite agregar y al inicio de x
    • x.before(y) permite poner a x inmediatamente antes de y
    • x.after(y) permite poner a x inmediatamente después de y
    • x.appendTo(y) permite poner x al final de y
    • x.prependTo(y) permite poner x al inicio de y
    • $('<h2 class="myclass">Hello</h2>') es equivalente a $('<h2></h2>', {text: 'Hello', class: 'myclass'})