public function filter_comment_content_out($content, $comment) { if ($this->should_pee('C-' . $comment->typename)) { $content = Format::autop($content); } return $content; }
public function test_autop() { $data = $this->autop_data_provider(); foreach ($data as $index => $datum) { $result = trim($datum['want']) === trim(Format::autop($datum['in'])) ? true : false; if (!$result) { $this->output(sprintf('<h2>Test %s</h2><br><strong>Input:</strong><br><textarea>%s</textarea><br><strong>Expected:</strong><br><textarea>%s</textarea><br><strong>Got:</strong><br><textarea>%s</textarea>', $index, Utils::htmlspecialchars($datum['in']), Utils::htmlspecialchars($datum['want']), Utils::htmlspecialchars(Format::autop($datum['in'])))); } $this->assert_true($result, sprintf("Output does not match desired output in %s", $index)); } }
public function test_autop() { $data = $this->autop_data_provider(); foreach( $data as $index => $datum ) { $this->assert_equal( trim( $datum['want'] ), trim( Format::autop( $datum['in'] ) ), sprintf( 'Test %d<br><strong>Expected:</strong><br>%s<br><strong>Got:</strong><br> %s', $index, nl2br( Utils::htmlspecialchars( $datum['want'] ) ), nl2br( Utils::htmlspecialchars( Format::autop( $datum['in'] ) ) ) ) ); } }
/** * @dataProvider autopDataProvider */ public function testAutop($in, $out) { $this->assertEquals(trim($out), trim(Format::autop($in))); }
<?php require dirname(__FILE__) . '../../../../../habari-trunk/htdocs/system/classes/format.php'; echo Format::autop(file_get_contents($_SERVER['argv'][1]));
/** * Assigns output code to the template variables * @param Theme $theme The theme that will display the template */ function theme_colophon($theme) { $theme->colophon_text = Format::autop(Options::get('colophon__text')); $theme->colophon_title = Options::get('colophon__title'); return $theme->fetch('colophon'); }
/** * Add posts as items in the provided xml structure * @param SimpleXMLElement $xml The document to add to * @param array $posts An array of Posts to add to the XML * @return SimpleXMLElement The resultant XML with added posts * * @TODO replace post podcast markers with a url */ public function add_posts($xml, $posts, $feed_name) { $items = $xml->channel; foreach ($posts as $post) { if ($post instanceof Post) { // remove Podpress detritus $content = preg_replace('%\\[display_podcast\\]%', '', $post->content); // eliminate podcast links from feed preg_match_all('%<a href="(.*)(" rel="enclosure">)(.*)</a>%i', $content, $matches); $count = count($matches[1]); for ($i = 0; $i < $count; $i++) { $content = str_ireplace($matches[0][$i], '', $content); } $item = $items->addChild('item'); $title = $item->addChild('title', $post->title); $link = $item->addChild('link', $post->permalink); $description = $item->addChild('description', Format::autop($content)); $pubdate = $item->addChild('pubDate', $post->pubdate->format('r')); $guid = $item->addChild('guid', $post->guid); $guid->addAttribute('isPermaLink', 'false'); extract((array) $post->info->{$feed_name}); // create a url $episode = URL::get('podcast_media', array('podcast_name' => $feed_name, 'post_name' => $post->slug, 'method' => 'feed', 'filename' => rawurlencode(basename($enclosure)))); $itunes_enclosure = $item->addChild('enclosure'); $itunes_enclosure->addAttribute('url', $episode); $itunes_enclosure->addAttribute('length', $size); $itunes_enclosure->addAttribute('type', 'audio/mpeg'); $itunes_author = $item->addChild('xmlns:itunes:author', $post->author->displayname); $itunes_subtitle = $item->addChild('xmlns:itunes:subtitle', $subtitle); $itunes_summary = $item->addChild('xmlns:itunes:summary', $summary); $itunes_duration = $item->addChild('xmlns:itunes:duration', $duration); $itunes_explicit = $item->addChild('xmlns:itunes:explicit', $rating); if (count($post->tags)) { $itunes_keywords = $item->addChild('xmlns:itunes:keywords', implode(', ', (array) $post->tags)); } $itunes_block = $item->addChild('xmlns:itunes:block', $block ? 'Yes' : 'No'); Plugins::act('podcast_add_post', $item, $post); } } return $xml; }
/** * Modify the publish form to include the iTunes settings for * a specific post * * @param FormUI $form The form being modified * @param Post $post The post being edited * @param string $feed The name of the feed for which the form is being modified * */ protected function post_itunes_form($form, $post, $feed) { $postfields = $form->publish_controls->enclosures; if (isset($post->info->{$feed})) { $options = $post->info->{$feed}; } $control_id = md5($feed); $fieldname = "{$control_id}_player_settings"; $player = $postfields->append('fieldset', $fieldname, _t('Display Settings')); $player->class = 'podcast-settings'; $fieldname = "show_player_{$control_id}"; $field = $player->append('checkbox', $fieldname, 'null:null', _t('Show player instead of link', 'podcast'), 'tabcontrol_checkbox'); $field->value = isset($options['show_player']) ? $options['show_player'] : TRUE; $fieldname = "show_download_{$control_id}"; $field = $player->append('checkbox', $fieldname, 'null:null', _t('Show download link under player', 'podcast'), 'tabcontrol_checkbox'); $field->value = isset($options['show_download']) ? $options['show_download'] : TRUE; $fieldname = "{$control_id}_settings"; $feed_fields = $postfields->append('fieldset', $fieldname, _t('Settings for ', 'podcast') . $feed); $feed_fields->class = 'podcast-settings'; $fieldname = "enclosure_{$control_id}"; $customfield = $feed_fields->append('text', $fieldname, 'null:null', _t('Podcast Enclosure * :', 'podcast'), 'tabcontrol_text'); $customfield->value = isset($options['enclosure']) ? $options['enclosure'] : ''; $customfield->add_validator('validate_required'); $fieldname = "subtitle_{$control_id}"; $customfield = $feed_fields->append('text', $fieldname, 'null:null', _t('Subtitle:', 'podcast'), 'tabcontrol_text'); $customfield->value = isset($options['subtitle']) ? $options['subtitle'] : ''; $fieldname = "explicit_{$control_id}"; $customfield = $feed_fields->append('select', $fieldname, 'null:null', _t('Content Rating:', 'podcast')); $customfield->template = 'tabcontrol_select'; $customfield->options = $this->itunes_rating; $customfield->value = isset($options['rating']) ? $this->itunes_rating[array_search($options['rating'], $this->itunes_rating)] : $this->itunes_rating['No']; $fieldname = "summary_{$control_id}"; $customfield = $feed_fields->append('textarea', $fieldname, 'null:null', _t('Summary:', 'podcast'), 'tabcontrol_textarea'); $customfield->value = isset($options['summary']) ? $options['summary'] : strip_tags(Format::summarize(Format::autop($post->content))); $fieldname = "block_{$control_id}"; $customfield = $feed_fields->append('checkbox', $fieldname, 'null:null', _t('Block:', 'podcast'), 'tabcontrol_checkbox'); $customfield->value = isset($options['block']) ? $options['block'] : 0; }
/** * Assigns output code to the template variables * @param Theme $theme The theme that will display the template */ function action_add_template_vars($theme) { $theme->colophon = Format::autop(Options::get('colophon:colophon_text')); $theme->colophon_title = Options::get('colophon:colophon_title'); }
/** * Get the text associated to an info xml node, possibly using an href parameter * @param string $filename The filename of the xml file * @param \SimpleXMLElement $node The text node with value children to sift through * @return mixed|string The result text */ public static function get_xml_text($filename, \SimpleXMLElement $node) { $values = $node->xpath('value[not(@lang)]'); $value = reset($values); $filename = (string) $filename; if ($value['href']) { $href = dirname($filename) . '/' . str_replace('..', '', $value['href']); if (file_exists($href)) { $initial = file_get_contents($href); $result = Plugins::filter('get_xml_text', $initial, $filename); if ($initial == $result) { $result = Format::autop($initial); } return $result; } } return (string) $value; }