/**
  * Test import source by counting found items and displaying data of first item
  *
  * @param ImportSource $importSource
  */
 public function testSourceCommand(ImportSource $importSource)
 {
     $this->outputLine('Fetch: ' . $importSource->getUrl());
     $this->outputDashedLine();
     $this->extractorService->setSource($importSource->getUrl());
     $this->extractorService->setMapping($importSource->getMapping());
     $items = $this->extractorService->getItems();
     $this->outputLine('Found ' . count($items) . ' items');
     $this->outputDashedLine();
     if (count($items)) {
         $this->outputLine('GUID: ' . $items[0]->getGuid());
         $this->outputDashedLine();
         $this->outputLine(print_r($items[0]->toArray(), 1));
     }
 }
 /**
  * Import item
  *
  * @param ImportSource $importSource
  * @param string $guid
  * @return string
  * @throws \TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException
  */
 public function importAction(ImportSource $importSource, $guid)
 {
     $this->extractorService->setSource($importSource->getUrl());
     $this->extractorService->setMapping($importSource->getMapping());
     $extractedItems = $this->extractorService->getItems();
     foreach ($extractedItems as $item) {
         if ($item->getGuid() === $guid) {
             $this->importService->importItem($importSource, $item);
             $itemUid = $this->importService->alreadyImported($importSource->getPid(), $guid);
             $this->uriBuilder->reset()->setCreateAbsoluteUri(TRUE);
             if (\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SSL')) {
                 $this->uriBuilder->setAbsoluteUriScheme('https');
             }
             $returnUrl = $this->uriBuilder->uriFor('show', array('importSource' => $importSource), $this->request->getControllerName());
             $this->redirectToUri('alt_doc.php?returnUrl=' . rawurlencode($returnUrl) . '&edit[tx_news_domain_model_news][' . $itemUid . ']=edit&disHelp=1');
         }
     }
     $this->addFlashMessage('requested-item-not-found', '', AbstractMessage::ERROR);
     $this->redirect('show', NULL, NULL, array('importSource' => $importSource));
 }
 /**
  * @param array $data
  * @param ImportSource $importSource
  * @return NULL|array
  */
 protected function processMedia(array $data, ImportSource $importSource)
 {
     $media = NULL;
     if (empty($data['image']) && $importSource->getDefaultImage()) {
         return array(array('type' => 0, 'image' => $importSource->getDefaultImage()->getOriginalResource()->getCombinedIdentifier(), 'showinpreview' => 1));
     }
     $folder = NULL;
     if ($importSource->getImageFolder()) {
         try {
             $folder = ResourceFactory::getInstance()->getFolderObjectFromCombinedIdentifier(ltrim($importSource->getImageFolder(), 'file:'));
         } catch (\Exception $e) {
         }
     }
     if (!empty($data['image']) && $folder) {
         $media = array();
         if (!is_array($data['image'])) {
             $data['image'] = array($data['image']);
         }
         foreach ($data['image'] as $image) {
             $tmp = GeneralUtility::getUrl($image);
             if ($tmp) {
                 $tempFile = GeneralUtility::tempnam('news_importer');
                 file_put_contents($tempFile, $tmp);
                 list(, , $imageType) = getimagesize($tempFile);
                 try {
                     $falImage = $folder->addFile($tempFile, ($data['title'] ?: 'news_import') . image_type_to_extension($imageType, TRUE), 'changeName');
                     $media[] = array('type' => 0, 'image' => $falImage->getCombinedIdentifier(), 'showinpreview' => 1);
                 } catch (\Exception $e) {
                 }
             }
         }
     }
     return $media;
 }
 /**
  * @test
  */
 public function setImageFolderForStringSetsImageFolder()
 {
     $this->subject->setImageFolder('Conceived at T3CON10');
     $this->assertAttributeEquals('Conceived at T3CON10', 'imageFolder', $this->subject);
 }