Jump to content
  • 0
Pablus

Configurar Fancybox con pagina CMS

Question

Hola Colegas, tengo un link con fancybox que me abre una pagina cms, el problema es que abre la pagina web completa, con todos los menues, etc, en vez de mostrarme unicamente el contenido de la pagina cms.

 

El codigo que utilizo es de un archivo dentro de override\controllers:

<?php
class CmsController extends CmsControllerCore {
   public function setMedia() {
    parent::setMedia();

    Tools::addCSS(_PS_CSS_DIR_.'jquery.fancybox-1.3.4.css', 'screen');
    Tools::addJS(array(_PS_JS_DIR_.'jquery/jquery.fancybox-1.3.4.js',
					   _PS_JS_DIR_.'jquery/jquery.serialScroll-1.2.2-min.js',
					   _THEME_JS_DIR_.'product.js'));

    if (Configuration::get('PS_DISPLAY_JQZOOM') == 1) {
	    Tools::addCSS(_PS_CSS_DIR_.'jqzoom.css', 'screen');
	    Tools::addJS(_PS_JS_DIR_.'jquery/jquery.jqzoom.js');
    }
   }
}

 

el link seria:

<p><a class="thickbox" href="../cms.php?id_cms=4&amp"> link de prueba </a></p>

 

he leido varios post y agregan variantes como esta:

<p><a class="thickbox" href="../cms.php?id_cms=4&content_only=1&TB_iframe=true&width=800&height=500"> link de prueba </a></p>

 

pero en mi caso el recuadro no se achica y sigue mostrando la pagina web completa en vez del cms. Alguna sujerencia?

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Hola Colegas, tengo un link con fancybox que me abre una pagina cms, el problema es que abre la pagina web completa, con todos los menues, etc, en vez de mostrarme unicamente el contenido de la pagina cms.

 

El codigo que utilizo es de un archivo dentro de override\controllers:

<?php
class CmsController extends CmsControllerCore {
public function setMedia() {
	parent::setMedia();

	Tools::addCSS(_PS_CSS_DIR_.'jquery.fancybox-1.3.4.css', 'screen');
	Tools::addJS(array(_PS_JS_DIR_.'jquery/jquery.fancybox-1.3.4.js',
					   _PS_JS_DIR_.'jquery/jquery.serialScroll-1.2.2-min.js',
					   _THEME_JS_DIR_.'product.js'));

	if (Configuration::get('PS_DISPLAY_JQZOOM') == 1) {
		Tools::addCSS(_PS_CSS_DIR_.'jqzoom.css', 'screen');
		Tools::addJS(_PS_JS_DIR_.'jquery/jquery.jqzoom.js');
	}
}
}

 

el link seria:

<p><a class="thickbox" href="../cms.php?id_cms=4&amp"> link de prueba </a></p>

 

he leido varios post y agregan variantes como esta:

<p><a class="thickbox" href="../cms.php?id_cms=4&content_only=1&TB_iframe=true&width=800&height=500"> link de prueba </a></p>

 

pero en mi caso el recuadro no se achica y sigue mostrando la pagina web completa en vez del cms. Alguna sujerencia?

 

Te falta la llamada en cuestión.

Share this post


Link to post
Share on other sites
  • 0

Hola Victor, el enlace lo tengo dentro de una pagina cms, estoy haciendo las pruebas desde ahi, y si funciona el lugar definitivo es en un un modulo de menu horizontal.

Share this post


Link to post
Share on other sites
  • 0

Alguna sujerencia? lo que busco hacer es hacer links con este efecto de fancybox para mostrar informacion puntual no imagenes, he visto varias paginas que lo tienen..gracias

Share this post


Link to post
Share on other sites
  • 0

Hola Victor, te cuento que llevo 10 dias dedicandole a que funcione fancybox para abrir una pagina cms desde un link,

 

he probado todos los ejemplos del foro: ninguno abre una pagina cms, y algunos son para la hoja de producto nomas

Modulos con fancybox tratando de adaptarlos: Encontre 2 gratuitos pero que cargan al abrir la web, no con un link, y por mas pruebas que hice me faltan conocimientos para modificarlo

Agregar fancybox desde cero: (fancybox.net) funciona perfecto agregando los scripts desde header.tpl, el efecto es mejor que el que posee prestashop, agregandote una imagen de precarga antes de abrir... el problema es que genera conflicto con otros scripts en determinadas paginas y anula javascript

 

Es una pena que no hay una guia clara y concreta, ya que esta herramienta es muy util para mostrar informacion.

 

Agrego para quien le sirva que lo mejor que logre fue juntar informacion de varios post y horas de prueba:

 

 

link para abrirlo:

<a class="iframe" href="www.paginaquequieras.com">(prueba)</a>

 

Script al final del tpl:

<script type="text/javascript">
$(document).ready(function(){
$("a.iframe").fancybox({
'autoScale'  : false,
'transitionIn'  : 'none',
'transitionOut'  : 'none',
'width'  : 400,
'height'  : 400,
'type'  : 'iframe'
});
});

Modificar classes/frontController.php para que se pueda llamar desde cualquier pagina

public function setMedia()
   {
    global $cookie;

    Tools::addCSS(_THEME_CSS_DIR_.'global.css', 'all');
    Tools::addCSS(_PS_CSS_DIR_.'jquery.fancybox-1.3.4.css');
    Tools::addJS(array(_PS_JS_DIR_.'tools.js', _PS_JS_DIR_.'jquery/jquery-1.4.4.min.js',
					 _PS_JS_DIR_.'jquery/jquery.easing.1.3.js',
				    _PS_JS_DIR_.'jquery/jquery.fancybox-1.3.4.js'
					 ));

    if ($cookie->live_edit)
    {
	    Tools::addJS(array(
					    _PS_JS_DIR_.'jquery/jquery-ui-1.8.10.custom.min.js',
					    _PS_JS_DIR_.'hookLiveEdit.js')
					    );
    }
   }

Repito, el unico problema es que no funciona para mostrar informacion de un cms, por lo que para esquivar el problema y no dedicar mucho mas tiempo, cree una pagina html con el contenido que tenia la cms y la cargo con el fancybox.

 

Si alguien quiere agregar informacion para dejar una guia clara, sera bienvenido

Share this post


Link to post
Share on other sites
  • 0

Hola,

yo lo he hecho de la siguiente forma:

 

<a href="{$link->getCMSLink('7')}&content_only=1" class="iframe">Link a página CMS</a>

 

es decir, añadiendo al final del link "&content_only=1"

 

en teoría la llamada al link cms funcionaría tanto por el ID como por la url-amigable:

{$link->getCMSLink('12', 'link-de-prueba')}

 

y tal como has dicho, la llamada al JS y CSS de fancybox debe estar presente en la página.

 

Funciona en 1.4.5.1

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×