Example #1
0
 /**
  *
  * Get the last N leads for a specific form
  *
  * @param Form $form
  * @param $searchInHistoryOfNbPost
  * @return Paginator
  */
 public function findLastNByType(Form $form, $searchInHistoryOfNbPost)
 {
     $dql = 'SELECT l FROM TellawLeadsFactoryBundle:Leads l JOIN l.form f';
     $dql .= " WHERE f.id=:formId";
     $dql .= " ORDER BY l.createdAt DESC";
     $query = $this->getEntityManager()->createQuery($dql)->setParameter('formId', $form->getId())->setMaxResults($searchInHistoryOfNbPost);
     $result_array = $query->getArrayResult();
     return $result_array;
 }
Example #2
0
 /**
  * Tracking callback method
  *
  * Method used to generate a transparent pixel to track display of a form, including the UTM.
  *
  * @Route("/form/trck", name="_client_form_tracking")
  * @Route("/form/trck/{code}/")
  * @Route("/form/trck/{code}/{utm_campaign}")
  */
 public function trackingAction(Form $form, $utm_campaign = '')
 {
     // Track call request
     /** @var \Tellaw\LeadsFactoryBundle\Entity\Tracking $tracking */
     $tracking = new Tracking();
     if (trim($utm_campaign) == '') {
         $utm_campaign = $form->getUtmcampaign();
     }
     $tracking->setUtmCampaign($utm_campaign);
     $tracking->setForm($form);
     $tracking->setCreatedAt(new \DateTime());
     $em = $this->getDoctrine()->getManager();
     $em->persist($tracking);
     $em->flush();
     return new TransparentPixelResponse();
 }
Example #3
0
 /**
  * Process export to CSV file
  *
  * @param array $jobs
  * @param \Tellaw\LeadsFactoryBundle\Entity\Form $form
  */
 public function export($jobs, $form)
 {
     $fileName = 'export_' . $form->getCode() . '_' . time() . '.csv';
     $path = $this->getExportPath();
     $logger = $this->getContainer()->get('export.logger');
     $handle = fopen($path . DIRECTORY_SEPARATOR . $fileName, 'w+');
     if ($handle === false) {
         $logger->error("Export CSV : impossible d'ouvrir ou créer le fichier " . $fileName);
     }
     $exportUtils = $this->getContainer()->get('export_utils');
     $em = $this->getContainer()->get('doctrine')->getManager();
     foreach ($jobs as $job) {
         $lead = $job->getLead();
         $data = json_decode($lead->getData(), true);
         $status = fputcsv($handle, $data) ? $exportUtils::$_EXPORT_SUCCESS : $exportUtils->getErrorStatus($job);
         $lead->setStatus($status);
         $log = $status != $exportUtils::$_EXPORT_SUCCESS ? "Job export (ID " . $job->getId() . ") : erreur lors de l'édition du fichier CSV" : "Job export (ID " . $job->getId() . ") : exporté avec succès";
         $logger->info($log);
         $em->persist($lead);
         $exportUtils->updateJob($job, $status, $log);
     }
     $em->flush();
     fclose($handle);
 }
 /**
  *
  * Save the final status of the form.
  * The status is saved in the formEntity
  * It saves two datas :
  *      - Status (static value of this utils class)
  *      - Log message
  *
  * @param $status
  */
 public function saveTestStatus($status, $log, Form $form)
 {
     $form->setTestStatus($status);
     $form->setTestLog($log);
     $em = $this->getDoctrine()->getManager();
     $em->persist($form);
     $em->flush();
 }
Example #5
0
 /**
  * @param FormEntity $form
  *
  * @return string
  */
 public function getHiddenTags($form)
 {
     $tags = "\r\n            <input type='hidden' name=\"lffield[utmcampaign]\" id=\"lffield[utmcampaign]\" value='" . $form->getUtmcampaign() . "'/>\r\n            <input type='hidden' name='lfFormId' id='lfFormId' value='" . $form->getId() . "'/>\r\n            <input type='hidden' name='lfFormKey' id='lfFormKey' value='" . $this->getFormKey($form->getId()) . "'/>\r\n        ";
     if (!is_null($form->getFormType())) {
         $tags .= "<input type='hidden' name='lfFormType' id='lfFormType' value='" . $form->getFormType()->getId() . "'/>";
     }
     return $tags;
 }
 /**
  * Launches export for all configured methods
  *
  * @param \Tellaw\LeadsFactoryBundle\Entity\Form $form
  */
 public function export($form)
 {
     $logger = $this->getContainer()->get('export.logger');
     $config = $form->getConfig();
     if (!isset($config['export'])) {
         return;
     }
     foreach ($config['export'] as $method => $methodConfig) {
         if (!$this->isValidExportMethod($method)) {
             $logger->error('Méthode d\'export "' . $method . '" invalide');
             continue;
         }
         $jobs = $this->getExportableJobs($form, $method, $methodConfig);
         if (count($jobs)) {
             $this->getMethod($method)->export($jobs, $form);
         }
     }
 }