diff --git a/dicos/90_ninegate.xml b/dicos/90_ninegate.xml
index d7fcd47e..0cb1c37c 100644
--- a/dicos/90_ninegate.xml
+++ b/dicos/90_ninegate.xml
@@ -27,6 +27,8 @@
");
- fclose($myfile);
- */
- }
+ $token=$user["token"];
+ $url=$widlimesurvey_url."/".$survey_id;
+ if($token!="")
+ $url.="?token=".$token;
+
+ $string ='"'.$survey["sid"].'": {';
+ $string.='"title": "'.$survey["surveyls_title"].'",';
+ $string.='"url": "'.$url.'",';
+ $string.='"date": "'.$surveypropconf["datecreated"].'",';
+ $string.='"description": "'.$surveydescription.'"';
+ $string.='},';
+
+ $this->filesystem->appendToFile($this->rootfile.'-new/'.$entity->getId().'/invitation.json', $string."\n");
}
}
}
}
}
-
+
+ // Pour chaque user on remonte les sondages dont ils sont propriétaires
+ $userlimesurveys=$myJSONRPCClient->list_users($sessionKey);
+ foreach($userlimesurveys as $userlimesurvey) {
+ $user = $this->em->getRepository('CadolesCoreBundle:User')->findOneBy(["username"=>$userlimesurvey["users_name"]]);
+ if($user) {
+ $surveys = $myJSONRPCClient->list_surveys($sessionKey, $user->getUserName());
+ foreach($surveys as $survey) {
+ if(is_array($survey)) {
+
+ if($survey["active"]=="Y") {
+ $surveypropconf = $myJSONRPCClient->get_survey_properties($sessionKey,$survey["sid"],["datecreated"]);
+ $surveyproplang = $myJSONRPCClient->get_language_properties($sessionKey,$survey["sid"],["surveyls_welcometext"]);
+ $surveydescription = $surveyproplang["surveyls_welcometext"];
+ $surveydescription=str_replace("\r","",str_replace("\n","",$surveydescription));
+
+ $url=$widlimesurvey_url."/admin/survey/sa/view/surveyid/".$survey["sid"];
+
+ $string ='"'.$survey["sid"].'": {';
+ $string.='"title": "'.$survey["surveyls_title"].'",';
+ $string.='"url": "'.$url.'",';
+ $string.='"date": "'.$surveypropconf["datecreated"].'",';
+ $string.='"description": "'.$surveydescription.'"';
+ $string.='},';
+
+ $this->filesystem->appendToFile($this->rootfile.'-new/'.$user->getId().'/survey.json', $string."\n");
+ }
+ }
+ }
+ }
+ }
+
+ // On supprime les encours pour le remplacer le new
+ $fs->remove($this->rootfile);
+ $fs->rename($this->rootfile.'-new',$this->rootfile);
// release the session key
$myJSONRPCClient->release_session_key( $sessionKey );
+ // essai
+ /*
+ $essai=file_get_contents($this->rootfile.'/-100/survey.json');
+ $json = substr($essai, 0, -2); // sup dernier ,
+ $decodedArray = json_decode("{".$json."}", true);
+ dump($decodedArray);
+ */
+
$this->writeln('');
return 1;
}
diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php
index 19ff8598..c86eca72 100644
--- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php
+++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Command/InitDataCommand.php
@@ -15,6 +15,8 @@ use Doctrine\ORM\Id\AssignedGenerator;
use Cadoles\PortalBundle\Entity\Icon;
use Cadoles\PortalBundle\Entity\Pagecategory;
use Cadoles\PortalBundle\Entity\Widget;
+use Cadoles\PortalBundle\Entity\Appexternal;
+use Cadoles\PortalBundle\Entity\Flux;
class InitDataCommand extends ContainerAwareCommand
{
@@ -30,10 +32,37 @@ class InitDataCommand extends ContainerAwareCommand
protected function execute(InputInterface $input, OutputInterface $output)
{
$em = $this->getContainer()->get('doctrine')->getEntityManager();
-
+ $alias =$this->getContainer()->getParameter('alias');
+ $activate_widlimesurvey =$this->getContainer()->getParameter('activate_widlimesurvey');
$output->writeln('PORTAL = Default Data');
+ // afin de forcer les ID sur certaines entités
+ $metadata = $em->getClassMetaData('CadolesPortalBundle:Flux');
+ $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
+ $metadata->setIdGenerator(new AssignedGenerator());
+
+ $metadata = $em->getClassMetaData('CadolesPortalBundle:Pagecategory');
+ $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
+ $metadata->setIdGenerator(new AssignedGenerator());
+
+ $metadata = $em->getClassMetaData('CadolesPortalBundle:Widget');
+ $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
+ $metadata->setIdGenerator(new AssignedGenerator());
+
+ // Création appexternal
+ $entity = $em->getRepository('CadolesPortalBundle:Appexternal')->findoneby(["name"=>"Limesurvey"]);
+ if(!$entity&&$activate_widlimesurvey) {
+ $entity=new Appexternal;
+ $entity->setName("Limesurvey");
+ $em->persist($entity);
+ $em->flush();
+ }
+ elseif($entity&&!$activate_widlimesurvey) {
+ $em->remove($entity);
+ $em->flush();
+ }
+
// Creation des icons
$output->writeln(' > Creation Icons');
$finder = new Finder();
@@ -50,6 +79,27 @@ class InitDataCommand extends ContainerAwareCommand
}
$em->flush();
+ // Création des Flux
+ $entityFlux = $em->getRepository('CadolesPortalBundle:Flux')->find(-2000);
+ if(!$entityFlux&&($activate_widlimesurvey)) {
+ $entityFlux = new Flux();
+ $entityFlux->setRowOrder(0);
+ $entityFlux->setColor("328637");
+ }
+ elseif($entityFlux&&!($activate_widlimesurvey)) {
+ $em->remove($entityFlux);
+ $em->flush();
+ $entityWidget=null;
+ }
+ if($entityFlux) {
+ $entityFlux->setId(-2000);
+ $entityFlux->setTitle("Limesurvey");
+ $entityFlux->setUrl("/".$alias."/feed/limesurvey/##userid##");
+ $entityFlux->setMaxread(0);
+ $em->persist($entityFlux);
+ $em->flush();
+ }
+
// Creation des pagecategory
$output->writeln(' > Creation Pagecategory');
$entityPagecategory = $em->getRepository('CadolesPortalBundle:Pagecategory')->find(-100);
@@ -90,368 +140,327 @@ class InitDataCommand extends ContainerAwareCommand
$em->persist($entityPagecategory);
}
+
+
// Widget URL
$output->writeln(' > Creation Widget');
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-2000);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_ribbon.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_ribbon.png"]);
+ $entityWidget->setId(-2000);
+ $entityWidget->setRoworder(1);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('URL');
+ $entityWidget->setDescription("Affiche le contenu d'une url");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_url");
+ $entityWidget->setHeight("630");
+ $entityWidget->setAutoajust(false);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": [{"id": "url", "loc": "col1", "type": "string", "label": "URL", "value": "", "mandatory": "true"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-2000);
- $entityWidget->setRoworder(1);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('URL');
- $entityWidget->setDescription("Affiche le contenu d'une url");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_url");
- $entityWidget->setHeight("630");
- $entityWidget->setAutoajust(false);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": [{"id": "url", "loc": "col1", "type": "string", "label": "URL", "value": "", "mandatory": "true"}]}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
// Widget Bureau
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1990);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_computer.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_computer.png"]);
+ $entityWidget->setId(-1990);
+ $entityWidget->setRoworder(2);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Bureau');
+ $entityWidget->setDescription("Affiche vos items de bureau");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_item");
+ $entityWidget->setHeight("630");
+ $entityWidget->setAutoajust(true);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": [{"id": "modedesktop", "loc": "col1", "type": "desktopmode", "label": "Mode Affichage", "value": "0", "mandatory": "true"},{"id": "withbookmark", "loc": "col1", "type": "withbookmark", "label": "Avec Favoris", "value": "0", "mandatory": "true"},{"id": "itemcategory", "loc": "col1", "type": "itemcategory", "label": "Catégorie Affichée", "value": "", "mandatory": "false"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1990);
- $entityWidget->setRoworder(2);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Bureau');
- $entityWidget->setDescription("Affiche vos items de bureau");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_item");
- $entityWidget->setHeight("630");
- $entityWidget->setAutoajust(true);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": [{"id": "modedesktop", "loc": "col1", "type": "desktopmode", "label": "Mode Affichage", "value": "0", "mandatory": "true"},{"id": "withbookmark", "loc": "col1", "type": "withbookmark", "label": "Avec Favoris", "value": "0", "mandatory": "true"},{"id": "itemcategory", "loc": "col1", "type": "itemcategory", "label": "Catégorie Affichée", "value": "", "mandatory": "false"}]}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
// Widget Annonce
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1980);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_megaphone.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_megaphone.png"]);
+ $entityWidget->setId(-1980);
+ $entityWidget->setRoworder(3);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Annonces');
+ $entityWidget->setDescription("Affiche vos annonces");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_alert");
+ $entityWidget->setHeight("630");
+ $entityWidget->setAutoajust(true);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": [{"id": "alertcategory", "loc": "col1", "type": "alertcategory", "label": "Catégorie Affichée", "value": "", "mandatory": "false"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1980);
- $entityWidget->setRoworder(3);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Annonces');
- $entityWidget->setDescription("Affiche vos annonces");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_alert");
- $entityWidget->setHeight("630");
- $entityWidget->setAutoajust(true);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": [{"id": "alertcategory", "loc": "col1", "type": "alertcategory", "label": "Catégorie Affichée", "value": "", "mandatory": "false"}]}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
// Widget Flux
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1970);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_rss.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_rss.png"]);
+ $entityWidget->setId(-1970);
+ $entityWidget->setRoworder(4);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Flux');
+ $entityWidget->setDescription("Affiche vos flux RSS");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_flux");
+ $entityWidget->setHeight("630");
+ $entityWidget->setAutoajust(true);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": []}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1970);
- $entityWidget->setRoworder(4);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Flux');
- $entityWidget->setDescription("Affiche vos flux RSS");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_flux");
- $entityWidget->setHeight("630");
- $entityWidget->setAutoajust(true);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": []}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
// Widget Favoris
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1960);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_star.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_star.png"]);
+ $entityWidget->setId(-1960);
+ $entityWidget->setRoworder(5);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Favoris');
+ $entityWidget->setDescription("Création de Favoris");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_bookmark");
+ $entityWidget->setHeight("630");
+ $entityWidget->setAutoajust(true);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": [{"id": "modedesktop", "loc": "col1", "type": "desktopmode", "label": "Mode Affichage", "value": "0", "mandatory": "true"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1960);
- $entityWidget->setRoworder(5);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Favoris');
- $entityWidget->setDescription("Création de Favoris");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_bookmark");
- $entityWidget->setHeight("630");
- $entityWidget->setAutoajust(true);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": [{"id": "modedesktop", "loc": "col1", "type": "desktopmode", "label": "Mode Affichage", "value": "0", "mandatory": "true"}]}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
// Widget Liens
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1950);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_bolt.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_bolt.png"]);
+ $entityWidget->setId(-1950);
+ $entityWidget->setRoworder(6);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Lien');
+ $entityWidget->setDescription("Création d'un Lien");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_link");
+ $entityWidget->setHeight("200");
+ $entityWidget->setAutoajust(true);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": [{"id": "url", "loc": "col1", "type": "string", "label": "URL", "value": "", "mandatory": "true"},{"id": "target", "loc": "col1", "type": "target", "label": "Ouvrir le lien dans", "value": "0", "mandatory": "true"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1950);
- $entityWidget->setRoworder(6);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Lien');
- $entityWidget->setDescription("Création d'un Lien");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_link");
- $entityWidget->setHeight("200");
- $entityWidget->setAutoajust(true);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": [{"id": "url", "loc": "col1", "type": "string", "label": "URL", "value": "", "mandatory": "true"},{"id": "target", "loc": "col1", "type": "target", "label": "Ouvrir le lien dans", "value": "0", "mandatory": "true"}]}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
// Widget Editor
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1940);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_compose.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_compose.png"]);
+ $entityWidget->setId(-1940);
+ $entityWidget->setRoworder(7);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Editeur');
+ $entityWidget->setDescription("Votre propre texte à éditer");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_editor");
+ $entityWidget->setHeight("630");
+ $entityWidget->setAutoajust(true);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": [{"id": "html", "loc": "col5", "type": "ckeditor", "label": "Texte", "value": "", "mandatory": "false"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1940);
- $entityWidget->setRoworder(7);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Editeur');
- $entityWidget->setDescription("Votre propre texte à éditer");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_editor");
- $entityWidget->setHeight("630");
- $entityWidget->setAutoajust(true);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": [{"id": "html", "loc": "col5", "type": "ckeditor", "label": "Texte", "value": "", "mandatory": "false"}]}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
// Widget Carrousel
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1930);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_easel.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_easel.png"]);
+ $entityWidget->setId(-1930);
+ $entityWidget->setRoworder(8);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Carrousel');
+ $entityWidget->setDescription("Carrousel d'images");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_slide");
+ $entityWidget->setHeight("400");
+ $entityWidget->setAutoajust(false);
+ $entityWidget->setBorder(false);
+ $parameter = json_decode('{"fields": [{"id": "interval", "loc": "col1", "type": "integer", "label": "Interval en seconde entre 2 images", "value": "5", "mandatory": "false"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1930);
- $entityWidget->setRoworder(8);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Carrousel');
- $entityWidget->setDescription("Carrousel d'images");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_slide");
- $entityWidget->setHeight("400");
- $entityWidget->setAutoajust(false);
- $entityWidget->setBorder(false);
-
- $parameter = json_decode('{"fields": [{"id": "interval", "loc": "col1", "type": "integer", "label": "Interval en seconde entre 2 images", "value": "5", "mandatory": "false"}]}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
// Widget File
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1920);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_folder.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_folder.png"]);
+ $entityWidget->setId(-1920);
+ $entityWidget->setRoworder(9);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Fichiers');
+ $entityWidget->setDescription("Répertoire de fichiers");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_file");
+ $entityWidget->setHeight("630");
+ $entityWidget->setAutoajust(true);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": []}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1920);
- $entityWidget->setRoworder(9);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Fichiers');
- $entityWidget->setDescription("Répertoire de fichiers");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_file");
- $entityWidget->setHeight("630");
- $entityWidget->setAutoajust(true);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": []}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
// Widget Galery
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1910);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_image.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_image.png"]);
+ $entityWidget->setId(-1910);
+ $entityWidget->setRoworder(10);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Galerie');
+ $entityWidget->setDescription("Galerie d'images");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_galery");
+ $entityWidget->setHeight("630");
+ $entityWidget->setAutoajust(true);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": []}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1910);
- $entityWidget->setRoworder(10);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Galerie');
- $entityWidget->setDescription("Galerie d'images");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_galery");
- $entityWidget->setHeight("630");
- $entityWidget->setAutoajust(true);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": []}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
// Widget Calendrier
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1900);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_calendar.png"]);
-
- $entityWidget = new Widget();
- $entityWidget->setId(-1900);
- $entityWidget->setRoworder(11);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Calendrier');
- $entityWidget->setDescription("Calendrier d'évènements");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_calendar");
- $entityWidget->setHeight("630");
- $entityWidget->setAutoajust(true);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": [{"id": "nbday", "loc": "col1", "type": "integer", "label": "Nombre de jours affichés", "value": "15", "mandatory": "true"}]}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_calendar.png"]);
+ $entityWidget->setId(-1900);
+ $entityWidget->setRoworder(11);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Calendrier');
+ $entityWidget->setDescription("Calendrier d'évènements");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_calendar");
+ $entityWidget->setHeight("630");
+ $entityWidget->setAutoajust(true);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": [{"id": "nbday", "loc": "col1", "type": "integer", "label": "Nombre de jours affichés", "value": "15", "mandatory": "true"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
// Widget Blog
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1890);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_rocket.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_rocket.png"]);
+ $entityWidget->setId(-1890);
+ $entityWidget->setRoworder(12);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Blog');
+ $entityWidget->setDescription("Les derniers articles publiés sur vos blogs");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_blog");
+ $entityWidget->setHeight("630");
+ $entityWidget->setAutoajust(true);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": [{"id": "nbarticle", "loc": "col1", "type": "integer", "label": "Nombre d\'articles affichés", "value": "10", "mandatory": "true"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1890);
- $entityWidget->setRoworder(12);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Blog');
- $entityWidget->setDescription("Les derniers articles publiés sur vos blogs");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_blog");
- $entityWidget->setHeight("630");
- $entityWidget->setAutoajust(true);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": [{"id": "nbarticle", "loc": "col1", "type": "integer", "label": "Nombre d\'articles affichés", "value": "10", "mandatory": "true"}]}');
- $entityWidget->setParameter($parameter);
-
- $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"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_rss.png"]);
+ $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 (0 pour tout)", "value": "10", "mandatory": "true"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1880);
- $entityWidget->setRoworder(13);
+
+ // Widget Applications Externe
+ $entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1870);
+ if(!$entityWidget&&($activate_widlimesurvey)) $entityWidget = new Widget();
+ elseif($entityWidget&&!($activate_widlimesurvey)) {
+ $pagewidgets=$entityWidget->getPagewidgets();
+ foreach($pagewidgets as $pagewidget) {
+ $em->remove($pagewidget);
+ $em->flush();
+ }
+ $em->remove($entityWidget);
+ $em->flush();
+ $entityWidget=null;
+ }
+ if($entityWidget) {
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_frames.png"]);
+ $entityWidget->setId(-1870);
+ $entityWidget->setRoworder(14);
$entityWidget->setIcon($entityicon);
- $entityWidget->setName('RSS');
- $entityWidget->setDescription("Afficher un flux RSS spécifique");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_rss");
+ $entityWidget->setName('Applications Externe');
+ $entityWidget->setDescription("Afficher des informations provenant de vos applications");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_appexternal");
$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"}]}');
+ $parameter = json_decode('{"fields": [{"id": "modedesktop", "loc": "col1", "type": "desktopmode", "label": "Mode Affichage", "value": "0", "mandatory": "true"},{"id": "Applications", "loc": "col1", "type": "appexternal", "label": "Applications à affichier", "value": "", "mandatory": "false"}]}');
$entityWidget->setParameter($parameter);
-
$em->persist($entityWidget);
- }
+ }
// Widget Séparateur
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1600);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_roadblock.png"]);
-
- $entityWidget = new Widget();
- $entityWidget->setId(-1600);
- $entityWidget->setRoworder(100);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Séparateur');
- $entityWidget->setDescription("Widget graphique pour séparer les autres widgets");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_separator");
- $entityWidget->setHeight("50");
- $entityWidget->setAutoajust(false);
- $entityWidget->setBorder(false);
- $entityWidget->setColorbodyback("ffffff");
-
- $parameter = json_decode('{"fields": [{"id": "seetitle", "loc": "col1", "type": "boolean", "label": "Afficher le titre", "value": "0", "mandatory": "true"},{"id": "seeicon", "loc": "col1", "type": "boolean", "label": "Afficher l\'icone", "value": "0", "mandatory": "true"}]}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_roadblock.png"]);
+ $entityWidget->setId(-1600);
+ $entityWidget->setRoworder(100);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Séparateur');
+ $entityWidget->setDescription("Widget graphique pour séparer les autres widgets");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_separator");
+ $entityWidget->setHeight("50");
+ $entityWidget->setAutoajust(false);
+ $entityWidget->setBorder(false);
+ $entityWidget->setColorbodyback("ffffff");
+ $parameter = json_decode('{"fields": [{"id": "seetitle", "loc": "col1", "type": "boolean", "label": "Afficher le titre", "value": "0", "mandatory": "true"},{"id": "seeicon", "loc": "col1", "type": "boolean", "label": "Afficher l\'icone", "value": "0", "mandatory": "true"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
// Widget Horloge
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1500);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_clock.png"]);
-
- $entityWidget = new Widget();
- $entityWidget->setId(-1500);
- $entityWidget->setRoworder(100);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Horloge');
- $entityWidget->setDescription("Une simple horloge");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_clock");
- $entityWidget->setHeight("200");
- $entityWidget->setAutoajust(false);
- $entityWidget->setBorder(true);
-
- $parameter = json_decode('{"fields": [{"id": "clock", "loc": "col1", "type": "clock", "label": "Mode d\'affichage", "value": "0", "mandatory": "true"}]}');
- $entityWidget->setParameter($parameter);
-
- $em->persist($entityWidget);
- }
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_clock.png"]);
+ $entityWidget->setId(-1500);
+ $entityWidget->setRoworder(100);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Horloge');
+ $entityWidget->setDescription("Une simple horloge");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_clock");
+ $entityWidget->setHeight("200");
+ $entityWidget->setAutoajust(false);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": [{"id": "clock", "loc": "col1", "type": "clock", "label": "Mode d\'affichage", "value": "0", "mandatory": "true"}]}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
// Widget Calculatrice
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1490);
- if(!$entityWidget) {
- $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_calculator.png"]);
+ if(!$entityWidget) $entityWidget = new Widget();
+ $entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_calculator.png"]);
+ $entityWidget->setId(-1490);
+ $entityWidget->setRoworder(110);
+ $entityWidget->setIcon($entityicon);
+ $entityWidget->setName('Calculatrice');
+ $entityWidget->setDescription("Une simple calculatrice");
+ $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_calculator");
+ $entityWidget->setHeight("400");
+ $entityWidget->setAutoajust(false);
+ $entityWidget->setBorder(true);
+ $parameter = json_decode('{"fields": []}');
+ $entityWidget->setParameter($parameter);
+ $em->persist($entityWidget);
- $entityWidget = new Widget();
- $entityWidget->setId(-1490);
- $entityWidget->setRoworder(110);
- $entityWidget->setIcon($entityicon);
- $entityWidget->setName('Calculatrice');
- $entityWidget->setDescription("Une simple calculatrice");
- $entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_calculator");
- $entityWidget->setHeight("400");
- $entityWidget->setAutoajust(false);
- $entityWidget->setBorder(true);
- $parameter = json_decode('{"fields": []}');
- $entityWidget->setParameter($parameter);
- $em->persist($entityWidget);
- }
- // afin de forcer les ID sur certaines entités
- $metadata = $em->getClassMetaData(get_class($entityWidget));
- $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
- $metadata->setIdGenerator(new AssignedGenerator());
-
- $metadata = $em->getClassMetaData(get_class($entityPagecategory));
- $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
- $metadata->setIdGenerator(new AssignedGenerator());
$em->flush();
$output->writeln('');
diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/FeedController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/FeedController.php
new file mode 100755
index 00000000..6415736b
--- /dev/null
+++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/FeedController.php
@@ -0,0 +1,291 @@
+get('kernel')->getRootDir()."/../uploads/limesurvey/".$id;
+ $feeds=[];
+ $fs = new Filesystem();
+
+ $file=file_get_contents($directory."/invitation.json");
+ $json = substr($file, 0, -2); // sup dernier ,
+ $surveys = json_decode("{".$json."}", true);
+ foreach($surveys as $id => $survey) {
+ array_push($feeds,[
+ "id"=>$id,
+ "title"=>$survey["title"],
+ "url"=>$survey["url"],
+ "date"=>$survey["date"],
+ "description"=>$survey["description"],
+ "category"=>"limesurvey"]);
+ }
+
+ $response = new Response($this->renderView('CadolesPortalBundle:Feed:index.xml.twig',array(
+ "feeds" => $feeds,
+ )));
+
+ $response->headers->set('Content-Type', 'application/xml; charset=utf-8');
+ return $response;
+ }
+
+ public function userAction($login,$nb)
+ {
+
+ $session = new Session();
+ $illustrations=$this->getIllustrations($login,$nb);
+ $webzines=$this->getWebzines($login,$nb);
+
+ $feeds=array_merge($illustrations,$webzines);
+
+ $indice=array();
+ foreach ($feeds as $key => $rowd) {
+ $indice[$key] = $rowd["feed_timestamp"];
+ }
+ array_multisort($indice, SORT_DESC, $feeds);
+ $feeds = array_slice($feeds, 0, $nb);
+
+ $response = new Response($this->renderView('MyAppWebzineBundle:Feed:home.xml.twig',array(
+ "feeds" => $feeds,
+ )));
+
+ $response->headers->set('Content-Type', 'application/xml; charset=utf-8');
+ return $response;
+ }
+
+ public function illustrationAction($nb)
+ {
+
+ $session = new Session();
+ $illustrations=$this->getIllustrations("all",$nb);
+ $feeds=$illustrations;
+
+ $response = new Response($this->renderView('MyAppWebzineBundle:Feed:home.xml.twig',array(
+ "feeds" => $feeds,
+ )));
+
+ $response->headers->set('Content-Type', 'application/xml; charset=utf-8');
+ return $response;
+ }
+
+ public function webzineAction($nb)
+ {
+
+ $session = new Session();
+ $webzines=$this->getWebzines("all",$nb);
+ $feeds=$webzines;
+
+ $response = new Response($this->renderView('MyAppWebzineBundle:Feed:home.xml.twig',array(
+ "feeds" => $feeds,
+ )));
+
+ $response->headers->set('Content-Type', 'application/xml; charset=utf-8');
+ return $response;
+ }
+
+ public function albumAction($nb)
+ {
+
+ $session = new Session();
+ $albums=$this->getAlbums("all",$nb);
+ $feeds=$albums;
+
+ $response = new Response($this->renderView('MyAppWebzineBundle:Feed:home.xml.twig',array(
+ "feeds" => $feeds,
+ )));
+
+ $response->headers->set('Content-Type', 'application/xml; charset=utf-8');
+ return $response;
+ }
+
+ public function kadavreskyAction($nb)
+ {
+
+ $session = new Session();
+ $kadavreskys=$this->getKadavreskys("all",$nb);
+ $feeds=$kadavreskys;
+
+ $response = new Response($this->renderView('MyAppWebzineBundle:Feed:home.xml.twig',array(
+ "feeds" => $feeds,
+ )));
+
+ $response->headers->set('Content-Type', 'application/xml; charset=utf-8');
+ return $response;
+ }
+
+ protected function getIllustrations($login,$nbmax)
+ {
+ $em = $this->getDoctrine()->getManager();
+ if($login=="all") {
+ $datas = $em->createQueryBuilder()
+ ->select('feed','user')
+ ->from("MyAppWebzineBundle:Illustration", 'feed')
+ ->from("MyAppConfigBundle:User", 'user')
+ ->where("feed.user=user.id")
+ ->orderBY('feed.id','DESC')
+ ->setMaxResults($nbmax)
+ ->getQuery()
+ ->getResult(\Doctrine\ORM\Query::HYDRATE_SCALAR);
+ }
+ else {
+ $datas = $em->createQueryBuilder()
+ ->select('feed','user')
+ ->from("MyAppWebzineBundle:Illustration", 'feed')
+ ->from("MyAppConfigBundle:User", 'user')
+ ->where("feed.user=user.id")
+ ->andWhere("user.username=:login")
+ ->orderBY('feed.id','DESC')
+ ->setMaxResults($nbmax)
+ ->setParameter("login", $login)
+ ->getQuery()
+ ->getResult(\Doctrine\ORM\Query::HYDRATE_SCALAR);
+ }
+
+ foreach($datas as $key=>$feed)
+ {
+ $datas[$key]["feed_type"]="illustration";
+ $datas[$key]["feed_url"]=$datas[$key]["feed_illustration"];
+ $datas[$key]["feed_timestamp"]=$datas[$key]["feed_submittime"]->getTimestamp();
+ }
+
+ return $datas;
+ }
+
+ protected function getWebzines($login,$nbmax)
+ {
+ $em = $this->getDoctrine()->getManager();
+
+ if($login=="all") {
+ $datas = $em->createQueryBuilder()
+ ->select('feed','user')
+ ->from("MyAppWebzineBundle:Webzine", 'feed')
+ ->from("MyAppConfigBundle:User", 'user')
+ ->where("feed.user=user.id")
+ ->orderBY('feed.updatetime','DESC')
+ ->setMaxResults($nbmax)
+ ->getQuery()
+ ->getResult(\Doctrine\ORM\Query::HYDRATE_SCALAR);
+ }
+ else {
+ $datas = $em->createQueryBuilder()
+ ->select('feed','user')
+ ->from("MyAppWebzineBundle:Webzine", 'feed')
+ ->from("MyAppConfigBundle:User", 'user')
+ ->where("feed.user=user.id")
+ ->andWhere("user.username=:login")
+ ->orderBY('feed.updatetime','DESC')
+ ->setMaxResults($nbmax)
+ ->setParameter("login", $login)
+ ->getQuery()
+ ->getResult(\Doctrine\ORM\Query::HYDRATE_SCALAR);
+ }
+
+ foreach($datas as $key=>$feed)
+ {
+ $datas[$key]["feed_type"]="webzine";
+ $datas[$key]["feed_submittime"]=$datas[$key]["feed_updatetime"];
+ $pages=$this->getPage($feed["feed_id"],$feed["feed_updatetime"]);
+ $datas[$key]["feed_url"]=$pages[0]["page_page"];
+ $datas[$key]["feed_id2"]=$pages[0]["page_id"];
+ $datas[$key]["feed_timestamp"]=$datas[$key]["feed_submittime"]->getTimestamp();
+ }
+
+ return $datas;
+ }
+
+ protected function getPage($idwebzine,$updatetime)
+ {
+ $em = $this->getDoctrine()->getManager();
+ $datas = $em->createQueryBuilder()
+ ->select('page')
+ ->from("MyAppWebzineBundle:Page", 'page')
+ ->where("page.webzine=:idwebzine")
+ ->andWhere("page.submittime=:submittime")
+ ->orderBY('page.roworder','ASC')
+ ->setMaxResults(1)
+ ->setParameter("idwebzine", $idwebzine)
+ ->setParameter("submittime", $updatetime)
+ ->getQuery()
+ ->getResult(\Doctrine\ORM\Query::HYDRATE_SCALAR);
+ //->getResult();
+
+ return $datas;
+ }
+
+ protected function getAlbums($login,$nbmax)
+ {
+ $em = $this->getDoctrine()->getManager();
+ $datas = $em->createQueryBuilder()
+ ->select('feed','user')
+ ->from("MyAppWebzineBundle:Album", 'feed')
+ ->from("MyAppConfigBundle:User", 'user')
+ ->where("feed.user=user.id")
+ ->orderBY('feed.updatetime','DESC')
+ ->setMaxResults($nbmax)
+ ->getQuery()
+ ->getResult(\Doctrine\ORM\Query::HYDRATE_SCALAR);
+ //->getResult();
+
+ foreach($datas as $key=>$feed)
+ {
+ $datas[$key]["feed_type"]="album";
+ $datas[$key]["feed_submittime"]=$datas[$key]["feed_updatetime"];
+ $photos=$this->getPhoto($feed["feed_id"],$feed["feed_updatetime"]);
+ $datas[$key]["feed_url"]=$photos[0]["photo_photo"];
+ $datas[$key]["feed_id2"]=$photos[0]["photo_id"];
+ $datas[$key]["feed_timestamp"]=$datas[$key]["feed_submittime"]->getTimestamp();
+ }
+
+ return $datas;
+ }
+
+ protected function getPhoto($idalbum,$updatetime)
+ {
+ $em = $this->getDoctrine()->getManager();
+ $datas = $em->createQueryBuilder()
+ ->select('photo')
+ ->from("MyAppWebzineBundle:Photo", 'photo')
+ ->where("photo.album=:idalbum")
+ ->andWhere("photo.submittime=:submittime")
+ ->orderBY('photo.roworder','ASC')
+ ->setMaxResults(1)
+ ->setParameter("idalbum", $idalbum)
+ ->setParameter("submittime", $updatetime)
+ ->getQuery()
+ ->getResult(\Doctrine\ORM\Query::HYDRATE_SCALAR);
+ //->getResult();
+
+ return $datas;
+ }
+
+ protected function getKadavreskys($login,$nbmax)
+ {
+ $em = $this->getDoctrine()->getManager();
+ $datas = $em->createQueryBuilder()
+ ->select('feed')
+ ->from("MyAppWebzineBundle:Kadavresky", 'feed')
+ ->orderBY('feed.submittime','DESC')
+ ->setMaxResults($nbmax)
+ ->getQuery()
+ ->getResult(\Doctrine\ORM\Query::HYDRATE_SCALAR);
+ //->getResult();
+
+ foreach($datas as $key=>$feed)
+ {
+ $datas[$key]["feed_type"]="kadavresky";
+ $datas[$key]["feed_url"]=$datas[$key]["feed_kadavresky"];
+ $datas[$key]["feed_timestamp"]=$datas[$key]["feed_submittime"]->getTimestamp();
+ }
+
+ return $datas;
+ }
+}
diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php
index e00cac07..503dae12 100644
--- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php
+++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Controller/PagewidgetController.php
@@ -12,6 +12,7 @@ use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Finder\Finder;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\File\File;
+use GuzzleHttp\Exception\RequestException;
use Cadoles\PortalBundle\Entity\Pagewidget;
use Cadoles\PortalBundle\Form\PagewidgetType;
@@ -645,32 +646,27 @@ class PagewidgetController extends Controller
return (int) $first->getRowOrder() > (int) $second->getRowOrder() ? 1 : -1;
});
-
- // 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();
$filesystem = new Filesystem();
foreach($fluxsordered as $flux) {
// On regarde si le flux a été lu il y a peu
$toregen=true;
-
- if($filesystem->exists('uploads/flux/flux-'.$flux->getId().'.txt')) {
+ $url=$flux->getUrl();
+
+ // Feed lié à un user interne
+ $filecache='uploads/flux/flux-'.$flux->getId().'.txt';
+ if(stripos($url,"##userid##")!==false) {
+ if($user) {
+ $url=str_replace("##userid##",$user->getId(),$url);
+ $filecache=$filecache='uploads/flux/flux-'.$user->getId()."-".$flux->getId().'.txt';
+ }
+ }
+
+ // Si le fichie cache existe
+ if($filesystem->exists($filecache)) {
// On récupère la date de modification du fichier
- $timestampfile = filemtime('uploads/flux/flux-'.$flux->getId().'.txt');
+ $timestampfile = filemtime($filecache);
$datetimeFormat = 'Y-m-d H:i:s';
$datefile = new \DateTime();
$datefile->setTimestamp($timestampfile);
@@ -682,15 +678,45 @@ class PagewidgetController extends Controller
$now = new \DateTime();
if($datefile>=$now) {
$toregen=false;
- $backup = unserialize(file_get_contents('uploads/flux/flux-'.$flux->getId().'.txt'));
+ $backup = unserialize(file_get_contents($filecache));
$feeds=array_merge($feeds,$backup);
}
}
// Si le fichier est trop ancien on relit le flus
if($toregen) {
+ $PROXYactivate = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYactivate")->getValue();
+ $weburl=$this->getParameter('weburl');
+
+ if(stripos($url,"/")==0) {
+ $url="https://".$weburl.$url;
+ $PROXYactivate=false;
+ }
+ if(stripos($url,"https://".$weburl)===0) $PROXYactivate=false;
+ if(stripos($url,"http://".$weburl)===0) $PROXYactivate=false;
+
+ if($PROXYactivate) {
+ $PROXYserver = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYserver")->getValue();
+ $PROXYport = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYport")->getValue();
+ $clientguzzle = new \GuzzleHttp\Client(array('timeout' => 3,'proxy' => ['http' => 'tcp://'.$PROXYserver.':'.$PROXYport,'https' => 'tcp://'.$PROXYserver.':'.$PROXYport]));
+ }
+ else
+ $clientguzzle = new \GuzzleHttp\Client(array('timeout' => 3));
+
+ try {
+ $clientguzzle->request('GET', $url);
+ } catch (RequestException $e) {
+ if ($e->hasResponse()) {
+ continue;
+ }
+ }
+
// On lit le flux rss
- $result = $feedIo->read($flux->getUrl());
+ $client = new \FeedIo\Adapter\Guzzle\Client($clientguzzle);
+ $logger = new \Psr\Log\NullLogger();
+ $feedIo = new \FeedIo\FeedIo($client, $logger);
+
+ $result = $feedIo->read($url);
$feedtitle = $result->getFeed()->getTitle();
@@ -760,11 +786,11 @@ class PagewidgetController extends Controller
array_push($backup,$tmp);
$nbflux++;
- if($nbflux>=$flux->getMaxread()) break;
+ if($nbflux>=$flux->getMaxread()&&$flux->getMaxread()>0) 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));
+ $filesystem->dumpFile($filecache, serialize($backup));
}
}
@@ -817,11 +843,19 @@ class PagewidgetController extends Controller
// On regarde si le flux a été lu il y a peu
$toregen=true;
+ $filecache=$filecache='uploads/flux/widget-'.$id.'.txt';
+ $user=$this->getUser();
+ if(stripos($url,"##userid##")!==false) {
+ if($user) {
+ $url=str_replace("##userid##",$user->getId(),$url);
+ $filecache=$filecache='uploads/flux/widget-'.$user->getId()."-".$id.'.txt';
+ }
+ }
$filesystem = new Filesystem();
- if($filesystem->exists('uploads/flux/widget-'.$id.'.txt')) {
+ if($filesystem->exists($filecache)) {
// On récupère la date de modification du fichier
- $timestampfile = filemtime('uploads/flux/widget-'.$id.'.txt');
+ $timestampfile = filemtime($filecache);
$datetimeFormat = 'Y-m-d H:i:s';
$datefile = new \DateTime();
$datefile->setTimestamp($timestampfile);
@@ -833,7 +867,7 @@ class PagewidgetController extends Controller
$now = new \DateTime();
if($datefile>=$now) {
$toregen=false;
- $feeds = unserialize(file_get_contents('uploads/flux/widget-'.$id.'.txt'));
+ $feeds = unserialize(file_get_contents($filecache));
}
}
@@ -841,14 +875,36 @@ class PagewidgetController extends Controller
if($toregen) {
// Connexion au client
$PROXYactivate = $em->getRepository("CadolesCoreBundle:Config")->find("PROXYactivate")->getValue();
-
+ $weburl=$this->getParameter('weburl');
+ if(stripos($url,"/")==0) {
+ $url="https://".$weburl.$url;
+ $PROXYactivate=false;
+ }
+ if(stripos($url,"https://".$weburl)===0) $PROXYactivate=false;
+ if(stripos($url,"http://".$weburl)===0) $PROXYactivate=false;
+
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]));
+ $clientguzzle = new \GuzzleHttp\Client(array('timeout' => 3,'proxy' => ['http' => 'tcp://'.$PROXYserver.':'.$PROXYport,'https' => 'tcp://'.$PROXYserver.':'.$PROXYport]));
}
else
- $clientguzzle = new \GuzzleHttp\Client();
+ $clientguzzle = new \GuzzleHttp\Client(array('timeout' => 3));
+
+ try {
+ $clientguzzle->request('GET', $url);
+ } catch (RequestException $e) {
+ if ($e->hasResponse()) {
+ // Render
+ $feeds=[];
+ return $this->render($this->labelentity.':viewflux.html.twig', [
+ 'entity' => $entity,
+ 'canupdate' => $canupdate,
+ 'access' => $access,
+ 'feeds' => $feeds,
+ ]);
+ }
+ }
$client = new \FeedIo\Adapter\Guzzle\Client($clientguzzle);
$logger = new \Psr\Log\NullLogger();
@@ -856,12 +912,11 @@ class PagewidgetController extends Controller
$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) {
@@ -905,7 +960,7 @@ class PagewidgetController extends Controller
$imgurl=substr($imgurl,0,$imgend);
}
}
-
+
// Garder le flux
array_push($feeds,array(
"feedtitle" => $feedtitle,
@@ -921,7 +976,7 @@ class PagewidgetController extends Controller
));
$nbflux++;
- if($nbflux>=$nbarticle) break;
+ if($nbflux>=$nbarticle&&$nbarticle>0) break;
}
@@ -932,7 +987,7 @@ class PagewidgetController extends Controller
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));
+ $filesystem->dumpFile($filecache, serialize($feeds));
}
// Render
@@ -1429,4 +1484,74 @@ class PagewidgetController extends Controller
'access' => $access,
]);
}
+
+ public function viewappexternalAction($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
+ $idappexternal=null;
+ foreach($entity->getParameter()["fields"] as $parameter) {
+ switch($parameter["id"]) {
+ case "appexternal":
+ $idappexternal=$parameter["value"];
+ break;
+ case "modedesktop":
+ $modedesktop=$parameter["value"];
+ break;
+ }
+ }
+
+ $user=$this->getUser();
+ $items=[];
+ $itemcategorys=[];
+ if($user) {
+ if($idappexternal) $appextenals=$em->getRepository("CadolesPortalBundle:Appexternal")->findBy(["id"=>$idappexternal]);
+ else $appextenals=$em->getRepository("CadolesPortalBundle:Appexternal")->findAll();
+ foreach($appextenals as $appexternal) {
+ switch($appexternal->getName()) {
+ case "Limesurvey":
+ $category=["id"=>0,"label"=>"Limesurvey"];
+ array_push($itemcategorys,$category);
+
+ $directory=$this->get('kernel')->getRootDir()."/../uploads/limesurvey/".$user->getId();
+ $files=[];
+ $fs = new Filesystem();
+
+ $file=file_get_contents($directory."/survey.json");
+ $json = substr($file, 0, -2); // sup dernier ,
+ $surveys = json_decode("{".$json."}", true);
+ foreach($surveys as $id => $survey) {
+ array_push($items,["id"=>$id,"title"=>$survey["title"],"subtitle"=>"Sondage","url"=>$survey["url"],"itemcategory"=>$category,"color"=>"328637","icon"=>"icon_limesurvey.png"]);
+ }
+
+ break;
+ }
+ }
+ }
+
+ // Render
+ return $this->render($this->labelentity.':viewappexternal.html.twig', [
+ 'entity' => $entity,
+ 'canadd' => ($user),
+ 'canupdate' => $canupdate,
+ 'modedesktop' => $modedesktop,
+ 'items' => $items,
+ 'itemcategorys' => $itemcategorys,
+ 'access' => $access,
+ ]);
+ }
+
}
diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Appexternal.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Appexternal.php
new file mode 100644
index 00000000..27265b70
--- /dev/null
+++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Appexternal.php
@@ -0,0 +1,71 @@
+id;
+ }
+
+ /**
+ * Set name
+ *
+ * @param string $name
+ *
+ * @return Appexternal
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+
+ return $this;
+ }
+
+ /**
+ * Get name
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+}
diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Flux.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Flux.php
index 8498a10a..199e1cf9 100644
--- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Flux.php
+++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Entity/Flux.php
@@ -75,6 +75,13 @@ class Flux
*/
protected $groups;
+
+ // A garder pour forcer l'id en init
+ public function setId($id)
+ {
+ $this->id = $id;
+ return $this;
+ }
/**
diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/FluxType.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/FluxType.php
index 231e4cf2..ca05184a 100644
--- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/FluxType.php
+++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/FluxType.php
@@ -34,7 +34,7 @@ class FluxType extends AbstractType
])
->add('maxread', IntegerType::class, [
- 'label' => "Nombre d'Articles affiché"
+ 'label' => "Nombre d'Articles affiché (0 pour tout)"
])
->add('color', TextType::class, [
diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PagewidgetType.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PagewidgetType.php
index 64a9ed3d..a4992f25 100644
--- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PagewidgetType.php
+++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Form/PagewidgetType.php
@@ -170,6 +170,26 @@ class PagewidgetType extends AbstractType
]) ;
}
+ elseif($field->type=="appexternal") {
+ $id = $field->value;
+ $appexternals= $this->container->get('doctrine.orm.entity_manager')->getRepository("CadolesPortalBundle:Appexternal")->findAll();
+ $choices=array();
+ foreach($appexternals as $appexternal) {
+ $choices[$appexternal->getName()]=$appexternal->getId();
+ }
+
+ $builder
+ ->add($field->id, ChoiceType::class, [
+ 'label' => $field->label,
+ 'mapped'=> false,
+ 'label_attr' => ['loc' => $field->loc],
+ 'data' => $id,
+ 'required' => ($field->mandatory=="true"),
+ 'choices' => $choices,
+ 'placeholder' => '-- Sélectionnez une application --',
+ ]) ;
+ }
+
elseif($field->type=="target") {
$builder
->add($field->id, ChoiceType::class, [
diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/config/routing.yml b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/config/routing.yml
index 40469018..963d49ce 100644
--- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/config/routing.yml
+++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/config/routing.yml
@@ -556,6 +556,14 @@ cadoles_portal_user_calendarevent_share:
+#== FEED =================================================================================================================================================
+
+cadoles_portal_user_feed_limesurvey:
+ path: /feed/limesurvey/{id}
+ defaults: { _controller: CadolesPortalBundle:Feed:limesurvey }
+
+
+
#== TOOL =================================================================================================================================================
@@ -661,6 +669,9 @@ cadoles_portal_config_panelwidget_view_calculator:
path: config/pagewidget/view/calculator/{id}
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewcalculator, access: config }
+cadoles_portal_config_panelwidget_view_appexternal:
+ path: config/pagewidget/view/appexternal/{id}
+ defaults: { _controller: CadolesPortalBundle:Pagewidget:viewappexternal, access: config }
#-- Access user
cadoles_portal_user_pagewidget_widget_sumbit:
@@ -746,3 +757,7 @@ cadoles_portal_user_panelwidget_view_clock:
cadoles_portal_user_panelwidget_view_calculator:
path: /pagewidget/view/calculator/{id}
defaults: { _controller: CadolesPortalBundle:Pagewidget:viewcalculator, access: user }
+
+cadoles_portal_user_panelwidget_view_appexternal:
+ path: /pagewidget/view/appexternal/{id}
+ defaults: { _controller: CadolesPortalBundle:Pagewidget:viewappexternal, access: user }
diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Feed/index.xml.twig b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Feed/index.xml.twig
new file mode 100755
index 00000000..7f2acd37
--- /dev/null
+++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Resources/views/Feed/index.xml.twig
@@ -0,0 +1,37 @@
+{% autoescape %}
+{% set sessionconfigs = app.session.get('configs') %}
+
+