src/Controller/SelectionsController.php line 137

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\ClassTheatre\asides;
  4. use App\ClassTheatre\TheatreController;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  8. use Symfony\Contracts\Translation\TranslatorInterface;
  9. use TheatreCore\Entity\Aides;
  10. use TheatreCore\Entity\Playlists;
  11. use TheatreCore\Entity\Spectacles;
  12. use TheatreCore\Entity\TextAide;
  13. use TheatreCore\Entity\Texts;
  14. class SelectionsController extends TheatreController
  15. {
  16.     // l'objet spectacle
  17.     protected $spectacles;
  18.     // l'objet texts
  19.     protected $texts;
  20.     // l'objet aides
  21.     protected $aides;
  22.     // résultat par page
  23.     protected $perPage 50;
  24.     // asides
  25.     protected $asides '';
  26.     //asides top
  27.     protected $asides_top '';
  28.     // {{{ _construct()
  29.     /** constructeur hérité
  30.      *
  31.      */
  32.     public function __construct(EntityManagerInterface $emTranslatorInterface $translatorTokenStorageInterface $tokenStorage)
  33.     {
  34.         // load new aside
  35.         $this->asides = new asides();
  36.         $GLOBALS['rub_courante'] = 'textes';
  37.         $this->em $em;
  38.         // hérite du constructeur parent
  39.         parent::__construct($translator$tokenStorage);
  40.         $this->asides = new asides();
  41.         $this->asides_top = new asides();
  42.         $this->texts $this->em->getRepository(Texts::class);
  43.         $this->spectacles $this->em->getRepository(Spectacles::class);
  44.         $this->aides $this->em->getRepository(Aides::class);
  45.         $this->context['view']->main_custom_style 'prix';
  46.         $this->context['view']->bandeauSelections = array(
  47.             'vignette' => 'icones/bandeau-aides-decouvertes-texts.png',
  48.             'description' => 'Theatre-contemporain vous aides à découvrir des textes'
  49.         );
  50.     }
  51.     // }}}
  52.     // {{{ finalizeAction()
  53.     /** Code exécuté après chaque action
  54.      *
  55.      *
  56.      * @access protected
  57.      * @return void
  58.      */
  59.     protected function finalizeAction()
  60.     {
  61.         // aside
  62.         $this->view->aside $this->asides->view($this->view);
  63.         //aside top
  64.         $this->asides_top->load(['aside_top' => array(
  65.             'php' => array(
  66.                 'method' => 'asidesUrlSelections'
  67.             )
  68.         )]);
  69.         $this->view->aside_top $this->asides_top->view($this->view);
  70.     }
  71.     // }}}
  72.     // {{{ action_tous()
  73.     /** Code exécuté après chaque action
  74.      *
  75.      *
  76.      * @access protected
  77.      * @return void
  78.      */
  79.     public function action_tous()
  80.     {
  81.         $this->getSelections(array(4),'Selection','selections');
  82.         $this->context['view']->show_prix true;
  83.         $this->context['view']->custom_text_aide_url '/selections';
  84.         //asides
  85.         $this->asides->load(['par_annee_alone' => array(
  86.             'php' => array(
  87.                 'method' => 'asidesUrlListsForms',
  88.                 'url' => '/selections/' .$this->context['action'],
  89.             ),
  90.         )]);
  91.         $this->asides->load('prix_reference');
  92.         $this->asides->load('laureat_signaler');
  93.     }
  94.     // }}}
  95.     // {{{ action_comites_lectures()
  96.     /** Action de tous les comités de lecture
  97.      *
  98.      * @Route("/selections/comites-lectures", name="selections_lectures")
  99.      * @Route("/selections/comites-lectures/genre/{p_genre}", name="selections_lectures_genre")
  100.      *
  101.      * @access protected
  102.      * @return void
  103.      */
  104.     public function action_comites_lectures($p_genre null)
  105.     {
  106.         $this->context['params']['genre'] = $p_genre;
  107.         $this->view->action $this->context['action'] = 'comites-lectures';
  108.         $menu_tri = [
  109.             => array(
  110.                 'name' => 'littérature dramatique',
  111.                 'value' => 1
  112.             ),
  113.             => array(
  114.                 'name' => 'littérature dramatique jeunesse',
  115.                 'value' => 9
  116.             ),
  117.             'edites' => array(
  118.                 'name' => 'textes édités',
  119.                 'value' => 'edites'
  120.             )
  121.         ];
  122.         $params = array();
  123.         if(!empty($this->context['params']['genre']) && array_key_exists($this->context['params']['genre'], $menu_tri)){
  124.             if(is_numeric($this->context['params']['genre'])){
  125.                 $genre_selected $params['idtypetext'] = (int)$this->context['params']['genre'];
  126.             }
  127.             else if($this->context['params']['genre'] == 'edites'){
  128.                 $genre_selected $params['isbn_not_empty'] = 'edites';
  129.             }
  130.         }
  131.         // comités de lecture : 102
  132.         $this->getSelections(null,'Selection','selections'102$params);
  133.         $this->context['view']->show_prix true;
  134.         $this->context['view']->custom_text_aide_url '/selections';
  135.         //asides
  136.         $this->asides->load(['url_lists,all' => array(
  137.             'exec' => ['htmlstart' => true],
  138.             'php' => array(
  139.                 'method' => 'asidesUrlLists',
  140.                 'url' => '/selections/comites-lectures',
  141.                 'urls' => array(
  142.                     ['name' => 'tous les textes']
  143.                 ),
  144.                 'params' => [
  145.                     'activate' => (isset($genre_selected)) ? true
  146.                 ]
  147.             ),
  148.             'title' => 'Rechercher',
  149.             'subtitle' => 'Voir'
  150.         )]);
  151.         $this->asides->load(['url_lists,tri' => array(
  152.             'exec' => ['htmlend' => true],
  153.             'php' => array(
  154.                 'urls' => $menu_tri,
  155.                 'url' => '/selections/comites-lectures/genre/value',
  156.                 'method' => 'asidesUrlLists',
  157.                 'params' => array(
  158.                     'activate' => (isset($genre_selected)) ? $genre_selected 0
  159.                 )
  160.             ),
  161.             'subtitle' => 'Trier'
  162.         )]);
  163.         $this->asides->load(['par_annee_alone' => array(
  164.             'php' => array(
  165.                 'method' => 'asidesUrlListsForms',
  166.                 'url' => '/selections/' .$this->context['action'],
  167.             ),
  168.         )]);
  169.         $this->asides->load(['prix_reference' => array(
  170.             'custom_title' => 'Les comités de lecture',
  171.             'disable_subtitle' => true
  172.         )]);
  173.         $this->asides->load('figurer_informations_aides_textes');
  174.         return $this->view('selections/comites-lectures.html.twig');
  175.     }
  176.     // }}}
  177.     // {{{ action_comites_lectures_reperes()
  178.     /** Tri par nombres de soutiens/aides/laureats
  179.      *
  180.      * @Route("/selections/comites-lectures-reperes", name="selections_lectures_reperes")
  181.      * @Route("/selections/comites-lectures-reperes/top/{p_top}", name="selections_lectures_reperes_top")
  182.      *
  183.      * @access protected
  184.      * @return void
  185.      */
  186.     public function action_comites_lectures_reperes($p_top null)
  187.     {
  188.         $this->context['params']['top'] = $p_top;
  189.         $this->view->action $this->context['action'] = 'comites-lectures-reperes';
  190.         // récupèrer les prix associés au contact
  191.         $object_aide $this->em->getRepository(TextAide::class);
  192.         $list_aides_possibles $object_aide->getIndiceNombresAides(['idaidecontact' => 102]);
  193.         $menu = array(
  194.             'comites-lectures-reperes' => array(
  195.                 'name' => 'Textes les plus repérés',
  196.                 'key' => 'comites-lectures-reperes'
  197.             )
  198.         );
  199.         $list_top = array();
  200.         foreach($list_aides_possibles AS $key => $value){
  201.             if($value['totalAide'] == 1){
  202.                 unset($list_aides_possibles[$key]);
  203.             }
  204.             else{
  205.                 $list_aides_possibles[$key]['name'] = $value['totalAide'].' sélections';
  206.             }
  207.         }
  208.         $params = array(
  209.             'get_by_nombres_aides' => true,
  210.             'get_stars' => true,
  211.             'idtexts' => true,
  212.             'get_by_nombres_aides_val' => false
  213.         );
  214.         $top 1;
  215.         if(!empty($this->context['params']['top'])){
  216.             $top $this->context['params']['top'];
  217.             $params['get_by_nombres_aides_val'] = $top;
  218.             $params['unset_no_year'] = true;
  219.         }
  220.         // comités de lecture : 102
  221.         $this->getSelections(array(4),'Selection','selections'102$params);
  222.         $this->context['view']->show_prix true;
  223.         $this->context['view']->custom_text_aide_url '/selections';
  224.         $this->asides->load(['url_lists' => array(
  225.             'exec' => ['htmlstart' => true],
  226.             'php' => array(
  227.                 'method' => 'asidesUrlLists',
  228.                 'url' => '/selections/comites-lectures-reperes',
  229.                 'urls' => $menu,
  230.                 'params' => [
  231.                     'activate' => ($top == 1) ? 'comites-lectures-reperes' ''
  232.                 ]
  233.             ),
  234.             'title' => 'Voir',
  235.         )]);
  236.         $this->asides->load(['url_lists,filtre_top' => array(
  237.             'exec' => array(
  238.                 'htmlend' => true
  239.             ),
  240.             'php' => array(
  241.                 'method' => 'asidesUrlLists',
  242.                 'url' => '/selections/comites-lectures-reperes/top/totalAide',
  243.                 'urls' => $list_aides_possibles,
  244.                 'params' => [
  245.                     'activate' => $top
  246.                 ]
  247.             ),
  248.             'subtitle' => 'Trier'
  249.         )]);
  250.         $menu_voir = array(
  251.             [
  252.                 'name' => 'Conseils de lectures',
  253.                 'url' => '/conseils/nos-conseils'
  254.             ],
  255.             [
  256.                 'name' => 'Les Prix et distinctions',
  257.                 'url' => '/prix/les-plus-remarques'
  258.             ],
  259.             [
  260.                 'name' => 'Textes au programme d\'examens',
  261.                 'url' => '/contacts/Ministere-de-l-Education-nationale/selections'
  262.             ],
  263.             [
  264.                 'name' => 'littérature pour collégiens',
  265.                 'url' => '/contacts/EDUSCOL/selections'
  266.             ],
  267.             [
  268.                 'name' => 'La «liste 136» du TNS',
  269.                 'url' => '/contacts/Ecole-Superieure-dArt-Dramatique-du-TNS/selections/type/text/idaide/145?y='
  270.             ],
  271.         );
  272.         $this->asides->load(['url_lists_alone' => array(
  273.             'php' => array(
  274.                 'method' => 'asidesUrlLists',
  275.                 'urls' => $menu_voir
  276.             ),
  277.             'title' => 'Voir aussi'
  278.         )]);
  279. //        $this->asides->load(['prix_reference' => array(
  280. //            'custom_title' => 'Les comités de lecture',
  281. //            'disable_subtitle' => true
  282. //        )]);
  283.         $this->asides->load('figurer_informations_aides_textes');
  284.         return $this->view('selections/comites-lectures-reperes.html.twig');
  285.     }
  286.     // }}}
  287.     // {{{ action_textes_auteurs()
  288.     /** Tri par nombres de soutiens/aides/laureats
  289.      *
  290.      * @Route("/selections/textes-auteurs", name="selections_textes_auteurs")
  291.      * @Route("/selections/textes-auteurs/filtre/{p_filtre}", name="selections_textes_auteurs_filtre")
  292.      * @Route("/selections/textes-auteurs/filtre/{p_filtre}/top/{p_top}", name="selections_textes_auteurs_filtre_top")
  293.      *
  294.      * @access protected
  295.      * @return void
  296.      */
  297.     public function action_textes_auteurs($p_filtre null$p_top null)
  298.     {
  299.         $this->view->action $this->context['action'] = 'textes-auteurs';
  300.         $this->context['params']['filtre'] = $p_filtre;
  301.         $this->context['params']['top'] = $p_top;
  302.         $idaidecontact 102;
  303.         // filtre par default de la page
  304.         $filtres = ['tous''reperes'];
  305.         $page_default 'tous';
  306.         if(!empty($this->context['params']['filtre']) && in_array($this->context['params']['filtre'], $filtres)) {
  307.             $page_default $this->context['params']['filtre'];
  308.         }
  309.         $playlists $this->em->getRepository(Playlists::class);
  310.         $this->perPage 20;
  311.         // récupèrer les prix associés au contact
  312.         $object_aide $this->em->getRepository(TextAide::class);
  313.         if($page_default == 'reperes') {
  314.             $list_aides_possibles $object_aide->getIndiceNombresAides(['idaidecontact' => 102'playlists' => ['idclassifications' => [144]]]);
  315.             $list_top = array();
  316.             foreach ($list_aides_possibles AS $key => $value) {
  317.                 if ($value['totalAide'] == 1) {
  318.                     unset($list_aides_possibles[$key]);
  319.                 } else {
  320.                     $list_aides_possibles[$key]['name'] = $value['totalAide'] . ' sélections';
  321.                 }
  322.             }
  323.         }
  324.         $params = array(
  325. //            'get_by_nombres_aides' => true,
  326. //            'get_stars' => true,
  327. //            'idtexts' => true,
  328. //            'get_by_nombres_aides_val' => false,
  329.             'get_by_playlists' => [144],
  330.         );
  331.         if($page_default == 'reperes') {
  332.             $top 1;
  333.             if (!empty($this->context['params']['top'])) {
  334.                 $top $this->context['params']['top'];
  335.                 $params['get_by_nombres_aides_val'] = $top;
  336.             }
  337.         }
  338.         else{
  339.             $params['unset_by_nombres_aides'] = true;
  340.         }
  341.         //On récupère tous les textes disponibles en lien avec les paramètres au dessus
  342.         $idtexts $this->getTextes($params);
  343.         //Paramètre commun à la méthode de comptage du nombre d'éléments et de la méthode de récupération des éléments
  344.         $params_playlist = array(
  345.             'special' => array(
  346.                 'idclassifications' => 144// class_texte_parauteur //
  347.                 'idtext' => $idtexts// les texts de la personne
  348.             ),
  349.             'dbg' => array('list_playlists','Playlist texte par l\'auteur'),
  350.         );
  351.         //Nombre total d'éléments en base de données
  352.         $this->context['view']->nb_total_playlist $playlists->countListPlaylists($params_playlist);
  353.         //la limite de résultat
  354.         $params_playlist['limit'] = array($this->getLimitStart(),$this->perPage);
  355.         //Liste des éléments disponibles
  356.         $this->context['view']->textes_auteurs $playlists->getListPlaylists($params_playlist, array(), ['other_url_clean' => true]);
  357.         if($page_default == 'reperes') {
  358.             foreach ($this->context['view']->textes_auteurs AS $key => $vb) {
  359.                 $this->context['view']->textes_auteurs[$key] = $this->getTotalAides($vb'text_aide'$idaidecontact'text');
  360.             }
  361.         }
  362.         //Création de la pagination
  363.         $this->context['view']->pagination $this->getPagination($this->context['view']->nb_total_playlist);
  364.         $menu = array(
  365.             'tous' => array(
  366.                 'name' => 'Tous les textes',
  367.                 'key_value' => 'tous'
  368.             ),
  369.             'reperes' => array(
  370.                 'name' => 'Textes les plus repérés',
  371.                 'key_value' => 'reperes'
  372.             )
  373.         );
  374.         $this->asides->load(['url_lists' => array(
  375.             'exec' => ['htmlstart' => true'htmlend' => ($page_default == 'tous') ? true false],
  376.             'php' => array(
  377.                 'method' => 'asidesUrlLists',
  378.                 'url' => '/selections/textes-auteurs/filtre/key_value',
  379.                 'urls' => $menu,
  380.                 'params' => [
  381.                     'activate' => $page_default
  382.                 ]
  383.             ),
  384.             'title' => 'Voir',
  385.         )]);
  386.         if($page_default == 'reperes') {
  387.             $this->asides->load(['url_lists,filtre_top' => array(
  388.                 'exec' => array(
  389.                     'htmlend' => true
  390.                 ),
  391.                 'php' => array(
  392.                     'method' => 'asidesUrlLists',
  393.                     'url' => '/selections/textes-auteurs/filtre/reperes/top/totalAide',
  394.                     'urls' => $list_aides_possibles,
  395.                     'params' => [
  396.                         'activate' => $top
  397.                     ]
  398.                 ),
  399.                 'subtitle' => 'Trier'
  400.             )]);
  401.         }
  402. //        $this->asides->load(['prix_reference' => array(
  403. //            'custom_title' => 'Les comités de lecture',
  404. //            'disable_subtitle' => true
  405. //        )]);
  406.         $this->asides->load('figurer_informations_aides_textes');
  407.         return $this->view('selections/textes-auteurs.html.twig');
  408.     }
  409.     // }}}
  410.     // {{{ getSelections()
  411.     /** les sélections
  412.      *
  413.      */
  414.     public function getSelections($type_aide,$type_label,$page$idaidecontact null$params = array())
  415.     {
  416.         $this->getCommonInfos($idaidecontact);
  417.         // trouver les prix lauréats
  418.         $this->perPage 40;
  419.         $this->context['view']->title_type $type_label;
  420.         $this->context['view']->page $page;
  421.         $this->context['view']->menu_types_object[$this->context['params']['type']]['active'] = 'on';
  422.         foreach($this->context['view']->menu_types_object as $t=>$v) {
  423.             // récupèrer les prix associés au contact
  424.             $object_aide $this->em->getRepository('TheatreCore\\Entity\\'.ucfirst($t).'Aide');
  425.             $params_sql_aide = array(
  426.                 'from' => array($t.'s'),
  427.                 'where' => array(' AND '.$t.'_aide.`id'.$t.'` = '.$t.'s.`id'.$t.'`'),
  428.                 'get_texts_with_aides' => true,
  429.                 'group_by_aide_type_aide_text' => true,
  430.                 'dbg' => array($t.'_aide','Nombre de '.$t.' '.$type_label),
  431.             );
  432.             if(!is_null($type_aide) && !is_array($type_aide)) {
  433.                 $type_aide = array($type_aide);
  434.                 $params_sql_aide['special'] = array(
  435.                     'aides' => array(
  436.                         'type_aides' => $type_aide// Prix
  437.                     )
  438.                 );
  439.             }
  440.             if(!is_null($idaidecontact)){
  441.                 $params_sql_aide['special']['aides']['idaidecontact'] = $idaidecontact;
  442.             }
  443.             if(!empty($params['idtypetext']) && $t == 'text'){
  444.                 $params_sql_aide['where'][] = ' AND texts.`idgenretext` = '.(int)$params['idtypetext'];
  445.             }
  446.             if(!empty($params['isbn_not_empty']) && $t == 'text'){
  447.                 $params_sql_aide['where'][] = ' AND texts.`isbn` != ""';
  448.             }
  449.             if(!empty($params['idtexts'])){
  450.                 if(!isset($params['get_by_nombres_aides_val'])){
  451.                     $params['get_by_nombres_aides_val'] = false;
  452.                 }
  453.                 else{
  454.                     $params_sql_aide['group'] = ['text_aide' => 'idtext'];
  455.                 }
  456.                 $params_sql_aide['idtexts'] = $this->getTextes($params);
  457.             }
  458.             //On récupère les textes avec X aides
  459.             if(!empty($params['get_by_nombres_aides'])){
  460.                 //On rassemble par id d'text_aide
  461. //                $params_sql_aide['group'] = ['text_aide' => 'idtext'];
  462. //                unset($params_sql_aide['get_texts_with_aides']);
  463. //                $params_sql_aide['special']['get_by_nombres_aides'] = $params['get_by_nombres_aides'];
  464. //                if(!empty($params['get_by_nombres_aides_val'])) {
  465. //                    $params_sql_aide['special']['get_by_nombres_aides_val'] = $params['get_by_nombres_aides_val'];
  466. //                }
  467.                 //Pour la pagination
  468.                 $params_sql_aide['count_disctint_by'] = array(
  469.                     $t.'_aide' => 'id'.$t
  470.                 );
  471.             }
  472.             // compter le nombre total de lauréats
  473.             $nb_list $object_aide->{'countList'.ucfirst($t).'Aide'}($params_sql_aide);
  474.             if(is_numeric($nb_list) && $nb_list==0) {
  475.                 unset($this->context['view']->menu_types_object[$t]);
  476.             }
  477.             unset($params_sql_aide['count_disctint_by']);
  478.             // si on est dans le contexte
  479.             if($this->context['params']['type']==$t) {
  480.                 // trouver les années où il y a eu des lauréats pour toutes les aides
  481.                 $this->getCommonSearch(array(
  482.                         'saisons_annees' => array(
  483.                             'annees' => $object_aide->getYears($params_sql_aide),
  484.                         )
  485.                     )
  486.                 );
  487.                 $this->getCommonSearchView();
  488.                 // l'année ou les 2 dernières
  489.                 if(!empty($this->context['view']->year)) {
  490.                     $params_sql_aide['special']['period']['year'] = $this->context['view']->year;
  491.                 } else {
  492.                     // $params_sql_aide['special']['period']['years'] = array(
  493.                     //     'start' => date('Y')-1,
  494.                     //     'end' => date('Y')+1,
  495.                     // );
  496.                 }
  497.                 $params_display = array();
  498.                 // texte style
  499.                 if($this->context['params']['type'] == 'text') {
  500.                     $params_display['vignette_format'] = array('width'=>$_ENV['VIGN_TEXT_WIDTH'],'height'=>$_ENV['VIGN_TEXT_HEIGHT'],'direction'=>'thumb');
  501.                     $params_display['stylemore'] = array('imagep' => 'width:60px;''desctxt' => 'width:210px;');
  502.                     $params_display['publisher_first_inverse'] = true;
  503.                 }
  504.                 $this->context['view']->{'nb_list_aides_'.$t} = $object_aide->{'countList'.ucfirst($t).'Aide'}($params_sql_aide);
  505.                 $params_sql_aide['limit'] = array($this->getLimitStart(),$this->perPage);
  506.                 $list $object_aide->{'getList'.ucfirst($t).'Aide'}($params_sql_aide,$params_display);
  507.                 // groupement par année
  508.                 if (empty($params['unset_no_year'])) {
  509.                     $list_by_year = array();
  510.                     foreach ($list as $k => $v) {
  511.                         $list_by_year[$v['year_start']][$v['idaide']]['description'] = $v['aide'];
  512.                         if (!empty($v[$t 's'])) {
  513.                             foreach ($v[$t 's'] as $kb => $vb) {
  514.                                 if (!empty($params['get_stars']) && $params['get_stars']) {
  515.                                     $vb $this->getTotalAides($vb$type_aide$idaidecontact$t);
  516.                                 }
  517.                                 $list_by_year[$v['year_start']][$v['idaide']][$t 's'][] = $vb;
  518.                             }
  519.                         }
  520.                     }
  521.                     $this->context['view']->{'list_aides_' $t} = $list_by_year;
  522.                 } // sans groupement par année
  523.                 else {
  524.                     $datas = array();
  525.                     foreach ($list as $k => $v) {
  526.                         if (!empty($v[$t 's'])) {
  527.                             foreach ($v[$t 's'] as $kb => $vb) {
  528.                                 if (!empty($params['get_stars']) && $params['get_stars']) {
  529.                                     $vb $this->getTotalAides($vb$type_aide$idaidecontact$t);
  530.                                 }
  531.                                 $datas[$t 's'][] = $vb;
  532.                             }
  533.                         }
  534.                     }
  535.                     $this->context['view']->{'list_' $t} = $datas;
  536.                 }
  537.                 $this->context['view']->pagination $this->getPagination($nb_list);
  538.             }
  539.         }
  540.     }
  541.     // {{{ getCommonInfos()
  542.     /** Infos communes
  543.      *
  544.      * @return void
  545.      */
  546.     protected function getCommonInfos($idaidecontact null)
  547.     {
  548.         // menu type
  549.         $this->context['view']->menu_types_object = array(
  550.             //'tous' =>   array('name' => 'Tous les lauréats'),
  551.             'text' =>  array('name' => 'Les textes'),
  552.             'spectacle' => array('name' => 'Les spectacles'),
  553.             'person' =>   array('name' => 'Les artistes'),
  554.         );
  555.         if(!isset($this->context['params']['type']) || !isset($this->context['view']->menu_types_object[$this->context['params']['type']])) {
  556.             $this->context['params']['type'] = 'text';
  557.         }
  558.         $this->context['view']->menu_types_object$this->context['params']['type']]['active'] = 'on';
  559.         $params = array(
  560.             'special' => array(
  561.                 'type_aide' => array(4),
  562.                 'text_aide' => true,
  563.             ),
  564.             'limit' => array(0,100),
  565.             'dbg' => array('liste_contacts''Contacts associés aux sélections')
  566.         );
  567.         if(!is_null($idaidecontact)){
  568.             $params['special']['idaidecontact'] = $idaidecontact;
  569.         }
  570.         // trouver les aides de type 2 ou 3
  571.         $this->context['view']->contacts $this->aides->getListAides(
  572.             $params,
  573.             array(),
  574.             array(
  575.                 'group_by_contact' => true
  576.             )
  577.         );
  578.         // ajouter masonery
  579.         $this->context['view']->js_more[] = 'jquery.masonry.min.js';
  580.     }
  581.     // }}}
  582.     public function getTextes($params_get false)
  583.     {
  584.         $params = array(
  585.             'special' => array(
  586.                 'aides' => [
  587.                     'idaidecontact' => 102,
  588.                     'get_by_nombres_aides' => true
  589.                 ]
  590.             ),
  591.             'params' => [
  592.                 'limit' => 'all'
  593.             ]
  594.         );
  595.         if(!empty($params_get['unset_by_nombres_aides'])){
  596.             unset($params['special']['aides']['get_by_nombres_aides']);
  597.         }
  598.         if(!empty($params_get['get_by_playlists']) && $params_get['get_by_playlists']){
  599.             $params['special']['playlists'] = array(
  600.                 'text' => true,
  601.                 'idclassifications' => $params_get['get_by_playlists'], // par l'auteur
  602.             );
  603.         }
  604.         if(!empty($params_get['get_by_nombres_aides_val']) && $params_get['get_by_nombres_aides_val']){
  605.             $params['special']['aides']['get_by_nombres_aides_val'] = $params_get['get_by_nombres_aides_val'];
  606.         }
  607.         $texts $this->em->getRepository(Texts::class);
  608.         $query $texts->getSQLTexts($params['params'], $params['special']);
  609.         $texts $texts->queryAll($query);
  610.         $ids = array();
  611.         foreach($texts AS $text){
  612.             $ids[] = $text['idtext'];
  613.         }
  614.         return $ids;
  615.     }
  616.     protected function getTotalAides($datas$type_aide$idaidecontact$type){
  617.         $object_aide $this->em->getRepository('TheatreCore\Entity\\'.$type.'Aide');
  618.         if(!empty($datas['id'.$type])){
  619.             if(is_array($datas['id'.$type])){
  620.                 $text reset($datas['id'.$type]);
  621.                 $idtext $text['id'.$type];
  622.             }
  623.             else{
  624.                 $idtext $datas['id'.$type];
  625.             }
  626.         }
  627.         $params = array(
  628.             'special' => array(
  629.                 'aides' => array(
  630.                     'get_by_nombres_aides' => true,
  631. //                    'type_aides' => $type_aide, // Prix
  632.                     'idaidecontact' => $idaidecontact // type
  633.                 ),
  634.             ),
  635.             'idtext' => $idtext
  636.         );
  637.         $datas['nb_aides'] = $nombres_totals $object_aide->countListTextAide($params);
  638.         $datas['nb_aides_px'] = 13*$datas['nb_aides'];
  639.         return $datas;
  640.     }
  641. }