src/Controller/ParametersController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Symfony\Component\Routing\Annotation\Method;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Component\Routing\Annotation\Security;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use App\Entity\Pictures;
  11. use App\Entity\Parameters;
  12. use App\Form\ParametersType;
  13. use App\Repository\ParametersRepository;
  14. use OlaSoft\Common;
  15. use Symfony\Component\Yaml\Yaml;
  16. /**
  17.  * @Route("/os-admin/parameters")
  18.  */
  19. class ParametersController extends AbstractController
  20. {
  21.     /**
  22.      * @Route("/", name="parameters")
  23.      */
  24.     public function edit(Request $request)
  25.     {
  26.         $paramsFile "../config/packages/olasoft.yaml";
  27.         $values Yaml::parseFile($paramsFile)["parameters"];
  28.         $params = [];
  29.         foreach ($values as $key => $value) {
  30.             if(is_array($value))
  31.                 foreach($value as $k => $v)
  32.                     $params[$key."_".$k] = $v;
  33.             else
  34.                 $params[$key] = $value;
  35.         }
  36.         $form $this->createForm(ParametersType::class, $params);
  37.         $form->remove("_token");
  38.         $form->handleRequest($request);
  39.         if ($form->isSubmitted()){
  40.             $params = [];
  41.             foreach ($form->getData() as $key => $data) {
  42.                 if(is_object($data) && method_exists($data"persistFile"))
  43.                     $data->persistFile();
  44.                 if(strpos($key,'_')){
  45.                     [$prefix$prop] = explode("_"$key);
  46.                     $params[$prefix][$prop] = (string) $data;
  47.                 }
  48.                 else
  49.                     $params[$key] = (string) $data;
  50.             }
  51.             file_put_contents($paramsFile,Yaml::dump(['parameters' => $params]));
  52.             $this->addFlash("notice","Enregistrement des paramètres effectué avec succès.");
  53.             return $this->redirectToRoute('parameters');
  54.         }
  55.         $ajax $request->isXmlHttpRequest();
  56.         $response $this->render('Admin\edit.html.twig',[
  57.             'ajax'=>$ajax,
  58.             'form'=>$form->createView(),
  59.             "title"=> "Édition des paramètres",
  60.         ]);
  61.         return $ajax ?
  62.             new Response(\json_encode([
  63.                 'content'=>$response->getContent(),
  64.                 "title"=> "Édition des paramètres",
  65.             ]))
  66.         : $response;
  67.      }
  68. }