private\recherche\Controller.php line 14
<?php
use App\Objects\Image;
use App\Objects\Actualite;
use Klio\KlioBundle\Database\DB;
use Klio\KlioBundle\Symfony\Controller;
class PrivateController
{
public function render(Controller $controller)
{
$db = new DB();
$search = $_POST['search'];
if ($search) $_SESSION['searchTerm'] = $search;
$query_terms = array();
$terms = explode(' ', $_SESSION['searchTerm']);
foreach ($terms as $term) {
if ($term) $query_terms[] = '"%' . $term . '%"';
}
$actuTitre = implode(' AND actualites__titre LIKE ', $query_terms);
$actuHtml = implode(' AND actualites__html LIKE ', $query_terms);
$pageTitre = implode(' AND pages7__titre LIKE ', $query_terms);
$pageSousTitre = implode(' AND pages7__sous_titre LIKE ', $query_terms);
$pageHtml = implode(' AND pages7__html LIKE ', $query_terms);
$actualites = [];
if ($search != "" && strlen($search) >= 3) {
$dbActualites = $db->query(
"
SELECT
*
FROM
actualites
WHERE
(
( actualites__titre LIKE $actuTitre )
OR ( actualites__html LIKE $actuHtml )
)
and (NOW() >= actualites__diffusion_start or actualites__diffusion_start is NULL )
and (NOW() <= actualites__diffusion_end or actualites__diffusion_end is NULL)
ORDER BY actualites__date DESC
",
[],
"rows"
);
$dbPages = $db->query(
"
SELECT
pages7__titre,pages7__sous_titre,pages7__presentation,pages7__url
FROM
pages7
WHERE
pages7__url IS NOT NULL
and (
( pages7__titre LIKE $pageTitre )
OR ( pages7__sous_titre LIKE $pageSousTitre )
OR ( pages7__html LIKE $pageHtml )
)
ORDER BY pages7__titre DESC
",
[],
"rows"
);
}
$TWIG['searchTerm'] = $_SESSION['searchTerm'];
$TWIG['ariane'] = "<a href='/'>Accueil</a> / Recherche";
foreach ($dbActualites as $dbActualite) {
// Si l'actualité a une image associée en base de données
if ($dbActualite['files__name'] && $dbActualite['files__folder'] && $dbActualite['files__hash']) {
$image = new Image($dbActualite['files__name'], $dbActualite['files__folder'], $dbActualite['files__hash']);
}
// Sinon on crée une image par défaut
else {
$image = new Image();
}
$actualites[] = new Actualite($image, $dbActualite['actualites__abstract'], $dbActualite['actualites__html'], $dbActualite['actualites__titre'], $dbActualite['actualites__date'], $dbActualite['actualites__link'], $dbActualite['actualites__url']);
}
$pages = [];
foreach ($dbPages as $dbPage) {
$pages[] = $dbPage;
}
$TWIG['actualites_search'] = $actualites;
$TWIG['actualites_count'] = "";
if ($actualites) {
if (count($actualites) == 1) $TWIG['actualites_count'] = "Votre requête a renvoyé 1 actualité.";
else if (count($actualites) > 1) $TWIG['actualites_count'] = "Votre requête a renvoyé " . count($actualites) . " actualites.";
}
$TWIG['pages_search'] = $pages;
$TWIG['pages_count'] = "Votre requête n'a renvoyé aucune page.";
if ($pages) {
if (count($pages) == 1) $TWIG['pages_count'] = "Votre requête a renvoyé 1 page.";
else if (count($pages) > 1) $TWIG['pages_count'] = "Votre requête a renvoyé " . count($pages) . " pages.";
}
$controller->addTwig($TWIG);
}
}