Drupal Jquery : Hoe een instelling toevoegen van php naar uw jquery script

Posted by: 
Dominique De Cooman

We willen bijvoorbeeld een api key toevoegen als een variabele aan ons jquery script. In drupal bepalen we onze apikey door middel van een settings form. We voegen de js toe middels drupal_add_js. Merk op dat de tweede parameter 'setting' zegt, dit wordt gebruikt om de drupal javascript system te laten weten dat het de array als een setting in scripts moet toevoegen. Het Jquery object is reeds uitgebreid met Drupal.settings en dit is waar onze instellingen beschikbaar zullen zijn.
Om namespace clashes te voorkomen is het een goede oefening om variabelen in arrays te plaatsen per module.

<?php
function module_name_settings() {
  
$form['module_name_apikey'] = array(
       
'#type'           => 'textfield',
       
'#title'          => t('Google api key'),
       
'#default_value'  => variable_get('module_name_apikey'''),
       
'#size'           => 60,
       
'#weight' => -5,
       
'#description'    => l(t('Get your google api key here'), '<a href="http://code.google.com/apis/maps/signup.html'">http://code.google.com/apis/maps/signup.html'</a>),
  );

  system_settings_form(
$form);
}

//Implementation of hook init()
function module_name_init() {
  drupal_add_js(
    array(
      'module_name' => array(
        'apikey' => variable_get('module_name_apikey', ''),
      )
    ),
    'setting'
  );
}
?>

In uw jquery script zullen de variabelen beschikbaar zijn in Drupal.settings

var apikey = Drupal.settings.module_name.apikey;
//To view output in firebug
console.log(apikey);
//If you dont use firebug
alert(apikey);

Reactie toevoegen