Rev 6849 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?php
/**
*
* Controlador: Mis Perfiles
*
*/
declare(strict_types=1);
namespace LeadersLinked\Controller;
use Laminas\Db\Adapter\AdapterInterface;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\Log\LoggerInterface;
use Laminas\View\Model\ViewModel;
use Laminas\View\Model\JsonModel;
use LeadersLinked\Form\Help\SendForm;
use LeadersLinked\Mapper\CompanyMapper;
use LeadersLinked\Mapper\CompanyUserMapper;
use LeadersLinked\Mapper\UserMapper;
use LeadersLinked\Model\Email;
use LeadersLinked\Mapper\EmailMapper;
class HelpController extends AbstractActionController
{
/**
*
* @var \Laminas\Db\Adapter\AdapterInterface
*/
private $adapter;
/**
*
* @var \LeadersLinked\Cache\CacheInterface
*/
private $cache;
/**
*
* @var \Laminas\Log\LoggerInterface
*/
private $logger;
/**
*
* @var array
*/
private $config;
/**
*
* @var \Laminas\Mvc\I18n\Translator
*/
private $translator;
/**
*
* @param \Laminas\Db\Adapter\AdapterInterface $adapter
* @param \LeadersLinked\Cache\CacheInterface $cache
* @param \Laminas\Log\LoggerInterface LoggerInterface $logger
* @param array $config
* @param \Laminas\Mvc\I18n\Translator $translator
*/
public function __construct($adapter, $cache, $logger, $config, $translator)
{
$this->adapter = $adapter;
$this->cache = $cache;
$this->logger = $logger;
$this->config = $config;
$this->translator = $translator;
}
/**
*
* Generación del listado de perfiles
* {@inheritDoc}
* @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
*/
public function indexAction()
{
$this->layout()->setTemplate('layout/layout.phtml');
$viewModel = new ViewModel();
$viewModel->setTemplate('leaders-linked/help/index.phtml');
return $viewModel ;
}
public function sendAction()
{
$request = $this->getRequest();
if($request->isPost()) {
$currentUserPlugin = $this->plugin('currentUserPlugin');
$currentUser = $currentUserPlugin->getUser();
$data = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
$form = new SendForm();
$form->setData($data);
if($form->isValid()) {
$subject = $form->get('subject')->getValue();
$message = $form->get('message')->getValue();
$message = "<p>Nombre : {$currentUser->first_name} </p>" .
"<p>Apellido : {$currentUser->last_name} </p>" .
"<p>Email : {$currentUser->email} </p>" .
$message;
$email = new Email();
$email->content = json_encode([
'to_address' => 'ayuda@leaderslinked.com',
'to_name' => 'Soporte del Sitio Web',
'cc' => [],
'bcc' => [],
'subject' => $subject,
'message' => $message,
]);
$email->status = Email::STATUS_PENDING;
$email->tried = 0;
$emailMapper = EmailMapper::getInstance($this->adapter);
$result = $emailMapper->insert($email);
if($result) {
return new JsonModel([
'success' => true,
'data' => 'LABEL_HELP_SENT_SUCCESSFULLY'
]);
} else {
return new JsonModel([
'success' => false,
'data' => 'ERROR_UNKNOWN'
]);
}
} else {
$messages = [];
$form_messages = (array) $form->getMessages();
foreach($form_messages as $fieldname => $field_messages)
{
$messages[$fieldname] = array_values($field_messages);
}
return new JsonModel([
'success' => false,
'data' => $messages
]);
}
} else {
return new JsonModel([
'success' => false,
'data' => 'ERROR_METHOD_NOT_ALLOWED'
]);
}
}
}