<?php
namespace App\Controller;
use App\ClassTheatre\asides;
use App\ClassTheatre\TheatreController;
use App\Exception\RedirectException;
use App\Service\Date_time;
use App\Service\Functions;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Cache\Adapter\AdapterInterface;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
use TheatreCore\Classes\Ecoles;
use TheatreCore\Entity\Aidecontacts;
use TheatreCore\Entity\Contacts;
use TheatreCore\Entity\EcoleRole;
use TheatreCore\Entity\Multimedias;
use TheatreCore\Entity\PersonEcole;
use TheatreCore\Entity\Persons;
use TheatreCore\Entity\Spectacles;
class EcolesController extends TheatreController
{
// {{{ _construct()
private ?AdapterInterface $cache = null;
/** constructeur hérité
*
*/
public function __construct(
EntityManagerInterface $em,
TranslatorInterface $translator,
TokenStorageInterface $tokenStorage,
Functions $func,
AdapterInterface $cache
)
{
// load new aside
$this->asides = new asides();
$this->func = $func;
$GLOBALS['rub_courante'] = 'contacts';
$this->em = $em;
$this->cache = $cache;
// hérite du constructeur parent
parent::__construct($translator, $tokenStorage);
$this->perPage = 20;
}
// }}}
// {{{ InitController()
public function InitController($idcontact = null, $action = null)
{
$this->idcontact = $idcontact;
$this->view->action = $this->context['action'] = $action;
$this->view->controller = $GLOBALS['rub_courante'];
$this->contacts = $this->em->getRepository(Contacts::class);
$this->person_ecole = $this->em->getRepository(PersonEcole::class);
$this->ecole_role = $this->em->getRepository(EcoleRole::class);
$this->context['view']->nb_eleves = $this->person_ecole->countEleves($this->idcontact);
$idtypestructure = 'EC';
$params_sql_typestructure = array(
'where' => array(
array('contacts', 'idtypestructure', $idtypestructure),
' AND contacts.idcontact NOT IN (SELECT idcontact FROM contact_classification WHERE idclassification=99) ',
),
'order' => array('contacts' => 'organisation'),
'direction' => 'ASC',
'idclassification' => array('NOT' => array(99)),
'limit' => array(0,300),
'dbg' => array('ecoles','Ecoles supérieures'),
);
$this->context['view']->structures = $this->contacts->getListContacts($params_sql_typestructure,array(),array('get_profile_picture' => true));
foreach($this->context['view']->structures as $k=>$v) {
if(!empty($v['country_code'])){
$this->context['view']->structures_by_country[$v['country_code']]['country'] = $v['country'];
$this->context['view']->structures_by_country[$v['country_code']]['datas'][] = $v;
}
}
$this->context['view']->nb_structures = count($this->context['view']->structures);
$this->asides = new asides();
}
// }}}
// {{{ buildMenu()
/** Construit le menu et l'envoie à la vue
*
*
* @access protected
* @return void
*/
protected function buildMenu()
{
// menu pour écoles
$menu_content = array(
array(
'name' => 'Actualités',
'key_url' => 'ecoles/actualites'
),
array(
'name' => 'Les écoles',
'key_url' => 'ecoles'
),
array(
'name' => 'Les étudiants',
'key_url' => 'ecoles/etudiants',
'key_url_2' => 'ecoles/anciens'
),
// array(
// 'name' => 'Les anciens à l\'affiche',
// 'key_url' => 'ecoles/anciens-affiche',
// ),
array(
'name' => 'Soutiens',
'key_url' => 'ecoles/soutiens'
),
array(
'name' => 'En scène',
'key_url' => 'ecoles/en-scene',
'key_url_2' => 'ecoles/anciens-affiche-tous',
'key_params' => 'type/prod'
)
);
$asides_top = new asides();
$asides_top->load(['aside_top' => array(
'php' => array(
'method' => 'asidesUrlLists',
'urls' => $menu_content,
'url' => '/key_url/key_params',
'params' => array(
'key_url' => 'auto_key',
'activate' => ($this->context['action'] == 'view') ? 'ecoles' : 'ecoles/'.$this->context['action'],
'key_params' => ''
)
)
)
]);
$this->context['view']->aside_top = $asides_top->view();
}
// }}}
// {{{ finalizeAction()
/** Après l'action, construit le titre de page et le fil d'arianne
*
*
* @access protected
* @return void
*/
protected function finalizeAction()
{
$this->buildMenu();
$this->context['view']->aside = $this->asides->view();
}
// }}}
// {{{ action_actualites()
/** Actualités des écoles
*
* @Route("/ecoles/actualites", name="ecoles_actualites")
*
*/
public function action_actualites()
{
$this->InitController(null, 'actualites');
$idtypestructure = 'EC';
$multimedias = $this->em->getRepository(Multimedias::class);
foreach($this->context['view']->structures AS $k => $v){
$idcontacts[] = $k;
}
$ids_spectacle_prod = $this->contacts->getSpectaclesProd($idcontacts);
// print_r($ids_spectacle_prod);
$params_sql = array(
'where' => array(
// $where_idcontact
array('spectacles','idspectacle',$ids_spectacle_prod), // uniquement les spectacles
// array('schedules','idcontact',$idcontacts), // uniquement dans ces structures
),
'affiche' => array('today' => 420),
'limit' => array(0,1),
'dbg' => array('affiche','Vidéos de spectacles à l\'affiche'),
);
$list_multimedias = $multimedias->getListMultimedias(
$params_sql,
array('width'=>$_ENV['VIGN_VIDEO_WIDTH'],'height'=>$_ENV['VIGN_VIDEO_HEIGHT'],'fleche'=>'none','ratio' => '169'),
array('format_vignette' => true)
);
// $this->view->accueil_video['media'] = $list_multimedias;
$params_sql_typestructure = array(
'where' => array(
array('contacts', 'idtypestructure', $idtypestructure),
' AND contacts.idcontact NOT IN (SELECT sub_c.idcontact FROM contacts sub_c WHERE sub_c.idtypestructure=\'EC\') ',
),
'order' => array('contacts' => 'organisation'),
'direction' => 'ASC',
'idclassification' => array('NOT' => array(99)),
'limit' => array(0,300),
'dbg' => array('ecoles','Ecoles supérieures'),
);
$this->context['view']->structures = $x = $this->contacts->getListContacts($params_sql_typestructure,array(),array('get_profile_picture' => true));
//Prochains spectacles produits ou coproduits
$params_sql = [
'params' => array(
'from' => 'TheatreCore\Entity\SpectacleContact sct',
'where' => 'AND s.publish=1
AND sct.idspectacle=s.idspectacle
AND sct.idrole IN ('.implode(',', array(17,18,19)).')
AND (sct.idcontact IN (SELECT sub_c.idcontact FROM TheatreCore\Entity\Contacts sub_c WHERE sub_c.idtypestructure=\'EC\')
OR s.idcontactProduction IN (SELECT sub_c2.idcontact FROM TheatreCore\Entity\Contacts sub_c2 WHERE sub_c2.idtypestructure=\'EC\'))',
'groupby' => 's.idspectacle',
'order' => ['creation_date', 'DESC'],
'limit' => [0,4]
),
'special' => array(
// 'idtypestructure' => 'EC',
// 'structures_specifiques' => 'EC',
),
'dbg' => array('list_others_spectacles', 'Liste spectacles produits par une école'),
];
$spectacles = $this->em->getRepository(Spectacles::class);
$spectacles_datas = $spectacles->getListSpectacles($params_sql, null, false, ['allauthors' => true]);
foreach ($spectacles_datas AS $ks => $vs) {
$spectacles_datas[$ks]['display']['affiche_date_creation'] = true;
$spectacles_datas[$ks]['annee_creation'] = $spectacles->getFormeDate($spectacles_datas[$ks]['creation_date'], '%Y', true); //%a %d/%m/%Y;
}
$this->context['view']->derniers_spectacles = $spectacles_datas;
unset($params_sql['params']['order']);
$params_sql['special']['order'] = ['sc.date', 'ASC'];
$params_sql['special']['prochains'] = '180';
$prochains_spectacles = $spectacles->getListSpectacles($params_sql, null, false, ['allauthors' => true]);
foreach ($prochains_spectacles AS $ks => $vs) {
$prochains_spectacles[$ks]['footer_contact'] = true;
}
$this->context['view']->prochains_spectacles = $prochains_spectacles;
// Derniers spectacles soutenus
$params_sql = [
'params' => array(
'groupby' => 's.idspectacle',
'limit' => array(0, 4),
'order' => ['creation_date', 'DESC']
),
'special' => array(
'aide' => [
// 'idcontact' => $idcontacts
'idaidecontact' => 105
],
'spectacle_aide' => true,
)
];
$spectacles_datas = $spectacles->getListSpectacles($params_sql, null, false, ['allauthors' => true]);
foreach ($spectacles_datas AS $ks => $vs) {
$spectacles_datas[$ks]['display']['affiche_date_creation'] = true;
$spectacles_datas[$ks]['annee_creation'] = $spectacles->getFormeDate($spectacles_datas[$ks]['creation_date'], '%Y', true); //%a %d/%m/%Y;
}
$this->context['view']->spectacles_soutenus = $spectacles_datas;
// Prochains spectacles soutenus
$params_sql['special']['prochains'] = true;
$params_sql['special']['plus_proche'] = true;
$params_sql['params']['order'] = ['sc.date', 'ASC'];
$prochains_spectacles_soutenus = $spectacles->getListSpectacles($params_sql, null, false, ['allauthors' => true]);
foreach ($prochains_spectacles_soutenus AS $ks => $vs) {
$prochains_spectacles_soutenus[$ks]['footer_contact'] = true;
}
$this->context['view']->prochains_spectacles_soutenus = $prochains_spectacles_soutenus;
//Les prochains étudiants à l'affiche
// les élèves
$where_idperson = 'sp.`idperson` IN ('.join(',', $this->person_ecole->getPersons(null,array('get_ids' => true))).') ';
$params_sql = array(
'params' => array(
'where' => ' AND ('.$where_idperson.') ',
'limit' => array(0, 6),
'order' => ['sc.date', 'ASC']
),
'special' => array(
// 'plus_proche' => true,
'prochains' => '180',
'get_eleves' => 'all'
),
'dbg' => array('anciens_affiche_tous','Les étudiants à l\'affiche'),
);
$this->context['view']->spectacles_anciens_etudiants_affiche = $spectacles->getListSpectacles($params_sql, null, false, ['allauthors' => true]);
$this->loadAsidesActualites();
return $this->view('ecoles/actualites.html.twig');
}
// {{{ action_view()
/** Liste des écoles
*
* @Route("/ecoles/", name="ecoles_view")
*
*/
public function action_view()
{
$this->InitController(null, 'view');
$this->asides->load('ecoles_view_texte');
return $this->view('ecoles/view.html.twig');
}
// }}}
// {{{ action_soutiens()
/** trouver les textes à l'affiche qui ont un soutien de la structure
*
* @Route("/ecoles/soutiens/", name="ecoles_soutiens")
*
* @access public
* @return void
*/
public function action_soutiens($execute_content = true)
{
if($execute_content){
$this->InitController(null, 'soutiens');
}
$params_sql = [
'params' => array(
'groupby' => 's.idspectacle',
'order' => ['creation_date', 'DESC']
),
'special' => array(
// 'aide' => [
//// 'idcontact' => $idcontacts,
// 'idaidecontact' => 105
// ],
'spectacle_aide' => true,
// 'prochains' => true,
// 'plus_proche' => true
),
'dbg' => array('spectacles_prod_list','Spectacles prod/coprod/prod deleg de ce contact')
];
// chercher une aide précise
if(!empty($this->context['params']['idaide'])) {
$idaide = (int)$this->context['params']['idaide'];
}
foreach($this->context['view']->structures AS $k => $v){
$idcontacts[] = $k;
}
$params_sql_aidecontact = array(
'where' => array(
array('spectacle_aide','publish',1),
),
'special' => array(
'object' => 'spectacle',
'aides' => array(
'idcontacts' => $idcontacts,
'no_empty' => true,
'idaidecontact' => [105],
),
),
'limit' => array(0,100),
'dbg' => array('list_aidecontacts_spectacle','Liste des catégories d\'aide pour spectacles'),
);
$aidecontacts = $this->em->getRepository(Aidecontacts::class);
$this->context['view']->list_aidecontacts = $aidecontacts->getListAidecontacts($params_sql_aidecontact);
if(!empty($idaide)) {
$params_sql['special']['aides']['idaide'] = $idaide;
// par courir les aides et marquer l'active
foreach($this->context['view']->list_aidecontacts as $k=>$v) {
foreach($v['aides'] as $kb=>$vb) {
if(empty($vb[''])){
$this->context['view']->list_aidecontacts[$k]['aides'][$kb]['mention_contacts'] = $aidecontacts->wikiTransform($vb['mention_contacts']);
}
if($vb['idaide']==$idaide) {
$this->context['view']->list_aidecontacts[$k]['aides'][$kb]['active'] = true;
$this->context['view']->list_aidecontacts[$k]['active'] = true;
}
}
}
}
$spectacles = $this->em->getRepository(Spectacles::class);
$total_spectacles = $spectacles->countListSpectacles($params_sql);
$this->context['view']->pagination = $this->getPagination($total_spectacles, 20);
$this->context['view']->pagination['totalItems'] = $total_spectacles;
$this->context['view']->pagination['representation_spectacle'] = true;
$this->context['view']->pagination['spectacle'] = true;
$params_query_count = $this->em->getRepository(Spectacles::class)->countListSchedules($params_sql_aidecontact);
$this->context['view']->pagination['total_dates'] = $params_query_count;
$params_sql['params']['limit'] = array($this->getLimitStart(), $this->perPage);
$spectacles_datas = $spectacles->getListSpectacles($params_sql, false, null, ['carrer_couleurs' => true, 'allauthors' => true]);
foreach ($spectacles_datas AS $ks => $vs) {
$spectacles_datas[$ks]['display']['affiche_date_creation'] = true;
$spectacles_datas[$ks]['annee_creation'] = $spectacles->getFormeDate($spectacles_datas[$ks]['creation_date'], '%Y', true); //%a %d/%m/%Y;
}
$this->context['view']->spectacles = $spectacles_datas;
$this->loadAsidesSoutiens();
if($execute_content) {
return $this->view('ecoles/soutiens.html.twig');
}
}
// }}}
// {{{ action_en_scene()
/** trouver les textes à l'affiche qui ont un soutien de la structure
*
* @Route("/ecoles/en-scene/", name="ecoles_en_scene")
* @Route("/ecoles/en-scene/type/{type}", name="ecoles_en_scene_type")
* @Route("/ecoles/en-scene/type/{type}/periode/{periode}", name="ecoles_en_scene_type_periode")
*
* @access public
* @return void
*/
public function action_en_scene($execute_content = true, $type = null, $periode = null){
if(empty($this->context['params']['type'])){
$this->context['params']['type'] = $type;
}
if(empty($this->context['params']['periode'])){
$this->context['params']['periode'] = $periode;
}
if($execute_content){
$this->InitController(null, 'en-scene');
}
$params = array(
'prod' => array(
'params' => array(
'from' => 'TheatreCore\Entity\SpectacleContact sct',
'where' => 'AND s.publish=1
AND sct.idspectacle=s.idspectacle
AND sct.idrole IN ('.implode(',', array(17,18,19)).')
AND (sct.idcontact IN (SELECT sub_c.idcontact FROM TheatreCore\Entity\Contacts sub_c WHERE sub_c.idtypestructure=\'EC\')
OR s.idcontactProduction IN (SELECT sub_c2.idcontact FROM TheatreCore\Entity\Contacts sub_c2 WHERE sub_c2.idtypestructure=\'EC\')) ',
'groupby' => 's.idspectacle',
'order' => ['creation_date', 'DESC']
),
'special' => array(
// 'idtypestructure' => 'EC',
// 'structures_specifiques' => 'EC',
),
'dbg' => array('list_others_spectacles', 'Liste spectacles produits par une école'),
),
'coprod' => array(
'params' => array(
'from' => 'TheatreCore\Entity\SpectacleContact sct',
'where' => 'AND s.publish=1
AND sct.idspectacle=s.idspectacle
AND sct.idrole IN ('.implode(',', array(17,18,19)).')
AND (sct.idcontact IN (SELECT sub_c.idcontact FROM TheatreCore\Entity\Contacts sub_c WHERE sub_c.idtypestructure=\'EC\')
OR s.idcontactProduction IN (SELECT sub_c2.idcontact FROM TheatreCore\Entity\Contacts sub_c2 WHERE sub_c2.idtypestructure=\'EC\')) ',
'groupby' => 's.idspectacle',
),
'special' => array(
// 'prochains' => true,
// 'plus_proche' => true
),
'dbg' => array('spectacles_prod_list','Spectacles prod/coprod/prod deleg de ce contact')
),
'soutiens' => array(
'params' => array(
'groupby' => 's.idspectacle',
),
'special' => array(
'aide' => [
// 'idcontact' => $idcontacts,
'idaidecontact' => 105
],
'spectacle_aide' => true,
// 'prochains' => true,
// 'plus_proche' => true
),
'dbg' => array('spectacles_prod_list','Spectacles prod/coprod/prod deleg de ce contact')
)
);
$spectacles = $this->em->getRepository(Spectacles::class);
foreach($params AS $key => $param) {
foreach(['anciens', 'prochains'] as $val) {
$p = $param;
if($val == 'prochains'){
$p['special']['plus_proche'] = true;
$p['special']['prochains'] = true;
$p['params']['order'] = ['sc.date', 'DESC'];
}
else{
$p['params']['order'] = ['creation_date', 'DESC'];
$p['special'][$val] = true;
}
$this->context['view']->{'spectacles_count_' . $key . '_'.$val} = $spectacles->countListSpectacles($p);
}
}
if($execute_content) {
if (!empty($this->context['params']['type']) && array_key_exists($this->context['params']['type'], $params)) {
$type = $this->context['params']['type'];
$this->context['view']->{'type_' . $type} = true;
$params_selected = $params[$type];
//Sélection de la période
$periodes_selected = 'prochains';
$filtres_periodes = ['prochains', 'anciens'];
if (!empty($this->context['params']['periode']) && in_array($this->context['params']['periode'], $filtres_periodes)) {
$this->context['view']->{'type_'.$this->context['params']['periode']} = $periodes_selected = $this->context['params']['periode'];
}
$this->context['view']->periodes_selected = $periodes_selected;
$params_selected['special'][$periodes_selected] = true;
if($type == 'soutiens' && $periodes_selected == 'anciens'){
unset($params_selected['special']['anciens']);
}
if ($periodes_selected == 'prochains') {
// $params_selected['special']['plus_proche'] = true;
$params_selected['params']['order'] = ['sc.date', 'ASC'];
} else {
$params_selected['params']['order'] = ['creation_date', 'DESC'];
}
// echo $spectacles->getSQLSpectacles($params_selected['params'], $params_selected['special']);
// exit;
$this->context['view']->nb_spectacles_total = $spectacles->countListSpectacles($params_selected);
$this->context['view']->pagination = $this->getPagination($this->context['view']->nb_spectacles_total, 10);
$this->context['view']->pagination['totalItems'] = $this->context['view']->nb_spectacles_total;
$this->context['view']->pagination['representation_spectacle'] = true;
$this->context['view']->pagination['spectacle'] = true;
if($periodes_selected != 'anciens') {
$params_query_count = $this->em->getRepository(Spectacles::class)->countListSchedules($params_selected);
$this->context['view']->pagination['total_dates'] = $params_query_count;
}
$params_selected['params']['limit'] = array($this->getLimitStart(), $this->perPage);
$spectacles_datas = $spectacles->getListSpectacles($params_selected, false, null, ['carrer_couleurs' => true, 'allauthors' => true]);
if ($periodes_selected == 'anciens') {
foreach ($spectacles_datas AS $ks => $vs) {
$spectacles_datas[$ks]['display']['affiche_date_creation'] = true;
$spectacles_datas[$ks]['annee_creation'] = $spectacles->getFormeDate($spectacles_datas[$ks]['creation_date'], '%Y', true); //%a %d/%m/%Y;;
}
}
foreach ($spectacles_datas AS $k => $v) {
if ($type == 'coprod' || $type == 'soutiens' || $periodes_selected == 'prochains') {
$spectacles_datas[$k]['footer_contact'] = true;
} else if ($type == 'prod' && $periodes_selected == 'anciens') {
$spectacles_datas[$k]['annee_creation'] = $spectacles->getFormeDate($spectacles_datas[$k]['creation_date'], '%Y', true); //%a %d/%m/%Y;
$spectacles_datas[$k]['display'] = array('affiche_date_creation' => true);
}
}
$this->context['view']->spectacles = $spectacles_datas;
}
$this->loadEnScene();
}
return $this->view('ecoles/en-scene.html.twig');
}
// }}}
// {{{ action_etudiants()
/** Liste des étudiants
*
* @Route("/ecoles/etudiants/", name="ecoles_etudiants")
* @Route("/ecoles/etudiants/photo/{p_photo}/y/{p_y}", name="ecoles_etudiants_photo_y")
* @Route("/ecoles/etudiants/y/{p_y}/photo/{p_photo}", name="ecoles_etudiants_y_photo")
* @Route("/ecoles/etudiants/role/{p_role}/sexe/{p_sexe}/y/{p_y}/photo/{p_photo}", name="ecoles_etudiants_role_sexe_y_photo")
* @Route("/ecoles/etudiants/role/{p_role}/y/{p_y}/photo/{p_photo}", name="ecoles_etudiants_role_y_photo")
*
*/
public function action_etudiants(Ecoles $ecoles, $params = [], $p_photo = null, $p_y = null, $p_role = null, $p_sexe = null)
{
if(empty($params['stop_execute'])) {
$this->context['params']['photo'] = $p_photo;
$this->context['params']['role'] = $p_role;
$this->context['params']['sexe'] = $p_sexe;
$this->context['params']['y'] = $p_y;
}
if(!empty($params['idcontact'])){
$this->InitController($params['idcontact'], 'etudiants');
}
else{
$this->InitController(null, 'etudiants');
}
$this->context['view']->page = '/ecoles/etudiants';
$params_sql = array(
'special' => array(
'person_ecole' => array(
'periode' => 'actual',
'exclude_jtn' => true,
)
),
'params' => array(
'limit' => 'all'
),
'dbg' => array('etudiants','Les étudiants en cours d\'étude')
);
// pour une école en particulier
if(!empty($this->idcontact)) {
$params_sql['special']['person_ecole']['idcontact'] = $this->idcontact;
unset($params_sql['special']['person_ecole']['exclude_jtn']);
}
$this->context['view']->annees = $this->em->getRepository(Persons::class)->getPromos($params_sql);
// annee de promo
$annee_promo = 'all';
$this->context['view']->annee_promo = $annee_promo;
$annee_promo = $this->context['view']->annee_promo_selected = 'all';
if(!empty($this->context['params']['y']) && $this->context['params']['y'] != 'all' && array_key_exists($this->context['params']['y'], $this->context['view']->annees)) {
$this->context['view']->annee_promo_selected = $annee_promo = $this->context['view']->annee_promo = $this->context['params']['y'];
$params_sql['special']['person_ecole']['periode'] = $this->context['view']->annee_promo;
}
// } else {
// foreach($this->context['view']->annees as $k=>$v) {
// $this->context['view']->annee_promo = $k;
// break;
// }
// }
//tous les étudiants
$this->context['view']->nb_etudiants = $this->em->getRepository(Persons::class)->countListPersons($params_sql);
$this->context['view']->annees['all']['annee'] = 'Toutes les années';
$this->context['view']->annees[$annee_promo]['active'] = true;
// photos ou pas
$this->getWithPhoto($params_sql);
// les roles
$this->getRolesCommon($params_sql);
// sexe ?
$this->getSexeCommon($params_sql);
$this->context['view']->nb_etudiants_filtres = $this->em->getRepository(Persons::class)->countListPersons($params_sql);
//la pagination
$this->context['view']->nb_etudiants_selected = $this->em->getRepository(Persons::class)->countListPersons($params_sql);
$this->context['view']->pagination = $this->getPagination($this->context['view']->nb_etudiants_selected, 10);
$params_sql['params']['limit'] = array($this->getLimitStart(),$this->perPage);
$params_display['vignette_format'] = array('width'=>$_ENV['VIGN_PERSONS_WIDTH'],'height'=>$_ENV['VIGN_PERSONS_HEIGHT'],'direction'=>'crop');
$this->context['view']->persons = $this->em->getRepository(Persons::class)->getListPersons($params_sql,$params_display);
$this->context['view']->lien_ecole_actif = true;
// copmpter uniquement cette année
$this->context['view']->nb_etudiants_annee = $this->context['view']->nb_etudiants;
$this->context['view']->affiche_ecole = true;
if(empty($params['stop_execute'])) {
$this->loadEtudiants();
return $this->view('ecoles/etudiants.html.twig');
}
}
// }}}
/** Liste des anciens étudiants
*
* @Route("/ecoles/anciens/", name="ecoles_anciens")
* @Route("/ecoles/anciens/role/{p_role}/y/{p_y}/photo/{p_photo}", name="ecoles_anciens_role_y_photo")
* @Route("/ecoles/anciens/photo/{p_photo}/y/{p_y}", name="ecoles_anciens_photo_y")
* @Route("/ecoles/anciens/role/{p_role}/sexe/{p_sexe}/y/{p_y}/photo/{p_photo}", name="ecoles_anciens_role_sexe_y_photo")
*/
public function action_anciens(
Ecoles $ecoles,
$params = [],
$p_role = null,
$p_y = null,
$p_photo = null,
FormFactoryInterface $formFactory
)
{
$this->context['params']['photo'] = $p_photo;
$this->context['params']['role'] = $p_role;
$this->context['params']['y'] = $p_y;
if(!empty($params['idcontact'])){
$this->InitController($params['idcontact'], 'anciens-etudiants');
}
else{
$this->InitController(null, 'anciens-etudiants');
}
$this->context['view']->page = '/ecoles/anciens';
$this->context['view']->lien_ecole_actif = true;
$promos = $this->person_ecole->getPromos($this->idcontact,true);
$last_promo = $this->person_ecole->getLastPromo($promos);
// un nombre de jours ?
$this->getSpectaclesCommon(null, $ecoles);
$this->context['view']->days = Date_time::getDaysParam();
if($this->context['view']->days){
}
// des éléves d'une année au hasard
else if(!empty($_REQUEST['annee_promo']) && array_key_exists($_REQUEST['annee_promo'], $promos)) {
$this->context['view']->annee_promo_selected = $this->context['view']->annee_promo = $promos[(int)$_REQUEST['annee_promo']];
} elseif(!empty($this->context['params']['y']) && array_key_exists($this->context['params']['y'], $promos)) {
$this->context['view']->annee_promo_selected = $this->context['view']->annee_promo = $this->context['params']['y'];
} else {
$this->context['view']->annee_promo_selected = $this->context['view']->annee_promo = $last_promo;
}
$this->context['formAsideSearch'] = $formFactory->createNamedBuilder('');
$this->context['formAsideSearch']->add('annee_promo', ChoiceType::class, [
'label' => 'Promo',
'placeholder' => 'Choisissez une saison...',
'choices' => $promos,
'attr' => [
'id' => 'saisons'
]
]);
$this->context['formAsideSearch']->add('validation', SubmitType::class, [
'label' => 'Rechercher'
]);
$this->getCommonSearchView();
$params_sql = [
'dbg' => ['etudiants','Les anciens étudiants']
];
if(isset($this->context['view']->annee_promo) && $this->context['view']->annee_promo){
$params_sql['special']['person_ecole'] = [
'periode' => $this->context['view']->annee_promo,
'exclude_jtn' => true
];
}
if(isset($this->context['view']->days) && $this->context['view']->days){
$params_sql['special']['spectacle'] = [
'prochains' => $this->context['view']->days . 'D'
];
}
// pour une école en particulier
if(!empty($this->idcontact)) {
$params_sql['special']['person_ecole']['idcontact'] = $this->idcontact;
unset($params_sql['special']['person_ecole']['exclude_jtn']);
}
$this->getWithPhoto($params_sql);
$this->getRolesCommon($params_sql);
$this->getSexeCommon($params_sql);
$this->context['view']->nb_persons_total = $this->em->getRepository(Persons::class)->countListPersons($params_sql);
$this->context['view']->nb_anciens_eleves = $this->person_ecole->countEleves($this->idcontact, ['old' => true]);
$params_sql['params']['limit'] = [$this->getLimitStart(), $this->perPage];
$params_display['vignette_format'] = [
'width' => $_ENV['VIGN_PERSONS_WIDTH'],
'height' => $_ENV['VIGN_PERSONS_HEIGHT'],
'direction' => 'crop'
];
$this->context['view']->persons = $this->em->getRepository(Persons::class)->getListPersons($params_sql,$params_display);
$this->context['view']->pagination = $this->getPagination($this->context['view']->nb_persons_total);
$this->context['view']->affiche_ecole = true;
$this->loadEtudiants(false);
if (empty($params['stop_execute'])) {
return $this->view('ecoles/anciens.html.twig');
}
}
// {{{ action_anciens_affiche()
/** Liste des anciens étudiants à l'affiche
*
*/
public function action_anciens_affiche(Ecoles $ecoles, $params = [])
{
$this->context['view']->page = '/ecoles/anciens-affiche';
if(!empty($params['idcontact'])){
$this->InitController($params['idcontact'], 'anciens-affiche');
}
else{
$this->InitController(null, 'anciens-affiche');
}
$this->getSpectaclesCommon(90, $ecoles);
$params_sql = array(
'special' => array(
'person_ecole' => array(
'exclude_jtn' => true
),
'spectacle' => array(
'type' => 'all',
),
),
'dbg' => array('spectacles_etudiants','Les spectacles des anciens étudiants')
);
// pour une école en particulier
if(!empty($this->idcontact)) {
$params_sql['special']['person_ecole']['idcontact'] = $this->idcontact;
unset($params_sql['special']['person_ecole']['exclude_jtn']);
}
$this->getWithPhoto($params_sql);
// recherche par saison
if(!empty($this->context['view']->saison)) {
$params_sql['special']['spectacle']['saison'] = $this->context['view']->saison;
} elseif(!empty($this->context['view']->year)) { // recherche par année
$params_sql['special']['spectacle']['year'] = $this->context['view']->year;
} elseif(!empty($this->context['view']->datestart) && !empty($this->context['view']->dateend)) { // par période
$params_sql['special']['spectacle']['periode'] = array(
'start' => $this->context['view']->datestart,
'end' => $this->context['view']->dateend,
);
}
$this->getRolesCommon($params_sql);
$this->getSexeCommon($params_sql);
$this->context['view']->nb_persons_total = $this->em->getRepository(Persons::class)->countListPersons($params_sql);
$params_sql['params']['limit'] = array($this->getLimitStart(),$this->perPage);
$params_display['vignette_format'] = array('width'=>$_ENV['VIGN_PERSONS_WIDTH'],'height'=>$_ENV['VIGN_PERSONS_HEIGHT'],'direction'=>'crop');
$this->context['view']->persons = $this->em->getRepository(Persons::class)->getListPersons($params_sql,$params_display);
$this->context['view']->pagination = $this->getPagination($this->context['view']->nb_persons_total);
$this->loadAsidesAnciensAffiche();
}
// }}}
// {{{ action_anciens_affiche_tous()
/** Liste des anciens étudiants à l'affiche
*
* @Route("/ecoles/anciens-affiche-tous/", name="ecoles_anciens_affiche_tous")
* @Route("/ecoles/anciens-affiche-tous/periode/{periode}/", name="ecoles_anciens_affiche_tous_periode")
*
*/
public function action_anciens_affiche_tous($periode = 'periode', Ecoles $ecoles)
{
$this->context['params']['periode'] = $periode;
$this->InitController(null, 'anciens-affiche-tous');
$this->getSpectaclesCommon(90, $ecoles);
// les élèves
$where_idperson = 'sp.`idperson` IN ('.join(',', $this->person_ecole->getPersons(null,array('get_ids' => true))).') ';
$params_sql = array(
'params' => array(
'where' => ' AND ('.$where_idperson.') ',
),
'special' => array(
// 'plus_proche' => true,
'get_eleves' => 'all',
),
'dbg' => array('anciens_affiche_tous','Les étudiants à l\'affiche'),
);
// recherche par saison
if(!empty($this->context['view']->saison)) {
$params_sql['special']['saison'] = $this->context['view']->saison;
} elseif(!empty($this->context['view']->year)) { // recherche par année
$params_sql['special']['year'] = $this->context['view']->year;
} elseif(!empty($this->context['view']->datestart) && !empty($this->context['view']->dateend)) { // par période
$params_sql['special']['period'] = array(
'start' => $this->context['view']->datestart,
'end' => $this->context['view']->dateend,
);
} else { // prochains jours
$params_sql['special']['prochains'] = $this->context['view']->days;
}
$this->context['view']->nb_spectacles_total = $this->em->getRepository(Spectacles::class)->countListSpectacles($params_sql);
$params_sql['params']['limit'] = array($this->getLimitStart(),$this->perPage);
$this->context['view']->spectacles = $this->em->getRepository(Spectacles::class)->getListSpectacles($params_sql, null, false, ['allauthors' => true]);
$this->context['view']->nb_spectacles_liste = count($this->context['view']->spectacles);
$this->context['view']->pagination = $this->getPagination($this->context['view']->nb_spectacles_total);
// ajouter masonery
$this->context['view']->js_more[] = 'jquery.masonry.min.js';
$this->action_en_scene(false);
$this->loadAsidesAnciensAfficheTous();
return $this->view('ecoles/anciens-affiche-tous.html.twig');
}
// }}}
// {{{ getSpectaclesCommon()
/** recherche sur les spectacles
*
*/
public function getSpectaclesCommon($nb_days=3, $ecoles = null)
{
$this->person_ecole = $this->em->getRepository(PersonEcole::class);
// trouver les spectacles des élèves d'une promo
$promos = $this->person_ecole->getPromos(null,true);
// saison courante
$this->context['view']->current_saison = Date_time::getLastSaison();
$this->context['view']->menu_jours = array(
3 => array('name' => '3 prochains jours','v_key' => 3),
7 =>array('name' => '7 prochains jours','v_key' => 7),
30 => array('name' => '30 prochains jours','v_key' => 30),
90 => array('name' => '3 prochains mois', 'v_key' => 90)
);
// une saison ?
$this->context['view']->saison = Date_time::getSaisonParam();
if($this->context['view']->saison==$this->context['view']->current_saison) {
$this->context['view']->is_current_saison = true;
}
// une période ?
$this->context['view']->datestart = Date_time::getDateParam('datestart');
$this->context['view']->dateend = Date_time::getDateParam('dateend');
if(!Date_time::checkDateFormat($this->context['view']->datestart)) {
$this->context['view']->datestart = null;
} else {
$this->context['view']->datestart_string = $this->person_ecole->getFormeDate($this->context['view']->datestart,'d/m/y');
}
if(!Date_time::checkDateFormat($this->context['view']->dateend)) {
$this->context['view']->dateend = null;
} else {
$this->context['view']->dateend_string = $this->person_ecole->getFormeDate($this->context['view']->dateend,'d/m/y');
}
// un nombre de jours ?
$this->context['view']->days = Date_time::getDaysParam();
// une année ?
$this->context['view']->year = Date_time::getYearParam();
if(!$this->context['view']->saison && !$this->context['view']->year && !$this->context['view']->days && !$this->context['view']->datestart && !$this->context['view']->dateend) {
$this->context['view']->days = $nb_days;
}
if(!empty($this->context['view']->days)) {
foreach($this->context['view']->menu_jours as $k=>$v) {
if($k==$this->context['view']->days) {
$this->context['view']->menu_jours[$k]['active'] = 'on';
$this->context['view']->days_name = $v['name'];
}
}
}
// les dates pour trouver les saisons et années
$cacheItem = $this->cache->getItem("ecoles_spectacles_common_saisons_and_annees");
if (! $cacheItem->isHit()) {
$res = $ecoles->getSaisonsAndAnnees();
$cacheItem->set($res)
->expiresAt((new \DateTime('now'))->add(\DateInterval::createFromDateString('7 hours')));
$this->cache->save($cacheItem);
}
$saisons_annees = $cacheItem->get();
// liste des saisons des spectacles
if(!empty($saisons_annees['saisons'])) {
$this->context['view']->saisons = $saisons_annees['saisons'];
// $this->context['form']->addElement('select', 's', 'Saisons', array_replace(array('' => 'Choisissez une saison...'),array_reverse($saisons_annees['saisons'])), array('id' => 'saisons'));
}
// liste des annees des spectacles
if(!empty($saisons_annees['annees'])) {
$this->context['view']->annees = $saisons_annees['annees'];
// $this->context['form']->addElement('select', 'y', 'Années', array_replace(array('' => 'Choisissez une année...'), array_reverse($saisons_annees['annees'])), array('id' => 'annees'));
}
// $this->context['form']->addElement('text', 'datestart', 'Entre', array('size'=>'7','id'=>'datestart'));
// $this->context['form']->addElement('text', 'dateend', 'et', array('size'=>'7','id'=>'dateend'));
// nb de spectacles pour une saison
$params_sql = array(
'special' => array(
'count_only' => true,
'join_person' => true,
'person_ecole' => true,
'saison' => $this->context['view']->current_saison,
),
'params' => array(
'limit' => array(0,3000)
),
'dbg' => array('spectacles_etudiants_saison','Les spectacles des anciens étudiants pour la saison '.$this->context['view']->current_saison)
);
// pour une école en particulier
if(!empty($this->idcontact)) {
$params_sql['special']['person_ecole'] = array('idcontact' => array($this->idcontact));
}
// $this->context['view']->nb_spectacles = $this->person_ecole->db->queryOne($this->em->getRepository(Spectacles::class)->getSQLSpectacles($params_sql['params'],$params_sql['special']));
$this->context['view']->jquery_cal = 'datepicker';
}
// }}}
// {{{ getRolesCommon()
/** recherche sur les roles
*
*/
public function getRolesCommon(&$params_sql)
{
$this->context['view']->roles = $this->em->getRepository(EcoleRole::class)->getRoles(null,$params_sql);
foreach($this->context['view']->roles as $k=>$v) {
if(!empty($v['is_jeu'])) {
$this->context['view']->display_jeu = true;
} else {
$this->context['view']->display_others = true;
}
}
if(!empty($this->context['params']['role']) && $this->func->my_is_int($this->context['params']['role'])) {
$params_sql['special']['person_ecole']['idrole'] = $this->context['params']['role'];
$this->context['view']->role = $this->context['view']->roles[$this->context['params']['role']];
$this->context['view']->idrole = $this->context['params']['role'];
$this->context['view']->roles[$this->context['params']['role']]['active'] = true;
}
}
// }}}
// {{{ getWithPhoto()
/** recherche avec des photos
*
*/
public function getWithPhoto(&$params_sql)
{
//C'est le JTN
$label_menu = 'Type d\'affichage';
if(!empty($params_sql['special']['person_ecole']['idcontact']) && $params_sql['special']['person_ecole']['idcontact'] == 3914){
$label_menu = 'artistes';
}
$this->context['view']->photos = array(
'all' => array(
'label' => 'Avec ou sans photos',
),
'with' => array(
'label' => 'Avec photos',
)
);
if(empty($this->context['params']['photo']) || $this->context['params']['photo']=='all') {
$params_sql['special']['with_photo'] = false;
$this->context['view']->with_photo = false;
$this->context['view']->photo = 'all';
$this->context['view']->photos['all']['active'] = true;
}
if(!empty($this->context['params']['photo']) && $this->context['params']['photo']=='with') {
$this->context['view']->photo = 'with';
$params_sql['special']['with_photo'] = true;
$this->context['view']->with_photo = true;
$this->context['view']->photos['with']['active'] = true;
}
}
// }}}
// {{{ getSexeCommon()
/** recherche avec des photos
*
*/
public function getSexeCommon(&$params_sql)
{
$this->context['view']->menu_sexes = array(
'all' => array(
'label' => 'Tous',
),
'H' => array(
'label' => 'Tous les hommes',
),
'F' => array(
'label' => 'Toutes les femmes',
)
);
// le sexe
if(!empty($this->context['params']['sexe']) && strlen($this->context['params']['sexe'])==1) {
$params_sql['special']['sexe'] = $this->context['params']['sexe'];
$this->context['view']->sexe_string = $GLOBALS['tr']->trans($this->context['params']['sexe'].'_pluriel');
$this->context['view']->sexe = $this->context['params']['sexe'];
$this->context['view']->menu_sexes[$this->context['params']['sexe']]['active'] = true;
}
else{
$this->context['view']->menu_sexes['all']['active'] = true;
}
}
// }}}
// {{{ loadAsidesActualites()
/** Chargement des asides pour le page d'actualité
*
*/
protected function loadAsidesActualites()
{
$this->asides->load('common_prochain_evenement');
$this->asides->load('common_carrer_informations');
$this->context['view']->info_theatre = true;
$this->asides->load('common_participer_contacts');
}
// }}}
// {{{ loadAsidesSoutiens()
/** Chargement des asides pour le page d'actualité
*
*/
protected function loadAsidesSoutiens()
{
$spectacles = [
array(
'name' => 'Tous les spectacles',
'key_url' => ''
)
];
$this->asides->load(['url_lists' => array(
'exec' => array(
'htmlstart' => true,
'htmlend' => true,
),
'php' => [
'method' => 'asidesUrlLists',
'urls' => $spectacles,
'url' => '/ecoles/soutiens'
],
'title' => 'Voir'
)]);
// $this->asides->load(['contact_list_aidecontacts' => [
// 'ecoles_pages' => true
// ]]);
$this->asides->load('common_carrer_informations');
}
// }}}
protected function loadAsidesAnciensAfficheTous(){
$this->loadEnScene('anciens-etudiants');
// $this->asides->load(['par_annee' => array(
// 'exec' => array(
// 'alone' => false
// ),
// 'php' => array(
// 'method' => 'asidesUrlLists',
// 'url' => '/ecoles/anciens-affiche-tous'
// ),
// )]);
//
// $this->asides->load(['par_saison' => array(
// 'exec' => array(
// 'alone' => false,
// 'htmlend' => true
// ),
// 'php' => array(
// 'method' => 'asidesUrlLists',
// 'url' => '/ecoles/anciens-affiche-tous'
// ),
// )]);
// $this->asides->load(['par_saison' => array(
// 'exec' => array(
// 'alone' => false,
// 'htmlend' => true
// ),
// 'php' => array(
// 'method' => 'asidesUrlLists',
// 'url' => '/ecoles/anciens-affiche-tous'
// ),
// )]);
// $this->asides->load(['url_lists_alone,spectacles' => array(
// 'exec' => array(
// 'color' => 'spectacles'
// ),
// 'php' => array(
// 'method' => 'asidesUrlLists',
// 'urls' => [
// // [
// // 'name' => 'A l\'affiche',
// // 'key_type' => 'in'
// // ],
// [
// 'name' => 'Toutes les productions',
// 'key_type' => 'prod'
// ]
// ],
// 'url' => '/ecoles/en-scene/type/key_type',
// 'params' => array(
// 'activate' => (!empty($this->context['params']['type'])) ? $this->context['params']['type'] : false
// )
// ),
// 'title' => 'voir'
// )]);
// $this->asides->load(['url_lists_alone,soutenus' => array(
// 'exec' => array(
// 'color' => 'spectacles'
// ),
// 'php' => array(
//
// 'method' => 'asidesUrlLists',
// 'urls' => [
// [
// 'name' => 'Spectacles à l\'affiche',
// 'key_type' => 'soutiens'
// ]
// ],
// 'url' => '/ecoles/en-scene/type/key_type',
// 'params' => array(
// 'activate' => (!empty($this->context['params']['type'])) ? $this->context['params']['type'] : false
// )
// ),
// 'title' => 'soutiens'
// )]);
// $this->asides->load(['url_lists_alone,etudiants' => array(
// 'exec' => array(
// 'color' => 'spectacles'
// ),
// 'php' => array(
// 'method' => 'asidesUrlLists',
// 'urls' => [
// [
// 'name' => 'Anciens à l\'affiche',
// 'key_url' => 'anciens-affiche-tous'
// ]
// ],
// 'url' => '/ecoles/key_url',
// 'params' => array(
// 'activate' => $this->context['action']
// )
// ),
// 'title' => 'Anciens étudiants'
// )]);
}
protected function loadAsidesAnciensAffiche(){
$this->asides->load(['ecoles_with_photos' => array(
'exec' => array(
'htmlstart' => true,
// 'alone' => true,
),
'title' => 'voir',
'title_in_aside' => 'Trier',
)]);
$this->asides->load(['ecoles_roles' => array('exec' => array('alone' => false))]);
$this->asides->load(['par_annee' => array('exec' => array('alone' => false))]);
$this->asides->load(['par_saison' => array('exec' => array('alone' => false))]);
$this->asides->load(['recherche_par_periode' => array(
'exec' => array(
'htmlend' => true
),
'php' => array(
'method' => 'asidesUrlLists',
'url' => '/ecoles/anciens-affiche/photo/key_photo/role/key_idrole/sexe/key_sexe', // TODO: voir avec boussad
'params' => array(
// 'key_photo' => $this->context['view']['params']['photo'],
// 'key_idrole' => $this->context['view']['params']['idrole'],
// 'key_sexe' => $this->context['view']['params']['sexe']
)
)
)]);
$this->asides->load('ecoles_modifier');
}
protected function loadEtudiants($courant = true){
$anciens_ou_nouveau_etudiants = [
array(
'name' => 'Étudiants',
'key_url' => 'etudiants'
),
array(
'name' => 'Anciens étudiants',
'key_url' => 'anciens'
)
];
$this->asides->load('ecoles_nb_etudiants');
$this->asides->load(['url_lists_alone,anciens_nouveau' => array(
'php' => array(
'method' => 'asidesUrlLists',
'urls' => $anciens_ou_nouveau_etudiants,
'url' => '/ecoles/key_url',
'params' => array(
'activate' => $this->context['action']
)
),
'title' => 'voir'
)]);
$this->asides->load(['ecoles_with_photos' => array(
'exec' => array(
'htmlstart' => true
),
'title_sub' => html_entity_decode('Type d\'affichage'),
)]);
// étudiants
if($courant){
$this->asides->load(['ecoles_promotions_encours' => array(
'exec' => array(
'alone' => false
),
'php' => array(
'method' => 'asidesUrlLists',
'urls' => (!empty($this->context['view']->annees)) ? $this->context['view']->annees : array(),
'url' => 'key_page/y/key_year/photo/key_photos',
'params' => array(
'annee' => 'auto_key',
'key_page' => (!empty($this->context['view']->page)) ? $this->context['view']->page : '',
'key_photo' => (!empty($this->context['view']->photos)) ? $this->context['view']->photos : '',
)
),
'title' => 'Promotions en cours d\'étude',
)]);
}
// Anciens étudiants
else{
$this->asides->load(['recherche_promotion' => array(
'exec' => array(
'alone' => false
),
'title' => 'Rechercher une promotion',
'url' =>'/ecoles/anciens/',
)]);
}
$this->asides->load(['ecoles_roles' => array(
'exec' => array(
'alone' => false,
'htmlend' => true
),
'title_seconds' => 'Tri par section pour la promo '.((!empty($this->context['view']->annee_promo)) ? $this->context['view']->annee_promo : ''),
'title_sub' => 'Tous les étudiants',
)]);
if($courant){
$this->asides->load('ecoles_insertion');
$this->asides->load(['common_participer_personne' => array(
'exec' => ['color' => 'contacts']
)]);
$this->asides->load('ecoles_maj');
}
else{
// $this->asides->load(['recherche_personne' => array(
// 'exec' => array(
// 'htmlend' => true,
// 'color' => 'context'
// ),
// 'url' => '/ecoles/anciens/',
// 'title' => 'Rechercher une personne',
// )]);
$this->asides->load('ecoles_modifier');
}
}
protected function loadEnScene($type_specific = null){
if(($this->context['view']->spectacles_count_prod_anciens + $this->context['view']->spectacles_count_prod_prochains) > 0) {
$this->asides->load(['url_lists_alone,spectacles' => array(
'exec' => array(
'color' => 'spectacles'
),
'php' => array(
'method' => 'asidesUrlLists',
'urls' => [
[
'name' => 'Productions en scène',
'key_type' => 'prod',
'key_periode' => 'prochains',
'key_activate' => 'prod_prochains',
'count' => $this->context['view']->spectacles_count_prod_prochains
],
[
'name' => 'Toutes les productions',
'key_type' => 'prod',
'key_periode' => 'anciens',
'key_activate' => 'prod_anciens',
'count' => $this->context['view']->spectacles_count_prod_anciens
]
],
'url' => '/ecoles/en-scene/type/key_type/periode/key_periode',
'params' => array(
'activate' => (!empty($this->context['params']['type']) && isset($this->context['view']->periodes_selected)) ? $this->context['params']['type'] . '_' . $this->context['view']->periodes_selected : false
)
),
'title' => 'voir'
)]);
}
$this->asides->load(['url_lists_alone,soutenus' => array(
'exec' => array(
'color' => 'spectacles'
),
'php' => array(
'method' => 'asidesUrlLists',
'urls' => [
[
'name' => 'Spectacles à venir',
'key_type' => 'soutiens',
'key_periode' => 'prochains',
'key_activate' => 'soutiens_prochains',
'count' => $this->context['view']->spectacles_count_coprod_prochains
],
// [
// 'name' => 'Tous les spectacles en scène',
// 'key_type' => 'soutiens',
// 'key_periode' => 'anciens',
// 'key_activate' => 'soutiens_anciens',
// 'count' => $this->context['view']->spectacles_count_coprod_anciens
// ]
],
'url' => '/ecoles/en-scene/type/key_type/periode/key_periode',
'params' => array(
'activate' => (!empty($this->context['params']['type']) && isset($this->context['view']->periodes_selected)) ? $this->context['params']['type'].'_'.$this->context['view']->periodes_selected : false
)
),
'title' => 'soutiens'
)]);
$this->asides->load(['url_lists,etudiants' => array(
'exec' => array(
'color' => 'spectacles',
'htmlstart' => true,
'htmlend' => ($type_specific == 'anciens-etudiants') ? false : true,
),
'php' => array(
'method' => 'asidesUrlLists',
'urls' => [
[
'name' => 'Anciens à l\'affiche',
'key_url' => 'anciens-affiche-tous',
'key_periode' => 'anciens'
]
],
'url' => '/ecoles/key_url/periode/key_periode',
'params' => array(
'activate' => $this->context['action']
)
),
'title' => 'Anciens étudiants'
)]);
if($type_specific == 'anciens-etudiants'){
$this->asides->load(['url_lists,days_etudiants' => array(
'exec' => array(
'color' => 'spectacles',
'alone' => false
),
'php' => [
'method' => 'asidesUrlLists',
'urls' => (!empty($this->context['view']->menu_jours)) ? $this->context['view']->menu_jours : array(),
'url' => '/ecoles/anciens-affiche-tous?d=v_key'
],
'title' => 'Recherche par période'
)]);
$this->asides->load(['recherche_par_periode' => array(
'exec' => array(
'alone' => false,
'htmlend' => true
),
'php' => array(
'method' => 'asidesUrlLists',
'url' => '/ecoles/anciens-affiche-tous'
),
// 'title' => 'Rechercher par période'
)]);
}
}
}