function coder_upgrade_upgrade_call_drupal_add_js_alter in Coder 7
Same name and namespace in other branches
- 7.2 coder_upgrade/conversions/call.inc \coder_upgrade_upgrade_call_drupal_add_js_alter()
Implements hook_upgrade_call_drupal_add_js_alter().
File
- coder_upgrade/
conversions/ call.inc, line 719 - Provides conversion routines applied to function calls.
Code
function coder_upgrade_upgrade_call_drupal_add_js_alter(&$node, &$reader) {
// DONE (UPDATED)
// Create helper objects.
$editor = PGPEditor::getInstance();
// Get the function call object.
$item =& $node->data;
// Process function call.
$name =& $item->name;
/*
* With
* drupal_add_js('misc/collapse.js', 'core', 'header', FALSE, TRUE, TRUE);
* we will output
* drupal_add_js('misc/collapse.js', array('type' => 'file', 'weight' => JS_LIBRARY));
* which is correct, although the function will also accept
* drupal_add_js('misc/collapse.js', array('weight' => JS_LIBRARY));
* The example begs the question why someone would have included all
* the default parameters.
*
* A type of 'core', 'module' or 'theme' all convert to 'file' which is
* the new default. The weight parameter then corresponds to the old type.
*/
cdp($item->parameters
->print_r());
$count = $item->parameters
->count();
if ($count == 1) {
return;
}
if ($count == 2) {
$type = trim($item
->printParameter(1), "'\"");
if ($type == 'module') {
// if (in_array($type, array('module', ''))) {
$item
->deleteParameter(1);
return;
}
elseif (in_array($type, array(
'core',
'theme',
))) {
// Add a default value for the scope parameter (removed below).
$editor
->insertParameter($item, 2, "'header'");
}
}
// Insert a new weight parameter.
$type = trim($item
->printParameter(1), "'\"");
$weight = coder_upgrade_js_weight($type);
$editor
->insertParameter($item, 3, "{$weight}");
// Arrayitize the parameters.
$keys = array(
'type',
'scope',
'weight',
'defer',
'cache',
'preprocess',
);
$defaults = array(
"'module'",
"'header'",
'JS_DEFAULT',
'FALSE',
'TRUE',
'TRUE',
);
$string = $editor
->arrayitize($item, 1, $keys, $defaults);
$string = preg_replace('@[\'"](core|theme)[\'"]@', "'file'", $string);
// Could be deleted.
if ($string != 'array()') {
$temp = $editor
->expressionToStatement($string);
$temp
->getElement(0)->multiline = 0;
cdp($temp
->print_r());
$item
->setParameter(1, $temp);
}
}