X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FHelper%2FEntriesExport.php;h=838b97342eb171ed8ee671f75b70549720e7ee32;hb=78b36d4dbeedd60c5aa25dbd30a2a2d41a658f94;hp=d749dcf91adc422a832ec207bed4362af4085f80;hpb=07320a2bd25c6ace1f9b1aa06b1b08e8dbf4f4fa;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index d749dcf9..838b9734 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php @@ -2,12 +2,13 @@ namespace Wallabag\CoreBundle\Helper; -use JMS\Serializer; +use Html2Text\Html2Text; use JMS\Serializer\SerializationContext; use JMS\Serializer\SerializerBuilder; use PHPePub\Core\EPub; use PHPePub\Core\Structure\OPF\DublinCore; use Symfony\Component\HttpFoundation\Response; +use Wallabag\CoreBundle\Entity\Entry; /** * This class doesn't have unit test BUT it's fully covered by a functional test with ExportControllerTest. @@ -73,7 +74,9 @@ class EntriesExport } /** - * Sets the author for just one entry. + * Sets the author for one entry or category. + * + * The publishers are used, or the domain name if empty. * * @param string $method Method to get articles * @@ -81,10 +84,17 @@ class EntriesExport */ public function updateAuthor($method) { - $this->author = $method.' authors'; + if ('entry' !== $method) { + $this->author = $method . ' authors'; - if ('entry' === $method) { - $this->author = $this->entries[0]->getDomainName(); + return $this; + } + + $this->author = $this->entries[0]->getDomainName(); + + $publishedBy = $this->entries[0]->getPublishedBy(); + if (!empty($publishedBy)) { + $this->author = implode(', ', $publishedBy); } return $this; @@ -399,7 +409,8 @@ class EntriesExport $bar = str_repeat('=', 100); foreach ($this->entries as $entry) { $content .= "\n\n" . $bar . "\n\n" . $entry->getTitle() . "\n\n" . $bar . "\n\n"; - $content .= trim(preg_replace('/\s+/S', ' ', strip_tags($entry->getContent()))) . "\n\n"; + $html = new Html2Text($entry->getContent(), ['do_links' => 'none', 'width' => 100]); + $content .= $html->getText(); } return Response::create( @@ -418,7 +429,7 @@ class EntriesExport * * @param string $format * - * @return Serializer + * @return string */ private function prepareSerializingContent($format) {