Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
1 www 1
<?php
2
/**
3
 *
4
 * Controlador: Mis Perfiles
5
 *
6
 */
7
declare(strict_types=1);
8
 
9
namespace LeadersLinked\Controller;
10
 
11
use Laminas\Db\Adapter\AdapterInterface;
6849 efrain 12
 
1 www 13
use Laminas\Mvc\Controller\AbstractActionController;
14
use Laminas\Log\LoggerInterface;
15
use Laminas\View\Model\ViewModel;
16
 
17
 
18
use Laminas\View\Model\JsonModel;
19
use LeadersLinked\Form\Help\SendForm;
20
use LeadersLinked\Mapper\CompanyMapper;
21
use LeadersLinked\Mapper\CompanyUserMapper;
22
use LeadersLinked\Mapper\UserMapper;
23
use LeadersLinked\Model\Email;
24
use LeadersLinked\Mapper\EmailMapper;
25
 
26
 
27
class HelpController extends AbstractActionController
28
{
29
    /**
30
     *
31
     * @var AdapterInterface
32
     */
33
    private $adapter;
6849 efrain 34
 
1 www 35
 
36
    /**
37
     *
38
     * @var  LoggerInterface
39
     */
40
    private $logger;
41
 
42
 
43
    /**
44
     *
45
     * @var array
46
     */
47
    private $config;
48
 
49
    /**
50
     *
51
     * @param AdapterInterface $adapter
52
     * @param LoggerInterface $logger
53
     * @param array $config
54
     */
6849 efrain 55
    public function __construct($adapter,  $logger,  $config)
1 www 56
    {
57
        $this->adapter      = $adapter;
58
        $this->logger       = $logger;
59
        $this->config       = $config;
60
 
61
    }
62
 
63
    /**
64
     *
65
     * Generación del listado de perfiles
66
     * {@inheritDoc}
67
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
68
     */
69
    public function indexAction()
70
    {
71
 
72
        $this->layout()->setTemplate('layout/layout.phtml');
73
        $viewModel = new ViewModel();
74
        $viewModel->setTemplate('leaders-linked/help/index.phtml');
75
        return $viewModel ;
76
 
77
    }
78
 
79
 
80
 
81
    public function sendAction()
82
    {
83
        $request = $this->getRequest();
84
        if($request->isPost()) {
85
 
86
 
87
            $currentUserPlugin = $this->plugin('currentUserPlugin');
88
            $currentUser = $currentUserPlugin->getUser();
89
 
90
            $data = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
91
 
92
            $form = new SendForm();
93
            $form->setData($data);
94
 
95
            if($form->isValid()) {
96
                $subject = $form->get('subject')->getValue();
97
                $message = $form->get('message')->getValue();
98
 
99
 
100
                $message = "<p>Nombre : {$currentUser->first_name} </p>" .
101
                "<p>Apellido : {$currentUser->last_name} </p>" .
102
                "<p>Email : {$currentUser->email} </p>" .
103
                $message;
104
 
105
                $email = new Email();
106
                $email->content = json_encode([
107
                    'to_address' => 'ayuda@leaderslinked.com',
108
                    'to_name' => 'Soporte del Sitio Web',
109
                    'cc' => [],
110
                    'bcc' => [],
111
                    'subject' => $subject,
112
                    'message' => $message,
113
                ]);
114
                $email->status = Email::STATUS_PENDING;
115
                $email->tried = 0;
116
 
117
                $emailMapper = EmailMapper::getInstance($this->adapter);
118
                $result = $emailMapper->insert($email);
119
 
120
                if($result) {
121
                    return new JsonModel([
122
                        'success'   => true,
123
                        'data'   =>  'LABEL_HELP_SENT_SUCCESSFULLY'
124
                    ]);
125
 
126
                } else {
127
                    return new JsonModel([
128
                        'success'   => false,
129
                        'data'   =>  'ERROR_UNKNOWN'
130
                    ]);
131
                }
132
 
133
 
134
 
135
 
136
 
137
 
138
            } else {
139
 
140
 
141
                $messages = [];
142
                $form_messages = (array) $form->getMessages();
143
                foreach($form_messages  as $fieldname => $field_messages)
144
                {
145
                    $messages[$fieldname] = array_values($field_messages);
146
                }
147
 
148
                return new JsonModel([
149
                    'success'   => false,
150
                    'data'   => $messages
151
                ]);
152
            }
153
 
154
 
155
 
156
        } else {
157
            return new JsonModel([
158
                'success' => false,
159
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
160
            ]);
161
        }
162
 
163
    }
164
 
165
}