Proyectos de Subversion LeadersLinked - Services

Rev

Rev 1 | Rev 182 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Library;
6
 
7
use Laminas\Db\Adapter\AdapterInterface;
8
 
9
use LeadersLinked\Model\EmailTemplate;
10
use LeadersLinked\Model\Email;
11
use LeadersLinked\Mapper\EmailMapper;
12
 
13
class QueueEmail
14
{
15
 
16
    /**
17
     *
18
     * @var AdapterInterface
19
     */
20
    private $adapter;
21
 
22
 
23
    /**
24
     *
25
     * @param AdapterInterface $adapter
26
     */
27
    public function __construct($adapter)
28
    {
29
        $this->adapter = $adapter;
30
    }
31
 
32
    /**
33
     *
34
     * @param EmailTemplate $emailTemplate
35
     * @param array $arrayCont
36
     * @param string $to_address
37
     * @param string $to_name
38
     * @return boolean
39
     */
40
    public function processEmailTemplate($emailTemplate, $arrayCont, $to_address, $to_name)
41
    {
42
 
43
        $subject = trim(stripslashes($emailTemplate->subject));
44
        $message = trim(stripslashes($emailTemplate->content));
45
 
46
 
47
 
48
        foreach($arrayCont as $key => $val)
49
        {
156 efrain 50
 
51
            if('link' == $key) {
52
 
53
 
54
                $from_hostname = empty($_SERVER['HTTP_HOST']) ?  '' : $_SERVER['HTTP_HOST'];
55
                $to_hostname = empty($_SERVER['HTTP_ORIGIN']) ? '' : $_SERVER['HTTP_ORIGIN'];
56
 
57
                if(empty($to_hostname)) {
58
 
59
                    $to_hostname = empty($_SERVER['HTTP_REFERER']) ?  '' : $_SERVER['HTTP_REFERER'];
60
 
61
                }
62
 
63
                if($from_hostname && $to_hostname) {
64
                    $val = str_replace($from_hostname, $to_hostname, $val);
65
                }
66
 
67
 
68
            }
69
 
70
 
71
 
1 efrain 72
            $message = str_replace('[' . $key .']', $val, $message);
73
            $subject = str_replace('[' . $key .']', $val, $subject);
74
        }
75
 
76
        $email = new Email();
77
        $email->content = json_encode([
78
            'to_address' => $to_address,
79
            'to_name' => $to_name,
80
            'cc' => [],
81
            'bcc' => [],
82
            'subject' => $subject,
83
            'message' => $message,
84
        ]);
85
        $email->status = Email::STATUS_PENDING;
86
        $email->tried = 0;
87
 
88
        $emailMapper = EmailMapper::getInstance($this->adapter);
89
        return $emailMapper->insert($email);
90
 
91
 
92
    }
93
 
94
 
95
}