limesurvey
This commit is contained in:
parent
baac78e631
commit
eee28b7c2c
|
@ -8,7 +8,7 @@ twig:
|
||||||
|
|
||||||
cron_activate: %cron_activate%
|
cron_activate: %cron_activate%
|
||||||
portal_activate: %portal_activate%
|
portal_activate: %portal_activate%
|
||||||
portal_item_activate: %portal_item_activate%
|
item_activate: %item_activate%
|
||||||
|
|
||||||
eportail_sync: %eportail_sync%
|
eportail_sync: %eportail_sync%
|
||||||
moderegistration: %moderegistration%
|
moderegistration: %moderegistration%
|
||||||
|
|
|
@ -5,10 +5,11 @@ SET foreign_key_checks = 0;
|
||||||
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
|
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
|
||||||
|
|
||||||
INSERT IGNORE INTO `niveau01` (`id`, `label`, `siren`) VALUES
|
INSERT IGNORE INTO `niveau01` (`id`, `label`, `siren`) VALUES
|
||||||
(-100, 'transnum', '0000000A');
|
(-100, 'DRAAF', '130007107');
|
||||||
|
|
||||||
INSERT IGNORE INTO `user` (`id`, `niveau01_id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`,`siren`,`authlevel`) VALUES
|
INSERT IGNORE INTO `user` (`id`, `niveau01_id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`,`siren`,`authlevel`) VALUES
|
||||||
(-100, -100, 'admin', 'Administrateur', 'transnum', 'PWD_CAS', 'admin@transnum.cadol.es', 'admin.jpg', 'ROLE_ADMIN', '0000000A', 'simple');
|
(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}fb3ceUoJ3JONkQV2fav0CuKOAZb9h9vO
|
||||||
|
', 'admin@transnum.cadol.es', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -60,8 +60,17 @@
|
||||||
else $roles=$curentuser->getRoles();
|
else $roles=$curentuser->getRoles();
|
||||||
|
|
||||||
// App activate
|
// App activate
|
||||||
$portal_activate =$this->container->getParameter('portal_activate');
|
$app=[];
|
||||||
$cron_activate =$this->container->getParameter('cron_activate');
|
$app["portal_activate"] =$this->container->getParameter('portal_activate');
|
||||||
|
$app["cron_activate"] =$this->container->getParameter('cron_activate');
|
||||||
|
$app["module_activate"] =$this->container->getParameter('module_activate');
|
||||||
|
$app["page_activate"] =$this->container->getParameter('page_activate');
|
||||||
|
$app["item_activate"] =$this->container->getParameter('item_activate');
|
||||||
|
$app["alert_activate"] =$this->container->getParameter('alert_activate');
|
||||||
|
$app["calendar_activate"] =$this->container->getParameter('calendar_activate');
|
||||||
|
$app["blog_activate"] =$this->container->getParameter('blog_activate');
|
||||||
|
$app["flux_activate"] =$this->container->getParameter('flux_activate');
|
||||||
|
$app["notice_activate"] =$this->container->getParameter('notice_activate');
|
||||||
|
|
||||||
// Masteridentity
|
// Masteridentity
|
||||||
$masteridentity =$this->container->getParameter('masteridentity');
|
$masteridentity =$this->container->getParameter('masteridentity');
|
||||||
|
@ -97,12 +106,7 @@
|
||||||
"path" => $nv1->getPath(),
|
"path" => $nv1->getPath(),
|
||||||
);
|
);
|
||||||
|
|
||||||
if($nv1->getAppactivate()=="portal_activate"&&!$portal_activate) {
|
if($nv1->getAppactivate()!=""&&!$app[$nv1->getAppactivate()]) {
|
||||||
unset($sidebar[$nv1->getRoworder()]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($nv1->getAppactivate()=="cron_activate"&&!$cron_activate) {
|
|
||||||
unset($sidebar[$nv1->getRoworder()]);
|
unset($sidebar[$nv1->getRoworder()]);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -136,6 +140,8 @@
|
||||||
$sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]["label"]=$labelsniveau01;
|
$sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]["label"]=$labelsniveau01;
|
||||||
$sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]["fonticon"]=$iconniveau01;
|
$sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]["fonticon"]=$iconniveau01;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if($nv2->getPath()=="cadoles_core_config_niveau02") {
|
if($nv2->getPath()=="cadoles_core_config_niveau02") {
|
||||||
if(!$viewniveau02)
|
if(!$viewniveau02)
|
||||||
unset($sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]);
|
unset($sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]);
|
||||||
|
@ -153,6 +159,10 @@
|
||||||
unset($sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]);
|
unset($sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($nv2->getAppactivate()!=""&&!$app[$nv2->getAppactivate()]) {
|
||||||
|
unset($sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]);
|
||||||
|
}
|
||||||
|
|
||||||
foreach($nv2->getChilds() as $nv3) {
|
foreach($nv2->getChilds() as $nv3) {
|
||||||
if($this->haveRole($roles,$nv3->getPermission())) {
|
if($this->haveRole($roles,$nv3->getPermission())) {
|
||||||
$sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]["childs"][$nv3->getRoworder()] = array (
|
$sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]["childs"][$nv3->getRoworder()] = array (
|
||||||
|
@ -190,7 +200,7 @@
|
||||||
}
|
}
|
||||||
$session->set('sidebar', $sidebar);
|
$session->set('sidebar', $sidebar);
|
||||||
|
|
||||||
if($portal_activate) {
|
if($app["portal_activate"]) {
|
||||||
$session->set('cancreatepage',false);
|
$session->set('cancreatepage',false);
|
||||||
$session->set('cancreatecalendar',false);
|
$session->set('cancreatecalendar',false);
|
||||||
$session->set('cancreateblog',false);
|
$session->set('cancreateblog',false);
|
||||||
|
|
|
@ -92,8 +92,8 @@ class CronCommand extends ContainerAwareCommand
|
||||||
|
|
||||||
// Date prochaine execution
|
// Date prochaine execution
|
||||||
if($cron->getrepeatinterval()>=0) {
|
if($cron->getrepeatinterval()>=0) {
|
||||||
// Si interval par jour
|
// Si interval par heure
|
||||||
if(fmod($cron->getRepeatinterval(),86400)==0)
|
if(fmod($cron->getRepeatinterval(),3600)==0)
|
||||||
$next=clone $cron->getNextexecdate();
|
$next=clone $cron->getNextexecdate();
|
||||||
else
|
else
|
||||||
$next=new \DateTime();
|
$next=new \DateTime();
|
||||||
|
|
|
@ -94,23 +94,6 @@ class InitDataCommand extends ContainerAwareCommand
|
||||||
$this->entityManager->persist($entity);
|
$this->entityManager->persist($entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Job purge des registrations obsolètes
|
|
||||||
// Toute les 5mn
|
|
||||||
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(120);
|
|
||||||
if(!$entity) {
|
|
||||||
$entity = new Cron;
|
|
||||||
$entity->setCommand("Portal:SynchroICS");
|
|
||||||
$entity->setDescription("Synchronisation des Calendriers Utilisateurs liés à une URL ICS");
|
|
||||||
$entity->setId(120);
|
|
||||||
$entity->setStatut(2);
|
|
||||||
$entity->setRepeatcall(0);
|
|
||||||
$entity->setRepeatexec(0);
|
|
||||||
$entity->setRepeatinterval(600);
|
|
||||||
$entity->setNextexecdate($entity->getSubmitdate());
|
|
||||||
$this->entityManager->persist($entity);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Job de purge des fichiers obsolète
|
// Job de purge des fichiers obsolète
|
||||||
// Toute les 24h à 3h00
|
// Toute les 24h à 3h00
|
||||||
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(200);
|
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(200);
|
||||||
|
@ -129,6 +112,50 @@ class InitDataCommand extends ContainerAwareCommand
|
||||||
$this->entityManager->persist($entity);
|
$this->entityManager->persist($entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CRON PORTAIL
|
||||||
|
// Job purge des registrations obsolètes
|
||||||
|
// Toute les 5mn
|
||||||
|
$portal_activate = $this->getContainer()->getParameter('portal_activate');
|
||||||
|
$calendar_activate = $this->getContainer()->getParameter('calendar_activate');
|
||||||
|
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(1000);
|
||||||
|
if(!$entity&&($portal_activate||$calendar_activate)) {
|
||||||
|
$entity = new Cron;
|
||||||
|
$entity->setCommand("Portal:SynchroICS");
|
||||||
|
$entity->setDescription("Synchronisation des Calendriers Utilisateurs liés à une URL ICS");
|
||||||
|
$entity->setId(1000);
|
||||||
|
$entity->setStatut(2);
|
||||||
|
$entity->setRepeatcall(0);
|
||||||
|
$entity->setRepeatexec(0);
|
||||||
|
$entity->setRepeatinterval(600);
|
||||||
|
$entity->setNextexecdate($entity->getSubmitdate());
|
||||||
|
$this->entityManager->persist($entity);
|
||||||
|
}
|
||||||
|
elseif($entity) {
|
||||||
|
$this->entityManager->remove($entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Job de récupération des sondages Limesurvey
|
||||||
|
// Toute les 6h
|
||||||
|
$activate_widlimesurvey = $this->getContainer()->getParameter('activate_widlimesurvey');
|
||||||
|
$entity = $this->entityManager->getRepository('CadolesCronBundle:Cron')->find(1010);
|
||||||
|
if(!$entity&&$activate_widlimesurvey) {
|
||||||
|
$entity = new Cron;
|
||||||
|
$nextdate=$entity->getSubmitdate();
|
||||||
|
$nextdate->setTime(1,0);
|
||||||
|
$entity->setCommand("Portal:GetLimesurvey");
|
||||||
|
$entity->setDescription("Récupération des sondages Limesurvey ");
|
||||||
|
$entity->setId(1010);
|
||||||
|
$entity->setStatut(2);
|
||||||
|
$entity->setRepeatcall(0);
|
||||||
|
$entity->setRepeatexec(0);
|
||||||
|
$entity->setRepeatinterval(21600);
|
||||||
|
$entity->setNextexecdate($nextdate);
|
||||||
|
$this->entityManager->persist($entity);
|
||||||
|
}
|
||||||
|
elseif($entity) {
|
||||||
|
$this->entityManager->remove($entity);
|
||||||
|
}
|
||||||
|
|
||||||
// afin de forcer les ID sur certaines entités
|
// afin de forcer les ID sur certaines entités
|
||||||
$metadata = $this->entityManager->getClassMetaData(get_class($entity));
|
$metadata = $this->entityManager->getClassMetaData(get_class($entity));
|
||||||
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||||
|
|
|
@ -0,0 +1,405 @@
|
||||||
|
<?php
|
||||||
|
namespace Cadoles\PortalBundle\Command;
|
||||||
|
|
||||||
|
use Symfony\Component\Console\Command\Command;
|
||||||
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
|
use Symfony\Component\Console\Input\InputArgument;
|
||||||
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
use Symfony\Component\Finder\Finder;
|
||||||
|
use Symfony\Component\Filesystem\Filesystem;
|
||||||
|
use Symfony\Component\HttpFoundation\File\File;
|
||||||
|
use Symfony\Component\HttpKernel\KernelInterface;
|
||||||
|
use Doctrine\DBAL\Connection as DBALConnection;
|
||||||
|
use Doctrine\ORM\EntityManager;
|
||||||
|
use Symfony\Component\Validator\Constraints\DateTime;
|
||||||
|
|
||||||
|
class jsonRPCClient
|
||||||
|
{
|
||||||
|
protected $url = null, $is_debug = false, $parameters_structure = 'array';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default options for curl
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $curl_options = array(
|
||||||
|
CURLOPT_CONNECTTIMEOUT => 8,
|
||||||
|
CURLOPT_TIMEOUT => 8
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Http error statuses
|
||||||
|
*
|
||||||
|
* Source: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
private $httpErrors = array(
|
||||||
|
400 => '400 Bad Request',
|
||||||
|
401 => '401 Unauthorized',
|
||||||
|
403 => '403 Forbidden',
|
||||||
|
404 => '404 Not Found',
|
||||||
|
405 => '405 Method Not Allowed',
|
||||||
|
406 => '406 Not Acceptable',
|
||||||
|
408 => '408 Request Timeout',
|
||||||
|
500 => '500 Internal Server Error',
|
||||||
|
502 => '502 Bad Gateway',
|
||||||
|
503 => '503 Service Unavailable'
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Takes the connection parameter and checks for extentions
|
||||||
|
*
|
||||||
|
* @param string $pUrl - url name like http://example.com/
|
||||||
|
*/
|
||||||
|
public function __construct($pUrl)
|
||||||
|
{
|
||||||
|
$this->validate(false === extension_loaded('curl'), 'The curl extension must be loaded for using this class!');
|
||||||
|
$this->validate(false === extension_loaded('json'), 'The json extension must be loaded for using this class!');
|
||||||
|
|
||||||
|
// set an url to connect to
|
||||||
|
$this->url = $pUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return http error message
|
||||||
|
*
|
||||||
|
* @param $pErrorNumber
|
||||||
|
*
|
||||||
|
* @return string|null
|
||||||
|
*/
|
||||||
|
private function getHttpErrorMessage($pErrorNumber)
|
||||||
|
{
|
||||||
|
return isset($this->httpErrors[$pErrorNumber]) ? $this->httpErrors[$pErrorNumber] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set debug mode
|
||||||
|
*
|
||||||
|
* @param boolean $pIsDebug
|
||||||
|
*
|
||||||
|
* @return jsonRPCClient
|
||||||
|
*/
|
||||||
|
public function setDebug($pIsDebug)
|
||||||
|
{
|
||||||
|
$this->is_debug = !empty($pIsDebug);
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set structure to use for parameters
|
||||||
|
*
|
||||||
|
* @param string $pParametersStructure 'array' or 'object'
|
||||||
|
*
|
||||||
|
* @throws UnexpectedValueException
|
||||||
|
* @return jsonRPCClient
|
||||||
|
*/
|
||||||
|
public function setParametersStructure($pParametersStructure)
|
||||||
|
{
|
||||||
|
if (in_array($pParametersStructure, array('array', 'object')))
|
||||||
|
{
|
||||||
|
$this->parameters_structure = $pParametersStructure;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new UnexpectedValueException('Invalid parameters structure type.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set extra options for curl connection
|
||||||
|
*
|
||||||
|
* @param array $pOptionsArray
|
||||||
|
*
|
||||||
|
* @throws InvalidArgumentException
|
||||||
|
* @return jsonRPCClient
|
||||||
|
*/
|
||||||
|
public function setCurlOptions($pOptionsArray)
|
||||||
|
{
|
||||||
|
if (is_array($pOptionsArray))
|
||||||
|
{
|
||||||
|
$this->curl_options = $pOptionsArray + $this->curl_options;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new InvalidArgumentException('Invalid options type.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a request and gets the results
|
||||||
|
*
|
||||||
|
* @param string $pMethod - A String containing the name of the method to be invoked.
|
||||||
|
* @param array $pParams - An Array of objects to pass as arguments to the method.
|
||||||
|
*
|
||||||
|
* @throws RuntimeException
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function __call($pMethod, $pParams)
|
||||||
|
{
|
||||||
|
static $requestId = 0;
|
||||||
|
|
||||||
|
// generating uniuqe id per process
|
||||||
|
$requestId++;
|
||||||
|
|
||||||
|
// check if given params are correct
|
||||||
|
$this->validate(false === is_scalar($pMethod), 'Method name has no scalar value');
|
||||||
|
$this->validate(false === is_array($pParams), 'Params must be given as array');
|
||||||
|
|
||||||
|
// send params as an object or an array
|
||||||
|
$pParams = ($this->parameters_structure == 'object') ? $pParams[0] : array_values($pParams);
|
||||||
|
|
||||||
|
// Request (method invocation)
|
||||||
|
$request = json_encode(array('jsonrpc' => '2.0', 'method' => $pMethod, 'params' => $pParams, 'id' => $requestId));
|
||||||
|
|
||||||
|
// if is_debug mode is true then add url and request to is_debug
|
||||||
|
$this->debug('Url: ' . $this->url . "\r\n", false);
|
||||||
|
$this->debug('Request: ' . $request . "\r\n", false);
|
||||||
|
|
||||||
|
$responseMessage = $this->getResponse($request);
|
||||||
|
|
||||||
|
// if is_debug mode is true then add response to is_debug and display it
|
||||||
|
$this->debug('Response: ' . $responseMessage . "\r\n", true);
|
||||||
|
|
||||||
|
// decode and create array ( can be object, just set to false )
|
||||||
|
$responseDecoded = json_decode($responseMessage, true);
|
||||||
|
|
||||||
|
// check if decoding json generated any errors
|
||||||
|
$jsonErrorMsg = $this->getJsonLastErrorMsg();
|
||||||
|
$this->validate( !is_null($jsonErrorMsg), $jsonErrorMsg . ': ' . $responseMessage);
|
||||||
|
|
||||||
|
// check if response is correct
|
||||||
|
$this->validate(empty($responseDecoded['id']), 'Invalid response data structure: ' . $responseMessage);
|
||||||
|
$this->validate($responseDecoded['id'] != $requestId, 'Request id: ' . $requestId . ' is different from Response id: ' . $responseDecoded['id']);
|
||||||
|
if (isset($responseDecoded['error']))
|
||||||
|
{
|
||||||
|
$errorMessage = 'Request have return error: ' . $responseDecoded['error']['message'] . '; ' . "\n" .
|
||||||
|
'Request: ' . $request . '; ';
|
||||||
|
|
||||||
|
if (isset($responseDecoded['error']['data']))
|
||||||
|
{
|
||||||
|
$errorMessage .= "\n" . 'Error data: ' . $responseDecoded['error']['data'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->validate( !is_null($responseDecoded['error']), $errorMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $responseDecoded['result'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When the method invocation completes, the service must reply with a response.
|
||||||
|
* The response is a single object serialized using JSON
|
||||||
|
*
|
||||||
|
* @param string $pRequest
|
||||||
|
*
|
||||||
|
* @throws RuntimeException
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function & getResponse(&$pRequest)
|
||||||
|
{
|
||||||
|
// do the actual connection
|
||||||
|
$ch = curl_init();
|
||||||
|
if ( !$ch)
|
||||||
|
{
|
||||||
|
throw new \RuntimeException('Could\'t initialize a cURL session');
|
||||||
|
}
|
||||||
|
|
||||||
|
curl_setopt($ch, CURLOPT_URL, $this->url);
|
||||||
|
curl_setopt($ch, CURLOPT_POST, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $pRequest);
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
|
||||||
|
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
|
||||||
|
if ( !curl_setopt_array($ch, $this->curl_options))
|
||||||
|
{
|
||||||
|
throw new \RuntimeException('Error while setting curl options');
|
||||||
|
}
|
||||||
|
|
||||||
|
// send the request
|
||||||
|
$response = curl_exec($ch);
|
||||||
|
|
||||||
|
// check http status code
|
||||||
|
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
|
if (isset($this->httpErrors[$httpCode]))
|
||||||
|
{
|
||||||
|
throw new \RuntimeException('Response Http Error - ' . $this->httpErrors[$httpCode]);
|
||||||
|
}
|
||||||
|
// check for curl error
|
||||||
|
if (0 < curl_errno($ch))
|
||||||
|
{
|
||||||
|
throw new \RuntimeException('Unable to connect to '.$this->url . ' Error: ' . curl_error($ch));
|
||||||
|
}
|
||||||
|
// close the connection
|
||||||
|
curl_close($ch);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Throws exception if validation is failed
|
||||||
|
*
|
||||||
|
* @param bool $pFailed
|
||||||
|
* @param string $pErrMsg
|
||||||
|
*
|
||||||
|
* @throws RuntimeException
|
||||||
|
*/
|
||||||
|
protected function validate($pFailed, $pErrMsg)
|
||||||
|
{
|
||||||
|
if ($pFailed)
|
||||||
|
{
|
||||||
|
throw new \RuntimeException($pErrMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For is_debug and performance stats
|
||||||
|
*
|
||||||
|
* @param string $pAdd
|
||||||
|
* @param bool $pShow
|
||||||
|
*/
|
||||||
|
protected function debug($pAdd, $pShow = false)
|
||||||
|
{
|
||||||
|
static $debug, $startTime;
|
||||||
|
|
||||||
|
// is_debug off return
|
||||||
|
if (false === $this->is_debug)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// add
|
||||||
|
$debug .= $pAdd;
|
||||||
|
// get starttime
|
||||||
|
$startTime = empty($startTime) ? array_sum(explode(' ', microtime())) : $startTime;
|
||||||
|
if (true === $pShow and !empty($debug))
|
||||||
|
{
|
||||||
|
// get endtime
|
||||||
|
$endTime = array_sum(explode(' ', microtime()));
|
||||||
|
// performance summary
|
||||||
|
$debug .= 'Request time: ' . round($endTime - $startTime, 3) . ' s Memory usage: ' . round(memory_get_usage() / 1024) . " kb\r\n";
|
||||||
|
echo nl2br($debug);
|
||||||
|
// send output imidiately
|
||||||
|
flush();
|
||||||
|
// clean static
|
||||||
|
$debug = $startTime = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getting JSON last error message
|
||||||
|
* Function json_last_error_msg exists from PHP 5.5
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function getJsonLastErrorMsg()
|
||||||
|
{
|
||||||
|
if (!function_exists('json_last_error_msg'))
|
||||||
|
{
|
||||||
|
function json_last_error_msg()
|
||||||
|
{
|
||||||
|
static $errors = array(
|
||||||
|
JSON_ERROR_NONE => 'No error',
|
||||||
|
JSON_ERROR_DEPTH => 'Maximum stack depth exceeded',
|
||||||
|
JSON_ERROR_STATE_MISMATCH => 'Underflow or the modes mismatch',
|
||||||
|
JSON_ERROR_CTRL_CHAR => 'Unexpected control character found',
|
||||||
|
JSON_ERROR_SYNTAX => 'Syntax error',
|
||||||
|
JSON_ERROR_UTF8 => 'Malformed UTF-8 characters, possibly incorrectly encoded'
|
||||||
|
);
|
||||||
|
$error = json_last_error();
|
||||||
|
return array_key_exists($error, $errors) ? $errors[$error] : 'Unknown error (' . $error . ')';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fix PHP 5.2 error caused by missing json_last_error function
|
||||||
|
if (function_exists('json_last_error'))
|
||||||
|
{
|
||||||
|
return json_last_error() ? json_last_error_msg() : null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class GetLimesurveyCommand extends Command
|
||||||
|
{
|
||||||
|
private $container;
|
||||||
|
private $em;
|
||||||
|
private $output;
|
||||||
|
private $filesystem;
|
||||||
|
private $rootlog;
|
||||||
|
|
||||||
|
protected function configure()
|
||||||
|
{
|
||||||
|
$this
|
||||||
|
->setName('Portal:GetLimesurvey')
|
||||||
|
->setDescription('Get Datas from Limesurvey')
|
||||||
|
->setHelp('Synchronize Limesurvey')
|
||||||
|
->addArgument('cronid', InputArgument::OPTIONAL, 'ID Cron Job')
|
||||||
|
->addArgument('lastchance', InputArgument::OPTIONAL, 'Lastchance to run the cron')
|
||||||
|
->addArgument('idcalendar', InputArgument::OPTIONAL, 'ID Calendar to synchronize')
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
|
{
|
||||||
|
$this->container = $this->getApplication()->getKernel()->getContainer();
|
||||||
|
$this->em = $this->container->get('doctrine')->getEntityManager();
|
||||||
|
$this->output = $output;
|
||||||
|
$this->filesystem = new Filesystem();
|
||||||
|
$this->rootlog = $this->container->get('kernel')->getRootDir()."/../var/logs/";
|
||||||
|
$alias = $this->container->getParameter('alias');
|
||||||
|
|
||||||
|
$activate_widlimesurvey = $this->container->getParameter('activate_widlimesurvey');
|
||||||
|
if(!$activate_widlimesurvey) {
|
||||||
|
$this->writeln('Widget Limesurvey désactivé');
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$PROXYactivate = $this->em->getRepository("CadolesCoreBundle:Config")->findOneBy(["id"=>"PROXYactivate"])->getValue();
|
||||||
|
$PROXYserver = $this->em->getRepository("CadolesCoreBundle:Config")->findOneBy(["id"=>"PROXYserver"])->getValue();
|
||||||
|
$PROXYport = $this->em->getRepository("CadolesCoreBundle:Config")->findOneBy(["id"=>"PROXYport"])->getValue();
|
||||||
|
|
||||||
|
$this->writelnred('');
|
||||||
|
$this->writelnred('== Portal:GetLimesurvey');
|
||||||
|
$this->writelnred('==========================================================================================================');
|
||||||
|
|
||||||
|
$now=new \DateTime('now');
|
||||||
|
$fgdebug = false;
|
||||||
|
|
||||||
|
// Instance Limesurvey
|
||||||
|
$widlimesurvey_url = $this->container->getParameter('widlimesurvey_url');
|
||||||
|
if(stripos($widlimesurvey_url,"/limesurvey")==0) {
|
||||||
|
$weburl=$this->container->getParameter('weburl');
|
||||||
|
$widlimesurvey_url="https://".$weburl.$widlimesurvey_url;
|
||||||
|
}
|
||||||
|
echo $widlimesurvey_url;
|
||||||
|
|
||||||
|
$widlimesurvey_apiuser = $this->container->getParameter('widlimesurvey_apiuser');
|
||||||
|
$widlimesurvey_apikey = $this->container->getParameter('widlimesurvey_apikey');
|
||||||
|
$myJSONRPCClient = new JsonRPCClient( $widlimesurvey_url.'/admin/remotecontrol' );
|
||||||
|
|
||||||
|
// Connection Limesurvey
|
||||||
|
$sessionKey= $myJSONRPCClient->get_session_key( $widlimesurvey_apiuser, $widlimesurvey_apikey );
|
||||||
|
|
||||||
|
$this->writeln('');
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function writelnred($string) {
|
||||||
|
$this->output->writeln('<fg=red>'.$string.'</>');
|
||||||
|
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||||
|
}
|
||||||
|
private function writeln($string) {
|
||||||
|
$this->output->writeln($string);
|
||||||
|
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,21 +26,61 @@ parameters:
|
||||||
%end if
|
%end if
|
||||||
|
|
||||||
# Activation module
|
# Activation module
|
||||||
portal_module_activate: false
|
|
||||||
cron_activate: true
|
cron_activate: true
|
||||||
%if %%getVar("ninegate_activate_portal", 'non') == "oui"
|
%if %%getVar("ninegate_activate_portal", 'non') == "oui"
|
||||||
portal_activate: true
|
portal_activate: true
|
||||||
portal_item_activate: false
|
module_activate: false
|
||||||
|
page_activate: false
|
||||||
|
item_activate: false
|
||||||
|
alert_activate: false
|
||||||
|
calendar_activate: false
|
||||||
|
blog_activate: false
|
||||||
|
flux_activate: false
|
||||||
|
notice_activate: false
|
||||||
%else
|
%else
|
||||||
portal_activate: false
|
portal_activate: false
|
||||||
|
%if %%getVar("ninegate_activate_page", 'non') == "oui"
|
||||||
%if %%getVar("ninegate_activate_item", 'non') == "oui"
|
module_activate: true
|
||||||
portal_module_activate: true
|
page_activate: true
|
||||||
portal_item_activate: true
|
|
||||||
%else
|
%else
|
||||||
portal_item_activate: false
|
page_activate: false
|
||||||
|
%end if
|
||||||
|
%if %%getVar("ninegate_activate_item", 'non') == "oui"
|
||||||
|
module_activate: true
|
||||||
|
item_activate: true
|
||||||
|
%else
|
||||||
|
item_activate: false
|
||||||
|
%end if
|
||||||
|
%if %%getVar("ninegate_activate_alert", 'non') == "oui"
|
||||||
|
module_activate: true
|
||||||
|
alert_activate: true
|
||||||
|
%else
|
||||||
|
alert_activate: false
|
||||||
|
%end if
|
||||||
|
%if %%getVar("ninegate_activate_calendar", 'non') == "oui"
|
||||||
|
module_activate: true
|
||||||
|
calendar_activate: true
|
||||||
|
%else
|
||||||
|
calendar_activate: false
|
||||||
|
%end if
|
||||||
|
%if %%getVar("ninegate_activate_blog", 'non') == "oui"
|
||||||
|
module_activate: true
|
||||||
|
blog_activate: true
|
||||||
|
%else
|
||||||
|
blog_activate: false
|
||||||
|
%end if
|
||||||
|
%if %%getVar("ninegate_activate_flux", 'non') == "oui"
|
||||||
|
module_activate: true
|
||||||
|
flux_activate: true
|
||||||
|
%else
|
||||||
|
flux_activate: false
|
||||||
|
%end if
|
||||||
|
%if %%getVar("ninegate_activate_notice", 'non') == "oui"
|
||||||
|
module_activate: true
|
||||||
|
notice_activate: true
|
||||||
|
%else
|
||||||
|
notice_activate: false
|
||||||
%end if
|
%end if
|
||||||
|
|
||||||
%end if
|
%end if
|
||||||
|
|
||||||
# Information de base de l'annuaire
|
# Information de base de l'annuaire
|
||||||
|
@ -56,6 +96,7 @@ parameters:
|
||||||
ldap_basedn: o=gouv,c=fr
|
ldap_basedn: o=gouv,c=fr
|
||||||
|
|
||||||
# Mise en page
|
# Mise en page
|
||||||
|
weburl: %%web_url
|
||||||
alias: ninegate
|
alias: ninegate
|
||||||
libelle_etab: %%libelle_etab
|
libelle_etab: %%libelle_etab
|
||||||
numero_etab: %%numero_etab
|
numero_etab: %%numero_etab
|
||||||
|
@ -114,6 +155,25 @@ parameters:
|
||||||
ldap_email: mail
|
ldap_email: mail
|
||||||
ldap_usersadmin: [admin,prof.6a]
|
ldap_usersadmin: [admin,prof.6a]
|
||||||
|
|
||||||
|
# Activation Widget
|
||||||
|
%if %%getVar("ninegate_activate_widmoodle", 'non') == "oui"
|
||||||
|
activate_widmoodle: true
|
||||||
|
widmoodle_url: %%ninegate_widmoodle_url
|
||||||
|
widmoodle_apikey: %%ninegate_widmoodle_apikey
|
||||||
|
%else
|
||||||
|
activate_widmoodle: false
|
||||||
|
%end if
|
||||||
|
|
||||||
|
%if %%getVar("ninegate_activate_widlimesurvey", 'non') == "oui"
|
||||||
|
activate_widlimesurvey: true
|
||||||
|
widlimesurvey_url: %%ninegate_widlimesurvey_url
|
||||||
|
widlimesurvey_apiuser: %%ninegate_widlimesurvey_apiuser
|
||||||
|
widlimesurvey_apikey: %%ninegate_widlimesurvey_apikey
|
||||||
|
%else
|
||||||
|
activate_widlimesurvey: false
|
||||||
|
%end if
|
||||||
|
|
||||||
|
# Synchrinisation eportail
|
||||||
%if %%getVar("ninegate_synceportail", 'non') == "oui"
|
%if %%getVar("ninegate_synceportail", 'non') == "oui"
|
||||||
eportail_sync: true
|
eportail_sync: true
|
||||||
eportail_url: /eportail
|
eportail_url: /eportail
|
||||||
|
|
Loading…
Reference in New Issue