/**
  * Determine if this campaign applies
  *
  * @param $eventDetails
  * @param $event
  *
  * @return bool
  */
 public static function validateFormSubmit(Form $eventDetails = null, $event)
 {
     if ($eventDetails == null) {
         return true;
     }
     $limitToForms = $event['properties']['forms'];
     //check against selected forms
     if (!empty($limitToForms) && !in_array($eventDetails->getId(), $limitToForms)) {
         return false;
     }
     return true;
 }
 /**
  * @param Form          $form
  * @param Asset         $asset
  * @param MauticFactory $factory
  * @param               $message
  * @param               $messageMode
  *
  * @return RedirectResponse|Response
  */
 public static function downloadFile(Form $form, Asset $asset, MauticFactory $factory, $message, $messengerMode)
 {
     /** @var \Mautic\AssetBundle\Model\AssetModel $model */
     $model = $factory->getModel('asset');
     $url = $model->generateUrl($asset, true, array('form', $form->getId()));
     if ($messengerMode) {
         return array('download' => $url);
     }
     $msg = $message . $factory->getTranslator()->trans('mautic.asset.asset.submitaction.downloadfile.msg', array('%url%' => $url));
     $content = $factory->getTemplating()->renderResponse('MauticCoreBundle::message.html.php', array('message' => $msg, 'type' => 'notice', 'template' => $factory->getParameter('theme')))->getContent();
     return new Response($content);
 }
Example #3
0
 /**
  * @param Form          $form
  * @param Asset         $asset
  * @param MauticFactory $factory
  * @param               $message
  * @param               $messageMode
  *
  * @return RedirectResponse|Response
  */
 public static function downloadFile(Form $form, Asset $asset, MauticFactory $factory, $message, $messengerMode)
 {
     /** @var \Mautic\AssetBundle\Model\AssetModel $model */
     $model = $factory->getModel('asset');
     $url = $model->generateUrl($asset, true, ['form', $form->getId()]);
     if ($messengerMode) {
         return ['download' => $url];
     }
     $msg = $message . $factory->getTranslator()->trans('mautic.asset.asset.submitaction.downloadfile.msg', ['%url%' => $url]);
     $analytics = $factory->getHelper('template.analytics')->getCode();
     if (!empty($analytics)) {
         $factory->getHelper('template.assets')->addCustomDeclaration($analytics);
     }
     $logicalName = $factory->getHelper('theme')->checkForTwigTemplate(':' . $factory->getParameter('theme') . ':message.html.php');
     $content = $factory->getTemplating()->renderResponse($logicalName, ['message' => $msg, 'type' => 'notice', 'template' => $factory->getParameter('theme')])->getContent();
     return new Response($content);
 }
Example #4
0
 /**
  * Creates the table structure for form results
  *
  * @param Form $entity
  * @param bool $isNew
  * @param bool $dropExisting
  */
 public function createTableSchema(Form $entity, $isNew = false, $dropExisting = false)
 {
     //create the field as its own column in the leads table
     $schemaHelper = $this->factory->getSchemaHelper('table');
     $name = "form_results_" . $entity->getId() . "_" . $entity->getAlias();
     $columns = $this->generateFieldColumns($entity);
     if ($isNew || !$isNew && !$schemaHelper->checkTableExists($name)) {
         $schemaHelper->addTable(array('name' => $name, 'columns' => $columns, 'options' => array('primaryKey' => array('submission_id'), 'uniqueIndex' => array('submission_id', 'form_id'))), true, $dropExisting);
         $schemaHelper->executeChanges();
     } else {
         //check to make sure columns exist
         $schemaHelper = $this->factory->getSchemaHelper('column', $name);
         foreach ($columns as $c) {
             if (!$schemaHelper->checkColumnExists($c['name'])) {
                 $schemaHelper->addColumn($c, false);
             }
         }
         $schemaHelper->executeChanges();
     }
 }
 /**
  * {@inheritDoc}
  */
 public function getId()
 {
     if ($this->__isInitialized__ === false) {
         return (int) parent::getId();
     }
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getId', array());
     return parent::getId();
 }
Example #6
0
 /**
  * Remove form.
  *
  * @param Form $form
  */
 public function removeForm(Form $form)
 {
     $this->changes['forms']['removed'][$form->getId()] = $form->getName();
     $this->forms->removeElement($form);
 }
Example #7
0
 /**
  * Fetch the form results
  *
  * @param Form $form
  * @param array $options
  *
  * @return array
  * @throws \Doctrine\ORM\NoResultException
  * @throws \Doctrine\ORM\NonUniqueResultException
  */
 public function getFormResults(Form $form, array $options = array())
 {
     $query = $this->_em->getConnection()->createQueryBuilder();
     $query->from(MAUTIC_TABLE_PREFIX . 'form_submissions', 'fs')->select('fr.*')->leftJoin('fs', $this->getResultsTableName($form->getId(), $form->getAlias()), 'fr', 'fr.submission_id = fs.id')->where('fs.form_id = :formId')->setParameter('formId', $form->getId());
     if (!empty($options['leadId'])) {
         $query->andWhere('fs.lead_id = ' . (int) $options['leadId']);
     }
     if (!empty($options['formId'])) {
         $query->andWhere($query->expr()->eq('fs.form_id', ':id'))->setParameter('id', $options['formId']);
     }
     if (!empty($options['limit'])) {
         $query->setMaxResults((int) $options['limit']);
     }
     return $query->execute()->fetchAll();
 }