icon user + cache flux
This commit is contained in:
parent
8e634842b3
commit
6517d7dca2
|
@ -306,6 +306,15 @@ class PurgeFileCommand extends Command
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// /web/uploads/ckeditor
|
||||||
|
$this->writelnred('');
|
||||||
|
$this->writelnred('== Directory = Flux');
|
||||||
|
$directory=$this->container->get('kernel')->getRootDir()."/../web/uploads/flux";
|
||||||
|
$fs = new Filesystem();
|
||||||
|
$fs->remove($directory);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$this->writeln('');
|
$this->writeln('');
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -237,6 +237,13 @@ class User implements UserInterface, \Serializable
|
||||||
*/
|
*/
|
||||||
private $blogarticles;
|
private $blogarticles;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var ArrayCollection $icon
|
||||||
|
* @var Icon
|
||||||
|
*
|
||||||
|
* @ORM\OneToMany(targetEntity="Cadoles\PortalBundle\Entity\Icon", mappedBy="user", cascade={"persist"}, orphanRemoval=true)
|
||||||
|
*/
|
||||||
|
private $icons;
|
||||||
|
|
||||||
//== CODE A NE PAS REGENERER
|
//== CODE A NE PAS REGENERER
|
||||||
/**
|
/**
|
||||||
|
@ -334,6 +341,7 @@ class User implements UserInterface, \Serializable
|
||||||
$this->blogs = new \Doctrine\Common\Collections\ArrayCollection();
|
$this->blogs = new \Doctrine\Common\Collections\ArrayCollection();
|
||||||
$this->blogwriters = new \Doctrine\Common\Collections\ArrayCollection();
|
$this->blogwriters = new \Doctrine\Common\Collections\ArrayCollection();
|
||||||
$this->blogarticles = new \Doctrine\Common\Collections\ArrayCollection();
|
$this->blogarticles = new \Doctrine\Common\Collections\ArrayCollection();
|
||||||
|
$this->icons = new \Doctrine\Common\Collections\ArrayCollection();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1255,4 +1263,38 @@ class User implements UserInterface, \Serializable
|
||||||
{
|
{
|
||||||
return $this->blogarticles;
|
return $this->blogarticles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add icon
|
||||||
|
*
|
||||||
|
* @param \Cadoles\PortalBundle\Entity\Icon $icon
|
||||||
|
*
|
||||||
|
* @return User
|
||||||
|
*/
|
||||||
|
public function addIcon(\Cadoles\PortalBundle\Entity\Icon $icon)
|
||||||
|
{
|
||||||
|
$this->icons[] = $icon;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove icon
|
||||||
|
*
|
||||||
|
* @param \Cadoles\PortalBundle\Entity\Icon $icon
|
||||||
|
*/
|
||||||
|
public function removeIcon(\Cadoles\PortalBundle\Entity\Icon $icon)
|
||||||
|
{
|
||||||
|
$this->icons->removeElement($icon);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get icons
|
||||||
|
*
|
||||||
|
* @return \Doctrine\Common\Collections\Collection
|
||||||
|
*/
|
||||||
|
public function getIcons()
|
||||||
|
{
|
||||||
|
return $this->icons;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -333,7 +333,7 @@ class InitDataCommand extends ContainerAwareCommand
|
||||||
$em->persist($entityWidget);
|
$em->persist($entityWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Widget Calendrier
|
// Widget Blog
|
||||||
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1890);
|
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1890);
|
||||||
if(!$entityWidget) {
|
if(!$entityWidget) {
|
||||||
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_rocket.png"]);
|
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_rocket.png"]);
|
||||||
|
@ -355,6 +355,28 @@ class InitDataCommand extends ContainerAwareCommand
|
||||||
$em->persist($entityWidget);
|
$em->persist($entityWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Widget RSS
|
||||||
|
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1880);
|
||||||
|
if(!$entityWidget) {
|
||||||
|
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_rss.png"]);
|
||||||
|
|
||||||
|
$entityWidget = new Widget();
|
||||||
|
$entityWidget->setId(-1880);
|
||||||
|
$entityWidget->setRoworder(13);
|
||||||
|
$entityWidget->setIcon($entityicon);
|
||||||
|
$entityWidget->setName('RSS');
|
||||||
|
$entityWidget->setDescription("Afficher un flux RSS spécifique");
|
||||||
|
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_rss");
|
||||||
|
$entityWidget->setHeight("630");
|
||||||
|
$entityWidget->setAutoajust(true);
|
||||||
|
$entityWidget->setBorder(true);
|
||||||
|
|
||||||
|
$parameter = json_decode('{"fields": [{"id": "url", "loc": "col1", "type": "string", "label": "URL du Flux RSS", "value": "", "mandatory": "true"},{"id": "nbarticle", "loc": "col1", "type": "integer", "label": "Nombre d\'articles affichés", "value": "10", "mandatory": "true"}]}');
|
||||||
|
$entityWidget->setParameter($parameter);
|
||||||
|
|
||||||
|
$em->persist($entityWidget);
|
||||||
|
}
|
||||||
|
|
||||||
// Widget Séparateur
|
// Widget Séparateur
|
||||||
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1600);
|
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1600);
|
||||||
if(!$entityWidget) {
|
if(!$entityWidget) {
|
||||||
|
|
|
@ -63,12 +63,17 @@ class BookmarkController extends Controller
|
||||||
return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_page_view',["id"=>$idpage]));
|
return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_page_view',["id"=>$idpage]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$icons=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>null]);
|
||||||
|
$iconsuser=null;
|
||||||
|
if($access=="user") $iconsuser=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>$this->getUser()]);
|
||||||
|
|
||||||
return $this->render($this->labelentity.':edit.html.twig', [
|
return $this->render($this->labelentity.':edit.html.twig', [
|
||||||
'useheader' => ($access=="config"),
|
'useheader' => ($access=="config"),
|
||||||
'usemenu' => false,
|
'usemenu' => false,
|
||||||
'usesidebar' => ($access=="config"),
|
'usesidebar' => ($access=="config"),
|
||||||
'entity' => $data,
|
'entity' => $data,
|
||||||
'icons' => $this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findAll(),
|
'icons' => $icons,
|
||||||
|
'iconsuser' => $iconsuser,
|
||||||
'mode' => "submit",
|
'mode' => "submit",
|
||||||
'access' => $access,
|
'access' => $access,
|
||||||
'idpage' => $idpage,
|
'idpage' => $idpage,
|
||||||
|
@ -122,6 +127,9 @@ class BookmarkController extends Controller
|
||||||
return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_page_view',["id"=>$idpage]));
|
return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_page_view',["id"=>$idpage]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$icons=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>null]);
|
||||||
|
$iconsuser=null;
|
||||||
|
if($access=="user") $iconsuser=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>$this->getUser()]);
|
||||||
|
|
||||||
// Affichage du formulaire
|
// Affichage du formulaire
|
||||||
return $this->render($this->labelentity.':edit.html.twig', [
|
return $this->render($this->labelentity.':edit.html.twig', [
|
||||||
|
@ -129,7 +137,8 @@ class BookmarkController extends Controller
|
||||||
'usemenu' => false,
|
'usemenu' => false,
|
||||||
'usesidebar' => ($access=="config"),
|
'usesidebar' => ($access=="config"),
|
||||||
'entity' => $data,
|
'entity' => $data,
|
||||||
'icons' => $this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findAll(),
|
'icons' => $icons,
|
||||||
|
'iconsuser' => $iconsuser,
|
||||||
'mode' => "update",
|
'mode' => "update",
|
||||||
'access' => $access,
|
'access' => $access,
|
||||||
'idpage' => $idpage,
|
'idpage' => $idpage,
|
||||||
|
|
|
@ -19,18 +19,24 @@ class IconController extends Controller
|
||||||
private $labeldata = 'icon';
|
private $labeldata = 'icon';
|
||||||
private $labeldatas = 'icons';
|
private $labeldatas = 'icons';
|
||||||
|
|
||||||
public function listAction()
|
public function listAction($access="config")
|
||||||
{
|
{
|
||||||
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
if($access=="config")
|
||||||
|
$icons=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>null]);
|
||||||
|
else
|
||||||
|
$icons=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>$this->getUser()]);
|
||||||
|
|
||||||
return $this->render($this->labelentity.':list.html.twig',[
|
return $this->render($this->labelentity.':list.html.twig',[
|
||||||
'useheader' => true,
|
'useheader' => true,
|
||||||
'usemenu' => false,
|
'usemenu' => false,
|
||||||
'usesidebar' => true,
|
'usesidebar' => ($access=="config"),
|
||||||
$this->labeldatas => $this->getDatas()
|
'access' => $access,
|
||||||
|
$this->labeldatas => $icons
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function submitAction(Request $request)
|
public function submitAction(Request $request,$access="config")
|
||||||
{
|
{
|
||||||
// Initialisation de l'enregistrement
|
// Initialisation de l'enregistrement
|
||||||
$data = new Icon();
|
$data = new Icon();
|
||||||
|
@ -47,6 +53,8 @@ class IconController extends Controller
|
||||||
// Sur validation
|
// Sur validation
|
||||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||||
$data = $form->getData();
|
$data = $form->getData();
|
||||||
|
if($access=="user") $data->setUser($this->getUser());
|
||||||
|
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
|
||||||
// Sauvegarde
|
// Sauvegarde
|
||||||
|
@ -54,21 +62,22 @@ class IconController extends Controller
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
// Retour à la liste
|
// Retour à la liste
|
||||||
return $this->redirectToRoute($this->labelroute);
|
return $this->redirectToRoute('cadoles_portal_'.$access.'_icon');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Affichage du formulaire
|
// Affichage du formulaire
|
||||||
return $this->render($this->labelentity.':edit.html.twig', [
|
return $this->render($this->labelentity.':edit.html.twig', [
|
||||||
'useheader' => true,
|
'useheader' => true,
|
||||||
'usemenu' => false,
|
'usemenu' => false,
|
||||||
'usesidebar' => true,
|
'usesidebar' => ($access=="config"),
|
||||||
|
'access' => $access,
|
||||||
$this->labeldata => $data,
|
$this->labeldata => $data,
|
||||||
'mode' => 'submit',
|
'mode' => 'submit',
|
||||||
'form' => $form->createView()
|
'form' => $form->createView(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateAction($id,Request $request)
|
public function updateAction($id,Request $request,$access="config")
|
||||||
{
|
{
|
||||||
// Récupération de l'enregistrement courant
|
// Récupération de l'enregistrement courant
|
||||||
$data=$this->getData($id);
|
$data=$this->getData($id);
|
||||||
|
@ -94,7 +103,7 @@ class IconController extends Controller
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
// Retour à la liste
|
// Retour à la liste
|
||||||
return $this->redirectToRoute($this->labelroute);
|
return $this->redirectToRoute('cadoles_portal_'.$access.'_icon');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -102,14 +111,16 @@ class IconController extends Controller
|
||||||
return $this->render($this->labelentity.':edit.html.twig', [
|
return $this->render($this->labelentity.':edit.html.twig', [
|
||||||
'useheader' => true,
|
'useheader' => true,
|
||||||
'usemenu' => false,
|
'usemenu' => false,
|
||||||
'usesidebar' => true,
|
'usesidebar' => ($access=="config"),
|
||||||
|
'access' => $access,
|
||||||
$this->labeldata => $data,
|
$this->labeldata => $data,
|
||||||
'mode' => 'update',
|
'mode' => 'update',
|
||||||
'form' => $form->createView()
|
'form' => $form->createView(),
|
||||||
|
'refresh' => false,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteAction($id,Request $request)
|
public function deleteAction($id,Request $request,$access="config")
|
||||||
{
|
{
|
||||||
// Récupération de l'enregistrement courant
|
// Récupération de l'enregistrement courant
|
||||||
$data=$this->getData($id);
|
$data=$this->getData($id);
|
||||||
|
@ -121,7 +132,7 @@ class IconController extends Controller
|
||||||
$em->remove($data);
|
$em->remove($data);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
return $this->redirectToRoute($this->labelroute);
|
return $this->redirectToRoute('cadoles_portal_'.$access.'_icon');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -130,13 +130,18 @@ class PagewidgetController extends Controller
|
||||||
return $this->redirect($this->generateUrl('cadoles_core_home',["id"=>$idpage]));
|
return $this->redirect($this->generateUrl('cadoles_core_home',["id"=>$idpage]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$icons=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>null]);
|
||||||
|
$iconsuser=null;
|
||||||
|
if($access=="user") $iconsuser=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>$this->getUser()]);
|
||||||
|
|
||||||
return $this->render($this->labelentity.':edit.html.twig', [
|
return $this->render($this->labelentity.':edit.html.twig', [
|
||||||
'useheader' => true,
|
'useheader' => true,
|
||||||
'usemenu' => false,
|
'usemenu' => false,
|
||||||
'usesidebar' => ($access=="config"),
|
'usesidebar' => ($access=="config"),
|
||||||
'maxwidth' => ($access=="user"),
|
'maxwidth' => ($access=="user"),
|
||||||
'entity' => $entity,
|
'entity' => $entity,
|
||||||
'icons' => $this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findAll(),
|
'icons' => $icons,
|
||||||
|
'iconsuser' => $iconsuser,
|
||||||
'mode' => "submit",
|
'mode' => "submit",
|
||||||
'access' => $access,
|
'access' => $access,
|
||||||
'idpage' => $idpage,
|
'idpage' => $idpage,
|
||||||
|
@ -191,13 +196,18 @@ class PagewidgetController extends Controller
|
||||||
return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_page_view',["id"=>$idpage]));
|
return $this->redirect($this->generateUrl('cadoles_portal_'.$access.'_page_view',["id"=>$idpage]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$icons=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>null]);
|
||||||
|
$iconsuser=null;
|
||||||
|
if($access=="user") $iconsuser=$this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>$this->getUser()]);
|
||||||
|
|
||||||
return $this->render($this->labelentity.':edit.html.twig', [
|
return $this->render($this->labelentity.':edit.html.twig', [
|
||||||
'useheader' => ($access=="config"),
|
'useheader' => ($access=="config"),
|
||||||
'usemenu' => false,
|
'usemenu' => false,
|
||||||
'usesidebar' => ($access=="config"),
|
'usesidebar' => ($access=="config"),
|
||||||
'maxwidth' => ($access=="user"),
|
'maxwidth' => ($access=="user"),
|
||||||
'entity' => $entity,
|
'entity' => $entity,
|
||||||
'icons' => $this->getDoctrine()->getRepository("CadolesPortalBundle:Icon")->findAll(),
|
'icons' => $icons,
|
||||||
|
'iconsuser' => $iconsuser,
|
||||||
'mode' => "update",
|
'mode' => "update",
|
||||||
'access' => $access,
|
'access' => $access,
|
||||||
'idpage' => $idpage,
|
'idpage' => $idpage,
|
||||||
|
@ -633,78 +643,110 @@ class PagewidgetController extends Controller
|
||||||
$feedIo = new \FeedIo\FeedIo($client, $logger);
|
$feedIo = new \FeedIo\FeedIo($client, $logger);
|
||||||
|
|
||||||
$feeds=array();
|
$feeds=array();
|
||||||
|
$filesystem = new Filesystem();
|
||||||
|
|
||||||
foreach($fluxsordered as $flux) {
|
foreach($fluxsordered as $flux) {
|
||||||
// On regarde si le flux a été lu il y a peu
|
// On regarde si le flux a été lu il y a peu
|
||||||
|
$toregen=true;
|
||||||
|
|
||||||
// On lit le flux rss
|
if($filesystem->exists('uploads/flux/flux-'.$flux->getId().'.txt')) {
|
||||||
$result = $feedIo->read($flux->getUrl());
|
// On récupère la date de modification du fichier
|
||||||
$feedtitle = $result->getFeed()->getTitle();
|
$timestampfile = filemtime('uploads/flux/flux-'.$flux->getId().'.txt');
|
||||||
|
$datetimeFormat = 'Y-m-d H:i:s';
|
||||||
|
$datefile = new \DateTime();
|
||||||
|
$datefile->setTimestamp($timestampfile);
|
||||||
|
|
||||||
// Pour chaque articles
|
// On ajoute 30mn
|
||||||
$nbflux=0;
|
$datefile->add(new \DateInterval('PT30M'));
|
||||||
foreach ($result->getFeed() as $item) {
|
|
||||||
$title = $item->getTitle();
|
|
||||||
$link = $item->getLink();
|
|
||||||
$description = substr(strip_tags($item->getDescription()),0,250);
|
|
||||||
$description = str_replace("¶","",$description);
|
|
||||||
$date = $item->getLastModified();
|
|
||||||
$dateformat = $item->getLastModified()->format('d/m/Y H:i:s');
|
|
||||||
$content = $item->getDescription();
|
|
||||||
$media = $item->getMedias();
|
|
||||||
$mediaurl = "";
|
|
||||||
|
|
||||||
foreach ($item->getMedias() as $itemMedia) {
|
// Si la date est inférieur à maintenant on regénère le flux
|
||||||
if($itemMedia->getType()=="image/jpeg")
|
$now = new \DateTime();
|
||||||
$mediaurl=$itemMedia->getUrl();
|
if($datefile>=$now) {
|
||||||
}
|
$toregen=false;
|
||||||
|
$backup = unserialize(file_get_contents('uploads/flux/flux-'.$flux->getId().'.txt'));
|
||||||
foreach ($item->getAllElements() as $element) {
|
$feeds=array_merge($feeds,$backup);
|
||||||
|
|
||||||
if($element->getName()=="content:encoded")
|
|
||||||
$content = $element->getValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
if($mediaurl!="") {
|
|
||||||
$imgurl=$mediaurl;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Récupérer la première image du contenu
|
|
||||||
$imgcontent="";
|
|
||||||
$imgurl="";
|
|
||||||
$imgstart = stripos($content,"<img");
|
|
||||||
if($imgstart!== false) {
|
|
||||||
$imgend = stripos($content,">",$imgstart);
|
|
||||||
$imgcontent=substr($content,$imgstart,$imgend-$imgstart+1);
|
|
||||||
|
|
||||||
$imgstart = stripos($imgcontent,"src=");
|
|
||||||
$imgurl=substr($imgcontent,$imgstart+5);
|
|
||||||
$imgend = stripos($imgurl,'"');
|
|
||||||
|
|
||||||
if($imgend===false) $imgend = stripos($imgurl,"'");
|
|
||||||
$imgurl=substr($imgurl,0,$imgend);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Garder le flux
|
|
||||||
if($nbflux<26) {
|
|
||||||
array_push($feeds,array(
|
|
||||||
"feedtitle" => $feedtitle,
|
|
||||||
"title" => $title,
|
|
||||||
"link" => $link,
|
|
||||||
"description" => $description,
|
|
||||||
"date" => $date,
|
|
||||||
"dateformat" => $dateformat,
|
|
||||||
"content" => $content,
|
|
||||||
"image" => $imgurl,
|
|
||||||
"color" => $flux->getColor(),
|
|
||||||
"fluxid" => $flux->getId(),
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
$nbflux++;
|
}
|
||||||
if($nbflux>=$flux->getMaxread()) break;
|
|
||||||
}
|
// Si le fichier est trop ancien on relit le flus
|
||||||
|
if($toregen) {
|
||||||
|
// On lit le flux rss
|
||||||
|
$result = $feedIo->read($flux->getUrl());
|
||||||
|
$feedtitle = $result->getFeed()->getTitle();
|
||||||
|
|
||||||
|
|
||||||
|
$backup=[];
|
||||||
|
|
||||||
|
// Pour chaque articles
|
||||||
|
$nbflux=0;
|
||||||
|
foreach ($result->getFeed() as $item) {
|
||||||
|
$title = $item->getTitle();
|
||||||
|
$link = $item->getLink();
|
||||||
|
$description = substr(strip_tags($item->getDescription()),0,250);
|
||||||
|
$description = str_replace("¶","",$description);
|
||||||
|
$date = $item->getLastModified();
|
||||||
|
$dateformat = ($date?$item->getLastModified()->format('d/m/Y H:i:s'):"");
|
||||||
|
$content = $item->getDescription();
|
||||||
|
$media = $item->getMedias();
|
||||||
|
$mediaurl = "";
|
||||||
|
|
||||||
|
foreach ($item->getMedias() as $itemMedia) {
|
||||||
|
if($itemMedia->getType()=="image/jpeg")
|
||||||
|
$mediaurl=$itemMedia->getUrl();
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($item->getAllElements() as $element) {
|
||||||
|
|
||||||
|
if($element->getName()=="content:encoded")
|
||||||
|
$content = $element->getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
if($mediaurl!="") {
|
||||||
|
$imgurl=$mediaurl;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Récupérer la première image du contenu
|
||||||
|
$imgcontent="";
|
||||||
|
$imgurl="";
|
||||||
|
$imgstart = stripos($content,"<img");
|
||||||
|
if($imgstart!== false) {
|
||||||
|
$imgend = stripos($content,">",$imgstart);
|
||||||
|
$imgcontent=substr($content,$imgstart,$imgend-$imgstart+1);
|
||||||
|
|
||||||
|
$imgstart = stripos($imgcontent,"src=");
|
||||||
|
$imgurl=substr($imgcontent,$imgstart+5);
|
||||||
|
$imgend = stripos($imgurl,'"');
|
||||||
|
|
||||||
|
if($imgend===false) $imgend = stripos($imgurl,"'");
|
||||||
|
$imgurl=substr($imgurl,0,$imgend);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Garder le flux
|
||||||
|
|
||||||
|
$tmp=array(
|
||||||
|
"feedtitle" => $feedtitle,
|
||||||
|
"title" => $title,
|
||||||
|
"link" => $link,
|
||||||
|
"description" => $description,
|
||||||
|
"date" => $date,
|
||||||
|
"dateformat" => $dateformat,
|
||||||
|
"content" => $content,
|
||||||
|
"image" => $imgurl,
|
||||||
|
"color" => "",
|
||||||
|
"fluxid" => $flux->getId(),
|
||||||
|
);
|
||||||
|
|
||||||
|
array_push($feeds,$tmp);
|
||||||
|
array_push($backup,$tmp);
|
||||||
|
|
||||||
|
$nbflux++;
|
||||||
|
if($nbflux>=$flux->getMaxread()) break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// On sauvegarde le résultat en fichier on rechargera son contenu que s'il n'a pas été lu depuis 30mn
|
||||||
|
$filesystem->dumpFile('uploads/flux/flux-'.$flux->getId().'.txt', serialize($backup));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$libelle=array();
|
$libelle=array();
|
||||||
|
@ -724,6 +766,166 @@ class PagewidgetController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function viewrssAction($id,$access="config") {
|
||||||
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
$entity = $em->getRepository($this->labelentity)->find($id);
|
||||||
|
if (!$entity) throw $this->createNotFoundException('Unable to find entity.');
|
||||||
|
|
||||||
|
// Permissions
|
||||||
|
if($access=="config") {
|
||||||
|
$canupdate = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// On s'assure que l'utilisateur à la permission de voir
|
||||||
|
$page=$entity->getPage();
|
||||||
|
$em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate);
|
||||||
|
if(!$cansee) throw $this->createNotFoundException('Permission denied');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Récupération des paramétres du widget
|
||||||
|
$url="";
|
||||||
|
$nbarticle="_blank";
|
||||||
|
foreach($entity->getParameter()["fields"] as $parameter) {
|
||||||
|
switch($parameter["id"]) {
|
||||||
|
case "url":
|
||||||
|
$url=$parameter["value"];
|
||||||
|
break;
|
||||||
|
case "nbarticle":
|
||||||
|
$nbarticle=$parameter["value"];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// On regarde si le flux a été lu il y a peu
|
||||||
|
$toregen=true;
|
||||||
|
|
||||||
|
$filesystem = new Filesystem();
|
||||||
|
if($filesystem->exists('uploads/flux/widget-'.$id.'.txt')) {
|
||||||
|
// On récupère la date de modification du fichier
|
||||||
|
$timestampfile = filemtime('uploads/flux/widget-'.$id.'.txt');
|
||||||
|
$datetimeFormat = 'Y-m-d H:i:s';
|
||||||
|
$datefile = new \DateTime();
|
||||||
|
$datefile->setTimestamp($timestampfile);
|
||||||
|
|
||||||
|
// On ajoute 30mn
|
||||||
|
$datefile->add(new \DateInterval('PT30M'));
|
||||||
|
|
||||||
|
// Si la date est inférieur à maintenant on regénère le flux
|
||||||
|
$now = new \DateTime();
|
||||||
|
if($datefile>=$now) {
|
||||||
|
$toregen=false;
|
||||||
|
$feeds = unserialize(file_get_contents('uploads/flux/widget-'.$id.'.txt'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Si le fichier est trop ancien on relit le flus
|
||||||
|
if($toregen) {
|
||||||
|
// Connexion au client
|
||||||
|
$PROXYactivate = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYactivate")->getValue();
|
||||||
|
|
||||||
|
if($PROXYactivate) {
|
||||||
|
$PROXYserver = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYserver")->getValue();
|
||||||
|
$PROXYport = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYport")->getValue();
|
||||||
|
$clientguzzle = new \GuzzleHttp\Client(array('proxy' => ['http' => 'tcp://'.$PROXYserver.':'.$PROXYport,'https' => 'tcp://'.$PROXYserver.':'.$PROXYport]));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$clientguzzle = new \GuzzleHttp\Client();
|
||||||
|
|
||||||
|
$client = new \FeedIo\Adapter\Guzzle\Client($clientguzzle);
|
||||||
|
$logger = new \Psr\Log\NullLogger();
|
||||||
|
$feedIo = new \FeedIo\FeedIo($client, $logger);
|
||||||
|
|
||||||
|
$feeds=array();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// On lit le flux rss
|
||||||
|
$result = $feedIo->read($url);
|
||||||
|
$feedtitle = $result->getFeed()->getTitle();
|
||||||
|
|
||||||
|
// Pour chaque articles
|
||||||
|
$nbflux=0;
|
||||||
|
foreach ($result->getFeed() as $item) {
|
||||||
|
$title = $item->getTitle();
|
||||||
|
$link = $item->getLink();
|
||||||
|
$description = substr(strip_tags($item->getDescription()),0,250);
|
||||||
|
$description = str_replace("¶","",$description);
|
||||||
|
$date = $item->getLastModified();
|
||||||
|
$dateformat = ($date?$item->getLastModified()->format('d/m/Y H:i:s'):"");
|
||||||
|
$content = $item->getDescription();
|
||||||
|
$media = $item->getMedias();
|
||||||
|
$mediaurl = "";
|
||||||
|
|
||||||
|
foreach ($item->getMedias() as $itemMedia) {
|
||||||
|
if($itemMedia->getType()=="image/jpeg")
|
||||||
|
$mediaurl=$itemMedia->getUrl();
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($item->getAllElements() as $element) {
|
||||||
|
if($element->getName()=="content:encoded")
|
||||||
|
$content = $element->getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
if($mediaurl!="") {
|
||||||
|
$imgurl=$mediaurl;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Récupérer la première image du contenu
|
||||||
|
$imgcontent="";
|
||||||
|
$imgurl="";
|
||||||
|
$imgstart = stripos($content,"<img");
|
||||||
|
if($imgstart!== false) {
|
||||||
|
$imgend = stripos($content,">",$imgstart);
|
||||||
|
$imgcontent=substr($content,$imgstart,$imgend-$imgstart+1);
|
||||||
|
|
||||||
|
$imgstart = stripos($imgcontent,"src=");
|
||||||
|
$imgurl=substr($imgcontent,$imgstart+5);
|
||||||
|
$imgend = stripos($imgurl,'"');
|
||||||
|
|
||||||
|
if($imgend===false) $imgend = stripos($imgurl,"'");
|
||||||
|
$imgurl=substr($imgurl,0,$imgend);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Garder le flux
|
||||||
|
array_push($feeds,array(
|
||||||
|
"feedtitle" => $feedtitle,
|
||||||
|
"title" => $title,
|
||||||
|
"link" => $link,
|
||||||
|
"description" => $description,
|
||||||
|
"date" => $date,
|
||||||
|
"dateformat" => $dateformat,
|
||||||
|
"content" => $content,
|
||||||
|
"image" => $imgurl,
|
||||||
|
// "color" => $flux->getColor(),
|
||||||
|
"fluxid" => 0,
|
||||||
|
));
|
||||||
|
|
||||||
|
$nbflux++;
|
||||||
|
if($nbflux>=$nbarticle) break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$libelle=array();
|
||||||
|
foreach ($feeds as $key => $valeur) {
|
||||||
|
$libelle[$key] = $valeur["date"];
|
||||||
|
}
|
||||||
|
array_multisort($libelle, SORT_DESC, $feeds);
|
||||||
|
|
||||||
|
// On sauvegarde le résultat en fichier on rechargera son contenu que s'il n'a pas été lu depuis 30mn
|
||||||
|
$filesystem->dumpFile('uploads/flux/widget-'.$id.'.txt', serialize($feeds));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Render
|
||||||
|
return $this->render($this->labelentity.':viewflux.html.twig', [
|
||||||
|
'entity' => $entity,
|
||||||
|
'canupdate' => $canupdate,
|
||||||
|
//'fluxs' => $fluxsordered,
|
||||||
|
'access' => $access,
|
||||||
|
'feeds' => $feeds,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function viewbookmarkAction($id,$access="config") {
|
public function viewbookmarkAction($id,$access="config") {
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
$entity = $em->getRepository($this->labelentity)->find($id);
|
$entity = $em->getRepository($this->labelentity)->find($id);
|
||||||
|
|
|
@ -27,6 +27,12 @@ class Icon
|
||||||
*/
|
*/
|
||||||
private $label;
|
private $label;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\ManyToOne(targetEntity="Cadoles\CoreBundle\Entity\User", inversedBy="icons")
|
||||||
|
* @ORM\JoinColumn(nullable=true)
|
||||||
|
*/
|
||||||
|
private $user;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var ArrayCollection $items
|
* @var ArrayCollection $items
|
||||||
* @var Item
|
* @var Item
|
||||||
|
@ -61,6 +67,7 @@ class Icon
|
||||||
private $bookmarks;
|
private $bookmarks;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
|
@ -106,6 +113,30 @@ class Icon
|
||||||
return $this->label;
|
return $this->label;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set user
|
||||||
|
*
|
||||||
|
* @param \Cadoles\CoreBundle\Entity\User $user
|
||||||
|
*
|
||||||
|
* @return Icon
|
||||||
|
*/
|
||||||
|
public function setUser(\Cadoles\CoreBundle\Entity\User $user = null)
|
||||||
|
{
|
||||||
|
$this->user = $user;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get user
|
||||||
|
*
|
||||||
|
* @return \Cadoles\CoreBundle\Entity\User
|
||||||
|
*/
|
||||||
|
public function getUser()
|
||||||
|
{
|
||||||
|
return $this->user;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add item
|
* Add item
|
||||||
*
|
*
|
||||||
|
|
|
@ -2,25 +2,43 @@
|
||||||
#== ICON =================================================================================================================================================
|
#== ICON =================================================================================================================================================
|
||||||
cadoles_portal_config_icon:
|
cadoles_portal_config_icon:
|
||||||
path: /config/icon
|
path: /config/icon
|
||||||
defaults: { _controller: CadolesPortalBundle:Icon:list }
|
defaults: { _controller: CadolesPortalBundle:Icon:list, access: config }
|
||||||
|
|
||||||
cadoles_portal_config_icon_submit:
|
cadoles_portal_config_icon_submit:
|
||||||
path: /config/icon/submit
|
path: /config/icon/submit
|
||||||
defaults: { _controller: CadolesPortalBundle:Icon:submit }
|
defaults: { _controller: CadolesPortalBundle:Icon:submit, access: config }
|
||||||
|
|
||||||
cadoles_portal_config_icon_update:
|
cadoles_portal_config_icon_update:
|
||||||
path: /config/icon/update/{id}
|
path: /config/icon/update/{id}
|
||||||
defaults: { _controller: CadolesPortalBundle:Icon:update }
|
defaults: { _controller: CadolesPortalBundle:Icon:update, access: config }
|
||||||
|
|
||||||
cadoles_portal_config_icon_delete:
|
cadoles_portal_config_icon_delete:
|
||||||
path: /config/icon/delete/{id}
|
path: /config/icon/delete/{id}
|
||||||
defaults: { _controller: CadolesPortalBundle:Icon:delete }
|
defaults: { _controller: CadolesPortalBundle:Icon:delete, access: config }
|
||||||
|
|
||||||
cadoles_portal_config_icon_icon:
|
cadoles_portal_config_icon_icon:
|
||||||
path: /config/icon/icon
|
path: /config/icon/icon
|
||||||
defaults: { _controller: CadolesPortalBundle:Icon:icon }
|
defaults: { _controller: CadolesPortalBundle:Icon:icon, access: config }
|
||||||
|
|
||||||
|
cadoles_portal_user_icon:
|
||||||
|
path: /user/icon
|
||||||
|
defaults: { _controller: CadolesPortalBundle:Icon:list, access: user }
|
||||||
|
|
||||||
|
cadoles_portal_user_icon_submit:
|
||||||
|
path: /user/icon/submit
|
||||||
|
defaults: { _controller: CadolesPortalBundle:Icon:submit, access: user }
|
||||||
|
|
||||||
|
cadoles_portal_user_icon_update:
|
||||||
|
path: /user/icon/update/{id}
|
||||||
|
defaults: { _controller: CadolesPortalBundle:Icon:update, access: user }
|
||||||
|
|
||||||
|
cadoles_portal_user_icon_delete:
|
||||||
|
path: /user/icon/delete/{id}
|
||||||
|
defaults: { _controller: CadolesPortalBundle:Icon:delete, access: user }
|
||||||
|
|
||||||
|
cadoles_portal_user_icon_icon:
|
||||||
|
path: /user/icon/icon
|
||||||
|
defaults: { _controller: CadolesPortalBundle:Icon:icon, access: user }
|
||||||
|
|
||||||
|
|
||||||
#== ITEM =================================================================================================================================================
|
#== ITEM =================================================================================================================================================
|
||||||
|
@ -595,6 +613,10 @@ cadoles_portal_config_panelwidget_view_flux:
|
||||||
path: /config/pagewidget/view/flux/{id}
|
path: /config/pagewidget/view/flux/{id}
|
||||||
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewflux, access: config }
|
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewflux, access: config }
|
||||||
|
|
||||||
|
cadoles_portal_config_panelwidget_view_rss:
|
||||||
|
path: /config/pagewidget/view/rss/{id}
|
||||||
|
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewrss, access: config }
|
||||||
|
|
||||||
cadoles_portal_config_panelwidget_view_bookmark:
|
cadoles_portal_config_panelwidget_view_bookmark:
|
||||||
path: /pagewidget/view/bookmark/{id}
|
path: /pagewidget/view/bookmark/{id}
|
||||||
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewbookmark, access: config }
|
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewbookmark, access: config }
|
||||||
|
@ -677,6 +699,10 @@ cadoles_portal_user_panelwidget_view_flux:
|
||||||
path: /pagewidget/view/flux/{id}
|
path: /pagewidget/view/flux/{id}
|
||||||
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewflux, access: user }
|
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewflux, access: user }
|
||||||
|
|
||||||
|
cadoles_portal_user_panelwidget_view_rss:
|
||||||
|
path: /pagewidget/view/rss/{id}
|
||||||
|
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewrss, access: user }
|
||||||
|
|
||||||
cadoles_portal_user_panelwidget_view_bookmark:
|
cadoles_portal_user_panelwidget_view_bookmark:
|
||||||
path: /pagewidget/view/bookmark/{id}
|
path: /pagewidget/view/bookmark/{id}
|
||||||
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewbookmark, access: user }
|
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewbookmark, access: user }
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
{{ form_row(form.target) }}
|
{{ form_row(form.target) }}
|
||||||
{{ form_row(form.color) }}
|
{{ form_row(form.color) }}
|
||||||
|
|
||||||
<div id="diviconsel" class="col-md-12 text-left" style="height:140px; padding:20px; text-align:center; background-color: {{ entity.color ? entity.color : '#000000' }};">
|
<div id="diviconsel" class="col-md-12 text-left" style="height:140px; padding:20px; text-align:center; background-color: {{ entity.color ? "#"~entity.color : '#000000' }};">
|
||||||
{% if entity.icon %}
|
{% if entity.icon %}
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" height="100" />
|
<img src="/{{ alias }}/{{ entity.icon.label }}" height="100" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -85,11 +85,24 @@
|
||||||
<div class="form-group row clearfix">
|
<div class="form-group row clearfix">
|
||||||
<div class="col-md-12" style="margin-bottom:15px">
|
<div class="col-md-12" style="margin-bottom:15px">
|
||||||
<a onclick="$('#selicon').modal('hide');" class="btn btn-default">Annuler</a>
|
<a onclick="$('#selicon').modal('hide');" class="btn btn-default">Annuler</a>
|
||||||
|
{% if access=="user" %}
|
||||||
|
<a href="{{ path('cadoles_portal_user_icon') }}" target="_parent" class="btn btn-default">Gérer mes Icônes</a>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
|
{% if iconsuser is not empty %}
|
||||||
|
<h3>Mes Icônes</h3>
|
||||||
|
{% for icon in iconsuser %}
|
||||||
|
<a style="cursor:pointer" onClick="selIcon({{ icon.id }})">
|
||||||
|
<img id="icon-{{ icon.id }}" class="grid-item-img" height="40" src="/{{ alias }}/{{ icon.label }}" style="padding:2px">
|
||||||
|
</a>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<h3>Icônes Communs</h3>
|
||||||
|
{% endif %}
|
||||||
{% for icon in icons %}
|
{% for icon in icons %}
|
||||||
<a href="#" onClick="selIcon({{ icon.id }})">
|
<a style="cursor:pointer" onClick="selIcon({{ icon.id }})">
|
||||||
<img id="icon-{{ icon.id }}" class="grid-item-img" height="40" src="/{{ alias }}/{{ icon.label }}" style="padding:2px">
|
<img id="icon-{{ icon.id }}" class="grid-item-img" height="40" src="/{{ alias }}/{{ icon.label }}" style="padding:2px">
|
||||||
</a>
|
</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
@ -11,19 +11,18 @@
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
{{ form_widget(form.submit) }}
|
{{ form_widget(form.submit) }}
|
||||||
<a class="btn btn-default" href={{ path('cadoles_portal_config_icon') }}>Annuler</a>
|
<a class="btn btn-default" href={{ path('cadoles_portal_'~access~'_icon') }}>Annuler</a>
|
||||||
{% if mode=="update" %}
|
{% if mode=="update" %}
|
||||||
<a href={{ path('cadoles_portal_config_icon_delete',{'id':icon.id}) }}
|
<a href={{ path('cadoles_portal_'~access~'_icon_delete',{'id':icon.id}) }}
|
||||||
class="btn btn-danger pull-right"
|
class="btn btn-danger pull-right"
|
||||||
data-method="delete" data-csrf="_token:{{ 'csrf' }}"
|
data-method="delete" data-csrf="_token:{{ 'csrf' }}"
|
||||||
data-confirm="Êtes-vous sûr de vouloir supprimer cet icône ?">
|
data-confirm="Êtes-vous sûr de vouloir supprimer cet icône ?">
|
||||||
Supprimer
|
Supprimer
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
|
|
||||||
{% if app.session.flashbag.has('error') %}
|
{% if app.session.flashbag.has('error') %}
|
||||||
<div class='alert alert-danger' style='margin: 5px 0px'>
|
<div class='alert alert-danger' style='margin: 5px 0px'>
|
||||||
<strong>Erreur</strong><br>
|
<strong>Erreur</strong><br>
|
||||||
|
|
|
@ -3,11 +3,13 @@
|
||||||
{% block pagewrapper %}
|
{% block pagewrapper %}
|
||||||
<h1 class="page-header">Gestion des Icônes</h1>
|
<h1 class="page-header">Gestion des Icônes</h1>
|
||||||
|
|
||||||
<p><a class="btn btn-success" href={{ path('cadoles_portal_config_icon_submit') }}>Ajouter</a></p>
|
<p><a class="btn btn-success" href={{ path('cadoles_portal_'~access~'_icon_submit') }}>Ajouter</a></p>
|
||||||
|
|
||||||
{% for icon in icons %}
|
<div class="row">
|
||||||
<a href="{{ path('cadoles_portal_config_icon_update', {id : icon.id}) }}"><img class="icon" height="90" src="/{{ alias }}/{{ icon.label }}" style="padding:10px"></a>
|
{% for icon in icons %}
|
||||||
{% endfor %}
|
<a href="{{ path('cadoles_portal_'~access~'_icon_update', {id : icon.id}) }}"><img class="icon" height="90" src="/{{ alias }}/{{ icon.label }}" style="padding:10px"></a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -94,13 +94,24 @@
|
||||||
<div class="modal-body" style="height: 480px; overflow-y: scroll;">
|
<div class="modal-body" style="height: 480px; overflow-y: scroll;">
|
||||||
<div class="form-group row clearfix">
|
<div class="form-group row clearfix">
|
||||||
<div class="col-md-12" style="margin-bottom:15px">
|
<div class="col-md-12" style="margin-bottom:15px">
|
||||||
<a onclick="$('#selicon').modal('hide');" class="btn btn-info">
|
<a onclick="$('#selicon').modal('hide');" class="btn btn-default">Annuler</a>
|
||||||
<i class="fa fa-chevron-left"></i>
|
{% if access=="user" %}
|
||||||
Annuler
|
<a href="{{ path('cadoles_portal_user_icon') }}" target="_parent" class="btn btn-default">Gérer mes Icônes</a>
|
||||||
</a>
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
|
{% if iconsuser is not empty %}
|
||||||
|
<h3>Mes Icônes</h3>
|
||||||
|
{% for icon in iconsuser %}
|
||||||
|
<a style="cursor:pointer" onClick="selIcon({{ icon.id }})">
|
||||||
|
<img id="icon-{{ icon.id }}" class="grid-item-img" height="40" src="/{{ alias }}/{{ icon.label }}" style="padding:2px">
|
||||||
|
</a>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<h3>Icônes Communs</h3>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% for icon in icons %}
|
{% for icon in icons %}
|
||||||
<a href="#" onClick="selIcon({{ icon.id }})">
|
<a href="#" onClick="selIcon({{ icon.id }})">
|
||||||
<img id="icon-{{ icon.id }}" class="grid-item-img" height="40" src="/{{ alias }}/{{ icon.label }}" style="padding:2px">
|
<img id="icon-{{ icon.id }}" class="grid-item-img" height="40" src="/{{ alias }}/{{ icon.label }}" style="padding:2px">
|
||||||
|
|
|
@ -22,7 +22,11 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,11 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,11 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,11 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,11 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,11 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -27,31 +27,37 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% set firstflux="" %}
|
{% set firstflux="" %}
|
||||||
|
|
||||||
<div class="widgetbody" style="{{ stylewidgetbody }}">
|
<div class="widgetbody" style="{{ stylewidgetbody }}">
|
||||||
{% for flux in fluxs %}
|
{% if fluxs is defined %}
|
||||||
{% if loop.first %}
|
{% for flux in fluxs %}
|
||||||
{% set firstflux = flux.id %}
|
{% if loop.first %}
|
||||||
{% endif %}
|
{% set firstflux = flux.id %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% set stylefeed = "background-color: #" ~ color['main'] ~ ";" %}
|
{% set stylefeed = "background-color: #" ~ color['main'] ~ ";" %}
|
||||||
{% if flux.color is not null %}
|
{% if flux.color is not null %}
|
||||||
{% set stylefeed = "background-color: #" ~ flux.color ~ ";" %}
|
{% set stylefeed = "background-color: #" ~ flux.color ~ ";" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if fluxs|length > 1 %}
|
{% if fluxs|length > 1 %}
|
||||||
<div class="cat-list-feed" onClick="showFlux({{ entity.id}},{{ flux.id }})" style="{{ stylefeed }}">{{ flux.title }}</div>
|
<div class="cat-list-feed" onClick="showFlux({{ entity.id}},{{ flux.id }})" style="{{ stylefeed }}">{{ flux.title }}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% for feed in feeds %}
|
{% for feed in feeds %}
|
||||||
{% set stylefeed = "background-color: #" ~ color['main'] ~ ";" %}
|
{% set stylefeed = "background-color: #" ~ color['main'] ~ ";" %}
|
||||||
{% if feed.color is not null %}
|
{% if feed.color is defined and feed.color is not null %}
|
||||||
{% set stylefeed = "background-color: #" ~ feed.color ~ ";" %}
|
{% set stylefeed = "background-color: #" ~ feed.color ~ ";" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if feed.image is not null and feed.image != ""%}
|
{% if feed.image is not null and feed.image != ""%}
|
||||||
|
|
|
@ -37,7 +37,11 @@
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo" />
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,11 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,11 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,13 @@
|
||||||
{% else %}
|
{% else %}
|
||||||
<a style="{{ stylelink }}" href="{{ url }}" target="{{ target }}">
|
<a style="{{ stylelink }}" href="{{ url }}" target="{{ target }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" style="max-height: 100%; width: auto; display: block; margin: auto; padding-top: 10px;" />
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" style="max-height: 100%; width: auto; display: block; margin: auto; padding-top: 10px;" />
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" style="max-height: 100%; width: auto; display: block; margin: auto; padding-top: 10px;" />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
<div style="text-align: center;">{{ entity.name }}</div>
|
<div style="text-align: center;">{{ entity.name }}</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -28,7 +28,11 @@
|
||||||
|
|
||||||
<div class="widgetheader" style="{{ stylewidgetbodyimage }}">
|
<div class="widgetheader" style="{{ stylewidgetbodyimage }}">
|
||||||
{% if seeicon %}
|
{% if seeicon %}
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo" />
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if seetitle %}
|
{% if seetitle %}
|
||||||
|
|
|
@ -22,7 +22,11 @@
|
||||||
{% if imagemedia %}
|
{% if imagemedia %}
|
||||||
{% if entity.autoajust %}
|
{% if entity.autoajust %}
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
|
{% if entity.icon %}
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="widgetbody" style="{{ stylewidgetbodyframe }}">
|
<div class="widgetbody" style="{{ stylewidgetbodyframe }}">
|
||||||
|
@ -33,7 +37,11 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
<div class="widgetheader" style="{{ stylewidgetheader }}">
|
||||||
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo" />
|
{% if entity.icon %}
|
||||||
|
<img src="/{{ alias }}/{{ entity.icon.label }}" class="logo"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="/{{ alias }}/uploads/icon/icon_pin.png" class="logo"/>
|
||||||
|
{% endif %}
|
||||||
<span class="title">{{ entity.name }}</span>
|
<span class="title">{{ entity.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue