Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.217.117
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
v3.cesa.co.za /
src /
EventBundle /
Services /
Delete
Unzip
Name
Size
Permission
Date
Action
.htaccess
237
B
-r-xr-xr-x
2026-08-17 03:12
MarketingAttendeeManager.php
11.91
KB
-rwxrwxr-x
2026-04-02 11:48
SchoolAttendeeManager.php
10.2
KB
-rwxrwxr-x
2026-04-02 11:48
SchoolWeeksCoursesDashboardService.php
19
KB
-rw-r--r--
2026-08-14 12:33
Save
Rename
<?php namespace App\EventBundle\Services; use Symfony\Component\DependencyInjection\ContainerInterface; use Monolog\Logger; use App\ContactBundle\Services\MessageManager; use App\EventBundle\Entity\MarketingAttendee; use App\CoreBundle\Services\Utils; /** * Marketing Attendee List Old manager * * @author Otto Saayman <otto@igotafrica.com> * @package EventBundle * @subpackage MarketingAttendee * @version 0.0.1 */ final class MarketingAttendeeManager { /** * Service Container * @var object */ private $container = null; /** * Entity manager * @var object */ private $em; /** * Class construct * * @param ContainerInterface $container * @param Logger $logger * @return void */ public function __construct( ContainerInterface $container ) { $this->setContainer($container); $this->setEm($container->get('doctrine')->getManager('default')); return; } /** * Get Container * * @return ContainerInterface $container */ public function getContainer() { return $this->container; } /** * Set Container * * @param ContainerInterface $container * @return void */ public function setContainer($container) { $this->container = $container; } /** * Get Entity Manager * * @return string */ public function getEm() { return $this->em; } /** * Set Container * * @param string $em * @return void */ public function setEm($em) { $this->em = $em; } /** * Get a Marketing Attendee * * @return MarketingAttendee */ public function find($id) { if (strlen($id) <= 0) { return null; } return $this->em->getRepository(MarketingAttendee::class)->find($id); } /** * Get a Marketing Attendee by parameters * * @param array $params * @return MarketingAttendee */ public function findOneBy($params) { return $this->em->getRepository(MarketingAttendee::class)->findOneBy($params); } /** * Get a Marketing Attendee by parameters * * @param array $params * @return array */ public function findBy($params) { return $this->em->getRepository(MarketingAttendee::class)->findBy($params); } /** * Get all Marketing Attendees * * @return array */ public function findAll() { return $this->em->getRepository(MarketingAttendee::class)->findAll(); } /** * Get all Marketing Attendee IDs * * @return array */ public function findAllIds() { return $this->em->getRepository(MarketingAttendee::class)->findAllIds(); } /** * Save a Marketing Attendee * * @params MarketingAttendee $marketingAttendee * @return MarketingAttendee */ public function save(MarketingAttendee &$marketingAttendee) { $this->em->persist($marketingAttendee); $this->em->flush(); return $marketingAttendee; } /** * Save a Marketing Attendee * * @return void */ public function mailChimpSynch($allMembers = array(), $audience = '', $tag = 'CESA Marketing') { $errorLogManager = $this->getContainer()->get('error_log.manager'); $errorLogManager->error('MailChimp Synch Starting', true); $mcCreds = MessageManager::getMCCredentials(); $messageManager = $this->getContainer()->get('contact_message.manager'); // $response = Utils::getURLContent($url, array('usr_pwd' => 'user:' . $mcCreds['api_key'], 'header' => ['Content-Type: application/json'])); $toBeAdded = array(); $toBeUpdated = array(); $marketingAttendees = $this->findAllIds(); if (strlen($audience) <= 0) { $audience = $mcCreds['main_audience']; } if (count($allMembers) <= 0) { $allMembers = $messageManager->getAllEMailsFromMailChimp($mcCreds['api_key'], $audience); } echo count($marketingAttendees) . ' marketing attendees found' . "\r\n"; $errorLogManager->error(count($marketingAttendees) . ' attendees found', true); $alreadyAdded = []; foreach ($marketingAttendees as $marketingAttendeeId) { // if ($marketingAttendeeId['id'] != 38485) { // continue; // } $marketingAttendee = $this->find($marketingAttendeeId['id']); if (!is_object($marketingAttendee)) { echo 'Attendee not found: ' . $marketingAttendeeId['id'] . '<br />' . "\r\n"; $errorLogManager->error('Attendee not found: ' . $marketingAttendeeId['id'], true); continue; } if ( is_null($marketingAttendee->getEmailAddress()) || strlen($marketingAttendee->getEmailAddress()) <= 0 || Utils::isEmailAddressValid($marketingAttendee->getEmailAddress()) == false || in_array($marketingAttendee->getEmailAddress(), $alreadyAdded) ) { // echo 'Attendee no e-mail address: ' . $marketingAttendeeId['id'] . '<br />' . "\r\n"; continue; } if ($marketingAttendee->isCancelled()) { // echo 'Attendee cancelled: ' . $marketingAttendeeId['id'] . '<br />' . "\r\n"; $errorLogManager->error('Attendee cancelled: ' . $marketingAttendeeId['id'], true); continue; } $alreadyAdded[] = $marketingAttendee->getEmailAddress(); $subscribed = 'pending'; if (is_null($marketingAttendee->getSubscribed()) || strtolower($marketingAttendee->getSubscribed()) == 'y') { $subscribed = 'subscribed'; } // if (count($toBeAdded) > 10) { // continue; // } //check if attendee is in list $mustAdd = ''; foreach ($allMembers as $mailId => $member) { // Check of the subscriber has unsubscribed in MailChimp if (isset($member['status']) && $member['status'] == 'unsubscribed') { $mustAdd = 'Unsubscribed'; echo 'Marketing attendee ' . $marketingAttendee->getEmailAddress() . ' is unsubscribed in MailChimp' . "\r\n"; continue; } if (trim(strtolower($member['email_address'])) == trim(strtolower($marketingAttendee->getEmailAddress()))) { $mustAdd = $mailId; // echo 'Marketing attendee e-mail exists in MalChimp and ' . count($member['tags']) . ' is the tag' . "\r\n"; if (!is_countable($member['tags']) || count($member['tags']) <= 0) { continue; } foreach ($member['tags'] as $oneTag) { // var_dump($oneTag); // echo "\r\n" . ' tag!' . "\r\n"; if ($oneTag['name'] == $tag) { $mustAdd = 'no'; } } } } //foreach if ($mustAdd == '') { // $messageManager->addOneContactToMailChimp( // $mcCreds['api_key'], // $audience, // [ // 'email_address' => $marketingAttendee->getEmailAddress(), // 'status' => $subscribed, // 'merge_fields' => [ // 'FNAME' => $marketingAttendee->getContactFirstName(), // 'LNAME' => $marketingAttendee->getContactLastName() // ], // 'tags' => [$tag] // ] // ); // echo 'Added ' . $marketingAttendee->getEmailAddress() . ' - ' . count($toBeAdded) . '<br />' . "\r\n"; // exit; $toBeAdded[] = [ 'email_address' => trim($marketingAttendee->getEmailAddress()), 'status' => $subscribed, 'merge_fields' => [ 'FNAME' => $marketingAttendee->getContactFirstName(), 'LNAME' => $marketingAttendee->getContactLastName() ], 'tags' => [$tag] // 'tags' => [['name' => $tag, 'status' => 'active']] ]; // echo 'Added ' . $marketingAttendee->getEmailAddress() . ' - ' . count($toBeAdded) . '<br />' . "\r\n"; // $errorLogManager->error('Added: ' . count($toBeAdded), true); } elseif (!in_array($mustAdd, ['Unsubscribed', 'no'])) { $toBeUpdated[] = [ 'subscriber_id' => $mustAdd, 'email_address' => trim($marketingAttendee->getEmailAddress()), 'tags' => [['name' => $tag, 'status' => 'active']] ]; // echo $marketingAttendee->getEmailAddress() . ' - ' . $mustAdd . ' skipped<br />' . "\r\n"; // $errorLogManager->error('Skipped', true); } // exit; // if (count($toBeUpdated) > 200) { $messageManager->updateTagsMailChimp($mcCreds['api_key'], $audience, $toBeUpdated); echo 'Updating marketing attendee tags' . "\r\n"; // var_dump($toBeUpdated); // echo "\r\n"; // exit; $toBeUpdated = array(); } if (count($toBeAdded) > 200) { $messageManager->addToMailChimp($mcCreds['api_key'], $audience, $toBeAdded); echo 'Adding marketing attendees to MailChimp' . "\r\n"; // var_dump($toBeAdded); // echo "\r\n"; // exit; $toBeAdded = array(); } } //foreach if (count($toBeAdded) > 0) { $messageManager->addToMailChimp($mcCreds['api_key'], $audience, $toBeAdded); echo "Adding marketing attendeesto MailChimp \r\n"; var_dump($toBeAdded); echo "\r\n"; } if (count($toBeUpdated) > 0) { $messageManager->updateTagsMailChimp($mcCreds['api_key'], $audience, $toBeUpdated); echo "Updating marketing attendee tags \r\n"; var_dump($toBeUpdated); echo "\r\n"; } // exit; } /** * Save a Marketing Attendee * * @return void */ public function mailChimpSynchCombined() { $errorLogManager = $this->getContainer()->get('error_log.manager'); $errorLogManager->error('Combined MailChimp Synch Starting', true); $mcCreds = MessageManager::getMCCredentials(); $messageManager = $this->getContainer()->get('contact_message.manager'); // $messageManager->addOneContactToMailChimp( // $mcCreds['api_key'], // $mcCreds['main_audience'], // [ // 'email_address' => 'anton.boshoff@bigenafrica.com', // 'status' => 'subscribed', // 'merge_fields' => ['FNAME' => 'Anton', 'LNAME' => 'Boshoff'], // 'tags' => ['CESA Marketing'] // ] // ); // return; $allMembers = $messageManager->getAllEMailsFromMailChimp($mcCreds['api_key'], $mcCreds['main_audience']); echo 'Found ' . count($allMembers) . ' members in MailChimp' . "\r\n"; $this->mailChimpSynch($allMembers, $mcCreds['main_audience']); //Must finish merging SCE audience in MailChimp before running this part $this->getContainer()->get('school_attendee.manager')->mailChimpSynch($allMembers, $mcCreds['main_audience']); } }