ajax drupal autocomplete cck

ajax - ¿Es posible personalizar la referencia del nodo drupal y pasar su búsqueda y un argumento desde otro campo?



autocomplete cck (2)

Intento crear una forma personalizada en drupal, con un campo de referencia de nodo.

Me gustaría agregar un poco de funcionalidad adicional a la referencia de nodo autocompletada. Creé una vista, que contiene un argumento. Me gustaría poder pasar ese argumento desde un menú desplegable, así como el texto escrito en el guión de autocompletar.

¿Alguien sabe cómo comenzaría esto?

/* FIELD 1 - the drop down */ $sql = "SELECT nid, title FROM node where type=''resourcetype'' AND status =1 order by title "; $result = db_query($sql); $counter = 0 ; $options = array(); while ($data = db_fetch_array($result)) { // krumo ($data); $options[$data[nid] ] = $data[title] ; if ($counter ==0 ) {$df = $data[nid]; } $counter ++; } /* FIELD 2 - the node reference field */ $form[''sor''][''type''] = array( ''#type'' => ''select'', ''#title'' => t(''Resource type''), ''#required'' =>TRUE, ''#options'' => $options, ) ; $form[''sor''][''field_asor_sors''] = array( ''#type'' => ''textfield'', ''#title'' => t(''Add a SOR item to this job''), ''#autocomplete_path'' => ''nodereference/autocomplete/field_asor_sors'', ''#element_validate'' => array(''myelement_validate_is_valid_noderef''), ''#required'' =>TRUE, );

Muchas gracias

Mate


AFAIK no hay una manera fácil de hacer esto.

Quería hacer algo similar hace un tiempo (usando diferentes argumentos basados ​​en el contexto del nodo), pero me abstuve de hacerlo, ya que habría necesitado algunos cambios significativos en la lógica de devolución de llamada de autocompletar. Debería cambiar varias funciones de nodereferencia para agregar soporte para pasar un argumento a la devolución de llamada inicial nodereference_autocomplete() , pasando de allí a _nodereference_potential_references() , y finalmente a _nodereference_potential_references_views() , mientras se asegura de que los cambios no se rompan Algo más.

Sin embargo, si quieres probar, deberías echar un vistazo a los parches en este hilo , ya que también quieren hacer algo así y pueden contener algunos consejos / ejemplos útiles.

Una alternativa potencialmente más fácil podría ser intercambiar la devolución de llamada #autocomplete_path del campo nodereference con su propia versión personalizada que generaría el resultado, mientras agrega la lógica js a su menú desplegable para agregar un argumento adicional a esa ruta cuando la selección cambie.


Si ingresa en el formulario de configuración de campo nodereferencia y se desplaza hasta la parte inferior, hay un conjunto de campo (que puede colapsarse) que se titula ''Avanzado - Nodos a los que se puede hacer referencia (Vista)''. Puede usar esto para seleccionar una vista y hacer que esa vista sea la fuente de las opciones de nodereferencia sin escribir ningún código nuevo.