OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / include / lib / patTemplate / patTemplate / Modifier / Surround.php
1 <?PHP
2 /**
3  * patTemplate modfifier Surround
4  *
5  * $Id: Surround.php 440 2008-03-30 09:00:16Z fishbone $
6  *
7  * @package             patTemplate
8  * @subpackage  Modifiers
9  * @author              Stephan Schmidt <schst@php.net>
10  */
11
12 /**
13  * patTemplate modfifier Surround
14  *
15  * splits a text and surrunds each part by custom start and end strings
16  *
17  * Possible attributes are:
18  * - delimiter (string) 
19  * - start (string)
20  * - end (string)
21  * - keepdelimiter (yes|no) default: no
22  * - withfirst (yes|no) default: yes
23  * - withlast (yes|no) default: yes
24  *
25  * 
26  * @package             patTemplate
27  * @subpackage  Modifiers
28  * @author              gERD Schaufelberger <gerd@php-tools.net>
29  * @version             0.2
30  */
31 class patTemplate_Modifier_Surround extends patTemplate_Modifier
32 {
33    /**
34         * modify the value
35         *
36         * @access       public
37         * @param        string          value
38         * @return       string          modified value
39         */
40         function modify( $value, $params = array() )
41         {
42                 // set default values
43                 $delimiter      =       "\n";
44                 $start          =       '';
45                 $end            =       '';
46         
47                 // where to split
48         if( isset( $params['delimiter'] ) )
49                 {
50                         $delimiter      =       $params['delimiter'];
51                 }
52                 
53         if( isset( $params['start'] ) )
54                 {
55                         $start  =       $params['start'];
56                 }
57                 
58         if( isset( $params['end'] ) )
59                 {
60                         $end    =       $params['end'];
61                 }
62
63                 // append the delimiter?
64         if( isset( $params['keepdelimiter'] ) && $params['keepdelimiter'] === 'yes' )
65                 {
66                         $end    .=      $delimiter;
67                 }
68
69                 $split  =       explode( $delimiter, $value );
70                 $value  =       implode( $end . $start, $split );
71                 
72                 // add first?
73         if( !isset( $params['withfirst'] ) || $params['withfirst'] !== 'no' )
74                 {
75                         $value  =       $start . $value;
76                 }
77                 
78                 // add last?
79         if( !isset( $params['withlast'] ) || $params['withlast'] !== 'no' )
80                 {
81                         $value  .=      $end;
82                 }
83                 
84                 return $value;
85         }
86 }
87 ?>