<?php
namespace App\ClassTheatre\aside;
use App\ClassTheatre\aside\libs\asidesUrl;
use TheatreCore\Entity\Podcasts;
class asidesPodcasts extends asidesUrl {
public function __construct(&$aside, $context){
$listes_stations = [
'franceculture' => [
'custom_url_clean' => 'France-Culture',
'title_custom' => 'France Culture',
'logo_custom' => 'france-culture',
'url' => 'https://www.franceculture.fr/emissions/',
'url_thnet' => 'France-Culture',
'params' => null,
'getRelations' => []
],
'franceinter' => [
'custom_url_clean' => 'France-Inter',
'title_custom' => 'France Inter',
'logo_custom' => 'france-inter',
'url' => 'https://www.franceinter.fr/emissions/',
'url_thnet' => 'France-Inter',
'params' => 1,
'getRelations' => []
],
'soundcloud' => [
'title_custom' => 'Autres partenaires',
'logo_custom' => false,
'url_aside' => '/contacts/key_url_clean/podcasts/',
'type_podcast' => 'soundcloud',
'url_thnet' => false,
'getRelations' => ['podcast_contact']
]
];
$params_emissions = [
'order' => ['podcasts' => 'title_program'],
'direction' => 'ASC',
'group' => [
'podcasts' => 'title_program'
],
'limit' => ['all'],
'special' => [],
];
$selected = $aside['php']['params']['station'] ?: 'franceculture';
if(!empty($listes_stations[$selected]['params'])){
$params_emissions['special'] = [
'type_franceinter' => $listes_stations[$selected]['params']
];
}
else if(!empty($listes_stations[$selected]['type_podcast'])){
unset($params_emissions['group']);
$params_emissions['special'] = [
'type_podcast' => $listes_stations[$selected]['type_podcast']
];
}
$podcasts = $aside['php']['params']['em']->getRepository(Podcasts::class);
$listes_emissions = $podcasts->getListEmissions($params_emissions, ['getRelations' => $listes_stations[$selected]['getRelations']]);
$menu_content = [];
if($selected == 'soundcloud') {
foreach($listes_emissions AS $item){
if(!empty($item['podcast_contact'])) {
foreach ($item['podcast_contact'] AS $k => $v){
$menu_content[$k] = [
'name' => $v['organisation'],
'key_url_clean' => $v['url_clean']
];
}
}
}
usort($menu_content, function($a, $b) {return strcmp($a['name'], $b['name']);});
}
else{
foreach($listes_emissions AS $item){
if(!empty($item['title_program'])){
$menu_content[] = [
'name' => $item['title_program'],
'key_program' => $item['name_program']
];
}
}
}
foreach($listes_stations[$selected] AS $k => $v){
$aside[$k] = $v;
}
$aside['php'] = array(
'urls' => $menu_content,
'url' => (isset($listes_stations[$selected]['url_aside'])) ? $listes_stations[$selected]['url_aside'] : '/contacts/key_url/podcasts/emission/key_program',
'params' => array(
'key_url' => $listes_stations[$aside['php']['params']['station']]['url_thnet'],
'activate' => 'selections/'.$context->action
)
);
$aside['type_'.$selected] = true;
if($context->action == 'podcasts' && !empty($context->context['params']['emission'])){
$aside['php']['params']['activate'] = $context->context['params']['emission'];
}
parent::__construct($aside, $context);
$this->run("url");
}
}