Abrahan Romero Posted March 24, 2014 Share Posted March 24, 2014 Tengo dudas de como funcionan los forms, en el action esta la ruta del controlador pero no se como es que elije que sera un insert en vez de un update, veo que el metodo de envio es por POST, pero no se en donde se capturen los valores de los input, ya que no veo nada como esto $lastname = $_POST['lastname']; Estoy desarrollando un modulo donde exista un form de registro y actualizacion de datos pero no logro ver como funciona el controlador recibiendo los datos de los inputs y selecionando el metodo que se comunicara con el modelo para realizar cada accion. espero me haya explicado y tener un poco de ayuda. muchas gracias Link to comment Share on other sites More sharing options...
Enrique Gómez Posted March 25, 2014 Share Posted March 25, 2014 Entiendo que al final lo que quieres es una página nueva en el Frontoffice, ya que no necesitas hacer uso de los hooks. Fíjate por ejemplo en el módulo productcomments (productcomments>controllers>front>default.php) Haces un controlador que extienda de ModuleFrontController y en el initContent() miras en función del parámetro enviado la acción que quiere realizar. En prestashop los parametros se len con Tools::getValue() class ProductCommentsDefaultModuleFrontController extends ModuleFrontController { public function __construct() { parent::__construct(); $this->context = Context::getContext(); } public function initContent() { parent::initContent(); if (Tools::isSubmit('action')) { switch(Tools::getValue('action')) { case 'add_comment': $this->ajaxProcessAddComment(); break; case 'report_abuse': $this->ajaxProcessReportAbuse(); break; case 'comment_is_usefull': $this->ajaxProcessCommentIsUsefull(); break; } } } Luego dentro de cada acción coge los parámetros, llama al modelo (o si es muy sencillo haces los insertes, updates directamente..), hace lo que tenga que hacer muestra mensaje de error, éxito..etc En este caso este formulario trabaja con ajax y es un poco diferente ya que devuelve json, cuando en una petición normal cargaría la plantilla smarty y la rellenaría. En realidad es prácticamente igual que un controlador del Core front de Prestashop que extiende directamente de FrontController (ModuleFrontController extiende de FrontController). Por lo que puedes mirar otros controladores front estándar de Prestashop como CategoryController. Veras que en general hacen el trabajo en init() e initContent() ahí cogen los parametros llaman al modelo cargan la plantilla smarty y la rellenan con el modelo. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Luego esta el tema de dar a ese nuevo controlador una URL amigable. Eso se hace desde el backoffice, en SEO & URLS > añades uno nuevo y seleccionas el controlador del módulo http://doc.prestashop.com/display/PS15/New+Developers+Features+In+PrestaShop+1.5#NewDevelopersFeaturesInPrestaShop1.5-NewFile-treeAndOperations Link to comment Share on other sites More sharing options...
Abrahan Romero Posted March 25, 2014 Author Share Posted March 25, 2014 Muchas gracias.... tengo otra duda ----------- Solo 1 duda por tema (Tema cerrado) (Para nuevas dudas, crear tema nuevo (1 duda por tema) ) Link to comment Share on other sites More sharing options...
Recommended Posts