Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1 | Rev 6849 | 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;
6749 efrain 12
use LeadersLinked\Cache\CacheInterface;
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;
34
 
35
 
36
    /**
37
     *
6749 efrain 38
     * @var CacheInterface
1 www 39
     */
40
    private $cache;
41
 
42
    /**
43
     *
44
     * @var  LoggerInterface
45
     */
46
    private $logger;
47
 
48
 
49
    /**
50
     *
51
     * @var array
52
     */
53
    private $config;
54
 
55
    /**
56
     *
57
     * @param AdapterInterface $adapter
6749 efrain 58
     * @param CacheInterface $cache
1 www 59
     * @param LoggerInterface $logger
60
     * @param array $config
61
     */
62
    public function __construct($adapter, $cache , $logger,  $config)
63
    {
64
        $this->adapter      = $adapter;
65
        $this->cache        = $cache;
66
        $this->logger       = $logger;
67
        $this->config       = $config;
68
 
69
    }
70
 
71
    /**
72
     *
73
     * Generación del listado de perfiles
74
     * {@inheritDoc}
75
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
76
     */
77
    public function indexAction()
78
    {
79
 
80
        $this->layout()->setTemplate('layout/layout.phtml');
81
        $viewModel = new ViewModel();
82
        $viewModel->setTemplate('leaders-linked/help/index.phtml');
83
        return $viewModel ;
84
 
85
    }
86
 
87
 
88
 
89
    public function sendAction()
90
    {
91
        $request = $this->getRequest();
92
        if($request->isPost()) {
93
 
94
 
95
            $currentUserPlugin = $this->plugin('currentUserPlugin');
96
            $currentUser = $currentUserPlugin->getUser();
97
 
98
            $data = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
99
 
100
            $form = new SendForm();
101
            $form->setData($data);
102
 
103
            if($form->isValid()) {
104
                $subject = $form->get('subject')->getValue();
105
                $message = $form->get('message')->getValue();
106
 
107
 
108
                $message = "<p>Nombre : {$currentUser->first_name} </p>" .
109
                "<p>Apellido : {$currentUser->last_name} </p>" .
110
                "<p>Email : {$currentUser->email} </p>" .
111
                $message;
112
 
113
                $email = new Email();
114
                $email->content = json_encode([
115
                    'to_address' => 'ayuda@leaderslinked.com',
116
                    'to_name' => 'Soporte del Sitio Web',
117
                    'cc' => [],
118
                    'bcc' => [],
119
                    'subject' => $subject,
120
                    'message' => $message,
121
                ]);
122
                $email->status = Email::STATUS_PENDING;
123
                $email->tried = 0;
124
 
125
                $emailMapper = EmailMapper::getInstance($this->adapter);
126
                $result = $emailMapper->insert($email);
127
 
128
                if($result) {
129
                    return new JsonModel([
130
                        'success'   => true,
131
                        'data'   =>  'LABEL_HELP_SENT_SUCCESSFULLY'
132
                    ]);
133
 
134
                } else {
135
                    return new JsonModel([
136
                        'success'   => false,
137
                        'data'   =>  'ERROR_UNKNOWN'
138
                    ]);
139
                }
140
 
141
 
142
 
143
 
144
 
145
 
146
            } else {
147
 
148
 
149
                $messages = [];
150
                $form_messages = (array) $form->getMessages();
151
                foreach($form_messages  as $fieldname => $field_messages)
152
                {
153
                    $messages[$fieldname] = array_values($field_messages);
154
                }
155
 
156
                return new JsonModel([
157
                    'success'   => false,
158
                    'data'   => $messages
159
                ]);
160
            }
161
 
162
 
163
 
164
        } else {
165
            return new JsonModel([
166
                'success' => false,
167
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
168
            ]);
169
        }
170
 
171
    }
172
 
173
}