/** * Renders a single service's row. * * @param string $serviceKey The service key to access the service. * @param array $serviceInformation registration information of the service. * @return string HTML row for the service. */ protected function renderServiceRow($serviceKey, $serviceInformation) { $serviceDescription = ' <p class="service-header"> <span class="service-title">' . $serviceInformation['title'] . '</span> (' . $serviceInformation['extKey'] . ': ' . $serviceKey . ') </p>'; if (!empty($serviceInformation['description'])) { $serviceDescription .= '<p class="service-description">' . $serviceInformation['description'] . '</p>'; } $serviceSubtypes = $serviceInformation['serviceSubTypes'] ? implode(', ', $serviceInformation['serviceSubTypes']) : '-'; $serviceOperatingSystem = $serviceInformation['os'] ?: $this->getLanguageService()->getLL('any'); $serviceRequiredExecutables = $serviceInformation['exec'] ?: '-'; $serviceAvailabilityClass = 'danger'; $serviceAvailable = $this->getLanguageService()->sL('LLL:EXT:lang/locallang_common.xlf:no'); try { $serviceDetails = ExtensionManagementUtility::findServiceByKey($serviceKey); if ($serviceDetails['available']) { $serviceAvailabilityClass = 'success'; $serviceAvailable = $this->getLanguageService()->sL('LLL:EXT:lang/locallang_common.xlf:yes'); } } catch (Exception $e) { } $serviceRow = ' <tr class="service ' . $serviceAvailabilityClass . '"> <td class="first-cell">' . $serviceDescription . '</td> <td class="cell">' . $serviceInformation['priority'] . '</td> <td class="cell">' . $serviceInformation['quality'] . '</td> <td class="cell">' . $serviceSubtypes . '</td> <td class="cell">' . $serviceOperatingSystem . '</td> <td class="cell">' . $serviceRequiredExecutables . '</td> <td class="last-cell">' . $serviceAvailable . '</td> </tr>'; return $serviceRow; }