array( 'title' => $t('Composer Manager'), ), ); // Change the message slightly if we are on the package status page. if ('admin/config/system/composer-manager' == current_path()) { $instructions = $t('Run drush composer-json-rebuild on the command line or submit the Rebuild composer.json file button on this page to build the file.'); } else { $instructions = $t('Run drush composer-json-rebuild on the command line or submit the Rebuild composer.json file button on the package status page to build the file.', array('@url' => url('admin/config/system/composer-manager'))); } if (!file_exists($file_dir . '/composer.json')) { $requirements['composer_manager']['value'] = $t('Missing composer.json file'); $requirements['composer_manager']['description'] = $t('The composer.json file was not found.') . '
' . $instructions; $requirements['composer_manager']['severity'] = REQUIREMENT_ERROR; } elseif (!json_decode(@file_get_contents($file_dir . '/composer.json'))) { $requirements['composer_manager']['value'] = $t('Invalid composer.json file'); $requirements['composer_manager']['description'] = $t('The composer.json file is invalid.') . '
' . $instructions; $requirements['composer_manager']['severity'] = REQUIREMENT_ERROR; } elseif (!file_exists($vendor_dir . '/autoload.php')) { $requirements['composer_manager']['value'] = $t('Dependencies not installed'); $args = array('!command' => 'install', '@url' => url('http://drupal.org/project/composer_manager', array('absolute' => TRUE))); $requirements['composer_manager']['description'] = $t('Composer\'s !command command must be run to generate the autoloader and install the required packages.
Refer to the instructions on the Composer Manager project page for installing packages.', $args); $requirements['composer_manager']['severity'] = REQUIREMENT_ERROR; } elseif ($packages = composer_manager_packages_to_install()) { $requirements['composer_manager']['value'] = $t('Dependencies not installed'); $args = array('@packages' => join(', ', $packages), '@url' => url('http://drupal.org/project/composer_manager', array('absolute' => TRUE))); $requirements['composer_manager']['description'] = $t('The following packages must be installed: @packages
Refer to the instructions on the Composer Manager project page for updating packages.', $args); $requirements['composer_manager']['severity'] = REQUIREMENT_ERROR; } else { $requirements['composer_manager']['value'] = $t('Dependencies installed'); $requirements['composer_manager']['description'] = $t('Visit the package status page to view the status of individual packages.', array('@url' => url('admin/config/system/composer-manager'))); $requirements['composer_manager']['severity'] = REQUIREMENT_OK; } return $requirements; } /** * Returns a list of packages that need to be installed. * * @return array */ function composer_manager_packages_to_install() { $packages = array(); require_once __DIR__ . '/composer_manager.admin.inc'; $required = composer_manager_required_packages(); $installed = composer_manager_installed_packages(); $combined = array_unique(array_merge(array_keys($required), array_keys($installed))); foreach ($combined as $package_name) { if (!isset($installed[$package_name])) { $packages[] = $package_name; } } return $packages; } /** * Change the name of the "composer_manager_generate_file" variable to * "composer_manager_autobuild_file". */ function composer_manager_update_7100() { $autobuild = variable_get('composer_manager_generate_file', 1); variable_set('composer_manager_autobuild_file', $autobuild); variable_del('composer_manager_generate_file'); }