function drupal_to_js in Drupal 5
Same name and namespace in other branches
- 4 includes/common.inc \drupal_to_js()
- 6 includes/common.inc \drupal_to_js()
Converts a PHP variable into its Javascript equivalent.
We use HTML-safe strings, i.e. with <, > and & escaped.
Related topics
7 calls to drupal_to_js()
- drupal_get_js in includes/
common.inc - Returns a themed presentation of all JavaScript code for the current page. References to JavaScript files are placed in a certain order: first, all 'core' files, then all 'module' and finally all 'theme' JavaScript…
- profile_admin_settings_autocomplete in modules/
profile/ profile.module - Retrieve a pipe delimited string of autocomplete suggestions for profile categories
- profile_autocomplete in modules/
profile/ profile.module - Callback to allow autocomplete of profile text fields.
- taxonomy_autocomplete in modules/
taxonomy/ taxonomy.module - Helper function for autocompletion
- update_do_update_page in ./
update.php - Perform updates for the JS version and return progress.
File
- includes/
common.inc, line 1847 - Common functions that many Drupal modules will need to reference.
Code
function drupal_to_js($var) {
switch (gettype($var)) {
case 'boolean':
return $var ? 'true' : 'false';
// Lowercase necessary!
case 'integer':
case 'double':
return $var;
case 'resource':
case 'string':
return '"' . str_replace(array(
"\r",
"\n",
"<",
">",
"&",
), array(
'\\r',
'\\n',
'\\x3c',
'\\x3e',
'\\x26',
), addslashes($var)) . '"';
case 'array':
// Arrays in JSON can't be associative. If the array is empty or if it
// has sequential whole number keys starting with 0, it's not associative
// so we can go ahead and convert it as an array.
if (empty($var) || array_keys($var) === range(0, sizeof($var) - 1)) {
$output = array();
foreach ($var as $v) {
$output[] = drupal_to_js($v);
}
return '[ ' . implode(', ', $output) . ' ]';
}
// Otherwise, fall through to convert the array as an object.
case 'object':
$output = array();
foreach ($var as $k => $v) {
$output[] = drupal_to_js(strval($k)) . ': ' . drupal_to_js($v);
}
return '{ ' . implode(', ', $output) . ' }';
default:
return 'null';
}
}