Commit c8931e6e authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Ajout d'UnicaenIcon au menu

parent 14803000
Loading
Loading
Loading
Loading
+38 −6
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

namespace UnicaenCode\Service;

use Laminas\View\Helper\Url;
use Serializable;
use Laminas\Mvc\MvcEvent;
use UnicaenCode\Service\Traits\ConfigServiceAwareTrait;
@@ -17,12 +18,20 @@ class CollectorService implements CollectorInterface, Serializable
    use ConfigServiceAwareTrait;

    const NAME     = 'unicaen-code_collector';

    const PRIORITY = 150;

    protected Url $urlVH;



    public function __construct(Url $urlVH)
    {
        $this->urlVH = $urlVH;
    }



    public function getViews()
    public function getViews(): array
    {
        $viewDirs = $this->getServiceConfig()->getViewDirs();
        $viewFiles = [];
@@ -37,10 +46,25 @@ class CollectorService implements CollectorInterface, Serializable
        foreach ($viewFiles as $viewFile) {
            if ($viewFile != '.' && $viewFile != '..') {
                if (false !== strrpos($viewFile, '.php')) {
                    $items[] = substr($viewFile, 0, strrpos($viewFile, '.php'));
                    $name = substr($viewFile, 0, strrpos($viewFile, '.php'));
                    $url = $this->urlVH->__invoke('unicaen-code', ['view' => $name]);
                    $items[$name] = $url;
                }
            }
        }
        return $items;
    }



    public function getItems(): array
    {
        $items = $this->getViews();

        $items['<hr />'] = null;

        $items['Icônes Unicaen'] = $this->urlVH->__invoke('icons');

        return $items;
    }

@@ -52,6 +76,8 @@ class CollectorService implements CollectorInterface, Serializable
        return self::class;
    }



    /**
     * {@inheritDoc}
     */
@@ -60,6 +86,8 @@ class CollectorService implements CollectorInterface, Serializable
        return static::PRIORITY;
    }



    /**
     * {@inheritDoc}
     */
@@ -68,6 +96,8 @@ class CollectorService implements CollectorInterface, Serializable

    }



    /**
     * {@inheritDoc}
     */
@@ -76,6 +106,8 @@ class CollectorService implements CollectorInterface, Serializable
        return [];
    }



    /**
     * {@inheritDoc}
     */
+4 −1
Original line number Diff line number Diff line
@@ -11,7 +11,10 @@ class CollectorServiceFactory

    public function __invoke(ContainerInterface $container, $requestedName, $options = null)
    {
        $service = new CollectorService();
        /** @var $urlVH Laminas\View\Helper\Url*/
        $urlVH = $container->get('ViewHelperManager')->get('url');

        $service = new CollectorService($urlVH);
        $service->setServiceConfig($container->get(ConfigService::class));

        return $service;
+7 −3
Original line number Diff line number Diff line
<?php
/* @var $collector \UnicaenCode\Collector */
$views      = $collector->getViews();
$items      = $collector->getItems();

?>
<div class="laminas-toolbar-entry">
@@ -13,10 +13,14 @@ $views = $collector->getViews();
        </span>
    </div>
    <div class="laminas-toolbar-detail">
        <?php foreach ($views as $view): ?>
        <?php foreach ($items as $name => $url): ?>
            <span class="laminas-toolbar-info">
                <span class="laminas-detail-value">
                    <a href="<?php echo $this->url('unicaen-code', ['view' => $view]);?>"><?php echo $view ?></a>
                    <?php if ($url): ?>
                    <a href="<?= $url ?>"><?= $name ?></a>
                    <?php else: ?>
                        <?= $name ?>
                    <?php endif; ?>
                </span>
            </span>
        <?php endforeach; ?>