Skip to Content

develCuy's blog

by Fernando Paredes García


Ocultando en caliente un módulo conflictivo en Drupal 6.x

Algunas veces necesitamos ocultar un módulo para evitar algunos conflictos. A continuación hay un caso específico:

Usar jQuery UI 1.8 en una página de administración específica

  • El módulo jquery_ui está instalado y provee la versión jQuery UI 1.7
  • jQuery UI 1.8 es necesario en la página de administración: "admin/build/custompage"

Problema

Si el módulo jquery_ui está instalado, el plugin de Context: "reaction block" carga jquery_ui al mostrarse cada página.

Alternativas de solución

  1. Parchar el módulo jquery_ui para que cargue la versión requerida cuando sea necesario
  2. Parchar el módulo Context para que no cargue jquery_ui cuando no se necesite
  3. Ocultar el módulo jquery_ui en tiempo de ejecución (al vuelo / en caliente) y cargar la versión 1.8 manualmente

Implementando la solución #3

Paso 1: Deshabilitar el módulo jquery_ui en caliente

function mymodule_init() {
  if ($_GET['q'] == 'admin/build/custompage') {
    $modules = module_list();
    unset($modules['jquery_ui']);
    module_list(TRUE, NULL, FALSE, $modules);
  }
}

Paso 2: Desplegar jQuery UI en sites/all/libraries/jquery.ui-1.8

Paso 3: Cargar jQuery UI manualmente

function mymodule_load_jquery_ui() {
  $path = jquery_ui_get_path() . '-1.8';
  drupal_add_js($path . '/jquery-1.6.2.js'); //override jQuery
  if (variable_get('jquery_update_compression_type', 'min') == 'min') {
    $prefix = '/minified';
    $suffix = '.min';
  }
  else {
    $prefix = '';
    $suffix = '';
  }
  $files = array(
    'ui.core',
    'ui.widget',
    'ui.mouse',
    'ui.draggable',
    'ui.droppable',
    'ui.resizable',
  );
  foreach ($files as $file) {
    drupal_add_js($path . '/ui' . $prefix . '/jquery.'. $file . $suffix .'.js');
  }
}

NOTA: El código arriba cargar el jQuery que viene con jQuery UI 1.8, podrian ser necesario desactivar dicha línea de acuerdo a la configuración de jquery_update.

Bendiciones!


Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • You can use Markdown syntax to format and style the text. Also see Markdown Extra for tables, footnotes, and more.
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.

Más información sobre opciones de formato

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.