Jump to content

pdf o información en ventana emergente tipo "quick-view" dentro de página de productos


Recommended Posts

Buenas.

 

Quiero poner un enlace en algunos productos que cuando le pinches se abra un pdf (o en su defecto unas especificaciones puestas a mano) de forma emergente, como se abre cuando le das a vista rápida de los productos, que se abre emergentemente no ocupa todo el ancho ni el alto y por detrás se queda el fondo casi negro.

Como hago esto? Seguro que tiene que existir alguna función del core de Prestasop que lo haga.

 

Gracias por la ayuda. Saludos

Link to comment
Share on other sites

En classes/pdf tienes una clase "pdfgenerator", para crear el pdf, pero, es necesario mostrar un pdf al pinchar en un botón y te lo muestre en un Modal o quickview?

 

Yo mediante ajax llamaría a una función, que dicha función me devuelva el html o un tpl Compilado con tus variables, y añadirlo a tu ventana emergente, modal o quickview.

 

Si lo haces con html:

$this->context->smarty->assign(array(
"var1"=> "xD"
));


$TPL= $this->context->smarty->createTemplate(_PS_MODULE_DIR_.$this->module->name.'/views/templates/admin/mitpl.tpl', $this->context->smarty);
$html= $TPL->fetch();

echo $html;
die();

o 

die(json_encode(array(
  "respuesta"=> 1,
  "html" => $html
 )));

Puedes hacerlo mediante ajax, o simplemente añadir el html a una variable, depende para que lo necesites exactamente etc etc.

 

 

Para pdf nose, no lo use todavía, seguro que hay ejemplos por ahí

Link to comment
Share on other sites

Voy a probar a hacerlo directamente con datos (variables) y olvidarme del pdf. Estoy probando la primera manera que ha dicho Ventura pero estoy viendo que no me carga el Javascript que le pongo en el front.js del módulo, sé que en el ejemplo de Ventura el Javascript de abajo dice de ponerlo en product.js pero lo suyo si es un módulo personalizado es que esté en un js de ese módulo, no?

 

Según el generador de módulos debo poner el JS en front.js pero al hacer mi prueba he visto en el Chrome que no se lanza ese js , pero tampoco el front.css, por qué?

si inicio el hookHeader en el install() , tal que: return parent::install() &&            $this->registerHook('header')

    /**
     * Add the CSS & JavaScript files you want to be added on the FO.
     */
    public function hookHeader()
    {
        $this->context->controller->addJS($this->_path.'/views/js/front.js');
        $this->context->controller->addCSS($this->_path.'/views/css/front.css');
    }

Este es el código que he puesto en el front.js, en el tpl he puesto un <a> con clase sizechart

 $(document).ready(function(){
 $(".sizechart").fancybox({
 'type': 'iframe',
 'width': 800,
 'height': 750,
 ' maxWidth': 750,
 'fitToView' : false,
 scrolling : 'auto',
 
 'autoSize' : false,
 
 });
 });

Gracias por adelantado

Edited by rafapas22 (see edit history)
Link to comment
Share on other sites

Ostras me he perdido, el displayHeader ya lo he registrado en el install pero en el hookDisplayHeader que parámetros tengo que pasarle?

No sé lo de tener hookDisplayHeadery hookHeader para iniciar los js y css del front para mí es nuevo y no lo termino de entender, si me puedes poner un ejemplo lo agradecería

Link to comment
Share on other sites

Los parámetros, los del context, seria como los estas poniendo ahora, pero añadiendolos en la funcion del hook

public function hookDisplayHeader($params)
{
$this->context->controller->addJS($this->_path.'/views/js/front.js');
$this->context->controller->addCSS($this->_path.'/views/css/front.css');
}
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...