/** * 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); }
/** * @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); }
/** * 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(); }
/** * Remove form. * * @param Form $form */ public function removeForm(Form $form) { $this->changes['forms']['removed'][$form->getId()] = $form->getName(); $this->forms->removeElement($form); }
/** * 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(); }