class ModuleUpdater

Class for updating modules using FileTransfer classes via authorize.php.

Hierarchy

Expanded class hierarchy of ModuleUpdater

2 string references to 'ModuleUpdater'
hook_updater_info in modules/system/system.api.php
Provide information on Updaters (classes that can update Drupal).
system_updater_info in modules/system/system.module
Implements hook_updater_info().

File

modules/system/system.updater.inc, line 12

View source
class ModuleUpdater extends Updater implements DrupalUpdaterInterface {
  
  /**
   * Return the directory where a module should be installed.
   *
   * If the module is already installed, drupal_get_path() will return
   * a valid path and we should install it there (although we need to use an
   * absolute path, so we prepend DRUPAL_ROOT). If we're installing a new
   * module, we always want it to go into sites/all/modules, since that's
   * where all the documentation recommends users install their modules, and
   * there's no way that can conflict on a multi-site installation, since
   * the Update manager won't let you install a new module if it's already
   * found on your system, and if there was a copy in sites/all, we'd see it.
   */
  public function getInstallDirectory() {
    if ($this->isInstalled() && $relative_path = drupal_get_path('module', $this->name)) {
      $relative_path = dirname($relative_path);
    }
    else {
      $relative_path = 'sites/all/modules';
    }
    return DRUPAL_ROOT . '/' . $relative_path;
  }
  public function isInstalled() {
    return (bool) drupal_get_filename('module', $this->name, NULL, FALSE);
  }
  public static function canUpdateDirectory($directory) {
    if (file_scan_directory($directory, '/.*\\.module$/')) {
      return TRUE;
    }
    return FALSE;
  }
  public static function canUpdate($project_name) {
    return (bool) drupal_get_path('module', $project_name);
  }
  
  /**
   * Returns a list of post install actions.
   */
  public function postInstallTasks() {
    return array(
      l(t('Install another module'), 'admin/modules/install'),
      l(t('Enable newly added modules'), 'admin/modules'),
      l(t('Administration pages'), 'admin'),
    );
  }
  public function postUpdateTasks() {
    // We don't want to check for DB updates here, we do that once for all
    // updated modules on the landing page.
  }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
ModuleUpdater::canUpdate public static function
ModuleUpdater::canUpdateDirectory public static function Determine if the Updater can handle the project provided in $directory. Overrides DrupalUpdaterInterface::canUpdateDirectory
ModuleUpdater::getInstallDirectory public function Return the directory where a module should be installed. Overrides DrupalUpdaterInterface::getInstallDirectory
ModuleUpdater::isInstalled public function Checks if the project is installed. Overrides DrupalUpdaterInterface::isInstalled
ModuleUpdater::postInstallTasks public function Returns a list of post install actions. Overrides Updater::postInstallTasks
ModuleUpdater::postUpdateTasks public function Return an array of links to pages that should be visited post operation. Overrides Updater::postUpdateTasks
Updater::$name protected property
Updater::$source public property
Updater::$title protected property
Updater::factory public static function Return an Updater of the appropriate type depending on the source.
Updater::findInfoFile public static function Figure out what the most important (or only) info file is in a directory.
Updater::getBackupDir public function Return the full path to a directory where backups should be written.
Updater::getInstallArgs protected function Store the default parameters for the Updater.
Updater::getProjectName public static function Get the name of the project directory (basename).
Updater::getProjectTitle public static function Return the project name from a Drupal info file.
Updater::getUpdaterFromDirectory public static function Determine which Updater class can operate on the given directory.
Updater::install public function Installs a Drupal project, returns a list of next actions.
Updater::makeBackup public function Perform a backup.
Updater::makeWorldReadable public function Ensure that a given directory is world readable.
Updater::postInstall public function Perform actions after installation. 1
Updater::postUpdate public function Perform actions after new code is updated.
Updater::prepareInstallDirectory public function Make sure the installation parent directory exists and is writable.
Updater::update public function Updates a Drupal project, returns a list of next actions.
Updater::__construct public function

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.