File "pipe.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/contact-form-7/includes/pipe.php
File size: 2 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?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($input)
    {
        $input_canonical = wpcf7_canonicalize($input, array('strto' => 'as-is'));
        foreach ($this->pipes as $pipe) {
            list($before, $after) = array_map(function ($item) {
                return wpcf7_canonicalize($item, array('strto' => 'as-is'));
            }, array($pipe->before, $pipe->after));
            if ($input_canonical === $before) {
                return $after;
            }
        }
        return $input;
    }
    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)];
    }
    public function to_array()
    {
        return array_map(function (WPCF7_Pipe $pipe) {
            return array($pipe->before, $pipe->after);
        }, $this->pipes);
    }
}