Skip to content
Commits on Source (4)
......@@ -14,6 +14,12 @@
]
}
],
"function-no-unknown": [
true,
{
"ignoreFunctions": ["theme"]
}
],
"no-descending-specificity": null,
"selector-class-pattern": null
}
......
# [1.5.0](https://code.castopod.org/adaures/castopod/compare/v1.4.7...v1.5.0) (2023-07-27)
### Bug Fixes
- **admin-ui:** truncate header title + remove sticky podcast banner card on
mobile
([63c20da](https://code.castopod.org/adaures/castopod/commit/63c20da5ffd500265f06fa38f2b2c963e14602af))
### Features
- add podcast links page including social, podcasting and funding links
([8ae2929](https://code.castopod.org/adaures/castopod/commit/8ae292933af15fa99856582ac24e985bfef37d5b))
## [1.4.7](https://code.castopod.org/adaures/castopod/compare/v1.4.6...v1.4.7) (2023-07-19)
### Bug Fixes
......
......@@ -11,7 +11,7 @@ declare(strict_types=1);
|
| NOTE: this constant is updated upon release with Continuous Integration.
*/
defined('CP_VERSION') || define('CP_VERSION', '1.4.7');
defined('CP_VERSION') || define('CP_VERSION', '1.5.0');
/*
| --------------------------------------------------------------------
......
......@@ -81,6 +81,9 @@ $routes->group('@(:podcastHandle)', static function ($routes): void {
$routes->get('manifest.webmanifest', 'WebmanifestController::podcastManifest/$1', [
'as' => 'podcast-webmanifest',
]);
$routes->get('links', 'PodcastController::links/$1', [
'as' => 'podcast-links',
]);
// override default Fediverse Library's actor route
$routes->options('/', 'ActivityPubController::preflight');
$routes->get('/', 'PodcastController::activity/$1', [
......
......@@ -318,4 +318,12 @@ class PodcastController extends BaseController
->setContentType('application/activity+json')
->setBody($collection->toJSON());
}
public function links(): string
{
return view('podcast/links', [
'metatags' => get_podcast_metatags($this->podcast, 'links'),
'podcast' => $this->podcast,
]);
}
}
......@@ -16,12 +16,18 @@ if (! function_exists('render_page_links')) {
*
* @return string html pages navigation
*/
function render_page_links(string $class = null): string
function render_page_links(string $class = null, string $podcastHandle = null): string
{
$pages = (new PageModel())->findAll();
$links = anchor(route_to('home'), lang('Common.home'), [
'class' => 'px-2 py-1 underline hover:no-underline focus:ring-accent',
]);
if ($podcastHandle !== null) {
$links .= anchor(route_to('podcast-links', $podcastHandle), lang('Podcast.links'), [
'class' => 'px-2 py-1 underline hover:no-underline focus:ring-accent',
]);
}
$links .= anchor(route_to('credits'), lang('Person.credits'), [
'class' => 'px-2 py-1 underline hover:no-underline focus:ring-accent',
]);
......
......@@ -25,6 +25,7 @@ return [
one {# post}
other {# posts}
}',
'links' => 'Links',
'activity' => 'النشاط',
'episodes' => 'الحلقات',
'episodes_title' => 'حلقات {podcastTitle}',
......
......@@ -61,6 +61,7 @@ return [
84 {# c\'hemennadenn}
89 {# c\'hemennadenn}
}',
'links' => 'Links',
'activity' => 'Oberiantiz',
'episodes' => 'Rannoù',
'episodes_title' => 'Rannoù {podcastTitle}',
......
......@@ -25,6 +25,7 @@ return [
one {# publicació}
other {# publicacions}
}',
'links' => 'Links',
'activity' => 'Activitat',
'episodes' => 'Episodis',
'episodes_title' => 'Episodis de {podcastTitle}',
......
......@@ -25,6 +25,7 @@ return [
one {# post}
other {# posts}
}',
'links' => 'Links',
'activity' => 'Activity',
'episodes' => 'Episodes',
'episodes_title' => 'Episodes of {podcastTitle}',
......
......@@ -25,6 +25,7 @@ return [
one {# Beitrag}
other {# Beiträge}
}',
'links' => 'Links',
'activity' => 'Aktivitäten',
'episodes' => 'Episoden',
'episodes_title' => 'Folgen von {podcastTitle}',
......
......@@ -25,6 +25,7 @@ return [
one {# δημοσίευση}
other {# δημοσιεύσεις}
}',
'links' => 'Links',
'activity' => 'Δραστηριότητα',
'episodes' => 'Επεισόδια',
'episodes_title' => 'Επεισόδια του {podcastTitle}',
......
......@@ -25,6 +25,7 @@ return [
one {# post}
other {# posts}
}',
'links' => 'Links',
'activity' => 'Activity',
'episodes' => 'Episodes',
'episodes_title' => 'Episodes of {podcastTitle}',
......
......@@ -25,6 +25,7 @@ return [
one {# publicación}
other {# publicaciones}
}',
'links' => 'Links',
'activity' => 'Actividad',
'episodes' => 'Episodios',
'episodes_title' => 'Episodios de {podcastTitle}',
......
......@@ -18,12 +18,10 @@ return [
'submit_reply' => 'پاسخ',
],
'likes' => '{numberOfLikes, plural,
one {# like}
other {# likes}
other {# پسند}
}',
'replies' => '{numberOfReplies, plural,
one {# reply}
other {# replies}
other {# پاسخ}
}',
'like' => 'پسند',
'reply' => 'پاسخ',
......
......@@ -15,7 +15,7 @@ return [
'optional' => 'اختیاری',
'close' => 'بستن',
'home' => 'خانه',
'explicit' => 'Explicit',
'explicit' => 'صریح',
'powered_by' => 'نیرو گرفته از {castopod}',
'go_back' => 'بازگشت',
'play_episode_button' => [
......
......@@ -16,8 +16,7 @@ return [
'season_episode' => 'قسمت {episodeNumber} فصل {seasonNumber}',
'season_episode_abbr' => 'ف{seasonNumber}: ق{episodeNumber}',
'persons' => '{personsCount, plural,
one {# person}
other {# persons}
other {# نفر}
}',
'persons_list' => 'نفر',
'back_to_episodes' => 'بازگشت به قسمت‌های {podcast}',
......@@ -25,8 +24,7 @@ return [
'activity' => 'فعّالیت',
'description' => 'شرح قسمت',
'number_of_comments' => '{numberOfComments, plural,
one {# comment}
other {# comments}
other {# نظر}
}',
'all_podcast_episodes' => 'تمامی قسمت‌های پادکست',
'back_to_podcast' => 'بازگشت به پادکست',
......
......@@ -9,8 +9,8 @@ declare(strict_types=1);
*/
return [
'your_handle' => 'Your handle',
'your_handle_hint' => 'Enter the @username@domain you want to act from.',
'your_handle' => 'شناسه‌تان',
'your_handle_hint' => '@username@domainای که می‌خواهید کنشتان از آن باشد را وارد کنید.',
'follow' => [
'label' => 'پی‌گیری',
'title' => 'پی‌گیری {actorDisplayName}',
......
......@@ -18,13 +18,12 @@ return [
'follow' => 'پی‌گیری',
'followTitle' => 'پی‌گیری {actorDisplayName} روی فدیورس!',
'followers' => '{numberOfFollowers, plural,
one {# follower}
other {# followers}
other {# پی‌گیر}
}',
'posts' => '{numberOfPosts, plural,
one {# post}
other {# posts}
other {# فرسته}
}',
'links' => 'Links',
'activity' => 'فعّالیت',
'episodes' => 'قسمت‌ها',
'episodes_title' => 'قسمت‌های {podcastTitle}',
......@@ -32,12 +31,10 @@ return [
'stats' => [
'title' => 'آمار',
'number_of_seasons' => '{0, plural,
one {# season}
other {# seasons}
other {# فصل}
}',
'number_of_episodes' => '{0, plural,
one {# episode}
other {# episodes}
other {# قسمت}
}',
'first_published_at' => 'قسمت نخست منتشر شده روی {0, date, medium}',
],
......@@ -46,8 +43,7 @@ return [
'find_on' => 'یافتن {podcastTitle} روی',
'listen_on' => 'شنیدن روی',
'persons' => '{personsCount, plural,
one {# person}
other {# persons}
other {# نفر}
}',
'persons_list' => 'نفر',
];
......@@ -22,16 +22,13 @@ return [
'submit_reply' => 'پاسخ',
],
'favourites' => '{numberOfFavourites, plural,
one {# favourite}
other {# favourites}
other {# برگزیده}
}',
'reblogs' => '{numberOfReblogs, plural,
one {# share}
other {# shares}
other {# هم‌رسانی}
}',
'replies' => '{numberOfReplies, plural,
one {# reply}
other {# replies}
other {# پاسخ}
}',
'expand' => 'گسترش فرسته',
'block_actor' => 'انسداد کاربر @{actorUsername}',
......