Beispiel #1
0
 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;
 }