OnlineEvent.php 1.8 KB
<?php
namespace MyMailer;

class OnlineEvent extends Event{

    private $props = array();
    private static $instance;

    public static function getInstance(){
        if(empty(self::$instance)){
            self::$instance = new  OnlineEvent();
        }
        return self::$instance;
    }

    public function replaceData($target, $replacement, $str)
    {
        $text = str_replace($target, $replacement, $str);
        return $text;
    }

    public function itemSet($template, $data){
        $num = count($data);

        for($i=0; $i<$num; $i++){
            foreach($data[$i] as $k => $v){

                $target = '{{item_'.$i.'_'.$k.'}}';
                $replacement = $v;
                $template['text'] = $this->replaceData($target, $replacement, $template['text']);

            }
        }

        return $template['text'];

    }

    public function dataSet($text, $data){

        foreach($data as $k => $v){

            $target = '{{'.$k.'}}';
            $replacement = $v;
            $text = $this->replaceData($target, $replacement, $text);

        }


        return $text;

    }

    public function itemDynamicSet($template, $data){

        $num = count($data);
        $contentText = '';
        for($i=0; $i<$num; $i++){
            $contentTextOneBlock = $template['dynamic_content'];
            foreach($data[$i] as $k => $v){

                $target = '{{item_'.$k.'}}';
                print "target = '{{item_'.$k.'}}'" ;
                $replacement = $v;
                print "replacement = $v" ;
                $contentTextOneBlock = $this->replaceData($target, $replacement, $contentTextOneBlock);

            }
            $contentText .= $contentTextOneBlock;
        }

        $template = $template['header']. $contentText .$template['footer'];


        return $template;

    }


}