/** * Returns the "$text" with all the Textile codes turned into HTML-tags, but * without the regular bounding <p> tag. */ function textilize_without_paragraph($text, $options = array()) { return preg_replace('/^<p([A-Za-z0-9& ;\\-=",\\/:\\.\']+)?>(.+)<\\/p>$/u', '\\2', TextHelper::textilize($text, $options)); }
function test_for_TextHelper() { require_once AK_LIB_DIR . DS . 'AkActionView' . DS . 'helpers' . DS . 'text_helper.php'; $text = new TextHelper(); $this->assertEqual($text->truncate('truncates the last ten characters', 10, '...'), 'truncates the...'); $this->assertEqual($text->highlight('I am highlighting the phrase', 'highlighting'), 'I am <strong class="highlight">highlighting</strong> the phrase'); $this->assertEqual($text->highlight('I am highlighting the phrase', array('highlighting', 'the')), 'I am <strong class="highlight">highlighting</strong> <strong class="highlight">the</strong> phrase'); $this->assertEqual($text->excerpt("hello my world", "my", 3), '...lo my wo...'); $this->assertEqual($text->excerpt("hello my world", "my", 5, '---'), '---ello my worl---'); $this->assertEqual($text->pluralize(0, 'Property', 'Properties'), 'Properties'); $this->assertEqual($text->pluralize(1, 'Property'), 'Property'); $this->assertEqual($text->pluralize(2, 'Property'), 'Properties'); $this->assertEqual($text->word_wrap('Wraps a string to a given number of characters', 20), "Wraps a string to a\ngiven number of\ncharacters"); $this->assertEqual($text->textilize('__Wraps__'), '<p><i>Wraps</i></p>'); $this->assertEqual($text->textilize('_Wraps_'), '<p><em>Wraps</em></p>'); $this->assertEqual($text->textilize('p[no]. paragraph'), '<p lang="no">paragraph</p>'); $this->assertEqual($text->textilize('h3{color:red}. header 3'), '<h3 style="color:red;">header 3</h3>'); $this->assertEqual($text->textilize_without_paragraph('__Wraps__'), '<i>Wraps</i>'); $this->assertEqual($text->textilize_without_paragraph('p[no]. paragraph'), 'paragraph'); require_once AK_LIB_DIR . DS . 'AkActionView' . DS . 'helpers' . DS . 'tag_helper.php'; $this->assertEqual($text->simple_format("Test\r\n"), "<p>Test\n</p>"); $this->assertEqual($text->simple_format("Test\n"), "<p>Test\n</p>"); $this->assertEqual($text->simple_format("Test\r"), "<p>Test\n</p>"); $this->assertEqual($text->simple_format("Test\n\nTest"), "<p>Test</p>\n<p>Test</p>"); $this->assertEqual($text->simple_format("Test\n\n"), "<p>Test</p><br /><br />"); $this->assertEqual($text->simple_format("Test\n\n\n\n\n\n"), "<p>Test</p><br /><br />"); $this->assertEqual($text->auto_link_email_addresses('sending an email to salavert@example.com and to hilario@example.com'), 'sending an email to <a href=\'mailto:salavert@example.com\'>salavert@example.com</a> and to <a href=\'mailto:hilario@example.com\'>hilario@example.com</a>'); $this->assertEqual($text->auto_link_email_addresses('salavert@@example.com'), 'salavert@@example.com'); $this->assertEqual($text->auto_link_email_addresses('email sent to salavert@example.c'), 'email sent to <a href=\'mailto:salavert@example.c\'>salavert@example.c</a>'); $this->assertEqual($text->auto_link_urls('http://www.thebigmover.com'), '<a href="http://www.thebigmover.com">http://www.thebigmover.com</a>'); $this->assertEqual($text->auto_link_urls('www.thebigmover.com'), '<a href="http://www.thebigmover.com">www.thebigmover.com</a>'); //$this->assertEqual($text->auto_link_urls('www.thebigmover.com nested www.thebigmover.com/search'),'<a href="http://www.thebigmover.com">www.thebigmover.com</a> nested <a href="http://www.thebigmover.com/search">www.thebigmover.com/search</a>');//, 'Failed auto_link_urls nested url'); $this->assertEqual($text->auto_link_urls('Visit http://www.thebigmover.com now'), 'Visit <a href="http://www.thebigmover.com">http://www.thebigmover.com</a> now'); $this->assertEqual($text->auto_link_urls('Visit http://www.thebigmover.com now and later http://www.akelos.com'), 'Visit <a href="http://www.thebigmover.com">http://www.thebigmover.com</a> now and later <a href="http://www.akelos.com">http://www.akelos.com</a>'); $this->assertEqual($text->strip_links('email sent to <a href=\'mailto:salavert@example.c\'>salavert@example.c</a>'), 'email sent to salavert@example.c'); $this->assertEqual($text->strip_links('sending an email to <a href="mailto:salavert@example.com">salavert@example.com</a> and to <a href="mailto:hilario@example.com">hilario@example.com</a>'), 'sending an email to salavert@example.com and to hilario@example.com'); //, 'Failed auto_link_email_addresses test'); $this->assertEqual($text->strip_selected_tags('sending <b>email</b> to <a href="mailto:salavert@example.com">salavert@example.com</a>', 'a', 'b'), 'sending email to salavert@example.com'); //, 'Failed auto_link_email_addresses test'); $this->assertEqual($text->strip_selected_tags('sending <b>email</b> to <a href="mailto:salavert@example.com">salavert@example.com</a>', array('a', 'b')), 'sending email to salavert@example.com'); //, 'Failed auto_link_email_addresses test'); $this->assertEqual($text->strip_selected_tags('sending <b>email</b> to <a href="mailto:salavert@example.com">salavert@example.com</a>', 'a'), 'sending <b>email</b> to salavert@example.com'); //, 'Failed auto_link_email_addresses test'); $this->assertEqual($text->auto_link('email sent to salavert@example.com from http://www.thebigmover.com', 'all'), 'email sent to <a href=\'mailto:salavert@example.com\'>salavert@example.com</a> from <a href="http://www.thebigmover.com">http://www.thebigmover.com</a>'); $this->assertEqual($text->auto_link('email sent to salavert@example.com', 'email_addresses'), 'email sent to <a href=\'mailto:salavert@example.com\'>salavert@example.com</a>'); $this->assertEqual($text->auto_link('email sent from http://www.thebigmover.com', 'urls'), 'email sent from <a href="http://www.thebigmover.com">http://www.thebigmover.com</a>'); $this->assertEqual($text->strip_tags('<a href="nowhere" onclick="javascript:alert(\'oops\');">link</a>'), 'link'); $this->assertEqual($text->markdown('> ## This is a header. > > 1. This is the first list item. > 2. This is the second list item. > > Here\'s some example code: > > return shell_exec("echo $input | $markdown_script");'), '<blockquote> <h2>This is a header.</h2> <ol> <li>This is the first list item.</li> <li>This is the second list item.</li> </ol> <p>Here\'s some example code:</p> <pre><code>return shell_exec("echo $input | $markdown_script"); </code></pre> </blockquote>'); }
public function convert() { require_once AK_LIB_DIR . DS . 'AkActionView' . DS . 'helpers' . DS . 'text_helper.php'; return TextHelper::textilize($this->source); }
function setMimeContents($options = array()) { require_once AK_LIB_DIR . DS . 'AkActionView' . DS . 'helpers' . DS . 'text_helper.php'; require_once AK_LIB_DIR . DS . 'AkActionView' . DS . 'helpers' . DS . 'asset_tag_helper.php'; $default_options = array('html' => TextHelper::textilize($this->body), 'text' => $this->body, 'attachments' => array(), 'embed_referenced_images' => AK_MAIL_EMBED_IMAGES_AUTOMATICALLY_ON_EMAILS); $options = array_merge($default_options, $options); if ($options['embed_referenced_images']) { list($html_images, $options['html']) = $this->_embedReferencedImages($options['html']); } require_once AK_CONTRIB_DIR . DS . 'pear' . DS . 'Mail' . DS . 'mime.php'; $this->Mime =& new Mail_mime(); $this->Mime->_build_params['text_encoding'] = '8bit'; $this->Mime->_build_params['html_charset'] = $this->Mime->_build_params['text_charset'] = $this->Mime->_build_params['head_charset'] = Ak::locale('charset'); $this->Mime->setTxtBody($options['text']); $this->Mime->setHtmlBody($options['html']); foreach ($html_images as $html_image) { $this->Mime->addHTMLImage(AK_CACHE_DIR . DS . 'tmp' . DS . $html_image, 'image/png'); } foreach ((array) $options['attachments'] as $attachment) { $this->Mime->addAttachment($attachment); } }