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.
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;
}
$this->entries = $entries;
- foreach ($entries as $entry) {
- $this->tags[] = $entry->getTags();
- }
-
return $this;
}
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.
*
$book->setCoverImage('Cover.png', file_get_contents($this->logoPath), 'image/png');
}
- $book->addChapter('Notices', 'Cover2.html', $content_start.$this->getExportInformation('PHPePub').$bookEnd);
-
$book->buildTOC();
/*
// 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
+ // in filenames, we limit to A-z/0-9
+ $filename = preg_replace('/[^A-Za-z0-9\-]/', '', $entry->getTitle());
+
$chapter = $content_start.$entry->getContent().$bookEnd;
- $book->addChapter($entry->getTitle(), htmlspecialchars($entry->getTitle()).'.html', $chapter, true, EPub::EXTERNAL_REF_ADD);
+ $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,
* 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();