$id = array_key_exists('id', $info) ? (string) $info['id'] : '';
$name = array_key_exists('name', $info) ? (string) $info['name'] : '';
$description = array_key_exists('description', $info) ? (string) $info['description'] : '';
- $author = array_key_exists('author', $info) ? self::parseContributor($info['author']) : [];
- $maintainer = array_key_exists('maintainer', $info) ? self::parseContributor($info['maintainer']) : [];
+ $authors = array_key_exists('authors', $info) ? self::parseContributors($info['authors']) : [];
+ $maintainers = array_key_exists('maintainers', $info) ? self::parseContributors($info['maintainers']) : [];
$version = array_key_exists('version', $info) ? (string) $info['version'] : '';
$status = array_key_exists('status', $info) ? (string) $info['status'] : '';
$id,
$name,
$description,
- $author,
- $maintainer,
+ $authors,
+ $maintainers,
$version,
$status
);
}
- private static function parseContributor($entry): array
+ private static function parseContributors($entries): array
{
- if (!is_array($entry)) {
+ if (!is_array($entries)) {
return [];
}
- if (!array_key_exists('name', $entry)) {
- return [];
- }
+ $contributors = [];
+
+ foreach ($entries as $entry) {
+ if (!is_array($entry)) {
+ continue;
+ }
+
+ if (!array_key_exists('name', $entry)) {
+ continue;
+ }
+
+ $contributor = [
+ 'name' => (string) $entry['name'],
+ ];
- $contributor = [
- 'name' => (string) $entry['name'],
- ];
+ if (array_key_exists('link', $entry)) {
+ $contributor['link'] = (string) $entry['link'];
+ }
- if (array_key_exists('link', $entry)) {
- $contributor['link'] = (string) $entry['link'];
+ $contributors[] = $contributor;
}
- return $contributor;
+ return $contributors;
}
private string $id = '';
private string $description = '';
- private array $author = [];
+ private array $authors = [];
- private array $maintainer = [];
+ private array $maintainers = [];
private string $version = '';
string $id,
string $name,
string $description,
- array $author,
- array $maintainer,
+ array $authors,
+ array $maintainers,
string $version,
string $status
) {
$this->id = $id;
$this->name = $name;
$this->description = $description;
- $this->author = $author;
- $this->maintainer = $maintainer;
+ $this->authors = $authors;
+ $this->maintainers = $maintainers;
$this->version = $version;
$this->status = $status;
}
return $this->description;
}
- public function getAuthor(): array
+ public function getAuthors(): array
{
- return $this->author;
+ return $this->authors;
}
- public function getMaintainer(): array
+ public function getMaintainers(): array
{
- return $this->maintainer;
+ return $this->maintainers;
}
public function getVersion(): string
$t = Renderer::getMarkupTemplate('admin/addons/details.tpl');
+ throw new \Exception('ff');
+
return Renderer::replaceMacros($t, [
'$title' => DI::l10n()->t('Administration'),
'$page' => DI::l10n()->t('Addons'),
'name' => $addonInfo->getName(),
'version' => $addonInfo->getVersion(),
'description' => $addonInfo->getDescription(),
- 'author' => $addonInfo->getAuthor(),
- 'maintainer' => $addonInfo->getMaintainer(),
+ 'author' => $addonInfo->getAuthors(),
+ 'maintainer' => $addonInfo->getMaintainers(),
],
'$str_author' => DI::l10n()->t('Author: '),
'$str_maintainer' => DI::l10n()->t('Maintainer: '),
'id' => '',
'name' => '',
'description' => '',
- 'author' => [],
- 'maintainer' => [],
+ 'authors' => [],
+ 'maintainers' => [],
'version' => '',
'status' => '',
];
'id' => 'test',
'name' => 'Test-Addon',
'description' => 'This is an addon for tests',
- 'author' => ['name' => 'Sam'],
- 'maintainer' => ['name' => 'Sam', 'link' => 'https://example.com'],
+ 'authors' => [['name' => 'Sam']],
+ 'maintainers' => [['name' => 'Sam', 'link' => 'https://example.com']],
'version' => '0.1',
'status' => 'In Development',
];
$this->assertSame($data['name'], $info->getName());
$this->assertSame($data['description'], $info->getDescription());
$this->assertSame($data['description'], $info->getDescription());
- $this->assertSame($data['author'], $info->getAuthor());
- $this->assertSame($data['maintainer'], $info->getMaintainer());
+ $this->assertSame($data['authors'], $info->getAuthors());
+ $this->assertSame($data['maintainers'], $info->getMaintainers());
$this->assertSame($data['version'], $info->getVersion());
$this->assertSame($data['status'], $info->getStatus());
}