private function loadComponentsWithUpdateFile()
{
$componentsWithUpdateFile = array();
foreach ($this->componentsWithNewVersion as $name => $versions) {
$currentVersion = $versions[self::INDEX_CURRENT_VERSION];
$newVersion = $versions[self::INDEX_NEW_VERSION];
if ($name == 'core') {
$pathToUpdates = $this->pathUpdateFileCore . '*.php';
} elseif (ColumnUpdater::isDimensionComponent($name)) {
$componentsWithUpdateFile[$name][PIWIK_INCLUDE_PATH . '/core/Columns/Updater.php'] = $newVersion;
} else {
$pathToUpdates = sprintf($this->pathUpdateFilePlugins, $name) . '*.php';
}
if (!empty($pathToUpdates)) {
$files = _glob($pathToUpdates);
if ($files == false) {
$files = array();
}
foreach ($files as $file) {
$fileVersion = basename($file, '.php');
if (version_compare($currentVersion, $fileVersion) == -1 && version_compare($fileVersion, $newVersion) <= 0) {
$componentsWithUpdateFile[$name][$file] = $fileVersion;
}
}
}
if (isset($componentsWithUpdateFile[$name])) {
// order the update files by version asc
uasort($componentsWithUpdateFile[$name], "version_compare");
} else {
// there are no update file => nothing to do, update to the new version is successful
$this->markComponentSuccessfullyUpdated($name, $newVersion);
}
}
return $componentsWithUpdateFile;
}