From a6e9ad0b7d4108a170b7d2e43576377bb0ad7516 Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Sat, 28 Oct 2017 10:37:56 +0200 Subject: [PATCH 1/4] add a title page The first page of the book is the title --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index 830798b82..1b4afa3ba 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -190,7 +190,8 @@ class EntriesExport // in filenames, we limit to A-z/0-9 $filename = preg_replace('/[^A-Za-z0-9\-]/', '', $entry->getTitle()); - $chapter = $content_start . $entry->getContent() . $bookEnd; + $titlepage = "

".$entry->getTitle()."

"; + $chapter = $content_start . $titlepage . $entry->getContent() . $bookEnd; $book->addChapter($entry->getTitle(), htmlspecialchars($filename) . '.html', $chapter, true, EPub::EXTERNAL_REF_ADD); } From c779373f2cafd191771dc575252cfc28c7b7539f Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Sat, 28 Oct 2017 14:49:14 +0200 Subject: [PATCH 2/4] Set the title in a separated chapter Set the export option on the same page, same as done in producePdf Move the ToC at the end of the book so the title page is the first one --- src/Wallabag/CoreBundle/Helper/EntriesExport.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index 1b4afa3ba..5d2fca312 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -174,8 +174,6 @@ class EntriesExport $book->setCoverImage('Cover.png', file_get_contents($this->logoPath), 'image/png'); } - $book->buildTOC(); - /* * Adding actual entries */ @@ -190,12 +188,13 @@ class EntriesExport // in filenames, we limit to A-z/0-9 $filename = preg_replace('/[^A-Za-z0-9\-]/', '', $entry->getTitle()); - $titlepage = "

".$entry->getTitle()."

"; - $chapter = $content_start . $titlepage . $entry->getContent() . $bookEnd; + $titlepage = $content_start . "

".$entry->getTitle()."

" . $this->getExportInformation('PHPePub') . $bookEnd; + $book->addChapter("Title", 'Title.html', $titlepage, true, EPub::EXTERNAL_REF_ADD); + $chapter = $content_start . $entry->getContent() . $bookEnd; $book->addChapter($entry->getTitle(), htmlspecialchars($filename) . '.html', $chapter, true, EPub::EXTERNAL_REF_ADD); } - $book->addChapter('Notices', 'Cover2.html', $content_start . $this->getExportInformation('PHPePub') . $bookEnd); + $book->buildTOC(); return Response::create( $book->getBook(), From 385e651684b98762241107d6fd0310fc42b44965 Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Sat, 28 Oct 2017 17:17:22 +0200 Subject: [PATCH 3/4] php-cs-fixer php bin/php-cs-fixer fix src/Wallabag/CoreBundle/Helper/EntriesExport.php --- .../CoreBundle/Helper/EntriesExport.php | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index 5d2fca312..bd11b4b8d 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -64,7 +64,7 @@ class EntriesExport */ public function updateTitle($method) { - $this->title = $method . ' articles'; + $this->title = $method.' articles'; if ('entry' === $method) { $this->title = $this->entries[0]->getTitle(); @@ -85,7 +85,7 @@ class EntriesExport public function updateAuthor($method) { if ('entry' !== $method) { - $this->author = $method . ' authors'; + $this->author = $method.' authors'; return $this; } @@ -109,7 +109,7 @@ class EntriesExport */ public function exportAs($format) { - $functionName = 'produce' . ucfirst($format); + $functionName = 'produce'.ucfirst($format); if (method_exists($this, $functionName)) { return $this->$functionName(); } @@ -134,12 +134,12 @@ class EntriesExport */ $content_start = "\n" - . "\n" - . '' - . "\n" - . "wallabag articles book\n" - . "\n" - . "\n"; + ."\n" + .'' + ."\n" + ."wallabag articles book\n" + ."\n" + ."\n"; $bookEnd = "\n\n"; @@ -188,10 +188,10 @@ class EntriesExport // in filenames, we limit to A-z/0-9 $filename = preg_replace('/[^A-Za-z0-9\-]/', '', $entry->getTitle()); - $titlepage = $content_start . "

".$entry->getTitle()."

" . $this->getExportInformation('PHPePub') . $bookEnd; - $book->addChapter("Title", 'Title.html', $titlepage, true, EPub::EXTERNAL_REF_ADD); - $chapter = $content_start . $entry->getContent() . $bookEnd; - $book->addChapter($entry->getTitle(), htmlspecialchars($filename) . '.html', $chapter, true, EPub::EXTERNAL_REF_ADD); + $titlepage = $content_start.'

'.$entry->getTitle().'

'.$this->getExportInformation('PHPePub').$bookEnd; + $book->addChapter('Title', 'Title.html', $titlepage, true, EPub::EXTERNAL_REF_ADD); + $chapter = $content_start.$entry->getContent().$bookEnd; + $book->addChapter($entry->getTitle(), htmlspecialchars($filename).'.html', $chapter, true, EPub::EXTERNAL_REF_ADD); } $book->buildTOC(); @@ -202,7 +202,7 @@ class EntriesExport [ 'Content-Description' => 'File Transfer', 'Content-type' => 'application/epub+zip', - 'Content-Disposition' => 'attachment; filename="' . $this->title . '.epub"', + 'Content-Disposition' => 'attachment; filename="'.$this->title.'.epub"', 'Content-Transfer-Encoding' => 'binary', ] ); @@ -254,7 +254,7 @@ class EntriesExport 'Accept-Ranges' => 'bytes', 'Content-Description' => 'File Transfer', 'Content-type' => 'application/x-mobipocket-ebook', - 'Content-Disposition' => 'attachment; filename="' . $this->title . '.mobi"', + 'Content-Disposition' => 'attachment; filename="'.$this->title.'.mobi"', 'Content-Transfer-Encoding' => 'binary', ] ); @@ -282,7 +282,7 @@ class EntriesExport * Front page */ $pdf->AddPage(); - $intro = '

' . $this->title . '

' . $this->getExportInformation('tcpdf'); + $intro = '

'.$this->title.'

'.$this->getExportInformation('tcpdf'); $pdf->writeHTMLCell(0, 0, '', '', $intro, 0, 1, 0, true, '', true); @@ -295,7 +295,7 @@ class EntriesExport } $pdf->AddPage(); - $html = '

' . $entry->getTitle() . '

'; + $html = '

'.$entry->getTitle().'

'; $html .= $entry->getContent(); $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); @@ -310,7 +310,7 @@ class EntriesExport [ 'Content-Description' => 'File Transfer', 'Content-type' => 'application/pdf', - 'Content-Disposition' => 'attachment; filename="' . $this->title . '.pdf"', + 'Content-Disposition' => 'attachment; filename="'.$this->title.'.pdf"', 'Content-Transfer-Encoding' => 'binary', ] ); @@ -356,7 +356,7 @@ class EntriesExport 200, [ 'Content-type' => 'application/csv', - 'Content-Disposition' => 'attachment; filename="' . $this->title . '.csv"', + 'Content-Disposition' => 'attachment; filename="'.$this->title.'.csv"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -374,7 +374,7 @@ class EntriesExport 200, [ 'Content-type' => 'application/json', - 'Content-Disposition' => 'attachment; filename="' . $this->title . '.json"', + 'Content-Disposition' => 'attachment; filename="'.$this->title.'.json"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -392,7 +392,7 @@ class EntriesExport 200, [ 'Content-type' => 'application/xml', - 'Content-Disposition' => 'attachment; filename="' . $this->title . '.xml"', + 'Content-Disposition' => 'attachment; filename="'.$this->title.'.xml"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -408,7 +408,7 @@ class EntriesExport $content = ''; $bar = str_repeat('=', 100); foreach ($this->entries as $entry) { - $content .= "\n\n" . $bar . "\n\n" . $entry->getTitle() . "\n\n" . $bar . "\n\n"; + $content .= "\n\n".$bar."\n\n".$entry->getTitle()."\n\n".$bar."\n\n"; $html = new Html2Text($entry->getContent(), ['do_links' => 'none', 'width' => 100]); $content .= $html->getText(); } @@ -418,7 +418,7 @@ class EntriesExport 200, [ 'Content-type' => 'text/plain', - 'Content-Disposition' => 'attachment; filename="' . $this->title . '.txt"', + 'Content-Disposition' => 'attachment; filename="'.$this->title.'.txt"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -456,7 +456,7 @@ class EntriesExport ]); if ('tcpdf' === $type) { - return str_replace('%IMAGE%', '', $info); + return str_replace('%IMAGE%', '', $info); } return str_replace('%IMAGE%', '', $info); From 15a6402f758b050d8019c32a59617115421b6bca Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Sat, 28 Oct 2017 20:16:43 +0200 Subject: [PATCH 4/4] Properly run php-cs-fixer --- .../CoreBundle/Helper/EntriesExport.php | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index bd11b4b8d..136f66f52 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -64,7 +64,7 @@ class EntriesExport */ public function updateTitle($method) { - $this->title = $method.' articles'; + $this->title = $method . ' articles'; if ('entry' === $method) { $this->title = $this->entries[0]->getTitle(); @@ -85,7 +85,7 @@ class EntriesExport public function updateAuthor($method) { if ('entry' !== $method) { - $this->author = $method.' authors'; + $this->author = $method . ' authors'; return $this; } @@ -109,7 +109,7 @@ class EntriesExport */ public function exportAs($format) { - $functionName = 'produce'.ucfirst($format); + $functionName = 'produce' . ucfirst($format); if (method_exists($this, $functionName)) { return $this->$functionName(); } @@ -134,12 +134,12 @@ class EntriesExport */ $content_start = "\n" - ."\n" - .'' - ."\n" - ."wallabag articles book\n" - ."\n" - ."\n"; + . "\n" + . '' + . "\n" + . "wallabag articles book\n" + . "\n" + . "\n"; $bookEnd = "\n\n"; @@ -188,10 +188,10 @@ class EntriesExport // in filenames, we limit to A-z/0-9 $filename = preg_replace('/[^A-Za-z0-9\-]/', '', $entry->getTitle()); - $titlepage = $content_start.'

'.$entry->getTitle().'

'.$this->getExportInformation('PHPePub').$bookEnd; + $titlepage = $content_start . '

' . $entry->getTitle() . '

' . $this->getExportInformation('PHPePub') . $bookEnd; $book->addChapter('Title', 'Title.html', $titlepage, true, EPub::EXTERNAL_REF_ADD); - $chapter = $content_start.$entry->getContent().$bookEnd; - $book->addChapter($entry->getTitle(), htmlspecialchars($filename).'.html', $chapter, true, EPub::EXTERNAL_REF_ADD); + $chapter = $content_start . $entry->getContent() . $bookEnd; + $book->addChapter($entry->getTitle(), htmlspecialchars($filename) . '.html', $chapter, true, EPub::EXTERNAL_REF_ADD); } $book->buildTOC(); @@ -202,7 +202,7 @@ class EntriesExport [ 'Content-Description' => 'File Transfer', 'Content-type' => 'application/epub+zip', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.epub"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.epub"', 'Content-Transfer-Encoding' => 'binary', ] ); @@ -254,7 +254,7 @@ class EntriesExport 'Accept-Ranges' => 'bytes', 'Content-Description' => 'File Transfer', 'Content-type' => 'application/x-mobipocket-ebook', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.mobi"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.mobi"', 'Content-Transfer-Encoding' => 'binary', ] ); @@ -282,7 +282,7 @@ class EntriesExport * Front page */ $pdf->AddPage(); - $intro = '

'.$this->title.'

'.$this->getExportInformation('tcpdf'); + $intro = '

' . $this->title . '

' . $this->getExportInformation('tcpdf'); $pdf->writeHTMLCell(0, 0, '', '', $intro, 0, 1, 0, true, '', true); @@ -295,7 +295,7 @@ class EntriesExport } $pdf->AddPage(); - $html = '

'.$entry->getTitle().'

'; + $html = '

' . $entry->getTitle() . '

'; $html .= $entry->getContent(); $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); @@ -310,7 +310,7 @@ class EntriesExport [ 'Content-Description' => 'File Transfer', 'Content-type' => 'application/pdf', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.pdf"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.pdf"', 'Content-Transfer-Encoding' => 'binary', ] ); @@ -356,7 +356,7 @@ class EntriesExport 200, [ 'Content-type' => 'application/csv', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.csv"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.csv"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -374,7 +374,7 @@ class EntriesExport 200, [ 'Content-type' => 'application/json', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.json"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.json"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -392,7 +392,7 @@ class EntriesExport 200, [ 'Content-type' => 'application/xml', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.xml"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.xml"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -408,7 +408,7 @@ class EntriesExport $content = ''; $bar = str_repeat('=', 100); foreach ($this->entries as $entry) { - $content .= "\n\n".$bar."\n\n".$entry->getTitle()."\n\n".$bar."\n\n"; + $content .= "\n\n" . $bar . "\n\n" . $entry->getTitle() . "\n\n" . $bar . "\n\n"; $html = new Html2Text($entry->getContent(), ['do_links' => 'none', 'width' => 100]); $content .= $html->getText(); } @@ -418,7 +418,7 @@ class EntriesExport 200, [ 'Content-type' => 'text/plain', - 'Content-Disposition' => 'attachment; filename="'.$this->title.'.txt"', + 'Content-Disposition' => 'attachment; filename="' . $this->title . '.txt"', 'Content-Transfer-Encoding' => 'UTF-8', ] ); @@ -456,7 +456,7 @@ class EntriesExport ]); if ('tcpdf' === $type) { - return str_replace('%IMAGE%', '', $info); + return str_replace('%IMAGE%', '', $info); } return str_replace('%IMAGE%', '', $info);