Commit 3f4a6bd0 authored by Yassine Doghri's avatar Yassine Doghri
Browse files

feat: add episode_numbering() component helper to display episode and season numbers

parent e1f65cd3
Loading
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -118,8 +118,12 @@ class Episode extends BaseController
                $this->request->getPost('parental_advisory') !== 'undefined'
                    ? $this->request->getPost('parental_advisory')
                    : null,
            'number' => $this->request->getPost('episode_number'),
            'season_number' => $this->request->getPost('season_number'),
            'number' => $this->request->getPost('episode_number')
                ? $this->request->getPost('episode_number')
                : null,
            'season_number' => $this->request->getPost('season_number')
                ? $this->request->getPost('season_number')
                : null,
            'type' => $this->request->getPost('type'),
            'is_blocked' => $this->request->getPost('block') == 'yes',
            'created_by' => user(),
@@ -204,7 +208,9 @@ class Episode extends BaseController
            $this->request->getPost('parental_advisory') !== 'undefined'
                ? $this->request->getPost('parental_advisory')
                : null;
        $this->episode->number = $this->request->getPost('episode_number');
        $this->episode->number = $this->request->getPost('episode_number')
            ? $this->request->getPost('episode_number')
            : null;
        $this->episode->season_number = $this->request->getPost('season_number')
            ? $this->request->getPost('season_number')
            : null;
+3 −1
Original line number Diff line number Diff line
@@ -384,7 +384,9 @@ class Podcast extends BaseController
                'number' =>
                    $this->request->getPost('force_renumber') === 'yes'
                        ? $itemNumber
                        : $nsItunes->episode,
                        : (!empty($nsItunes->episode)
                            ? $nsItunes->episode
                            : null),
                'season_number' => empty(
                    $this->request->getPost('season_number')
                )
+64 −2
Original line number Diff line number Diff line
@@ -259,9 +259,9 @@ if (!function_exists('data_table')) {

if (!function_exists('publication_pill')) {
    /**
     * Data table component
     * Publication pill component
     *
     * Creates a stylized table.
     * Shows the stylized publication datetime in regards to current datetime.
     *
     * @param \CodeIgniter\I18n\Time    $publicationDate publication datetime of the episode
     * @param boolean                   $isPublished whether or not the episode has been published
@@ -303,4 +303,66 @@ if (!function_exists('publication_pill')) {
            '</span>';
    }
}

// ------------------------------------------------------------------------

if (!function_exists('episode_numbering')) {
    /**
     * Returns relevant translated episode numbering.
     *
     * @param int|null  $episodeNumber
     * @param int|null  $seasonNumber
     * @param string    $class styling classes
     * @param string    $is_abbr component will show abbreviated numbering if true
     *
     * @return string
     */
    function episode_numbering(
        $episodeNumber = null,
        $seasonNumber = null,
        $class = '',
        $isAbbr = false
    ): string {
        if (!$episodeNumber && !$seasonNumber) {
            return '';
        }

        $transKey = '';
        $args = [];
        if ($episodeNumber && $seasonNumber) {
            $transKey = 'Episode.season_episode';
            $args = [
                'seasonNumber' => $seasonNumber,
                'episodeNumber' => $episodeNumber,
            ];
        } elseif ($episodeNumber && !$seasonNumber) {
            $transKey = 'Episode.number';
            $args = [
                'episodeNumber' => $episodeNumber,
            ];
        } elseif (!$episodeNumber && $seasonNumber) {
            $transKey = 'Episode.season';
            $args = [
                'seasonNumber' => $seasonNumber,
            ];
        }

        if ($isAbbr) {
            return '<abbr class="' .
                $class .
                '" title="' .
                lang($transKey, $args) .
                '">' .
                lang($transKey . '_abbr', $args) .
                '</abbr>';
        }

        return '<span class="' .
            $class .
            '">' .
            lang($transKey, $args) .
            '</span>';
    }
}

// ------------------------------------------------------------------------
+1 −1
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ function write_enclosure_tags($episode)
            $episode->published_at ? $episode->published_at->format('Y') : '',
        ],
        'genre' => ['Podcast'],
        'comment' => [$episode->description_html],
        'comment' => [$episode->description],
        'track_number' => [strval($episode->number)],
        'copyright_message' => [$episode->podcast->copyright],
        'publisher' => [
+2 −1
Original line number Diff line number Diff line
@@ -142,6 +142,7 @@ function get_rss_feed($podcast, $serviceName = '')
                $itunes_namespace
            );

        $episode->number &&
            $item->addChild('episode', $episode->number, $itunes_namespace);
        $episode->season_number &&
            $item->addChild(
Loading