From 74e7d68ac834885c4b89ee6e7d60db2157165799 Mon Sep 17 00:00:00 2001
From: Yassine Doghri <yassine@doghri.fr>
Date: Sun, 23 Jan 2022 19:58:30 +0000
Subject: [PATCH] fix: add category_label component to include parent category
 in about podcast page

---
 app/Helpers/components_helper.php | 17 +++++++++++++++++
 app/Helpers/seo_helper.php        |  2 +-
 app/Libraries/PodcastActor.php    |  2 +-
 themes/cp_app/podcast/about.php   |  8 ++------
 4 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/app/Helpers/components_helper.php b/app/Helpers/components_helper.php
index 4502c0f201..57c4ead5b7 100644
--- a/app/Helpers/components_helper.php
+++ b/app/Helpers/components_helper.php
@@ -7,6 +7,8 @@ declare(strict_types=1);
  * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
  * @link       https://castopod.org/
  */
+
+use App\Entities\Category;
 use App\Entities\Location;
 use CodeIgniter\I18n\Time;
 use CodeIgniter\View\Table;
@@ -331,3 +333,18 @@ if (! function_exists('explicit_badge')) {
 }
 
 // ------------------------------------------------------------------------
+
+
+if (! function_exists('category_label')) {
+    function category_label(Category $category): string
+    {
+        $categoryLabel = '';
+        if ($category->parent_id !== null) {
+            $categoryLabel .= lang('Podcast.category_options.' . $category->parent->code) . ' › ';
+        }
+
+        return $categoryLabel . lang('Podcast.category_options.' . $category->code);
+    }
+}
+
+// ------------------------------------------------------------------------
diff --git a/app/Helpers/seo_helper.php b/app/Helpers/seo_helper.php
index 3a6299e7f7..c24ac4c3b4 100644
--- a/app/Helpers/seo_helper.php
+++ b/app/Helpers/seo_helper.php
@@ -23,7 +23,7 @@ if (! function_exists('get_podcast_metatags')) {
     {
         $category = '';
         if ($podcast->category->parent_id !== null) {
-            $category .= $podcast->category->parent->apple_category . ' > ';
+            $category .= $podcast->category->parent->apple_category . ' › ';
         }
         $category .= $podcast->category->apple_category;
 
diff --git a/app/Libraries/PodcastActor.php b/app/Libraries/PodcastActor.php
index cfb9842100..ac12be1c32 100644
--- a/app/Libraries/PodcastActor.php
+++ b/app/Libraries/PodcastActor.php
@@ -37,7 +37,7 @@ class PodcastActor extends ActorObject
 
         $category = '';
         if ($podcast->category->parent_id !== null) {
-            $category .= $podcast->category->parent->apple_category . ' > ';
+            $category .= $podcast->category->parent->apple_category . ' › ';
         }
         $category .= $podcast->category->apple_category;
 
diff --git a/themes/cp_app/podcast/about.php b/themes/cp_app/podcast/about.php
index 2a1178c9ad..f0084e8e90 100644
--- a/themes/cp_app/podcast/about.php
+++ b/themes/cp_app/podcast/about.php
@@ -6,15 +6,11 @@
     <div class="mb-2"><?= $podcast->description_html ?></div>
     <div class="flex gap-x-4 gap-y-2">
         <span class="px-2 py-1 text-sm font-semibold border rounded-sm border-subtle bg-highlight">
-            <?= lang(
-    'Podcast.category_options.' . $podcast->category->code,
-) ?>
+            <?= category_label($podcast->category) ?>
         </span>
         <?php foreach ($podcast->other_categories as $other_category): ?>
             <span class="px-2 py-1 text-sm font-semibold border rounded-sm border-subtle bg-highlight">
-                <?= lang(
-    'Podcast.category_options.' . $other_category->code,
-) ?>
+                <?= category_label($other_category) ?>
             </span>
         <?php endforeach; ?>
     </div>
-- 
GitLab