Druplicon

Drupal 7: Quitar un CSS o JS programaticamente

El siguiente hook lo pones en el template.php de tu theme:

<?php
function TU_THEME_css_alter(&$css) {
  $css = array_diff_key($css, array(
    // Añade todos los CSS que quieras quitar antes que se entregue la página.
    drupal_get_path('module', 'NOMBRE_MODULO') . '/PATH/HASTA/EL/CSS/foo.css' => FALSE,
    drupal_get_path('theme', 'NOMBRE_THEME') . '/PATH/HASTA/EL/CSS/foo.css' => FALSE,
  ));
}
function TU_THEME_js_alter(&$js) {
  $js = array_diff_key($js, array(
    // Añade todos los JS que quieras quitar antes que se entregue la página.
    drupal_get_path('module', 'user') . '/user.js' => FALSE,
  ));
}

Está claro que esos hook tienen juego. Puedes mirar cual URL vas a renderizar, o averiguar cualquier otra cosa que te ayude a decidir que CSS’s/JS’s vas a querer quitar.

Chau!

Comentarios

  1. Jorge

    Hola, creo que estoy poniendo mal la función. en mi template.php he insertado la función de la siguiente manera:

    <?php
     function mailbox_sky_js_alter(&$js) {
      $js = array_diff_key($js, array(
      'js_xAPl0qIk9eowy_iS9tNkCWXLUVoat94SQT48UBCFkyQ.js'
        // Añade todos los JS que quieras quitar antes que se entregue la página.
        drupal_get_path('module', 'user') . '/user.js' =>; FALSE,
      ));
    }
    

    siendo ‘js_xAPl0qIk9eowy_iS9tNkCWXLUVoat94SQT48UBCFkyQ.js’ el nombre de uno de los archivos que Google speed insights me da como que debo retrasar. ¿Por qué no me funciona? ¿Me podrías ayudar?
    Gracias

    Responder ↓
    1. Capy Autor

      Jorge, Hay dos cuestiones acá. La primera: ¿mailbox_sky es el nombre del theme? eso es importante. si el theme tiene otro nombre lo cambias y pones el correcto.
      Segundo: Este hook sirve solo si el js que se va a cargar es estático (por ejemplo user.js) pero el archivo js que quieres quitar parece creado dinámicamente. En ese caso, no puedes quitarlo mediante este hook.
      Saludos.

      Responder ↓

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>