public function testClassShortName() { $expectations = [['Strings', "Strings"], ['\\Packaged\\Helpers\\Strings', "Strings"], [new \Packaged\Helpers\Strings(), "Strings"]]; foreach ($expectations as $expect) { $this->assertEquals($expect[1], class_shortname($expect[0])); } }
public function getUrl(RecordMapper $entity) { $parts = []; if ($entity instanceof WalkthroughStep) { return $this->_getWalkthroughStepUrl($entity); } $parts[] = strtolower(class_shortname($entity)); $slug = isset($entity->slug) ? sprintf('-%s', $entity->slug) : ''; $parts[] = sprintf('%d%s', $entity->id(), $slug); return $this->getProjectBaseUri() . implode('/', $parts); }
/** * @param DataMapper $mapper * @param array $updatables array of arguments that are allowed to be * updated in the mapper */ protected function _edit(DataMapper $mapper, array $updatables) { $className = class_shortname($mapper); if ($mapper->exists()) { $updates = $this->_updateMapper($mapper, $updatables); if ($updates) { $mapper->saveChanges(); echo "{$className} {$mapper->id()} updated;\n\n"; echo TextTable::fromArray($updates); } else { echo "No updates were made\n"; echo "Updatable fields: " . implode(", ", $updatables); } } else { echo "{$className} {$this->id} doesn't exist, did you mean to call add?"; } }
public function getViewOptions() { if ($this instanceof RecordMapper) { $viewOptions = []; $project = Container::config()->get('project'); $mapperName = class_shortname($this); $viewPath = "/Applications/Front/" . $mapperName . "/Views/"; $viewDirs = []; $extended = []; $viewDirs[$project->namespace] = $project->path . $viewPath; $extended[$project->namespace] = false; if ($project->extended) { $viewDirs[$project->extended_namespace] = $project->extended_path . $viewPath; $extended[$project->extended_namespace] = true; } foreach ($viewDirs as $namespace => $viewDir) { if (file_exists($viewDir)) { $files = glob($viewDir . '*.php'); foreach ($files as $file) { $pathInfo = pathinfo($file); $className = basename($pathInfo['filename']); $fullClassName = $namespace . '\\Applications\\Front\\' . $mapperName . '\\Views\\' . $className; if (isset($extended[$namespace]) && $extended[$namespace]) { $className = $className . ' [Default]'; } $viewOptions[$fullClassName] = $className; } } } if (empty($viewOptions)) { throw new \Exception('No Views found'); } return $viewOptions; } else { throw new \Exception('ViewOptionTrait can only be used by a RecordMapper'); } }
protected function _getLastIdPath($campaignId, $taskId) { $campaignDir = build_path("/var/lib/defero", class_shortname($this), $campaignId); if (!file_exists($campaignDir)) { mkdir($campaignDir, 0777, true); } $fileName = 'campaign-' . preg_replace('/[\\\\\\/\\:\\*\\?]/', '-', $taskId) . '.lastId'; return build_path($campaignDir, $fileName); }
public function process() { $userData = $this->_message->getArr('data'); $campaignActive = $this->_message->getInt('campaignActive'); $serviceName = $this->_message->getStr('emailService', $campaignActive ? 'email' : 'email_test'); $name = null; if (isset($userData['firstname'])) { $name = $userData['firstname']; if (isset($userData['lastname'])) { $name .= ' ' . $userData['lastname']; } } $email = $userData['email']; Log::info("Sending to {$name} <{$email}> using {$serviceName}"); $mailer = Email::getAccessor($serviceName); $mailer->addRecipient($email, $name); $mailer->setSubject($this->_message->getStr('subject')); switch ($this->_message->getStr('sendType')) { case SendType::PLAIN_TEXT: $mailer->setTextBody($this->_message->getStr('plainText') ?: null); break; case SendType::HTML_ONLY: $mailer->setHtmlBody($this->_message->getStr('htmlContent') ?: null); break; case SendType::HTML_AND_PLAIN: $mailer->setTextBody($this->_message->getStr('plainText') ?: null); $mailer->setHtmlBody($this->_message->getStr('htmlContent') ?: null); break; } if ($mailer instanceof \Cubex\Email\Service\Mail) { $mailer->addHeader("X-Defero-MID", uniqid(class_shortname($mailer), true)); $mailer->addHeader("X-Defero-PID", getmypid()); } $campaignId = $this->_message->getStr('campaignId'); if ($mailer instanceof DatabaseMailer) { $mailer->setCampaignId($campaignId); } $mailer->setFrom($this->_message->getStr('senderEmail'), $this->_message->getStr('senderName')); $returnPath = $this->_message->getStr('returnPath'); if ($returnPath) { $mailer->setSender($returnPath); } $replyTo = $this->_message->getStr('replyTo'); if ($replyTo) { $mailer->setSender($replyTo); } else { $mailer->setSender($this->_message->getStr('senderEmail'), $this->_message->getStr('senderName')); } try { $result = $mailer->send(); } catch (\Exception $e) { Log::debug($e->getMessage()); $result = false; } $hour = time(); $hour -= $hour % 3600; if (isset($userData['statskey'])) { $brandStatsCf = MailStatisticsByBrand::cf(); $column = $hour . '|failed|' . $userData['statskey'] . '|' . $userData['language']; if ($result !== false) { $column = $hour . '|' . ($campaignActive ? 'sent' : 'test'); $column .= '|' . $userData['statskey'] . '|' . $userData['language']; $brandStatsCf->increment($campaignId, $column); } else { $brandStatsCf->increment($campaignId, $column); } } $statsCf = MailStatistic::cf(); $column = $hour . '|failed-' . $userData['language']; if ($result !== false) { $column = $hour . '|' . ($campaignActive ? 'sent' : 'test'); $column .= '-' . $userData['language']; $statsCf->increment($campaignId, $column); } else { $statsCf->increment($campaignId, $column); } if (!$userData['user_id']) { $userData['user_id'] = 0; } MailerLog::addLogEntry($userData['user_id'], $campaignId); if ($result !== false) { if ($campaignActive) { SentEmailLog::addLogEntry($userData['user_id'], $campaignId); } } return false; }