]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Helper/EntriesExport.php
Merge branch 'master' into 2.3
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Helper / EntriesExport.php
index 1dfa12c8bf99480e967f40a58be5d4e9fadc4a83..3d36a4c89e40c91c3ae635c5c8aad1d5641ea835 100644 (file)
@@ -8,7 +8,6 @@ use JMS\Serializer\SerializerBuilder;
 use PHPePub\Core\EPub;
 use PHPePub\Core\Structure\OPF\DublinCore;
 use Symfony\Component\HttpFoundation\Response;
-use Craue\ConfigBundle\Util\Config;
 
 /**
  * This class doesn't have unit test BUT it's fully covered by a functional test with ExportControllerTest.
@@ -21,19 +20,18 @@ class EntriesExport
     private $entries = [];
     private $authors = ['wallabag'];
     private $language = '';
-    private $tags = [];
     private $footerTemplate = '<div style="text-align:center;">
         <p>Produced by wallabag with %EXPORT_METHOD%</p>
         <p>Please open <a href="https://github.com/wallabag/wallabag/issues">an issue</a> if you have trouble with the display of this E-Book on your device.</p>
-        </div';
+        </div>';
 
     /**
-     * @param Config $craueConfig CraueConfig instance to get wallabag instance url from database
+     * @param string $wallabagUrl Wallabag instance url
      * @param string $logoPath    Path to the logo FROM THE BUNDLE SCOPE
      */
-    public function __construct(Config $craueConfig, $logoPath)
+    public function __construct($wallabagUrl, $logoPath)
     {
-        $this->wallabagUrl = $craueConfig->get('wallabag_url');
+        $this->wallabagUrl = $wallabagUrl;
         $this->logoPath = $logoPath;
     }
 
@@ -53,10 +51,6 @@ class EntriesExport
 
         $this->entries = $entries;
 
-        foreach ($entries as $entry) {
-            $this->tags[] = $entry->getTags();
-        }
-
         return $this;
     }
 
@@ -95,6 +89,11 @@ class EntriesExport
         throw new \InvalidArgumentException(sprintf('The format "%s" is not yet supported.', $format));
     }
 
+    public function exportJsonData()
+    {
+        return $this->prepareSerializingContent('json');
+    }
+
     /**
      * Use PHPePub to dump a .epub file.
      *
@@ -149,8 +148,6 @@ class EntriesExport
             $book->setCoverImage('Cover.png', file_get_contents($this->logoPath), 'image/png');
         }
 
-        $book->addChapter('Notices', 'Cover2.html', $content_start.$this->getExportInformation('PHPePub').$bookEnd);
-
         $book->buildTOC();
 
         /*
@@ -159,8 +156,8 @@ class EntriesExport
 
         // set tags as subjects
         foreach ($this->entries as $entry) {
-            foreach ($this->tags as $tag) {
-                $book->setSubject($tag['value']);
+            foreach ($entry->getTags() as $tag) {
+                $book->setSubject($tag->getLabel());
             }
 
             // the reader in Kobo Devices doesn't likes special caracters
@@ -171,6 +168,8 @@ class EntriesExport
             $book->addChapter($entry->getTitle(), htmlspecialchars($filename).'.html', $chapter, true, EPub::EXTERNAL_REF_ADD);
         }
 
+        $book->addChapter('Notices', 'Cover2.html', $content_start.$this->getExportInformation('PHPePub').$bookEnd);
+
         return Response::create(
             $book->getBook(),
             200,
@@ -265,8 +264,8 @@ class EntriesExport
          * Adding actual entries
          */
         foreach ($this->entries as $entry) {
-            foreach ($this->tags as $tag) {
-                $pdf->SetKeywords($tag['value']);
+            foreach ($entry->getTags() as $tag) {
+                $pdf->SetKeywords($tag->getLabel());
             }
 
             $pdf->AddPage();