An error is logged when there are no missing dependencies.
This is because the $missing variable is only declared when there are missing dependencies, and yet it is always returned.
A possible solution is the declaration of the $missing variable by adding a new line 164 in plugin_manager.module:
function plugin_manager_missing_dependencies(){
$files = module_rebuild_cache();
$missing = array(); //Added line
foreach($files as $file){
if (is_array($file->info['dependencies'])) {
foreach ($file->info['dependencies'] as $dependency) {
if (!isset($files[$dependency])){
$missing[$dependency]['#name'] = $dependency;
$missing[$dependency]['#required-by'] = $file->info['name'];
$row = db_fetch_array(db_query("SELECT title FROM {plugin_manager_repository} WHERE short_name = '%s'", $dependency));
$missing[$dependency]['#in-repository'] = is_array($row);
if ($missing[$dependency]['#in-repository'])
$missing['#alert'] = TRUE;
}
}
}
}
return $missing;
}
No more error messages for me anyway.
Comments
Comment #1
leonardwestermeyer commentedActually this causes another error in the calling function plugin_manager_form_system_modules_alter, so we also need to refrain from sending the variable if there is no missing dependencies:
function plugin_manager_missing_dependencies(){
$files = module_rebuild_cache();
$missing = array(); //Added line
foreach($files as $file){
if (is_array($file->info['dependencies'])) {
foreach ($file->info['dependencies'] as $dependency) {
if (!isset($files[$dependency])){
$missing[$dependency]['#name'] = $dependency;
$missing[$dependency]['#required-by'] = $file->info['name'];
$row = db_fetch_array(db_query("SELECT title FROM {plugin_manager_repository} WHERE short_name = '%s'",$dependency));
$missing[$dependency]['#in-repository'] = is_array($row);
if ($missing[$dependency]['#in-repository'])
$missing['#alert'] = TRUE;
}
}
}
}
if (!empty($missing)) return $missing; // Additional modification mentioned above.
}