<?php // NUEVO
defined('_JEXEC') or die;
jimport('joomla.application.controller');
require_once(JPATH_COMPONENT . '/models/mProd.php');
require_once(JPATH_COMPONENT . '/helpers/prod.php');
require_once JPATH_COMPONENT . '/controller.php';

use Joomla\CMS\Factory;
use Joomla\CMS\Uri\Uri;

class ProdControllercProd
{
  public $objDatos;
  public function getobjDatos()
  {

    
    $idDate = date("YmdHisu");
    $id = substr("" . $idDate, 0, -3); //lo convierto en string y extraigo todos los caracteres menos el último
    $urlbase = Uri::base();
    $language = Factory::getLanguage();
    $currentLang = $language->getTag();
    $lang = explode('-', $currentLang)[0];
    $obj = new \stdClass();
    $app = Factory::getApplication();
    $input = $app->input;
    $obj->server = $app->get('host');
    $obj->dbuser = $app->get('user');
    $obj->dbpass = $app->get('password');
    $obj->dbname = $app->get('db');
    $obj->id = $id;
    $obj->lang = $lang;
    $obj->currentLang = $currentLang;
    $obj->urlbase = $urlbase; 
    return $obj;
  }
  public function display($cachable = false, $urlparams = false)
  {
    $clase = new ProdModelMProd();
    // $Services = ProdModelMProd::Services(); 
    require_once($clase->getview('Default'));
  }
  public function default()
  {   print_r('ESTO ES CONTROLLER PROD');
    /*$input = Factory::getApplication()->input;
    $view = $input->get('view', '', 'cmd');
    // print_r($view);

    if (!empty($view) && $view !== 'default' && method_exists($this, $view)) {
      return $this->$view();
    } else {
      // Lanza una página 404 real de Joomla
      throw new \Exception(\Joomla\CMS\Language\Text::_('JLIB_APPLICATION_ERROR_VIEW_NOT_FOUND'), 404);
    }
    */
      $clase = new ProdModelMProd();
    $obj = new \stdClass();
    $obj->objDatos = $this->getobjDatos();
    
    require_once($clase->getview(''));
  }
  public function buscar()
  {
    $clase = new ProdModelMProd();
    $obj = new \stdClass();
    $obj->objDatos = $this->getobjDatos();
    $allData = $clase->buscar($obj);
    require_once($clase->getview('buscar'));
  }
  public function prods()
  {
    print_r('ESTO ES CONTROLLER PRODS');
    $clase = new ProdModelMProd();
    $obj = new \stdClass();
    $obj = $this->getobjDatos();
    // $allData=$clase->prod($obj);
    require_once($clase->getview('prod'));
  }
  public function sitemap()
  {
    print_r('ESTO ES CONTROLLER sitemap');
    $clase = new ProdModelMProd();
    $obj = new \stdClass();
    $obj = $this->getobjDatos();
    $allData = $clase->sitemap($obj);
    require_once($clase->getview('Sitemap'));
  }

 public function msendmail() {
    // 1. Obtener datos del JSON de entrada
    $json = file_get_contents('php://input');
    $data = json_decode($json, true);

    // 2. Validación de seguridad (Suma)
    if ($data['suma'] != $data['sumaresult']) {
        echo 'la suma no es correcta';
        return;
    }
      //  print_r('ESTO ES CONTROLLER smsendmail');
 
    // 3. Obtener el motor de correo de Joomla
    // Este objeto ya sabe tu SMTP, usuario y contraseña porque los lee de la Configuración Global
    $mailer = Factory::getMailer();
    $config = Factory::getConfig();

    // 4. Configurar el remitente (usando los datos de la web)
    $sender = [
        $config->get('mailfrom'), // Tu correo de Gmail configurado en Joomla
        $config->get('fromname')  // El nombre de tu sitio
    ];
    $mailer->setSender($sender);

    // 5. Configurar el destinatario
    $recipient = 'info@bilbaolavieja.net';
    $mailer->addRecipient($recipient);

    // 6. Configurar el "Responder a" (para que cuando contestes, le llegue al cliente)
    $mailer->addReplyTo($data["email"], $data["first_name"]);

    // 7. Contenido del mensaje
    $subject = 'Nuevo registro en bilbaolavieja.net';
    
    // Usamos etiquetas HTML limpias y UTF-8 (Joomla lo gestiona por defecto)
    $body   = '<h2>Consulta desde la web bilbaolavieja.net</h2>' .
              '<p><strong>Nombre:</strong> ' . $data["first_name"] . '</p>' .
              '<p><strong>Email:</strong> ' . $data["email"] . '</p>' .
              '<p><strong>Consulta:</strong><br>' . nl2br($data["consulta"]) . '</p>';

    $mailer->setSubject($subject);
    $mailer->isHtml(true);
    $mailer->setBody($body);

    // 8. Enviar
    $send = $mailer->Send();

    if ($send === true) {
        echo 'SOLICITUD ENVIADA';
    } else {
        echo 'Error al enviar: ' . $send->get('message');
    }
 
    return;
}
  public function con($objRequest)
  {
    $host = $objRequest->server;
    $dbname = $objRequest->dbname;
    $username = $objRequest->dbuser;
    $password = $objRequest->dbpass;
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password); // $dbname;charset=utf8mb4
    return $pdo;
  }
}
