first commit symfony 6
This commit is contained in:
55
src/Controller/ThemeController.php
Normal file
55
src/Controller/ThemeController.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Symfony\Component\Yaml\Yaml;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
||||
class ThemeController extends AbstractController
|
||||
{
|
||||
public function list(Request $request)
|
||||
{
|
||||
$finder = new Finder();
|
||||
|
||||
$dir = $this->getParameter('kernel.project_dir')."/public/themes";
|
||||
$url=$this->getParameter('appAlias')."themes";
|
||||
|
||||
$finder->in($dir)->directories()->depth('== 0');
|
||||
$themes=[];
|
||||
$themes[""]["dir"]="";
|
||||
$themes[""]["url"]=$url;
|
||||
$themes[""]["name"]="Thème par défaut";
|
||||
|
||||
foreach ($finder as $file) {
|
||||
$key=$file->getRelativePathname();
|
||||
$themes[$key]["dir"]=$key;
|
||||
$themes[$key]["url"]=$url."/".$key;
|
||||
|
||||
$yml=Yaml::parseFile($dir.'/'.$key.'/info.yml');
|
||||
$themes[$key]["name"]=$yml["name"];
|
||||
}
|
||||
|
||||
$current=$request->getSession()->get("apptheme");
|
||||
$currentheme=$themes[$current];
|
||||
unset($themes[$current]);
|
||||
|
||||
return $this->render('Theme/list.html.twig',[
|
||||
'useheader' => true,
|
||||
'usesidebar' => true,
|
||||
'currentheme' => $currentheme,
|
||||
'themes' => $themes
|
||||
]);
|
||||
}
|
||||
|
||||
public function select($name,Request $request,ManagerRegistry $em)
|
||||
{
|
||||
$config=$em->getRepository("App\Entity\Config")->findoneBy(["id"=>"apptheme"]);
|
||||
$config->setValue($name);
|
||||
|
||||
$em->getManager()->flush();
|
||||
|
||||
return $this->redirectToRoute("app_admin_theme");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user