![]() 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/plugins/MauticSocialBundle/Entity/ |
<?php namespace MauticPlugin\MauticSocialBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; use Mautic\CoreBundle\Entity\FormEntity; use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Mapping\ClassMetadata; class Monitoring extends FormEntity { /** * @var int */ private $id; /** * @var string */ private $title; /** * @var string|null */ private $description; /** * @var \Mautic\CategoryBundle\Entity\Category|null */ private $category; /** * @var array */ private $lists = []; /** * @var string|null */ private $networkType; /** * @var int */ private $revision = 1; /** * @var array */ private $stats = []; /** * @var array */ private $properties = []; /** * @var \DateTimeInterface */ private $publishDown; /** * @var \DateTimeInterface */ private $publishUp; public static function loadMetadata(ORM\ClassMetadata $metadata): void { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('monitoring') ->setCustomRepositoryClass(MonitoringRepository::class) ->addLifecycleEvent('cleanMonitorData', 'preUpdate') ->addLifecycleEvent('cleanMonitorData', 'prePersist'); $builder->addCategory(); $builder->addIdColumns('title'); $builder->addNullableField('lists', 'array'); $builder->addNamedField('networkType', 'string', 'network_type', true); $builder->addField('revision', 'integer'); $builder->addNullableField('stats', 'array'); $builder->addNullableField('properties', 'array'); $builder->addPublishDates(); } /** * Constraints for required fields. */ public static function loadValidatorMetadata(ClassMetadata $metadata): void { $metadata->addPropertyConstraint('title', new Assert\NotBlank( ['message' => 'mautic.core.title.required'] )); $metadata->addPropertyConstraint('networkType', new Assert\NotBlank( ['message' => 'mautic.social.network.type'] )); } /** * @return mixed */ public function getCategory() { return $this->category; } /** * Get description. * * @return string */ public function getDescription() { return $this->description; } /** * Get id. * * @return int */ public function getId() { return $this->id; } /** * Get lists. * * @return array */ public function getLists() { return $this->lists; } /** * Get network type. * * @return string */ public function getNetworkType() { return $this->networkType; } /** * Get revision. * * @return int */ public function getRevision() { return $this->revision; } /** * Get statistics. * * @return array */ public function getStats() { return $this->stats; } /** * Get title. * * @return string */ public function getTitle() { return $this->title; } /** * Get properties. * * @return array */ public function getProperties() { return $this->properties; } /** * Get publishDown. * * @return \DateTimeInterface */ public function getPublishDown() { return $this->publishDown; } /** * Get publishUp. * * @return \DateTimeInterface */ public function getPublishUp() { return $this->publishUp; } /** * Set the category id. * * @param \Mautic\CategoryBundle\Entity\Category|null $category */ public function setCategory($category): void { $this->isChanged('category', $category); $this->category = $category; } /** * Set description. * * @param string $description * * @return Monitoring */ public function setDescription($description) { $this->isChanged('description', $description); $this->description = $description; return $this; } /** * Set the monitor lists. * * @return Monitoring */ public function setLists($lists) { $this->isChanged('lists', $lists); $this->lists = $lists; return $this; } /** * Set the network type. * * @return Monitoring */ public function setNetworkType($networkType) { $this->isChanged('networkType', $networkType); $this->networkType = $networkType; return $this; } /** * Set the revision counter. * * @param int $revision * * @return Monitoring */ public function setRevision($revision) { $this->isChanged('revision', $revision); $this->revision = $revision; return $this; } /** * Set the statistics. * * @param array $stats * * @return Monitoring */ public function setStats($stats) { $this->isChanged('stats', $stats); $this->stats = $stats; return $this; } /** * Set name. * * @param string $title * * @return Monitoring */ public function setTitle($title) { $this->isChanged('title', $title); $this->title = $title; return $this; } /** * Set properties. * * @param array $properties * * @return Monitoring */ public function setProperties($properties) { $this->isChanged('properties', $properties); $this->properties = $properties; return $this; } /** * Set publishDown. * * @param \DateTime $publishDown * * @return Monitoring */ public function setPublishDown($publishDown) { $this->isChanged('publishDown', $publishDown); $this->publishDown = $publishDown; return $this; } /** * Set publishUp. * * @param \DateTime $publishUp * * @return Monitoring */ public function setPublishUp($publishUp) { $this->isChanged('publishUp', $publishUp); $this->publishUp = $publishUp; return $this; } /** * Clear out old properties data. */ public function cleanMonitorData(): void { $property = $this->getProperties(); if (!array_key_exists('checknames', $property)) { $property['checknames'] = 0; } // clean up property array for the twitter handle if ('twitter_handle' == $this->getNetworkType()) { $this->setProperties( [ 'handle' => $property['handle'], 'checknames' => $property['checknames'], ] ); } // clean up property array for the hashtag if ('twitter_hashtag' == $this->getNetworkType()) { $this->setProperties( [ 'hashtag' => $property['hashtag'], 'checknames' => $property['checknames'], ] ); } // clean up clean up property array for the custom action if ('twitter_custom' == $this->getNetworkType()) { $this->setProperties( [ 'custom' => $property['custom'], ] ); } // if the property is not new and the old property doesn't match the new one if (!$this->isNew() && $property != $this->getProperties()) { // reset stats on save of edited $this->setStats([]); } } }