public function filter_comment_content_out($content, $comment)
 {
     if ($this->should_pee('C-' . $comment->typename)) {
         $content = Format::autop($content);
     }
     return $content;
 }
Esempio n. 2
0
 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));
     }
 }
Esempio n. 3
0
	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'] ) ) )
				)
			);
		}
	}
Esempio n. 4
0
 /**
  * @dataProvider autopDataProvider
  */
 public function testAutop($in, $out)
 {
     $this->assertEquals(trim($out), trim(Format::autop($in)));
 }
Esempio n. 5
0
<?php

require dirname(__FILE__) . '../../../../../habari-trunk/htdocs/system/classes/format.php';
echo Format::autop(file_get_contents($_SERVER['argv'][1]));
Esempio n. 6
0
 /**
  * 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');
 }
Esempio n. 7
0
 /**
  * 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;
 }
Esempio n. 8
0
 /**
  * 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;
 }
Esempio n. 9
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');
 }
Esempio n. 10
0
 /**
  * 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;
 }