<?php
namespace App\Controller;
use App\Entity\Category;
use App\Entity\Media;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;
use Doctrine\Persistence\ManagerRegistry;
/**
* @Route("/", name="page_")
*/
class PageController extends AbstractController
{
/**
* @var ManagerRegistry
*/
private $doctrine;
public function __construct(ManagerRegistry $doctrine)
{
$this->doctrine = $doctrine;
}
/**
* @Route("/a-propos", name="about")
*/
public function about(): Response
{
return $this->render('pages/about.html.twig');
}
/**
* @Route("/ressources-documentaires", name="ressources_documentaires")
*/
public function documents(): Response
{
$static1Docs = new ArrayCollection();
$static2Docs = new ArrayCollection();
$staticDoc2Datas = [
[
'title' => 'Sécurisation juridique des aménagement hydro agricoles dans la vallée 2004',
'src' => 'Sécurisation juridique des aménagement hydro agricoles dans la vallée 2004.pdf',
'mime' => 'application/pdf'
],
];
$staticDoc1Datas = [
[
'title' => 'AFD et le Senegal, une coopération de longue date',
'src' => 'AFD et le Senegal, une coopération de longue date.pdf',
'mime' => 'application/pdf'
],
[
'title' => 'AFD Eval 15 ans developpement territorial',
'src' => 'AFD Eval 15 ans developpement territorial.pdf',
'mime' => 'application/pdf'
],
[
'title' => 'AFD Eval 15 ans Frise PP senegal',
'src' => 'AFD Eval 15 ans Frise PP senegal.pdf',
'mime' => 'application/pdf'
],
[
'title' => 'Afd Eval 15 ans_Annexe Communs',
'src' => 'Afd Eval 15 ans_Annexe Communs.pdf',
'mime' => 'application/pdf'
],
[
'title' => 'AFD Eval soutien Irrigation Sénégal 2019',
'src' => 'AFD Eval soutien Irrigation Sénégal 2019.docx',
'mime' => 'application/vnd.openxmlformats'
],
[
'title' => 'AFD Projet Tiers Sud',
'src' => 'AFD Projet Tiers Sud.pdf',
'mime' => 'application/pdf'
],
[
'title' => 'ARRÊTÉ MINISTÉRIEL COMITE SUIVI LM',
'src' => 'ARRÊTÉ MINISTÉRIEL COMITE SUIVI LM.pdf',
'mime' => 'application/pdf'
],
[
'title' => 'CINQUANTE ANS DE COOPÉRATION FRANÇAISE AVEC L\'AFRIQUE',
'src' => 'CINQUANTE ANS DE COOPÉRATION FRANÇAISE AVEC L\'AFRIQUE.pdf',
'mime' => 'application/pdf'
],
[
'title' => 'Deveze Agricultures familales fleuve Sénégal',
'src' => 'Deveze Agricultures familales fleuve Sénégal.doc',
'mime' => 'application/vnd.openxmlformats'
],
[
'title' => 'État des lieux de l\'aide publique au développement, 2005',
'src' => 'État des lieux de l\'aide publique au développement, 2005.pdf',
'mime' => 'application/pdf'
],
[
'title' => 'Evaluation rétrospective des interventions de l’Agence Française de Développement dans le secteur de l\’irrigation',
'src' => 'Evaluation rétrospective des interventions de l’Agence Française de Développement dans le secteur de l\’irrigation.docx',
'mime' => 'application/pdf'
],
[
'title' => 'Stratégie de l\'AFD en matière de décentralisation et de développement local en zones rurales en Afrique 2004',
'src' => 'Stratégie de l\'AFD en matière de décentralisation et de développement local en zones rurales en Afrique 2004.doc',
'mime' => 'application/vnd.openxmlformats'
],
];
foreach($staticDoc1Datas as $datas) {
$doc = (new Media())
->setTitle($datas['title'])
->setsrc($datas['src'])
->setMime($datas['mime'])
->setCreatedAt(new \DateTime('now'))
->setUpdatedAt(new \DateTime('now'))
;
$static1Docs->add($doc);
}
foreach($staticDoc2Datas as $datas) {
$doc = (new Media())
->setTitle($datas['title'])
->setsrc($datas['src'])
->setMime($datas['mime'])
->setCreatedAt(new \DateTime('now'))
->setUpdatedAt(new \DateTime('now'))
;
$static2Docs->add($doc);
}
$listedVyCategories = [];
$hashes = new ArrayCollection();
$categories = $this->doctrine->getRepository(Category::class)->findAll();
$documents = $this->doctrine->getRepository(Media::class)->findAllDocuments();
foreach($categories as $category)
{
$listedVyCategories[$category->getSlug()] = new ArrayCollection();
}
foreach ($documents as $document) {
// Calculer le hachage SHA-256 du document
$sha256Hash = hash_file('sha256', './uploads/documents/' . $document->getSrc());
if($document->getMarkers()->isEmpty() || $document->getId() == 33 || $document->getId() == 46 )
continue;
$category = $document->getMarkers()->first()->getArticle()->getCategory();
// Vérifier si le hachage est déjà dans la collection des hachages
if (!$hashes->contains($sha256Hash)) {
// Ajouter le document à la liste et le hachage à la collection des hachages
$listedVyCategories[$category->getSlug()]->add($document);
$hashes->add($sha256Hash);
}
}
foreach($listedVyCategories as $k => $v) {
if($listedVyCategories[$k]->isEmpty()) {
unset($listedVyCategories[$k]);
}
}
return $this->render('pages/ressources_documentaires.html.twig', [
'documents' => $listedVyCategories,
'categories' => $categories,
'staticDoc1' => $static1Docs,
'staticDoc2' => $static2Docs
]);
}
}