Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function dirtysuds_content_taggedtext(){
- $allowed_taggedtext_tags = array(
- 'p' => array(),
- 'br' => array(),
- 'b' => array(),
- 'strong' => array(),
- 'i' => array(),
- 'em' => array(),
- 'li' => array(),
- 'span' => array()
- );
- $html_tags = array(
- '/&(#60|lt);/',
- '/&(#62|gt);/',
- '/=/',
- '/[\n\r\f]+/',
- '/&#[xX]([0-9]{4})\;/',
- '/&#([0-9]+)\;/e',
- '/([\n\r\f]*<p>|<br[\s\/]*>[\s\t\n\r\f]+|[\s\t]*[\n\r\f]+[\s\t]*)/',
- '/<[\/\s]*br[\/\s]*>/',
- '/(<b>|<strong>)/',
- '/(<i>|<em>)/',
- '/<li>/',
- '/<\/li>/',
- '/<[\/]*(\!|span|p|a)>/',
- '/<\/[^\>]+>/',
- '/&(#60|lt);/',
- '/=/',
- '/&(#62|gt);/',
- '/([\ ]| )+/',
- '/[\t]+[\ \t]*/',
- '/[\n\r\f]+/',
- '/\xc4([\x81-\xff])/e',
- '/\xc5([\x41-\xff])/e',
- );
- $tagged_tags = array(
- '<',
- '>',
- '&',
- chr(10),
- '<0x$1>',
- "'<0x'.str_pad(dechex($1),4,'0',STR_PAD_LEFT).'>'",
- "\x0a<pstyle:NormalParagraphStyle>",
- '<0x000A>',
- '<ct:Bold>',
- '<ct:Italic>',
- '<bnlt:Bullet>',
- '<bnlt:>',
- '',
- '<ct:>',
- '\\<',
- chr(97),
- '\\>',
- ' ',
- chr(9),
- chr(10),
- "'<0x'.str_pad(dechex(ord($1) + 128),4,'0',STR_PAD_LEFT).'>'",
- "'<0x'.str_pad(dechex(ord($1) + 192),4,'0',STR_PAD_LEFT).'>'",
- );
- remove_all_filters('loop_end');
- function spacing() {
- echo "<br/>";
- }
- function photo_credit()
- {
- echo "Photo credit: ";
- }
- function photo_caption()
- {
- echo "Cutline: ";
- }
- function suggested_headline() {
- echo "Suggested Headline: ";
- }
- function by() {
- echo "By ";
- }
- // $content = photo_credit();
- // $content = spacing();
- // $content = photo_caption();
- // $content = spacing();
- $content = suggested_headline();
- $content = the_title();
- $content = spacing();
- $content = by();
- $content = the_author();
- $content = get_the_content();
- $content = strip_shortcodes($content);
- // Change double line-breaks in the text into HTML paragraphs
- $content = wpautop($content);
- // Strip all HTML except for $allowed_taggedtext_tags
- $content = wp_kses($content,$allowed_taggedtext_tags);
- // Add Smart Quotes
- $content = wptexturize($content);
- $content = trim($content);
- //Convert special characters to HTML entities
- $content = mb_convert_encoding($content,'UTF-8',get_bloginfo('charset'));
- $content = htmlentities($content, ENT_QUOTES, 'UTF-8', false);
- $content = preg_replace($html_tags,$tagged_tags,$content);
- $countHtmlNamedEntities = preg_match_all("/\&[a-zA-Z]+;/",$content,$htmlNamedEntities);
- for ($i=0;$i<$countHtmlNamedEntities;$i++)
- $content = str_replace(
- $htmlNamedEntities[0][$i],
- '<0x'.str_pad(dechex(ord(html_entity_decode($htmlNamedEntities[0][$i]))),4,'0',STR_PAD_LEFT).'>',
- $content
- );
- // Some characters did not transcode well
- // We will replace them with blocks, so it is obvious that characters are missing
- $content = strtr(
- $content,
- array(
- '<0x00ff>' => '<0x2588>',
- '<0x0026>' => '<0x2588>',
- )
- );
- $content = trim($content);
- return $content;
- }
- while ( have_posts() ) : the_post();
- // We don't want any optimization plugins mistaking our output for HTML. Let's turn them off.
- ob_end_clean();
- // We don't want the browser to render the file, only download it. Let's call it a binary file
- header('Content-type: binary/text; charset=utf-8');
- // We need to give the file some sort of name. In this case, the author's last name and the title of the story
- // Don't forget to strip the spaces out. This makes it more compatible cross browser
- header('Content-Disposition: filename='.preg_replace("/[^a-zA-Z0-9\-_]/", "",get_the_author_lastname().'-'.str_replace(' ','_',basename(get_permalink()))).'.txt;');
- ?><ANSI-MAC>
- <vsn:7><fset:InDesign-Roman><ctable:=<Black:COLOR:CMYK:Process:0,0,0,1>>
- <dps:NormalParagraphStyle=<Nextstyle:NormalParagraphStyle><cs:10.000000><cl:11.000000><ptr:18\,Left\,.\,0\,\;><cf:Times New Roman>><?php
- echo dirtysuds_content_taggedtext();
- endwhile;
- exit();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement