1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
<?php
class WPCF7_Pipe {
public $before = ''; public $after = '';
public function __construct( $text ) { $text = (string) $text;
$pipe_pos = strpos( $text, '|' );
if ( false === $pipe_pos ) { $this->before = $this->after = trim( $text ); } else { $this->before = trim( substr( $text, 0, $pipe_pos ) ); $this->after = trim( substr( $text, $pipe_pos + 1 ) ); } } }
class WPCF7_Pipes {
private $pipes = array();
public function __construct( array $texts ) { foreach ( $texts as $text ) { $this->add_pipe( $text ); } }
private function add_pipe( $text ) { $pipe = new WPCF7_Pipe( $text ); $this->pipes[] = $pipe; }
public function do_pipe( $before ) { foreach ( $this->pipes as $pipe ) { if ( $pipe->before == $before ) { return $pipe->after; } }
return $before; }
public function collect_befores() { $befores = array();
foreach ( $this->pipes as $pipe ) { $befores[] = $pipe->before; }
return $befores; }
public function collect_afters() { $afters = array();
foreach ( $this->pipes as $pipe ) { $afters[] = $pipe->after; }
return $afters; }
public function zero() { return empty( $this->pipes ); }
public function random_pipe() { if ( $this->zero() ) return null;
return $this->pipes[array_rand( $this->pipes )]; } }
?>
|