= __('Tags and Taxonomies') ?>
$entries) {
if (empty($entries[0]['Taxonomy'])) {
continue;
}
$htmlTags .= sprintf('
%s
', h($namespace));
if (!empty($entries[0]['Taxonomy']['description'])) {
$htmlTags .= sprintf('
%s
', h($entries[0]['Taxonomy']['description']));
}
$htmlTags .= '
';
foreach ($entries as $entry) {
$taxonomyInfo = '';
if (!empty($entry['TaxonomyPredicate'])) {
$taxonomyInfo .= sprintf(
'- %s: %s
',
h($entry['TaxonomyPredicate']['value']),
h($entry['TaxonomyPredicate']['expanded'])
);
}
if (!empty($entry['TaxonomyEntry'])) {
$taxonomyInfo .= sprintf(
'- %s: %s
',
h($entry['TaxonomyEntry']['value']),
h($entry['TaxonomyEntry']['expanded'])
);
}
$taxonomyInfo .= '
';
$htmlTags .= sprintf(
'- %s
%s',
$this->element('tag', ['tag' => $entry]),
$taxonomyInfo
);
}
$htmlTags .= '
';
}
echo $htmlTags;
?>
= __('Galaxy Clusters') ?>
$entries) {
echo sprintf(
'
%s %s
',
sprintf('
', $this->FontAwesome->getClass($entries[0]['Galaxy']['icon'])),
h($entries[0]['Galaxy']['name'])
);
if (!empty($entries[0]['Galaxy']['description'])) {
echo sprintf('
%s
', h($entries[0]['Galaxy']['description']));
}
echo '
';
foreach ($entries as $cluster) {
$description = $this->Markdown->toText($cluster['GalaxyCluster']['description']);
echo sprintf(
'- %s
%s',
$baseurl . '/galaxy_clusters/view/' . h($cluster['GalaxyCluster']['id']),
h($cluster['GalaxyCluster']['value']),
strlen($description) > 300 ?
(h(mb_substr($description, 0, 300)) . '...') : h($description)
);
}
echo '
';
}
?>
= __('Mitre ATT&CK Matrix') ?>
= $this->element('view_galaxy_matrix', $attackData); ?>