![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/FormBundle/Entity/ |
<?php namespace Mautic\FormBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Mautic\ApiBundle\Serializer\Driver\ApiMetadataDriver; use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; use Mautic\CoreBundle\Entity\IpAddress; use Mautic\LeadBundle\Entity\Lead; use Mautic\PageBundle\Entity\Page; class Submission { public const TABLE_NAME = 'form_submissions'; /** * @var string */ private $id; /** * @var Form **/ private $form; /** * @var IpAddress|null */ private $ipAddress; /** * @var Lead|null */ private $lead; /** * @var string|null */ private $trackingId; /** * @var \DateTimeInterface */ private $dateSubmitted; /** * @var string */ private $referer; /** * @var Page|null */ private $page; /** * @var array */ private $results = []; public static function loadMetadata(ORM\ClassMetadata $metadata): void { $builder = new ClassMetadataBuilder($metadata); $builder->setTable(self::TABLE_NAME) ->setCustomRepositoryClass(SubmissionRepository::class) ->addIndex(['tracking_id'], 'form_submission_tracking_search') ->addIndex(['date_submitted'], 'form_date_submitted'); $builder->addBigIntIdField(); $builder->createManyToOne('form', 'Form') ->inversedBy('submissions') ->addJoinColumn('form_id', 'id', false, false, 'CASCADE') ->build(); $builder->addIpAddress(true); $builder->addLead(true, 'SET NULL'); $builder->createField('trackingId', 'string') ->columnName('tracking_id') ->nullable() ->build(); $builder->createField('dateSubmitted', 'datetime') ->columnName('date_submitted') ->build(); $builder->addField('referer', 'text'); $builder->createManyToOne('page', Page::class) ->addJoinColumn('page_id', 'id', true, false, 'SET NULL') ->fetchExtraLazy() ->build(); } /** * Prepares the metadata for API usage. */ public static function loadApiMetadata(ApiMetadataDriver $metadata): void { $metadata->setGroupPrefix('submission') ->addProperties( [ 'id', 'ipAddress', 'form', 'lead', 'trackingId', 'dateSubmitted', 'referer', 'page', 'results', ] ) ->setGroupPrefix('submissionEvent') ->addProperties( [ 'id', 'ipAddress', 'form', 'trackingId', 'dateSubmitted', 'referer', 'page', 'results', ] ) ->build(); } /** * Get id. */ public function getId(): int { return (int) $this->id; } /** * Set dateSubmitted. * * @param \DateTime $dateSubmitted * * @return Submission */ public function setDateSubmitted($dateSubmitted) { $this->dateSubmitted = $dateSubmitted; return $this; } /** * Get dateSubmitted. * * @return \DateTimeInterface */ public function getDateSubmitted() { return $this->dateSubmitted; } /** * Set referer. * * @param string $referer * * @return Submission */ public function setReferer($referer) { $this->referer = $referer; return $this; } /** * Get referer. * * @return string */ public function getReferer() { return $this->referer; } /** * Set form. * * @return Submission */ public function setForm(Form $form) { $this->form = $form; return $this; } /** * Get form. * * @return Form */ public function getForm() { return $this->form; } /** * Set ipAddress. * * @return Submission */ public function setIpAddress(IpAddress $ipAddress = null) { $this->ipAddress = $ipAddress; return $this; } /** * @return IpAddress */ public function getIpAddress() { return $this->ipAddress; } /** * Get results. * * @return array */ public function getResults() { return $this->results; } /** * Get results. * * @return Submission */ public function setResults($results) { $this->results = $results; return $this; } /** * Set page. * * @return Submission */ public function setPage(Page $page = null) { $this->page = $page; return $this; } /** * Get page. * * @return Page */ public function getPage() { return $this->page; } /** * @return Lead */ public function getLead() { return $this->lead; } /** * @return $this */ public function setLead(Lead $lead = null) { $this->lead = $lead; return $this; } /** * @return mixed */ public function getTrackingId() { return $this->trackingId; } /** * @return $this */ public function setTrackingId($trackingId) { $this->trackingId = $trackingId; return $this; } /** * This method is used by standard entity algorithms to check if the current * user has permission to view/edit/delete this item. Provide the form creator for it. * * @return mixed */ public function getCreatedBy() { return $this->getForm()->getCreatedBy(); } /** * @param string $alias * * @return Field|null */ public function getFieldByAlias($alias) { foreach ($this->getForm()->getFields() as $field) { if ($field->getAlias() === $alias) { return $field; } } return null; } }