2013-05-15 2 views
0

Я пытаюсь создать простой слайдер изображения на первой странице моего сайта drupal. Я написал модуль с основным контуром следующим образом:Drupal 6 javascript в блоке модуля для главной страницы

<?php 

function slider_init(){ 
    drupal_add_js(drupal_get_path('module', 'slider') .'/slider.js'); 
} 

function slider_block($op = 'list', $delta = 0, $edit = array()) { 
    $block = array(); 

    switch ($op) { 
    case "list": 
     // Generate listing of blocks from this module, for the admin/block page 
     $block[0]["info"] = t("slider"); 
     break; 

    case "view": 
    // Generate content for blocks from this module 
    $block_content = ""; 
    $block_content .= "hello"; 


    //Query for the projects 
     $icons = db_query("SELECT * FROM {alumni_frontpage_projects}"); 

    //Initiation arrays from each table column: title, description, url, icon link 
     $links = array(); 
     $title = array(); 
     $description = array(); 
     $url = array(); 

    //Generate arrays from each table column: title, description, url, icon link 
     while($icon_data = db_fetch_array($icons)){ 

      $links[]  = $icon_data['slider_image_location']; 
      $title[]  = $icon_data['title']; 
      $description[]= $icon_data['description']; 
      $url[]  = $icon_data['url']; 

     } 

     //Count elements in array and randomly choose one 
     $res = count($links)-1; 
     $seed = rand(0,$res); 

     //Generate HTML and Javascript of Slider 


     //Check that content isn't empty 
     if ($block_content == "") { 
      $block_content = t("Sorry No Content");   
     } 

     $block["content"] = $block_content; 
     break; 

    case "save": 
     break; 

    case "configure": 
     break; 
    }   

    return $block; 
} 

Теперь все в порядке. Я генерирую блок, и я могу разместить его везде, где захочу. Отлично. Но Мне бы очень хотелось использовать javascript в этом блоке, чтобы я мог передавать массивы и использовать события onclick для перемещения по некоторым изображениям из массивов, которые я запросил. Итак, я узнал, что мне придется передать переменные в javascript, и мне нужно будет определить файл javascript, который я хочу использовать в модуле.

//add variable to the Javascript 
    drupal_add_js(array('slider_settings' => array('variable_name' => $variable_name)), 'setting'); 

    //add Javascript file to module 
    drupal_add_js(drupal_get_path('module', 'slider') .'/slider.js');<br> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Я положил их в hook_init НО НИЧЕГО НЕ ПРОИСХОДИТ! !!!! Я тестировал, чтобы видеть основные предупреждения. Если я помещаю жесткий код в _block, например:

$block_content .= ' 
<script type="text/javascript"> 
var x 
x = 50; 
document.write(x); //prints the value of x 
</script>'; 

Затем я вижу отпечатки «50».
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Если я попытаюсь передать переменную в жесткий код. Это НЕ РАБОТАЕТ. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Если я попытаюсь написать 50 через предыдущий код, но из отдельный файл с именем slider.js, который находится в той же папке, с помощью «drupal_add_js (drupal_get_path ('module', 'slider'). '/ slider.js');", который НЕ РАБОТАЕТ (хотя я не пропуская переменную)



Так что, черт возьми! Возможно ли, что мне не хватает некоторых важных файлов drupal? Есть ли способ справиться с этим?

Спасибо!

ответ

0

drupal_add_js должен работать в hook_init(). Сначала Проверьте правильность имени функции hook как ModuleName_init() или нет.

+0

Хорошо, я подтвержу это. – ingrid

Смежные вопросы