private\recherche\Controller.php line 11

  1. <?php
  2. use App\Objects\Image;
  3. use App\Objects\Actualite;
  4. use Klio\KlioBundle\Database\DB;
  5. use Klio\KlioBundle\Symfony\Controller;
  6. class PrivateController
  7. {
  8.     public function render(Controller $controller)
  9.     {
  10.         $db = new DB();
  11.         $search $_POST['search'];
  12.         if ($search$_SESSION['searchTerm'] = $search;
  13.         $query_terms = array();
  14.         $terms explode(' '$_SESSION['searchTerm']);
  15.         foreach ($terms as $term) {
  16.             if ($term$query_terms[] = '"%' $term '%"';
  17.         }
  18.         $actuTitre implode(' AND actualites__titre LIKE '$query_terms);
  19.         $actuHtml implode(' AND actualites__html LIKE '$query_terms);
  20.         $pageTitre implode(' AND pages7__titre LIKE '$query_terms);
  21.         $pageSousTitre implode(' AND pages7__sous_titre LIKE '$query_terms);
  22.         $pageHtml implode(' AND pages7__html LIKE '$query_terms);
  23.         $actualites = [];
  24.         if ($search != "" && strlen($search) >= 3) {
  25.             $dbActualites $db->query(
  26.                 "
  27.         SELECT 
  28.             *
  29.         FROM 
  30.             actualites
  31.         WHERE 
  32.             (
  33.                 ( actualites__titre LIKE $actuTitre )
  34.                 OR ( actualites__html LIKE $actuHtml )
  35.             ) 
  36.             and (NOW() >= actualites__diffusion_start or actualites__diffusion_start is NULL ) 
  37.             and (NOW() <= actualites__diffusion_end or actualites__diffusion_end is NULL)
  38.         ORDER BY actualites__date DESC
  39.         ",
  40.                 [],
  41.                 "rows"
  42.             );
  43.             $dbPages $db->query(
  44.                 "
  45.         SELECT 
  46.         pages7__titre,pages7__sous_titre,pages7__presentation,pages7__url
  47.         FROM 
  48.             pages7
  49.         WHERE 
  50.             pages7__url IS NOT NULL
  51.             and (
  52.                 ( pages7__titre LIKE $pageTitre )
  53.                 OR ( pages7__sous_titre LIKE $pageSousTitre )
  54.                 OR ( pages7__html LIKE $pageHtml )
  55.                 )
  56.         ORDER BY pages7__titre DESC
  57.         ",
  58.                 [],
  59.                 "rows"
  60.             );
  61.         }
  62.         $TWIG['searchTerm'] = $_SESSION['searchTerm'];
  63.         $TWIG['ariane'] = "<a href='/'>Accueil</a> / Recherche";
  64.         foreach ($dbActualites as $dbActualite) {
  65.             // Si l'actualité a une image associée en base de données 
  66.             if ($dbActualite['files__name'] && $dbActualite['files__folder'] && $dbActualite['files__hash']) {
  67.                 $image = new Image($dbActualite['files__name'], $dbActualite['files__folder'], $dbActualite['files__hash']);
  68.             }
  69.             // Sinon on crée une image par défaut 
  70.             else {
  71.                 $image = new Image();
  72.             }
  73.             $actualites[] = new Actualite($image$dbActualite['actualites__abstract'], $dbActualite['actualites__html'], $dbActualite['actualites__titre'], $dbActualite['actualites__date'], $dbActualite['actualites__link'],  $dbActualite['actualites__url']);
  74.         }
  75.         $pages = [];
  76.         foreach ($dbPages as $dbPage) {
  77.             $pages[] = $dbPage;
  78.         }
  79.         $TWIG['actualites_search'] = $actualites;
  80.         $TWIG['actualites_count'] = "";
  81.         if ($actualites) {
  82.             if (count($actualites) == 1$TWIG['actualites_count'] = "Votre requête a renvoyé 1 actualité.";
  83.             else if (count($actualites) > 1$TWIG['actualites_count'] = "Votre requête a renvoyé " count($actualites) . " actualites.";
  84.         }
  85.         $TWIG['pages_search'] = $pages;
  86.         $TWIG['pages_count'] = "Votre requête n'a renvoyé aucune page.";
  87.         if ($pages) {
  88.             if (count($pages) == 1$TWIG['pages_count'] = "Votre requête a renvoyé 1 page.";
  89.             else if (count($pages) > 1)  $TWIG['pages_count'] = "Votre requête a renvoyé " count($pages) . " pages.";
  90.         }
  91.         $controller->addTwig($TWIG);
  92.     }
  93. }