Exemple #1
0
 /**
  * Test strip html
  */
 public function testStripHtml()
 {
     $this->assertEquals("foo\nbar", String::stripHtml('foo<br />bar'));
     $this->assertRegExp("/^foo\n-{3,}\nbar\$/", String::stripHtml('foo<hr noshade />bar'));
     $this->assertRegExp("/^foo ?bar[ \n]?\$/", String::stripHtml('foo<script type="x">xxx</script>bar<style type="y">yyy</style>'));
     $this->assertEquals("foo\nbar", String::stripHtml('<p>foo</p><div>bar</div>'));
     $this->assertEquals("foo & bar\nbaz", String::stripHtml(" foo \t & bar \n\r baz\n "));
 }
Exemple #2
0
 /**
  * @return  string
  */
 public function getRepresentedTextContent()
 {
     $parts = array();
     if (!empty($this->title)) {
         $parts[] = $this->title;
     }
     if (!empty($this->leadText)) {
         $parts[] = String::stripHtml($this->leadText);
     }
     if (!empty($this->metaDescription)) {
         $parts[] = $this->metaDescription;
     }
     return implode("\n\n", $parts) ?: null;
 }
Exemple #3
0
 /**
  * Set the message body
  *
  * @param   null|string|\Zend\Mime\Message|\Traversable|array   $body
  * @param   bool                                                $generateText
  * @param   bool                                                $alternative
  * @throws  \Zend\Mail\Exception\InvalidArgumentException
  * @return  \Zork\Mail\Message
  */
 public function setBody($body, $generateText = true, $alternative = true)
 {
     static $mimeAliases = array('text' => Mime\Mime::TYPE_TEXT, 'html' => Mime\Mime::TYPE_HTML, 'alternative' => Mime\Mime::MULTIPART_ALTERNATIVE, 'mixed' => Mime\Mime::MULTIPART_MIXED, 'related' => Mime\Mime::MULTIPART_RELATED);
     if ($body !== null) {
         if (is_scalar($body)) {
             $body = array('text/html' => (string) $body);
         }
         if (!$body instanceof Mime\Message) {
             $message = new Mime\Message();
             if ($body instanceof Mime\Part) {
                 if (empty($body->charset)) {
                     $body->charset = $this->getEncoding();
                 }
                 $message->addPart($body);
             } else {
                 foreach ($body as $type => $content) {
                     if (isset($mimeAliases[$type])) {
                         $type = $mimeAliases[$type];
                     }
                     if ($content instanceof Mime\Message) {
                         /* @var $content \Zend\Mime\Message */
                         if ($content->isMultiPart()) {
                             $mime = $content->getMime();
                             $part = new Mime\Part($content->generateMessage(Headers::EOL));
                             if (!preg_match('#^multipart/#', $type)) {
                                 $type = Mime\Mime::MULTIPART_MIXED;
                             }
                             $part->type = $type;
                             $part->boundary = $mime->boundary();
                         } else {
                             $parts = $content->getParts();
                             $part = reset($parts);
                         }
                     } else {
                         if ($content instanceof Mime\Part) {
                             /* @var $content \Zend\Mime\Part */
                             $part = $content;
                         } else {
                             $part = new Mime\Part($content);
                             $part->type = $type;
                             $part->charset = $this->getEncoding();
                         }
                     }
                     if (empty($part->type)) {
                         $part->type = $type;
                     }
                     if (empty($part->charset)) {
                         $part->charset = $this->getEncoding();
                     }
                     $message->addPart($part);
                 }
             }
             $body = $message;
         }
         /* @var $body \Zend\Mime\Message */
         $partHtml = null;
         $partText = null;
         $parts = $body->getParts();
         foreach ($parts as $part) {
             /* @var $part \Zend\Mime\Part */
             switch ($part->type) {
                 case Mime\Mime::TYPE_HTML:
                     $partHtml = $part;
                     break;
                 case Mime\Mime::TYPE_TEXT:
                     $partText = $part;
                     break;
             }
         }
         if ($generateText && empty($partText) && !empty($partHtml)) {
             $partText = new Mime\Part(String::stripHtml($partHtml->getContent(Headers::EOL), $this->getEncoding()));
             $partText->type = Mime\Mime::TYPE_TEXT;
             $partText->charset = $this->getEncoding();
             array_unshift($parts, $partText);
             $body->setParts($parts);
         }
     }
     parent::setBody($body);
     if ($alternative && $body instanceof Mime\Message && $body->isMultiPart()) {
         $this->getHeaderByName('content-type', 'Zend\\Mail\\Header\\ContentType')->setType(Mime\Mime::MULTIPART_ALTERNATIVE)->addParameter('boundary', $body->getMime()->boundary());
     }
     return $this;
 }
Exemple #4
0
 /**
  * @return  string
  */
 public function getRepresentedTextContent()
 {
     return String::stripHtml($this->getRootText()) ?: null;
 }
Exemple #5
0
 /**
  * @return  string
  */
 public function getRepresentedTextContent()
 {
     return empty($this->caption) ? $this->alternate : String::stripHtml($this->caption);
 }