/[cvs]/nfo/php/libs/net.php.smarty/plugins/block.textformat.php
ViewVC logotype

Annotation of /nfo/php/libs/net.php.smarty/plugins/block.textformat.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Thu Dec 19 16:40:20 2002 UTC (21 years, 7 months ago) by joko
Branch: MAIN
+ updated to version 2.3.1

1 joko 1.1 <?php
2    
3     /*
4     * Smarty plugin
5     * -------------------------------------------------------------
6     * Type: block function
7     * Name: textformat
8     * Purpose: format text a certain way with preset styles
9     * or custom wrap/indent settings
10     * Params: style: string (email)
11     * indent: integer (0)
12     * wrap: integer (80)
13     * wrap_char string ("\n")
14     * indent_char: string (" ")
15     * wrap_boundary: boolean (true)
16     * -------------------------------------------------------------
17     */
18     function smarty_block_textformat($params, $content, &$this)
19     {
20     $style = null;
21     $indent = 0;
22     $indent_first = 0;
23     $indent_char = ' ';
24     $wrap = 80;
25     $wrap_char = "\n";
26     $wrap_cut = false;
27     $assign = null;
28    
29     if($content == null) {
30     return true;
31     }
32    
33     extract($params);
34    
35     if($style == 'email') {
36     $wrap = 72;
37     }
38    
39     // split into paragraphs
40     $paragraphs = preg_split('![\r\n][\r\n]!',$content);
41    
42     foreach($paragraphs as $paragraph) {
43     if($paragraph == '') {
44     continue;
45     }
46     // convert mult. spaces & special chars to single space
47     $paragraph = preg_replace(array('!\s+!','!(^\s+)|(\s+$)!'),array(' ',''),$paragraph);
48     // indent first line
49     if($indent_first > 0) {
50     $paragraph = str_repeat($indent_char,$indent_first) . $paragraph;
51     }
52     // wordwrap sentences
53     $paragraph = wordwrap($paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
54     // indent lines
55     if($indent > 0) {
56     $paragraph = preg_replace('!^!m',str_repeat($indent_char,$indent),$paragraph);
57     }
58     $output .= $paragraph . $wrap_char . $wrap_char;
59     }
60    
61     if($assign != null) {
62     $this->assign($assign,$output);
63     } else {
64     echo $output;
65     }
66     //echo $content;
67     }
68    
69     /* vim: set expandtab: */
70    
71     ?>

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed