fred1roca Posted April 5, 2019 Share Posted April 5, 2019 tengo un modulo que me genera un login en el front office este modulo se ancla en el hook de DisplayCustomerAccountForm y todo bien pero cuando realizo el post de mi tpl no logro obtener los datos que se mandan desde el formulario de mi modulo intento capturarlo con public function hookDisplayCustomerAccountForm(array $params) { if (Tools::isSubmit('formulario')) { Configuration::updateValue('form', 'dato'); } } public function hookValidateCustomerFormFields($params) { if (Tools::isSubmit('formulario')) { Configuration::updateValue('validate', 'dato'); } } el templete lo retorno el el hookDisplayCustomerAccountForm pero en ese hook o en el otro no logro obtener los datos de mi formulario agradezco cualquier ayuda o ejemplo Link to comment Share on other sites More sharing options...
Rodrigo B Laurindo Posted April 6, 2019 Share Posted April 6, 2019 (edited) Hola, @fred1roca, intenta Tools::getValue('input_name') Edited April 6, 2019 by Rodrigo B Laurindo (see edit history) Link to comment Share on other sites More sharing options...
fred1roca Posted April 6, 2019 Author Share Posted April 6, 2019 2 hours ago, Rodrigo B Laurindo said: Hola, @fred1roca, intenta Tools::getValue('input_name') hola @Rodrigo B Laurindo no me funciono intento que esos datos llegan a la función pero no... nose si se tenga que hacer de otra forma tu lo has hecho antes ? Link to comment Share on other sites More sharing options...
Rodrigo B Laurindo Posted April 6, 2019 Share Posted April 6, 2019 Si, lo he hecho. Pero creo que no comprendo qué quieres hacer. El el caso del hookValidateCustomerFormFields, lo he hecho asi: foreach ($params['fields'] as $field) { if ($field->getName() == 'nombre_del_campo') { $value = $field->getValue(); } } Pero no comprendo por que utilizas Configuration::updateValue.. ¿Qué estás intentando hacer? Si explicas mejor tal vez te pueda ayudar. Link to comment Share on other sites More sharing options...
fred1roca Posted April 6, 2019 Author Share Posted April 6, 2019 2 minutes ago, Rodrigo B Laurindo said: Si, lo he hecho. Pero creo que no comprendo qué quieres hacer. El el caso del hookValidateCustomerFormFields, lo he hecho asi: foreach ($params['fields'] as $field) { if ($field->getName() == 'nombre_del_campo') { $value = $field->getValue(); } } Pero no comprendo por que utilizas Configuration::updateValue.. ¿Qué estás intentando hacer? Si explicas mejor tal vez te pueda ayudar. si @Rodrigo B Laurindoestoy haciendo mi propio formulario de pago con una plataforma propia de pagos. esta plantilla la tengo en un modulo propio desde ese modulo controlare los pagos ese modulo me carga la plantilla pero necesito obtener datos del usuario para que haga log. este formulario esta en hook de displayCustomerAccountForm (el formulario propio de prestashop para pagos lo quite) y deje el mio pero no se como obtener estos datos. lo pude hacer en controlador pero necesito que sea desde mi modulo para desde el controlar las vistas. Link to comment Share on other sites More sharing options...
Rodrigo B Laurindo Posted April 6, 2019 Share Posted April 6, 2019 Creo que aún no he comprendido de todo lo que quieres, mas pienso que lo que quieres está en otros hooks: hookActionObjectCustomerAddAfter hookActionObjectCustomerUpdateAfter Y entonces, Tools::getValue('nombre_del_input') Link to comment Share on other sites More sharing options...
fred1roca Posted April 8, 2019 Author Share Posted April 8, 2019 On 4/6/2019 at 3:18 PM, Rodrigo B Laurindo said: Creo que aún no he comprendido de todo lo que quieres, mas pienso que lo que quieres está en otros hooks: hookActionObjectCustomerAddAfter hookActionObjectCustomerUpdateAfter Y entonces, Tools::getValue('nombre_del_input') @Rodrigo B Laurindo pues es simple lo que quiero hacer es obtener datos de un formulario en el front office pero no encuentro la menera de hacerlo por medio de los métodos de prestashop. "no encuentro el método " el formulario es un formulario que tengo en mi modulo y expongo en el hook public function hookDisplayCustomerAccountForm($params) { return $this->display(__FILE__, 'views/templates/hook/payment.tpl'); } el formulario se genera y todo pero no se como obtener los datos de el al momento de hacer post Link to comment Share on other sites More sharing options...
Rodrigo B Laurindo Posted April 8, 2019 Share Posted April 8, 2019 Intenta con los hooks que te he dicho. Link to comment Share on other sites More sharing options...
fred1roca Posted April 8, 2019 Author Share Posted April 8, 2019 57 minutes ago, Rodrigo B Laurindo said: Intenta con los hooks que te he dicho. @Rodrigo B Laurindo no me funciono Link to comment Share on other sites More sharing options...
Rodrigo B Laurindo Posted April 8, 2019 Share Posted April 8, 2019 Son esos los que utilizo para obtener los datos dese formulario. A mi me funciona. Tal vez hagas algo diferente. Si quieres pega todo el código de tu función y de tu tpl y le echo un vistazo. Link to comment Share on other sites More sharing options...
fred1roca Posted April 8, 2019 Author Share Posted April 8, 2019 8 minutes ago, Rodrigo B Laurindo said: Son esos los que utilizo para obtener los datos dese formulario. A mi me funciona. Tal vez hagas algo diferente. Si quieres pega todo el código de tu función y de tu tpl y le echo un vistazo. si gracias @Rodrigo B Laurindo este es mi template <div class="row setup-content" id="step-1"> <div class="col-xs-12"> <div class="col-md-12 well text-center"> <form action="" method="POST" id="form" name="form"> <div> <input type="text" class="lo" name="iusser" placeholder="Email / número de celular" id="iusser"> </div> <br> <div> <input type="password" class="lo" name="passs" placeholder="Contraseña" id="passs"> </div> <br> <input type="submit" name="subs" id="subs" value="sumit"> </form> <br> <h3 class="text-muted no-select con2">¿Aún no estas registrado?</h3> </div> </div> </div> y lo mando llamar en mi modulo <?php if (!defined('_PS_VERSION_')) { exit; } class Pagos_id extends Module { protected $config_form = false; public function __construct() { $this->name = 'pagos_id'; $this->tab = 'checkout'; $this->version = '1.0.0'; $this->author = 'pagos'; $this->need_instance = 0; $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('pagos id'); $this->description = $this->l('en este modulo podrás pagar por medio de pagos id'); $this->confirmUninstall = $this->l('si desistalas este modulo no podrás recivir pagos '); $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_); } public function install() { Configuration::updateValue('PAGOS_ID_LIVE_MODE', false); return parent::install() && $this->registerHook('header') && $this->registerHook('backOfficeHeader') && $this->registerHook('leftColumn') && $this->registerHook('displayCustomerAccountForm') && $this->registerHook('actionObjectCustomerAddAfter') && $this->registerHook('actionObjectCustomerUpdateAfter') && $this->registerHook('validateCustomerFormFields'); } public function uninstall() { Configuration::deleteByName('PAGOS_ID_LIVE_MODE'); return parent::uninstall(); } public function hookBackOfficeHeader() { if (Tools::getValue('module_name') == $this->name) { $this->context->controller->addJS($this->_path . 'views/js/back.js'); $this->context->controller->addCSS($this->_path . 'views/css/back.css'); } } public function hookHeader() { $this->context->controller->addJS($this->_path . '/views/js/cambios.js'); $this->context->controller->addJS($this->_path . '/views/js/datos.js'); $this->context->controller->addJS($this->_path . '/views/js/nav.js'); $this->context->controller->addCSS($this->_path . '/views/css/BotonesNav.css'); $this->context->controller->addCSS($this->_path . '/views/css/card.css'); } public function hookDisplayCustomerAccountForm($params) { $contexto = Context::getContext()->link->getModuleLink('sicar_id','action'); Configuration::updateValue('contexto', $contexto); if (Tools::isSubmit('subs')) { $datos = Tools::getValue('iusser'); Configuration::updateValue('AccountForm', $datos); } return $this->display(__FILE__, 'views/templates/hook/payment.tpl'); } public function hookValidateCustomerFormFields($params) { Configuration::updateValue('FormFields', 'hookValidateCustomerFormFields'); if (Tools::isSubmit('subs')) { $datos = Tools::getValue('iusser'); Configuration::updateValue('FormFields', $datos); } } public function hookActionObjectCustomerUpdateAfter($params) { Configuration::updateValue('UpdateAfter', 'hookActionObjectCustomerUpdateAfter'); if (Tools::isSubmit('subs')) { $datos = Tools::getValue('iusser'); Configuration::updateValue('UpdateAfter', $datos); } } public function hookActionObjectCustomerAddAfter($params) { Configuration::updateValue('addafter', 'hookActionObjectCustomerAddAfter'); if (Tools::isSubmit('subs')) { $datos = Tools::getValue('iusser'); Configuration::updateValue('addafter', $datos); } } } si se utiliza la función guardo algún dato en la base de datos para ver si esta llegando el post o algo así pero nunca entran esas funciones también lo intento desde un controlador <?php class Pagos_idPagosModuleFrontController extends ModuleFrontController { public function init() { return parent::init(); } public function initContent() { parent::initContent(); $this->context->smarty->assign(array()); $this->setTemplate('../../views/templates/hook/payment.tpl'); } public function hookDisplayCustomerAccountForm($params) { $contexto = Context::getContext()->link->getModuleLink('sicar_id','action'); Configuration::updateValue('contexto', $contexto); if (Tools::isSubmit('subs')) { $datos = Tools::getValue('iusser'); Configuration::updateValue('ttsdt', $datos); } return $this->display(__FILE__, 'views/templates/hook/payment.tpl'); } public function hookValidateCustomerFormFields($params) { Configuration::updateValue('ttsdt', 'hookValidateCustomerFormFields'); if (Tools::isSubmit('subs')) { $datos = Tools::getValue('iusser'); Configuration::updateValue('ttsdt', $datos); } } public function hookActionObjectCustomerUpdateAfter($params) { Configuration::updateValue('ttsdt', 'hookActionObjectCustomerUpdateAfter'); if (Tools::isSubmit('subs')) { $datos = Tools::getValue('iusser'); Configuration::updateValue('ttsdt', $datos); } } public function hookActionObjectCustomerAddAfter($params) { Configuration::updateValue('ttsdt', 'hookActionObjectCustomerAddAfter'); if (Tools::isSubmit('subs')) { $datos = Tools::getValue('iusser'); Configuration::updateValue('ttsdt', $datos); } } } pero tampoco entran nunca se inserta nada en la base de datos Link to comment Share on other sites More sharing options...
Rodrigo B Laurindo Posted April 8, 2019 Share Posted April 8, 2019 Ok, creo que ahora por fín veo qué quieres. ¿Quieres reemplazar completamente el formulario de login? 1 hour ago, fred1roca said: <form action="" method="POST" id="form" name="form"> Pero date cuenta de que ya no utilizas el controlador default para procesar los datos, entonces no te servirá ningún hook default, ¿verdad? Deduzco que tienes un javascript que intercepta el click en el butón y envia a algún controlador? ¿Cómo lo haces? Link to comment Share on other sites More sharing options...
fred1roca Posted April 9, 2019 Author Share Posted April 9, 2019 15 hours ago, Rodrigo B Laurindo said: Ok, creo que ahora por fín veo qué quieres. ¿Quieres reemplazar completamente el formulario de login? Pero date cuenta de que ya no utilizas el controlador default para procesar los datos, entonces no te servirá ningún hook default, ¿verdad? Deduzco que tienes un javascript que intercepta el click en el butón y envia a algún controlador? ¿Cómo lo haces? si lo remplace por completo. puedo campurar el post desde el order controller pero no puedo manejar mis vistas desde ese ya que están en mi modulo y no no tengo ningun javascript entonces le hago llegar la petición por ajax ? Link to comment Share on other sites More sharing options...
Rodrigo B Laurindo Posted April 10, 2019 Share Posted April 10, 2019 Tu post debe ir a algun controlador, es que en tu código no hay action. Si no hay action y no hay Ajax, para donde va? Link to comment Share on other sites More sharing options...
fred1roca Posted April 10, 2019 Author Share Posted April 10, 2019 12 hours ago, Rodrigo B Laurindo said: Tu post debe ir a algun controlador, es que en tu código no hay action. Si no hay action y no hay Ajax, para donde va? okay muchas gracias entiendo lo que me dices pero tienes algún ejemplo de ello ? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now