public function __invoke(Job $jobEntity, $options = []) { $options = array_merge($this->options, $options); $paramsHelper = $this->paramsHelper; $urlHelper = $this->urlHelper; $serverUrlHelper = $this->serverUrlHelper; $isExternalLink = false; if (!empty($jobEntity->getLink())) { $url = $jobEntity->getLink(); $isExternalLink = true; } elseif ($options['showPendingJobs']) { $url = $urlHelper('lang/jobs/approval', [], ['query' => ['id' => $jobEntity->getId()]], true); } else { $query = ['subscriberUri' => $serverUrlHelper([]) . '/subscriber/' . 1, 'id' => $jobEntity->getId()]; $route = 'lang/jobs/view'; $params = ['lang' => $paramsHelper('lang')]; if ($paramsHelper('channel')) { $params['channel'] = $paramsHelper('channel'); } $url = $urlHelper($route, $params, array('query' => $query)); } if ($options['linkOnly']) { $result = $url; if ($options['absolute'] && !$isExternalLink) { $result = $serverUrlHelper($url); } } else { $result = sprintf('<a href="%s" rel="%s" %s>%s</a>', $url, $options['rel'], $options['target'] ? "target=" . $options['target'] : "", strip_tags($jobEntity->getTitle())); } return $result; }
public function setJob(JobInterface $job) { if (isset($this->jobs['__id__']) && $this->jobs['__id__'] == $job->getId()) { return $this; } $this->jobs = array('__id__' => $job->getId(), 'userId' => $job->getUser()->getId()); return $this; }