Пример #1
0
 /**
  * Get a view helper from the manager.
  *
  * @param string $name
  * @return TranslatorInterface
  */
 protected function getViewHelper($name)
 {
     if (!$this->viewHelperManager instanceof HelperPluginManager) {
         $this->viewHelperManager = $this->getServiceLocator()->get('ViewHelperManager');
     }
     return $this->viewHelperManager->get($name);
 }
Пример #2
0
 /**
  * applies view helpers
  *
  * @todo refactor
  * @param MvcEvent $e
  * @return LayoutModifierListener
  */
 public function applyViewHelpers(EventInterface $e)
 {
     $viewHelperInstructions = $this->updater->getLayoutStructure()->get(LayoutUpdaterInterface::INSTRUCTION_VIEW_HELPERS);
     if ($viewHelperInstructions instanceof Config) {
         $viewHelperInstructions = $viewHelperInstructions->toArray();
     }
     foreach ($this->helperConfig as $helper => $config) {
         if (!isset($viewHelperInstructions[$helper])) {
             continue;
         }
         $defaultMethod = isset($config['default_method']) ? $config['default_method'] : '__invoke';
         $viewHelper = $this->viewHelperManager->get($helper);
         $viewHelperInstructions[$helper] = (array) $viewHelperInstructions[$helper];
         foreach ($viewHelperInstructions[$helper] as $value) {
             if (!$value) {
                 continue;
             }
             $value = (array) $value;
             $method = $this->getHelperMethod($value, $defaultMethod, $viewHelper);
             $args = isset($value['args']) ? (array) $value['args'] : array_values($value);
             $args[0] = $this->prepareHelperValue($args[0], $helper);
             call_user_func_array([$viewHelper, $method], $args);
         }
     }
     return $this;
 }
Пример #3
0
 /**
  * Invoke helper manager
  *
  * @param string $name
  * @param array $arguments
  * @return mixed
  */
 public function __call($name, array $arguments = null)
 {
     if (null === $arguments) {
         return $this->helperManager->get($name);
     }
     return call_user_func_array(array($this->helperManager->get($name), '__invoke'), $arguments);
 }
 /**
  * @return Identity
  */
 protected function getIdentityHelper()
 {
     if (!$this->identityHelper instanceof Identity) {
         $identity = $this->serviceLocator->get('identity');
         $this->identityHelper = $identity;
     }
     return $this->identityHelper;
 }
Пример #5
0
 public function __call($method, $argv)
 {
     $helper = $this->pluginManager->get($method);
     if (is_callable($helper)) {
         return call_user_func_array($helper, $argv);
     }
     return helper;
 }
Пример #6
0
 /**
  * Format a date.
  *
  * If PHP's intl extension is not loaded, this helper will fall back on a
  * predefined date and time format.
  *
  * @param DateTime $date
  * @param string $dateType Use local DATE_FORMAT_* constants, not their
  *     corresponding constants in IntlDateFormatter.
  * @param string $timeType Use local DATE_FORMAT_* constants, not their
  *     corresponding constants in IntlDateFormatter.
  * @param string|null $locale Optional locale to use when formatting or
  *     parsing. Ignored when intl extension is not loaded.
  * @param string|null $pattern Optional pattern to use when formatting or
  *     parsing. Possible patterns are documented at
  *     {@link http://userguide.icu-project.org/formatparse/datetime}.
  *     Ignored when intl extension is not loaded.
  * @return string
  */
 public function dateFormat(DateTime $date = null, $dateType = self::DATE_FORMAT_MEDIUM, $timeType = self::DATE_FORMAT_NONE, $locale = null, $pattern = null)
 {
     if (!$date) {
         return null;
     }
     if (extension_loaded('intl')) {
         // Map local constants to those in IntlDateFormatter.
         $constMap = [self::DATE_FORMAT_NONE => \IntlDateFormatter::NONE, self::DATE_FORMAT_FULL => \IntlDateFormatter::FULL, self::DATE_FORMAT_LONG => \IntlDateFormatter::LONG, self::DATE_FORMAT_MEDIUM => \IntlDateFormatter::MEDIUM, self::DATE_FORMAT_SHORT => \IntlDateFormatter::SHORT];
         $dateType = array_key_exists($dateType, $constMap) ? $constMap[$dateType] : \IntlDateFormatter::MEDIUM;
         $timeType = array_key_exists($timeType, $constMap) ? $constMap[$timeType] : \IntlDateFormatter::NONE;
         // Proxy to Zend's dateFormat helper.
         $dateFormat = $this->viewHelperManager->get('dateFormat');
         return $dateFormat($date, $dateType, $timeType, $locale, $pattern);
     }
     // Set the date format.
     $dateFormat = '';
     switch ($dateType) {
         case self::DATE_FORMAT_NONE:
             break;
         case self::DATE_FORMAT_FULL:
             $dateFormat .= 'l, F j, Y';
             break;
         case self::DATE_FORMAT_LONG:
             $dateFormat .= 'F j, Y';
             break;
         case self::DATE_FORMAT_SHORT:
             $dateFormat .= 'n/j/y';
             break;
         case self::DATE_FORMAT_MEDIUM:
         default:
             $dateFormat .= 'M j, Y';
             break;
     }
     // Set the time format.
     $timeFormat = '';
     switch ($timeType) {
         case self::DATE_FORMAT_FULL:
             $timeFormat .= 'g:i:sa T';
             break;
         case self::DATE_FORMAT_LONG:
             $timeFormat .= 'g:i:sa';
             break;
         case self::DATE_FORMAT_MEDIUM:
             $timeFormat .= 'g:ia';
             break;
         case self::DATE_FORMAT_SHORT:
             $timeFormat .= 'g:ia';
             break;
         case self::DATE_FORMAT_NONE:
         default:
             break;
     }
     return $date->format(trim("{$dateFormat} {$timeFormat}"));
 }
Пример #7
0
 public function perform_do($args)
 {
     $name = array_shift($args);
     if (is_string($name) == false) {
         return null;
     }
     if ($this->helpers->has($name) == false) {
         return null;
     }
     call_user_func_array($this->helpers->get($name), $args);
 }
 /**
  * A test class of instance
  */
 public function testInstance()
 {
     $moduleConfig = (require __DIR__ . '/../../../config/module.config.php');
     $serviceManager = new ServiceManager($moduleConfig['service_manager']);
     $helperPluginManager = new HelperPluginManager($serviceManager, $moduleConfig['view_helpers']);
     $signInForm = new SignInForm();
     $formBuilderHelper1 = $helperPluginManager->get('formBuilder');
     $formBuilderHelper1()->setToken('test token 1');
     $this->assertInstanceOf(FormBuilder::class, $formBuilderHelper1());
     $formBuilderHelper2 = $helperPluginManager->get(FormBuilderHelper::class);
     $formBuilderHelper2()->setToken('test token 2');
     $this->assertInstanceOf(FormBuilder::class, $formBuilderHelper2($signInForm));
     $this->assertNotEquals($formBuilderHelper1(), $formBuilderHelper2());
 }
Пример #9
0
 /**
  * Test if the helper is properly registered with the service manager
  */
 public function testHelperService()
 {
     // Uppercase
     $this->assertInstanceOf(static::_getHelperClass(), static::$_helperManager->get($this->_getHelperName()));
     // Lowercase
     $this->assertInstanceOf(static::_getHelperClass(), static::$_helperManager->get(lcfirst($this->_getHelperName())));
 }
Пример #10
0
 /**
  * Retrieve a service from the manager by name
  *
  * Allows passing an array of options to use when creating the instance.
  * createFromInvokable() will use these and pass them to the instance
  * constructor if not null and a non-empty array.
  *
  * @param  string $name
  * @param  array $options
  * @param  bool $usePeeringServiceManagers
  * @return Helper\HelperInterface
  */
 public function get($name, $options = array(), $usePeeringServiceManagers = true)
 {
     // Canonize invokable class from name
     if (!$this->has($name) && !class_exists($name)) {
         // Lookup in default invokable list
         $cname = strtolower(str_replace(array('-', '_', ' ', '\\', '/'), '', $name));
         if (isset($this->invokableList[$cname])) {
             $invokableClass = 'Pi\\' . $this->invokableList[$cname];
             if (!class_exists($invokableClass)) {
                 $invokableClass = 'Zend\\' . $this->invokableList[$cname];
             }
             $name = $invokableClass;
             // Lookup in helper locations
         } else {
             $class = str_replace(' ', '', ucwords(str_replace(array('-', '_', '.', '\\', '/'), ' ', $name)));
             foreach ($this->helperLocations as $location) {
                 $invokableClass = 'Pi\\' . $location . '\\' . $class;
                 if (class_exists($invokableClass)) {
                     $name = $invokableClass;
                     break;
                 } else {
                     $invokableClass = 'Zend\\' . $location . '\\' . $class;
                     if (class_exists($invokableClass)) {
                         $name = $invokableClass;
                         break;
                     }
                 }
             }
         }
     }
     return parent::get($name, $options, $usePeeringServiceManagers);
 }
Пример #11
0
 /**
  * @return null|string
  */
 public function parseCountryMap()
 {
     $mapOptions = ['clickable' => true, 'colorMin' => $this->getModuleOptions()->getCountryColorFaded(), 'colorMax' => $this->getModuleOptions()->getCountryColor(), 'focusOn' => ['x' => 0.5, 'y' => 0.5, 'scale' => 1.1], 'height' => '340px'];
     /**
      * @var $countryMap CountryMap
      */
     $countryMap = $this->serviceLocator->get('countryMap');
     return $countryMap([$this->getCountry()], null, $mapOptions);
 }
Пример #12
0
 /**
  * Provides access to view helpers.
  * 
  * @param string $method
  * @param array $args
  * @return mixed
  */
 public function __call($method, $args)
 {
     if (!isset($this->_helperCache[$method])) {
         $helper = $this->_helperManager->get($method);
         $helper->setView($this);
         $this->_helperCache[$method] = $helper;
     }
     return call_user_func_array($this->_helperCache[$method], $args);
 }
Пример #13
0
 /**
  * This function produces the link in the end
  *
  * @return string
  */
 public function createImageUrl()
 {
     /**
      * @var $url Url
      */
     $url = $this->serviceLocator->get('url');
     /**
      * @var $config array
      */
     $config = $this->serviceLocator->getServiceLocator()->get('config');
     $cdn = null;
     if (isset($config['cdn']) && $config['cdn']['enable']) {
         $cdn = $config['cdn']['address'];
     }
     $imageUrl = '<img src="%s%s" id="%s" class="%s" %s>';
     $image = sprintf($imageUrl, $cdn, $url($this->router, $this->routerParams), $this->imageId, implode(' ', $this->classes), is_null($this->height) ? null : ' height="' . $this->height . 'px"');
     if (!$this->lightBox) {
         return $image;
     } else {
         return '<a href="' . $url($this->router, $this->routerParams) . '" data-lightbox="itea">' . $image . '</a>';
     }
 }
 /**
  * createService
  *
  * Create the form group helper.
  *
  * @param  HelperPluginManager  $viewHelperManager  The view helper plugin manager.
  * @param  string               $name               The name of the service to create.
  * @param  string               $requestedName      The requested name of the service to create.
  *
  * @return FormGroup
  */
 public function __invoke(HelperPluginManager $viewHelperManager, $name, $requestedName)
 {
     /** @var ServiceManager $serviceManager */
     $serviceManager = $viewHelperManager->getServiceLocator();
     $options = $this->getOptions($serviceManager, $requestedName);
     $formRowHelper = $this->defaultRowHelper;
     if (!empty($options['form_row_helper'])) {
         $formRowHelper = $options['form_row_helper'];
     }
     /** @var FormRow $formRow */
     $formRow = $viewHelperManager->get($formRowHelper);
     return new FormGroup($formRow);
 }
Пример #15
0
 public function testGenerateViewHelpers()
 {
     $config = (new Module())->getConfig();
     $helperPluginManager = new HelperPluginManager();
     $helperPluginManager->setServiceLocator(new ServiceManager());
     $filterManager = new FilterPluginManager();
     $basePath = $helperPluginManager->get('basePath');
     $basePath->setBasePath('/assets');
     $basePathFilter = new BasePathFilter($basePath);
     $filterManager->setService('basePath', $basePathFilter);
     $cacheBusterFilter = new CacheBusterFilter(__DIR__ . '/_files');
     $filterManager->setService('cacheBuster', $cacheBusterFilter);
     $generator = new ViewHelperGenerator($filterManager, $helperPluginManager, $config['con-layout']['view_helpers']);
     $renderer = new PhpRenderer();
     $renderer->setHelperPluginManager($helperPluginManager);
     /* @var $headLink HeadLink */
     $headLink = $helperPluginManager->get('headLink');
     $headLinkProxy = new HeadLinkProxy($headLink);
     $helperPluginManager->setService(get_class($headLinkProxy), $headLinkProxy);
     /* @var $headScript HeadScript */
     $headScript = $helperPluginManager->get('headScript');
     $headScriptProxy = new HeadScriptProxy($headScript);
     $helperPluginManager->setService(get_class($headScriptProxy), $headScriptProxy);
     /* @var $doctype Doctype */
     $doctype = $helperPluginManager->get('doctype');
     $doctype('HTML5');
     /* @var $headTitle HeadTitle */
     $headTitle = $helperPluginManager->get('headTitle');
     $headTitleProxy = new HeadTitleProxy($headTitle);
     $helperPluginManager->setService(get_class($headTitleProxy), $headTitleProxy);
     /* @var $headMeta HeadMeta */
     $headMeta = $helperPluginManager->get('headMeta');
     $headMetaProxy = new HeadMetaProxy($headMeta);
     $helperPluginManager->setService(get_class($headMetaProxy), $headMetaProxy);
     $headMeta->setView($renderer);
     $generator->generate($this->getLayoutStructure());
     foreach (['/assets/css/test.css', '/assets/css/main.css'] as $expected) {
         $this->assertContains($expected, $headLink->toString());
     }
     foreach (['jquery.min.js', 'jquery-ui.min.js'] as $expected) {
         $this->assertContains($expected, $headScript->toString());
     }
     $this->assertEquals('<!DOCTYPE html>', (string) $doctype);
     $headTitle->setSeparator(' | ');
     $expected = 'First | My Title | Another Title';
     $this->assertContains($expected, $headTitle->toString());
     $contains = ['charset="utf8"', 'name="description" content="My description"', 'name="keywords" content="keyword1, keyword2, keyword3"'];
     foreach ($contains as $expected) {
         $this->assertContains($expected, $headMeta->toString());
     }
 }
Пример #16
0
 protected function _render($nameOrModel, $values = null)
 {
     if ($nameOrModel->isEntity()) {
         $helper = $this->helpers->get('Hal');
         $payload = $helper->renderEntity($nameOrModel->getPayload());
     }
     if ($nameOrModel->isCollection()) {
         $helper = $this->getHelperPluginManager()->get('Hal');
         $payload = $helper->renderCollection($nameOrModel->getPayload());
         if ($payload instanceof ApiProblem) {
             return $this->renderApiProblem($payload);
         }
     }
     return $nameOrModel->serialize();
 }
 /**
  * @param OrganisationService $organisationService
  *
  * @return string
  */
 public function parseOrganisationMap(OrganisationService $organisationService)
 {
     /*
      * Collect the list of countries from the organisation and cluster
      */
     $countries = [$organisationService->getOrganisation()->getCountry()];
     foreach ($organisationService->getOrganisation()->getClusterMember() as $cluster) {
         $countries[] = $cluster->getOrganisation()->getCountry();
     }
     $options = $this->getModuleOptions();
     $mapOptions = ['clickable' => true, 'colorMin' => $options->getCountryColorFaded(), 'colorMax' => $options->getCountryColor(), 'focusOn' => ['x' => 0.5, 'y' => 0.5, 'scale' => 1.1], 'height' => '340px'];
     /**
      * @var CountryMap
      */
     $countryMap = $this->serviceLocator->get('countryMap');
     return $countryMap->__invoke($countries, null, $mapOptions);
 }
Пример #18
0
 /**
  * {@inheritDoc}
  */
 public function render($nameOrModel, $values = null)
 {
     /** @var \Zend\View\Helper\ViewModel $viewModelHelper */
     $viewModelHelper = $this->helperPluginManager->get('viewModel');
     // Because templates can be rendered recursively, we need to save the current context
     $previousViewModel = $viewModelHelper->getCurrent();
     $template = $this->resolver->resolve($nameOrModel->getTemplate());
     if (!$template) {
         throw new Exception\RuntimeException(sprintf('%s: Unable to render template "%s"; resolver could not resolve to a file', __METHOD__, $nameOrModel->getTemplate()));
     }
     // We need to save and restore the previous variables, because the same renderer can be used inside
     // multiple contexts
     $viewModelHelper->setCurrent($nameOrModel);
     $this->templateVariables = $nameOrModel->getVariables();
     $result = (include $template);
     // Restore the previous context
     $this->templateVariables = $previousViewModel->getVariables();
     $viewModelHelper->setCurrent($previousViewModel);
     return $result;
 }
Пример #19
0
 /**
  * Render a view model
  *
  * If the view model is a HalJsonRenderer, determines if it represents
  * a Collection or Entity, and, if so, creates a custom
  * representation appropriate to the type.
  *
  * If not, it passes control to the parent to render.
  *
  * @param  mixed $nameOrModel
  * @param  mixed $values
  * @return string
  */
 public function render($nameOrModel, $values = null)
 {
     if (!$nameOrModel instanceof JsonLDModel) {
         return parent::render($nameOrModel, $values);
     }
     if ($nameOrModel->isEntity()) {
         $helper = $this->helpers->get('JsonLD');
         $payload = $helper->renderEntity($nameOrModel->getPayload());
         return parent::render($payload);
     }
     if ($nameOrModel->isCollection()) {
         $helper = $this->helpers->get('JsonLD');
         $payload = $helper->renderCollection($nameOrModel->getPayload());
         if ($payload instanceof ApiProblem) {
             return $this->renderApiProblem($payload);
         }
         return parent::render($payload);
     }
     return parent::render($nameOrModel, $values);
 }
 /**
  * @param $className
  *
  * @return object
  * @throws \Exception
  */
 private function buildGraph($className)
 {
     if ($this->enableObjectGraphDebug) {
         echo 'Building an object from the class: ' . $className . "<br />";
     }
     try {
         $reflection = new \ReflectionClass($className);
     } catch (\Exception $e) {
         if ($this->enableObjectGraphDebug) {
             echo 'Could not build a reflection class for ' . $className . "<br />";
         }
         return false;
     }
     if (!$reflection->getConstructor()) {
         if ($this->enableObjectGraphDebug) {
             echo 'We have build an object for class ' . $className . "<br />";
         }
         return new $className();
     }
     $constructorParameters = $reflection->getConstructor()->getParameters();
     $dependencies = [];
     foreach ($constructorParameters as $param) {
         try {
             $paramClassName = $param->getClass();
         } catch (\Exception $e) {
             throw new \Exception('Could not create dependency class "' . $param->getName() . '" for the currently building class: ' . $className);
         }
         if (!$paramClassName) {
             switch (true) {
                 case $this->controllerPluginManager->has($param->name, false):
                     if ($this->enableObjectGraphDebug) {
                         echo 'The parameter "' . $param->name . '" exists in Controller Manager' . "<br />";
                     }
                     $dependencies[] = $this->controllerPluginManager->get($param->name);
                     break;
                 case $this->serviceManager->has($param->name, false):
                     if ($this->enableObjectGraphDebug) {
                         echo 'The parameter "' . $param->name . '" exists in Service Manager' . "<br />";
                     }
                     $dependencies[] = $this->serviceManager->get($param->name);
                     break;
                 default:
                     if ($param->isOptional()) {
                         $dependencies[] = $param->getDefaultValue();
                     } else {
                         if ($this->enableObjectGraphDebug) {
                             echo 'The parameter "' . $param->name . '" does not exist in (any) Service Manager' . "<br />";
                         }
                         echo 'The parameter "' . $param->name . '" does not exist in the Service Manager' . "<br />";
                         die;
                     }
                     break;
             }
         } else {
             if ($this->enableObjectGraphDebug) {
                 echo 'Does the SM have an object for ' . $param->getClass()->name . "<br />";
             }
             switch (true) {
                 case $this->controllerPluginManager->has($param->getClass()->name, false, false):
                     if ($this->enableObjectGraphDebug) {
                         echo 'It does in the Controller Plugin Manager' . "<br />";
                     }
                     $dependencies[] = $this->controllerPluginManager->get($param->getClass()->name);
                     break;
                 case $this->viewHelperManager->has($param->getClass()->name, false, false):
                     if ($this->enableObjectGraphDebug) {
                         echo 'It does in the View Helper Manager' . "<br />";
                     }
                     $dependencies[] = $this->viewHelperManager->get($param->getClass()->name);
                     break;
                 case $this->formElementManager->has($param->getClass()->name, false, false):
                     if ($this->enableObjectGraphDebug) {
                         echo 'It does in the Form Element Manager' . "<br />";
                     }
                     $dependencies[] = $this->formElementManager->get($param->getClass()->name);
                     break;
                 case $this->serviceManager->has($param->getClass()->name, false, false):
                     if ($this->enableObjectGraphDebug) {
                         echo 'It does in the Service Manager' . "<br />";
                     }
                     $name = $param->getClass()->name;
                     if ($this->serviceManager->hasAlias($name)) {
                         $config = $this->serviceManager->get('config')['service_manager'];
                         $name = $config['aliases'][$name];
                     }
                     $dependencies[] = $this->serviceManager->get($name);
                     break;
                 default:
                     if ($this->enableObjectGraphDebug) {
                         echo 'No it It does not have an object' . "<br />";
                     }
                     if ($param->getClass()->isInterface()) {
                         continue;
                     }
                     $dependencies[] = $this->buildGraph($param->getClass()->name);
                     break;
             }
         }
     }
     $instance = $reflection->newInstanceArgs($dependencies);
     if (in_array($className, $this->serviceManager->get('config')['service_manager']['shared'])) {
         $this->serviceManager->setAllowOverride(true);
         $this->serviceManager->setService($className, $instance);
         $this->serviceManager->setAllowOverride(false);
     }
     if ($this->enableObjectGraphDebug) {
         echo 'We have build an object for class ' . $className . "<br />";
     }
     if ($this->enableObjectGraphDebug) {
         echo ' ==== ' . "<br />";
     }
     return $instance;
 }
    public function testCanDisplayListOfMessagesCustomisedByConfig()
    {
        $this->seedMessages();

        $config = array(
            'view_helper_config' => array(
                'flashmessenger' => array(
                    'message_open_format' => '<div%s><ul><li>',
                    'message_separator_string' => '</li><li>',
                    'message_close_string' => '</li></ul></div>',
                ),
            ),
        );
        $sm = new ServiceManager();
        $sm->setService('Config', $config);
        $helperPluginManager = new HelperPluginManager(new Config(array(
            'factories' => array(
                'flashmessenger' => 'Zend\View\Helper\Service\FlashMessengerFactory',
            ),
        )));
        $controllerPluginManager = new PluginManager(new Config(array(
            'invokables' => array(
                'flashmessenger' => 'Zend\Mvc\Controller\Plugin\FlashMessenger',
            ),
        )));
        $helperPluginManager->setServiceLocator($sm);
        $controllerPluginManager->setServiceLocator($sm);
        $sm->setService('ControllerPluginManager', $controllerPluginManager);
        $helper = $helperPluginManager->get('flashmessenger');

        $displayInfoAssertion = '<div class="info"><ul><li>bar-info</li></ul></div>';
        $displayInfo = $helper->render(PluginFlashMessenger::NAMESPACE_INFO);
        $this->assertEquals($displayInfoAssertion, $displayInfo);
    }
Пример #22
0
 /**
  * @param Country $country
  * @param int     $width
  *
  * @return string
  */
 public function getCountryFlag(Country $country, $width)
 {
     return $this->serviceLocator->get('countryFlag')->__invoke($country, $width);
 }
 /**
  * Inject the helper manager with the Hal helper
  *
  * @param  HelperPluginManager $helpers
  */
 protected function injectHalHelper(HelperPluginManager $helpers)
 {
     $helper = new HalHelper();
     $helper->setView($this);
     $helper->setServerUrlHelper($helpers->get('ServerUrl'));
     $helper->setUrlHelper($helpers->get('Url'));
     $helpers->setService('Hal', $helper);
 }
Пример #24
0
 public function __call($name, $args)
 {
     return call_user_func_array($this->helpers->get($name), $args);
 }
Пример #25
0
 /**
  * @param ProjectService $projectService
  *
  * @return string
  */
 public function parseDocuments(ProjectService $projectService)
 {
     /*
      * Go over each of the items to create the order
      */
     $documents = [];
     $workpackageDocuments = [];
     /*
      * @var ResultLink
      */
     $resultLink = $this->serviceLocator->get('resultLink');
     /*
      * @var WorkpackageDocumentLink
      */
     $workpackageDocumentLink = $this->serviceLocator->get('workpackageDocumentLink');
     /*
      * @var PosterLink
      */
     $posterLink = $this->serviceLocator->get('posterLink');
     /*
      * @var ArticleLink
      */
     $articleLink = $this->serviceLocator->get('articleLink');
     /*
      * @var ArticleTypeIcon
      */
     $articleTypeIcon = $this->serviceLocator->get('articleTypeIcon');
     /*
      * @var ContentTypeIcon
      */
     $contentTypeIcon = $this->serviceLocator->get('contentTypeIcon');
     /*
      * @var NewsLink
      */
     $newsLink = $this->serviceLocator->get('newsLink');
     /*
      * @var PressArticleLink
      */
     $pressArticleLink = $this->serviceLocator->get('pressArticleLink');
     /*
      * Grab all the public results
      */
     foreach ($projectService->findPublicResults() as $result) {
         //Generate a key for sorting
         $key = 'label-' . $result->getType()->parseCssName() . '-' . $result->getResult();
         $documents[$key]['label'] = '<span class="label label-' . $result->getType()->parseCssName() . '">
             <span class="glyphicon glyphicon-file" title="' . $result->getType() . '"></span>
             </span> ';
         $documents[$key]['document'] = $resultLink($result, 'download', 'public-name') . ' <i class="fa fa-download itea"></i>';
     }
     /*
      * Grab all the workpackage documents
      */
     foreach ($projectService->findPublicWorkpackageDocuments() as $workpackageDocument) {
         /*
          * Check first if the Link has a length (and if the user has access)
          */
         $workpackageDocumentLinkResult = $workpackageDocumentLink($workpackageDocument, 'download', 'no_underscore_filename');
         if (!empty($workpackageDocumentLinkResult)) {
             //Generate a key for sorting
             $key = 'label-article-type-work-package-documents-' . $workpackageDocument->getDocument();
             $workpackageDocuments[$key]['label'] = '<span class="label label-article-type-work-package-documents">' . '<span class="glyphicon glyphicon-file"></span></span>';
             $workpackageDocuments[$key]['document'] = sprintf("%s %s %s", $contentTypeIcon($workpackageDocument->getContentType()), $workpackageDocumentLinkResult, ' <i class="fa fa-download itea"></i>');
         }
     }
     /*
      * Grab the posters
      */
     foreach ($projectService->findFinalPosters() as $poster) {
         //Generate a key for sorting
         $key = 'label-article-type-poster-' . $poster->getProject();
         $documents[$key]['label'] = '<span class="label label-article-type-poster"><span class="glyphicon glyphicon-file"></span></span>';
         $documents[$key]['document'] = $posterLink($poster, 'download', 'public-name') . '  <i class="fa fa-download itea"></i>';
     }
     /*
      * Iterate over all press articles
      */
     foreach ($projectService->getProject()->getArticle() as $article) {
         if ($article->getType()->getShowInList() === ArticleType::SHOW_IN_LIST_YES) {
             //Generate a key for sorting
             $key = 'label-' . $article->getType()->parseCssName() . '-' . $article->getArticle();
             $documents[$key]['label'] = $articleTypeIcon($article->getType());
             $documents[$key]['document'] = $articleLink($article, 'view-public', 'name');
         }
     }
     /*
      * Iterate over all news articles
      */
     $articleType = $this->getContentService()->findEntityById('articleType', ArticleType::TYPE_NEWS);
     foreach ($projectService->getProject()->getNews() as $news) {
         //Generate a key for sorting
         $key = 'label-' . $articleType->parseCssName() . '-' . $news->getNews();
         $documents[$key]['label'] = $articleTypeIcon($articleType);
         $documents[$key]['document'] = $newsLink($news, 'view', 'name');
     }
     /*
      * Iterate over all press articles
      */
     $articleType = $this->getContentService()->findEntityById('articleType', ArticleType::TYPE_PRESS);
     foreach ($projectService->getProject()->getPressArticle() as $pressArticle) {
         $key = 'label-' . $articleType->parseCssName() . '-' . $pressArticle->getArticle();
         $documents[$key]['label'] = $articleTypeIcon($articleType);
         $documents[$key]['document'] = $pressArticleLink($pressArticle, 'view', 'name');
     }
     ksort($documents);
     ksort($workpackageDocuments);
     return $this->getZfcTwigRenderer()->render('project/partial/list/document', ['documents' => $documents, 'workpackageDocuments' => $workpackageDocuments]);
 }
Пример #26
0
 /**
  * Invoke helper manager
  *
  * @param string $name
  * @param array $arguments
  * @return mixed
  */
 public function __call($name, $arguments)
 {
     return call_user_func_array(array($this->helperManager->get($name), '__invoke'), $arguments);
 }
Пример #27
0
 /**
  * @param $string
  *
  * @return string
  */
 public function translate($string)
 {
     return $this->serviceLocator->get('translate')->__invoke($string);
 }
Пример #28
0
 /**
  * @param string $router
  * @param array  $params
  *
  * @return Url
  */
 public function getUrl($router, array $params)
 {
     return $this->serviceLocator->get('url')->__invoke($router, $params);
 }
 public function setUpHelpers()
 {
     // need to setup routes
     // need to get a url and serverurl helper that have appropriate injections
     $this->router = $router = new TreeRouteStack();
     $this->entityRoute = new Segment('/resource[/[:id]]');
     $this->router->addRoute('resource', $this->entityRoute);
     $this->helpers = $helpers = new HelperPluginManager();
     $serverUrl = $helpers->get('ServerUrl');
     $url = $helpers->get('url');
     $url->setRouter($router);
     $serverUrl->setScheme('http');
     $serverUrl->setHost('localhost.localdomain');
     $halLinks = new HalHelper();
     $halLinks->setServerUrlHelper($serverUrl);
     $halLinks->setUrlHelper($url);
     $helpers->setService('Hal', $halLinks);
     $this->renderer->setHelperPluginManager($helpers);
 }
Пример #30
0
 /**
  * @param string $name
  * @return AbstractHelper
  */
 public function getPlugin($name)
 {
     return $this->hpm->get($name);
 }