¿Cómo puedo usar jQuery 1.7 sin tener problemas en las páginas de administración?

11

¿Alguien está ejecutando con éxito jQuery 1.7? Estoy usando un componente jQuery en mis páginas que requiere jQuery 1.7 o posterior. Esta versión causa algunos efectos secundarios no deseados en la interfaz de usuario del administrador, como casillas de verificación marcadas que no revelan controles adicionales cuando están disponibles, o el widget de campo no está activo.

Me preguntaba si hay una solución que me permita trabajar fácilmente con jQuery 1.7.

Vi esta respuesta antes de preguntar. Según tengo entendido, hay 2 problemas separados: actualizar el src de jQuery a 1.7.x y actualizar el javascript utilizado por el administrador. Intenté usar la última instantánea de desarrollo de jquery_update y aplicar un parche , pero no resuelve los problemas mencionados anteriormente con la interfaz de usuario.

Artur
fuente
La política dicta que la actualización de las versiones de Drupal no debería romper nada que dependa de jQuery, por lo que la versión se mantiene constante.
mpdonadio
Técnicamente, este problema es un engaño de drupal.stackexchange.com/a/41394/809 También soy un poco parcial, pero la otra pregunta tiene una mejor respuesta.
ericduran

Respuestas:

11

Vería los consejos de Clive sobre cómo hacerlo manualmente aquí:

¿Cómo actualizo jQuery a la última versión que puedo descargar?

y agregue más inteligencia al script para no hacerlo en las páginas de administración, por ejemplo:

if (arg(0)=='admin') {
  return;
}

También tendría que hacer eso en node/#/addy node/#/editpáginas etc con el fin de no perturbar nada "núcleo" allí, o, si lo desea, buceo en el núcleo de Drupal y traer todo lo demás hasta 1.7 también.

Dependiendo de la versión de Drupal que esté ejecutando, esto también podría funcionar:

function YOURTHEME_preprocess_page(&$vars) {
  if (YOUR CONDITION HERE) {
    $scripts = drupal_add_js('PATH TO YOUR JQUERY FILE');
    unset($scripts['core']['PATH TO DRUPAL JQUERY FILE']);
    $variables['scripts'] = drupal_get_js('header', $scripts);
  }
}

donde puede configurar "SU CONDICIÓN AQUÍ" para que sean las páginas en las que desea el nuevo jquery, por ejemplo, arg(0)!='admin'etc.

Jimajamma
fuente
Gracias Jimajamma, no utilicé tu código, pero tu respuesta me puso en el camino correcto. Encontré un buen parche que agrega IU a la pantalla de configuración de jquery_update, que le permite usar diferentes versiones de jQuery para el administrador. drupal.org/node/1524944 . Funcionando bien hasta ahora.
Artur
2
Tenga en cuenta que ctools también ha tenido un historial de rupturas con las actualizaciones de jquery. Es posible que deba ajustar el parche para tener esto en cuenta.
mpdonadio
Gracias por señalar esto. ¿Tienes una idea de cuál sería la mejor manera de probar eso?
Artur
3
+1 Una manera simple y agradable de obtener una lista de todas las páginas de administración que no tienen 'admin' en la URL es:$pages = module_invoke_all('admin_paths');
Clive
1
@Clive, ¿esto atrapa las URL de ctools AJAX? ¿Como cuando usas un widget de ctools en una página "normal"?
mpdonadio
2

jQuery Update ahora tiene la capacidad de habilitar diferentes versiones de jQuery para el front-end y el back-end. Descargue la última versión de desarrollo y estará listo: 1.5 en el back-end, por lo que funciona con la interfaz de usuario de Views y 1.7 o 1.8 en la interfaz, para obtener una bondad adicional de jQuery.

Renee
fuente