Multi campo de selección de alojamiento Drupal
He retocado el parche de arriba para hacer más agradable para el código, junto con la adición de comentarios. Creo que necesita un poco de discusión que se tenía acerca de cómo manejar múltiples selecciona embargo, debido a que en el primer parche que sólo devuelve cierto si los dos conjuntos coinciden exactamente. Donde como mi parche volverá cierto siempre y cuando los valores dados en #states se seleccionan en el cuadro de selección, incluso si hay valores adicionales.
Así por ejemplo, si la estructura de mi forma se parece a esto
y en mi cuadro de selección que tengo "True' y 'falso' tanto recogió entonces mi parche se evalúa como verdadera. Me pregunto si hay no tiene que ser una especie de llave extra en la API de estado para indicarle que haga exacta o inclusiva comprobación, aunque creo que ya es otro tema para que en algún lugar.
¿Cómo es en este momento creo que este parche al menos soluciona un problema actual y la limitación de los Estados API.
Antoine Vigneau Atribución de crédito: Antoine Vigneau comentó 10 julio de 2013 a 13:23
Me despierto este hilo porque estoy experimentando este problema en 7,21.
Quiero tener un selector #states a juego todo elemento de selección de un campo de valor múltiple. Mi campo es una referencia de entidad y el widget es una lista Selecciona múltiple. Pero al final, lo que normalmente podría seleccionar todos estos elementos usando: valores de campo # dependee de tipo .Form-seleccionar seleccione. Espero que los reacciona depende de todos los elementos seleccionados de la dependee, de hecho, que reacciona a nada (siempre muestran).
Lo único que funciona es el campo-dependee valores #-tipo-.Form seleccionar selecto: en primer lugar, pero sólo funciona para el primer elemento de selección.
Aquí está mi declaración #states en un form_alter (está en un formulario de edición de nodo):
El dependiente debe reaccionar a varios valores del dependee, por lo tanto, la matriz de 'valor' múltiple.
He intentado otro tipo de selector con el nombre también, pero el atributo de nombre tiene esta estructura: name_field_dependee [und] [0] [target_id], así que traté de selección [name = "name_field_dependee [] [] []"]. doen't trabajo. He aplicado el parche # 19 también, pero la comparación no se detectó como una matriz.
Extracción de la etiqueta de novato, porque creo que no hay ninguna tarea de novatos que quedan pendientes.
He revisado manualmente el parche. Lo único que se me ocurre para mejorar este parche sería volver FALSO por defecto, iterar sobre los valores y devolver TRUE si todos ellos existen. Además de eso nitpick, el parche funciona como un encanto y la comisión de este parche podría desbloquear # 2635664: Hacer que el ocultar / mostrar de otro trabajo de campo .. yo creo que para ello que un cambio en la lógica no debería contener la solución de este problema.
Aterrizar este parche desbloquea # 2635664: Hacer que el ocultar / mostrar de otro trabajo de campo .. por lo que he añadido la etiqueta bloqueador proyecto contribuyó.
legolasbo Atribución de crédito: legolasbo como voluntario comentó 28 de diciembre de 2015 a las 20:32
3 archivos se oculta / muestra / borrados
PASADA: [[SimpleTest]]: [PHP 5.4 MySQL] 95704 pase (es). Ver
Para tomar esta casa realmente he escondido algunos archivos irrelevantes e hice algunas capturas de pantalla antes / después.
legolasbo Atribución de crédito: legolasbo como voluntario comentó 28 de diciembre de 2015 20:33
3 archivos se oculta / muestra / borrados
ERROR: [[SimpleTest]]: [PHP MySQL 5.4] No se puede aplicar el parche estados de selección múltiple-fix-1149078-22.patch. No es posible aplicar el parche. Consulte el registro en el enlace de datos para obtener más información. Ver
PASADA: [[SimpleTest]]: [PHP 5.4 MySQL] 77600 pase (es). Ver
PASADA: [[SimpleTest]]: [PHP 5.4 MySQL] 92253 pase (es). Ver
alexpott Atribución de crédito: alexpott en el Capítulo Tres comentó 4 de enero de 2016 a 16:44
Revisado probado por la comunidad
Esto realmente me hace desear que teníamos pruebas de interfaz.
También esto falla nuestra validación eslint con los siguientes errores.
Después de leer a través # 735528: FAPI #states: Fijar los condicionales para permitir OR y XOR construcciones llegué a la conclusión de que este cambio en el # 45 era probable que no sean necesarios y no es relevante para la funcionalidad. Esto significa que el error eslint se introdujo sin ninguna razón y la línea en cuestión no debe ser eliminado, pero volvió a su estado original.
Pongo mi teoría a prueba (manual) y la conclusión de que el cambio a la línea en cuestión de hecho puede ser revertida sin romper la funcionalidad añadida en el # 45. Adjunto encontrará un nuevo parche que revierte la línea en cuestión de nuevo a la forma en que está en la mente.
neoaptt Atribución de crédito: neoaptt como voluntario comentado 2 de febrero de 2016 a 23:03
Hay un problema si pasa valores enteros para ser comparadas entre sí.
Debido a que el valor por defecto de multiselects es nulo, el reevaluar pasa por encima de ella. Pensando que es nulo el mismo valor como nulo.
Traté de llegar a una solución, pero lo mejor que puedo hacer es pasar un valor por defecto. Eso no es una solución sea cualquier medio.
EDIT: fijo, omita las comprobaciones nulos.
Drupal 8.0.6 fue lanzado el 6 de abril y es la liberación de corrección de errores final para la serie 8.0.x Drupal. Drupal 8.0.x no recibirá ningún desarrollo adicional aparte de parches de seguridad. Drupal 8.1.0-RC1 está disponible y sitios debe prepararse para actualizar a 8.1.0.
Los informes de fallos deben ser dirigidos contra la rama 8.1.x-dev de ahora en adelante, y el nuevo desarrollo o cambios perjudiciales deben ser dirigidos contra la rama 8.2.x-dev. Para obtener más información, consulte el calendario de la versión de Drupal 8 menores y los cambios permitidos durante el ciclo de liberación de Drupal 8.
Ahora tenemos una base de prueba Javascript, por lo que añadir las 'necesidades tests' etiqueta.
sukanya.ramakrishnan Atribución de crédito: sukanya.ramakrishnan comentó 25 de de mayo de 2016 a 21:29
Se ha aplicado una solución al núcleo para este problema?
deranga Atribución de crédito: deranga comentó 12 de julio de 2016 a 16:28
parche aplicado desde el comentario # 52 a states.js en Drupal 7.50 y esto funciona como se espera ahora para multivalor campo de selección.
Será este parche siempre puede rodar en una actualización de Drupal 7?
deranga Atribución de crédito: deranga comentó 12 de julio de 2016 a 16:25
Disculpas cambiados accidentalmente número de versión para su emisión.
legolasbo Atribución de crédito: legolasbo como voluntario comentó 12 de julio de 2016 a 20:28
Drupal 8.1.9 fue lanzado el 7 de septiembre y es la liberación de corrección de errores final para la serie 8.1.x Drupal. Drupal 8.1.x no recibirá ningún desarrollo adicional aparte de parches de seguridad. Drupal 8.2.0-RC1 está disponible y sitios debe preparar la actualización a 8.2.0.
Los informes de fallos deben ser dirigidos contra la rama 8.2.x-dev de ahora en adelante, y el nuevo desarrollo o cambios perjudiciales deben ser dirigidos contra la rama 8.3.x-dev. Para obtener más información, consulte el calendario de la versión de Drupal 8 menores y los cambios permitidos durante el ciclo de liberación de Drupal 8.
sukanya.ramakrishnan Atribución de crédito: sukanya.ramakrishnan comentó 18 de de enero de 2017 a 06:55
Puede esta cuestión será objeto de nuevo? He intentado aplicar el parche, pero no funciona para mí. Creo que voy mal con la sintaxis de la propiedad estados. Por favor alguien puede acabar con la sintaxis correcta para un campo de selección múltiple para que yo pueda volver a intentarlo. Básicamente necesito un campo a ser visible sobre la base de múltiples valores elegidos en un campo de selección (o condición)
Estoy trabajando en pruebas.
Hay algunos cambios a realizar para # 54.
propiedad múltiple no se debe utilizar el valor predeterminado definido nula. Valor nulo por defecto es un problema para la propiedad #multiple sino también #size propiedad.
Ambos son específicos a la lista seleccione pero debemos encontrar otra solución más genérica.
Es mejor utilizar $ this-> reevaluar () al final de states.Dependent.prototype.initializeDependee, lo que obliga a analizar las condiciones Unidos y solicitar eventos.
GoZ crédito Reconocimiento: GoZ en el Commerce Guys comentó 19 de de enero de 2017 a 16:33
2 archivos se oculta / muestra / borrados
Por último, no estoy seguro de que este tema es el lugar para añadir pruebas. Otro tema en curso está cubriendo pruebas #states # 2702233: Añadir Javascript para pruebas #states del Formulario API por lo que debemos añadir pruebas #multiple allí.
Siguiente parche soluciona problema nulo por defecto tanto para #multiple y #size atributo cuando compruebo en mi navegador, pero visones parece no estar de acuerdo con eso. Muy extraño, puede ser que deberíamos investigar en cuestión específica.
sukanya.ramakrishnan Atribución de crédito: sukanya.ramakrishnan comentó 25 de de enero de 2017 a cuarenta y un minutos después de la una
Fue finalmente capaz de conseguir el funcionamiento de parche. prueba manual está muy bien para mí.
sukanya.ramakrishnan Atribución de crédito: sukanya.ramakrishnan comentó 25 de de enero de 2017 a 01:44
Atribución de gotas de crédito: gota comentó 25 de de enero de 2017 a 20:59
La siguiente función devuelve cuando se cumple la condición. No necesitamos un bucle sobre cada elemento.
25 de de enero de 2017 a 20:59
Drupal 8.2.6 fue lanzado el 1 de febrero 2017 y es la liberación completa de corrección de errores final para la serie 8.2.x Drupal. Drupal 8.2.x no recibirá ningún desarrollo adicional aparte de correcciones críticas y de seguridad. Los sitios deben prepararse para actualizar a 8.3.0, el 5 de abril de 2017. (Drupal 8.3.0-alfa1 está disponible para la prueba.)
Los informes de fallos deben ser dirigidos contra la rama 8.3.x-dev de ahora en adelante, y el nuevo desarrollo o cambios perjudiciales deben ser dirigidos contra la rama 8.4.x-dev. Para obtener más información, consulte el calendario de la versión de Drupal 8 menores y los cambios permitidos durante el ciclo de liberación de Drupal 8.
leisurman Atribución de crédito: leisurman comentó 9 de marzo de 2017 a 17:32
He probado el parche 52 y 69, pero su aún no funciona
Pavan B S Reconocimiento de crédito: Pavan B S al Valuebound comentó 9 de marzo de 2017 a 17:57
Se ha aplicado el parche # 69 y se fija manualmente el error estándar de codificación "Línea está excediendo 80 caracteres".
9 de marzo de 2017 a 18:12
sukanya.ramakrishnan Atribución de crédito: sukanya.ramakrishnan comentó 9 de marzo de 2017 a 18:13
@leisurman, me encontré con que tenía para borrar la caché del navegador, además de drush cr conseguir este trabajo. raro, pero vale la pena darle una oportunidad!
leisurman Atribución de crédito: leisurman comentó 9 de marzo de 2017 a 18:51
@ Sukanya.ramakrishnan ¿Qué hizo el parche se utiliza # 75. No he probado que uno.
leisurman Atribución de crédito: leisurman comentó 9 de marzo de 2017 a 19:25
Me aclaré la caché del navegador y Drupal. Patch # 75 no funcionó para mí. Me sale este aviso. php advertencia Advertencia: Invalid argument supplied for foreach () en conditional_fields_states_handler_select_multiple () (línea 29 de /var/www/html/d818/modules/conditional_fields/conditional_fields.states.
Estoy usando la forma de gancho altera, pero también probé el módulo de campos condicional, esto es su problema:
https://www.drupal.org/node/2857718
Este módulo funciona en Drupal 7 cuando el campo se dependee seleccionar un múltiplo
sukanya.ramakrishnan Atribución de crédito: sukanya.ramakrishnan comentó 9 de marzo de 2017 a 19:48
@leisurman, utilicé la de 69. yo no probamos cualquier otro módulo. ¿Es U de que su sintaxis es correcta? Tuve problemas con mi sintaxis y después de averiguar la sintaxis correcta, he actualizado la descripción de este tema para mostrar la correcta (La descripción faltaba algo antes, no puedo recuerdo). Por favor, compruebe su sintaxis contra el ejemplo en la descripción de este problema.