fix calculation on indirect articles by tags

This commit is contained in:
ludo
2025-01-03 14:45:23 +01:00
parent df78126b12
commit 2e71f17856
2 changed files with 18 additions and 26 deletions

View File

@@ -15,14 +15,23 @@ class TagGroups
public static function getWithTagsAndCountOffers($category_id = false)
{
$data = [];
$tags = Tag::withCountArticlesByCategory($category_id)->get()->toArray();
$tagGroups = TagGroup::pluck('name', 'id')->toArray();
foreach ($tags as $tag) {
$data[$tag['tag_group_id']]['name'] = $tagGroups[$tag['tag_group_id']];
$data[$tag['tag_group_id']]['tags'][] = [
$tagsDirect = Tag::withCountDirectArticlesByCategory($category_id)->get()->toArray();
$tagsIndirect = Tag::withCountIndirectArticlesByCategory($category_id)->get()->toArray();
foreach ($tagsDirect as $tag) {
$data[$tag['tag_group_id']]['name'] = $tag['group'];
$data[$tag['tag_group_id']]['tags'][$tag['id']] = [
'id' => $tag['id'],
'name' => $tag['name'],
'count' => $tag['direct_article_count'] + $tag['indirect_article_count'],
'count' => $tag['direct_article_count'],
];
}
foreach ($tagsIndirect as $tag) {
$data[$tag['tag_group_id']]['name'] = $tag['group'];
$data[$tag['tag_group_id']]['tags'][$tag['id']] = [
'id' => $tag['id'],
'name' => $tag['name'],
'count' => ($data[$tag['tag_group_id']]['tags'][$tag['id']]['count'] ?? 0) + $tag['indirect_article_count'],
];
}