2 namespace TYPO3\CMS\Extensionmanager\Utility;
110 if ($this->availableExtensions === null) {
111 $this->availableExtensions = [];
113 foreach ($this->packageManager->getAvailablePackages() as $package) {
115 $this->availableExtensions[$package->getPackageKey()] = array(
116 'siteRelPath' => str_replace(PATH_site,
'', $package->getPackagePath()),
117 'type' => $installationType,
118 'key' => $package->getPackageKey(),
131 $this->availableExtensions = null;
132 $this->packageManager->scanAvailablePackages();
143 return $this->packageManager->getPackage($extensionKey);
151 $this->signalSlotDispatcher->dispatch(
'PackageManagement',
'packagesMayHaveChanged');
178 foreach ($this->packageManager->getActivePackages() as $extKey => $_) {
179 if (isset($availableExtensions[$extKey])) {
180 $availableExtensions[$extKey][
'installed'] =
true;
194 foreach ($extensions as $extensionKey => $properties) {
195 $emconf = $this->emConfUtility->includeEmConf($properties);
197 $extensions[$extensionKey] = array_merge($emconf, $properties);
198 $terObject = $this->
getExtensionTerData($extensionKey, $extensions[$extensionKey][
'version']);
199 if ($terObject !== null) {
200 $extensions[$extensionKey][
'terObject'] = $terObject;
201 $extensions[$extensionKey][
'updateAvailable'] =
false;
202 $extensions[$extensionKey][
'updateToVersion'] = null;
203 $extensionToUpdate = $this->installUtility->getUpdateableVersion($terObject);
204 if ($extensionToUpdate !==
false) {
205 $extensions[$extensionKey][
'updateAvailable'] =
true;
206 $extensions[$extensionKey][
'updateToVersion'] = $extensionToUpdate;
210 unset($extensions[$extensionKey]);
227 $terObject = $this->extensionRepository->findOneByExtensionKeyAndVersion($extensionKey, $version);
230 $terObject = $this->extensionRepository->findHighestAvailableVersion($extensionKey);
231 if ($terObject instanceof Extension) {
234 $terObject = clone $terObject;
235 $terObject->setVersion($version);
236 $terObject->setIntegerVersion(
255 foreach ($extensions as &$properties) {
256 $iInfo = @getimagesize(PATH_site . $properties[
'siteRelPath'] . $properties[
'ext_icon']);
257 if ($iInfo !==
false) {
258 $properties[
'ext_icon_width'] = $iInfo[0];
259 $properties[
'ext_icon_height'] = $iInfo[1];
261 $properties[
'ext_icon_width'] = 0;
262 $properties[
'ext_icon_height'] = 0;