Usar jquery desde Drupal.

jhonatanfdez's picture

Buenos días amigos.

Por este medio quiero saber si existe una mejor manera de usar Jquery desde un modulo personalizado.

Cree un modulo llamado exportar jcarousel, el cual para funcionar necesita de este modulo.

Este módulo que diseñé consta de 3 archivos:

1) exportar_carousel.info

name = Exportar_Carousel
description = modulo para exportar el html del carousel
core = 7.x
version = "7.x-1.0-dev"
package = Jhonatan

dependencies[] = jcarousel

2) obtener_escript.js
jQuery(document).ready(function () {
//Cambiamos el color del btn limpiar
jQuery("#edit-limpiar").removeClass( "btn btn-default" ).addClass( "btn btn-info" );

jQuery("#edit-buscar").attr("type", "button");
jQuery("#edit-limpiar").attr("type", "button");

function obtener() {
/Ocultamos los contextual_link/
//jQuery(".contextual-links-wrapper").hide();

      /*Obtenemos el html del carousel y la pasamos a una variable Javascript*/
      var Resultado_HTML= jQuery("#block-views-carousel-block").html();

      /*obreescribimos el textarea con el resultado de la variablet*/
      jQuery("#edit-resultado").text(Resultado_HTML);

      /*Seleccionamos todo el texto que está en el textarea.*/
      jQuery("#edit-resultado").select();

      /*Mostramos los contextual_link*/
     // jQuery(".contextual-links-wrapper").show(); 

}

function limpiar() {
jQuery("#edit-resultado").text("");

}

//cambiamos la opcion de click del boton buscar
jQuery("#edit-buscar").click(function() {
obtener();
});

jQuery("#edit-limpiar").click(function() {
limpiar();
});

});

y por último el archivo 3) exportar_carousel.module

<?php

/**
* @file
* Functionality for exportar_carousel
*/

/**
* Implements hook_menu().
*/

function exportar_carousel_menu(){
$items['exportar_carousel'] = array(
'title' => 'Exportar Carousel',
'page callback' => 'drupal_get_form',
'page arguments' => array('exportar_carousel_form'),
'access arguments' => array('exportar_carousel_permisos.'), //Mediante este enlace puedo crear un hook_permission para luego restringir en los permisos este acceso.
// 'access callback' => TRUE, //Acceso a todos
'type' => MENU_NORMAL_ITEM
);

return $items;
};

/**
* Implements hook_permission().
*/
function exportar_carousel_permission() {
return array(
'exportar_carousel_permisos.' => array(
'title' => t('exportar_carousel'),
'restrict access' => true,
)
);
}

//Esta función permite crear una pagina con el form api.
function exportar_carousel_form($form, $form_state){

$form['exportar_carousel_fieldset']['contenedorresultado'] = array(
'#title' => t('En esta sección se mostrarán los resultados.'),
'#type' => 'fieldset',
'#collapsible' => FALSE, //Este permite que se pueda colapsar si esta en true
'#collapsed' => FALSE, //Este es para que aparezca colapsado si esta en true.

);

//textarea query_SQL
$form['exportar_carousel_fieldset']['contenedorresultado']['resultado'] = array(

'#title' => t('Código HTML.'),
'#description' => t('Nota: si no se muestra este script, entonces refresque la página.'),
'#type' => 'textarea',

);

//Creamos un botón el cual realizará varias funciones.
$form['exportar_carousel_fieldset']['contenedorresultado']['buscar'] = array(
'#type' => 'submit',
'#value' => t('Buscar'),
);

//Creamos un botón el cual realizará varias funciones.
$form['exportar_carousel_fieldset']['contenedorresultado']['limpiar'] = array(
'#type' => 'submit',
'#value' => t('Limpiar'),

);

drupal_add_js(drupal_get_path('module', 'exportar_carousel') . '/obtener_escript.js');
return $form;
}

Como pudimos ver en el archivo .module está en negrita esta parte:
drupal_add_js(drupal_get_path('module', 'exportar_carousel') . '/obtener_escript.js');

desde aquí estoy llamando a mi archivo .js, pero para funcionar debe estar antes de retornar el $form, de lo contrario no me funciona.

Me gustaría saber como puedo ejecutar un código Jquery desde cualquier parte del archivo .module.

Saludos y Dios les bendiga a todos.

Latin America

Group categories

Latin America

Group events

Add to calendar

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week