Drupal PHP Değişkenleri JS/jQuery'e Gönderme

WhatsApp

Sümeyye Aydemir
Sümeyye Aydemir
20 dakika okuma süresi

Drupal Modül geliştirme örneklerimize PHP/Drupal değişkenlerini JavaScript olarak işleme örneği ile başlıyoruz. Buradaki örnekte Drupal'daki bir değeri tarayıcı tarafında çalışan Javascript'e göndereceğiz.

Drupal'da modül geliştirirken Drupal-PHP değişkenlerini JavaScript/jQuery'e göndermeniz gereken durumlar olabilir. Drupal 7 için yazacağımız aşağıdaki örnekte; Drupal'daki Kullanıcı adını Alert ile ekrana göstereceğiz.

<?php
function jstest_menu() {
$items = array();
$items['js-test'] = array(
'title' => t('Javascript Değişkenleri'),
'description' => t('Javascript Değişkenlerini test ediyoruz.'),
'page callback' => 'jstest_page_callback_js_vars',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
?>

Yukarıdaki örnekte; hook_menu ile bir sayfa oluşturduk ve jstest_page_callback_js_vars fonksiyonunu çağırdık. Şimdi de js-test menüsünden çağırdığımız javascript kodunu oluşturalım;

<?php
     function jstest_page_callback_js_vars() {
        drupal_add_js(drupal_get_path('module','jstest') . '/js/script.js');
        $js_vars = array(
 'js_vars' => array(
 'message' => t('Merhaba @username', array('@username' => $GLOBALS['user']->name)),
 'an_array' => array('renk' => t('red'), 'isim' => t('Veli'), ),
 ),
 );
drupal_add_js($js_vars, 'setting');
 return "TEST";
}
?>

Ve drupal_add_js ile eklediğimiz js/script.js dosyasının içeriği;

$(document).ready(function(){
 console.debug(Drupal.settings.js_vars);
 alert(Drupal.settings.js_vars.message);
});  

Yukarıdaki örneği tarayıcınızdan http://siteniz.com/js-test olarak çağırdığınızda kullanıcı adınız Alert ile gösterilecektir.

Ofislerimiz

Drupart AR-GE

GOSB Teknopark Hi-Tech Bina 3.Kat
B3 Gebze - KOCAELİ

+90 262 678 8872 

[email protected]

Frankfurt

Bleichstr. 26 64283 Darmstadt
Deutschland

+49 (0) 6151 – 492 70 23 

[email protected]

Dublin

20 Harcourt Street, Dublin 2, D02 H364

+353 (87) 198 6950 

[email protected]