local/modules/Catalogue/Hook/FrontHook.php line 22

  1. <?php
  2. namespace Catalogue\Hook;
  3. use Thelia\Core\Event\Hook\HookRenderEvent;
  4. use Thelia\Core\Hook\BaseHook;
  5. use Catalogue\Model\Config\CataloguePdfConfigValue;
  6. use Catalogue\Catalogue;
  7. use Catalogue\Model\CataloguePdfConfigQuery;
  8. use Catalogue\Model\CataloguePdfDocumentQuery;
  9. use Thelia\Core\Event\Document\DocumentEvent;
  10. use Thelia\Core\Event\TheliaEvents;
  11. use Thelia\log\Tlog;
  12. /**
  13.  * Class FrontHook
  14.  * @package Catalogue\Hook
  15.  * @author François Carfantan <f.carfantan@orange.fr>
  16.  */
  17. class FrontHook extends BaseHook {
  18.     
  19.     public function onMainNavbarCatalogue(HookRenderEvent $event){
  20.         if(is_null($this->getPdf())){
  21.             return;
  22.         }
  23.             $htmlContent sprintf('<li><a href="%s">Catalogue %s</a></li>',$this->getPdf()['url'],$this->getPdf()['year']);
  24.             $event->add($htmlContent);
  25.     }
  26.     public function getPdf(){
  27.         $catalogue = new Catalogue();
  28.         $configId CataloguePdfConfigQuery::create()
  29.             ->select('id')
  30.             ->findOne();
  31.         $document CataloguePdfDocumentQuery::create()
  32.             ->findOneByConfigId($configId);
  33.             $pdfEvent = new DocumentEvent();
  34.             if($document!=null){
  35.                 $pdfEvent->setSourceFilepath($catalogue->getDocumentUploadDir() . DS $document->getFile())
  36.                 ->setCacheSubdirectory('catalogue');
  37.                 $this->dispatcher->dispatch($pdfEvent,TheliaEvents::DOCUMENT_PROCESS);
  38.             return ['url'=>$pdfEvent->getDocumentUrl(),'year'=>$document->getPublicationYear()];
  39.             }
  40.            return null;
  41.     }
  42.     
  43. }
  44. ?>