Exemplo n.º 1
0
 public function parseResults(LoopResult $loopResult)
 {
     foreach ($loopResult->getResultDataCollection() as $result) {
         // Create document processing event
         $event = new DocumentEvent($this->request);
         // Put source document file path
         $source_filepath = sprintf("%s%s/%s/%s", THELIA_ROOT, ConfigQuery::read('documents_library_path', 'local/media/documents'), $this->objectType, $result->getFile());
         $event->setSourceFilepath($source_filepath);
         $event->setCacheSubdirectory($this->objectType);
         try {
             // Dispatch document processing event
             $this->dispatcher->dispatch(TheliaEvents::DOCUMENT_PROCESS, $event);
             $loopResultRow = new LoopResultRow($result);
             $loopResultRow->set("ID", $result->getId())->set("LOCALE", $this->locale)->set("DOCUMENT_URL", $event->getDocumentUrl())->set("DOCUMENT_PATH", $event->getDocumentPath())->set("ORIGINAL_DOCUMENT_PATH", $source_filepath)->set("TITLE", $result->getVirtualColumn('i18n_TITLE'))->set("CHAPO", $result->getVirtualColumn('i18n_CHAPO'))->set("DESCRIPTION", $result->getVirtualColumn('i18n_DESCRIPTION'))->set("POSTSCRIPTUM", $result->getVirtualColumn('i18n_POSTSCRIPTUM'))->set("VISIBLE", $result->getVisible())->set("POSITION", $result->getPosition())->set("OBJECT_TYPE", $this->objectType)->set("OBJECT_ID", $this->objectId);
             $loopResult->addRow($loopResultRow);
         } catch (\Exception $ex) {
             // Ignore the result and log an error
             Tlog::getInstance()->addError(sprintf("Failed to process document in document loop: %s", $ex->getMessage()));
         }
     }
     return $loopResult;
 }
Exemplo n.º 2
0
 /**
  * No operation done on source file -> link !
  */
 public function testProcessDocumentSymlink()
 {
     $event = new DocumentEvent($this->request);
     $event->setSourceFilepath(__DIR__ . "/assets/documents/sources/test-document-2.txt");
     $event->setCacheSubdirectory("tests");
     $document = new Document($this->getFileManager());
     // mock cache configuration.
     $config = ConfigQuery::create()->filterByName(Document::CONFIG_DELIVERY_MODE)->findOne();
     if ($config != null) {
         $oldval = $config->getValue();
         $config->setValue('symlink')->save();
     }
     $document->processDocument($event);
     if ($config != null) {
         $config->setValue($oldval)->save();
     }
     $imgdir = ConfigQuery::read('document_cache_dir_from_web_root');
     $this->assertFileExists(THELIA_WEB_DIR . "/{$imgdir}/tests/test-document-2.txt");
 }