class ThemeUpdater

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

Hierarchy

Expanded class hierarchy of ThemeUpdater

2 string references to 'ThemeUpdater'
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 97

View source
class ThemeUpdater extends Updater implements DrupalUpdaterInterface {
    
    /**
     * Return the directory where a theme should be installed.
     *
     * If the theme 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
     * theme, we always want it to go into sites/all/themes, since that's
     * where all the documentation recommends users install their themes, and
     * there's no way that can conflict on a multi-site installation, since
     * the Update manager won't let you install a new theme 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('theme', $this->name))) {
            $relative_path = dirname($relative_path);
        }
        else {
            $relative_path = 'sites/all/themes';
        }
        return DRUPAL_ROOT . '/' . $relative_path;
    }
    public function isInstalled() {
        return (bool) drupal_get_filename('theme', $this->name, NULL, FALSE);
    }
    static function canUpdateDirectory($directory) {
        // This is a lousy test, but don't know how else to confirm it is a theme.
        if (file_scan_directory($directory, '/.*\\.module$/')) {
            return FALSE;
        }
        return TRUE;
    }
    public static function canUpdate($project_name) {
        return (bool) drupal_get_path('theme', $project_name);
    }
    public function postInstall() {
        // Update the system table.
        clearstatcache();
        system_rebuild_theme_data();
    }
    public function postInstallTasks() {
        return array(
            l(t('Enable newly added themes'), 'admin/appearance'),
            l(t('Administration pages'), 'admin'),
        );
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
ThemeUpdater::canUpdate public static function
ThemeUpdater::canUpdateDirectory static function Determine if the Updater can handle the project provided in $directory. Overrides DrupalUpdaterInterface::canUpdateDirectory
ThemeUpdater::getInstallDirectory public function Return the directory where a theme should be installed. Overrides DrupalUpdaterInterface::getInstallDirectory
ThemeUpdater::isInstalled public function Checks if the project is installed. Overrides DrupalUpdaterInterface::isInstalled
ThemeUpdater::postInstall public function Perform actions after installation. Overrides Updater::postInstall
ThemeUpdater::postInstallTasks public function Return an array of links to pages that should be visited post operation. Overrides Updater::postInstallTasks
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::postUpdate public function Perform actions after new code is updated.
Updater::postUpdateTasks public function Return an array of links to pages that should be visited post operation. 1
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.