Jump to content
regular777

[RESOLU] Lancer certaines pages CMS via fancybox

Recommended Posts

Bonsoir !

 

Après de longues heures de recherche et une torture innommable de mon petit cerveau je me décide à lancer un appel à n'importe qui sachant m'expliquer comment ouvrir une page CMS via fancybox sans créer de conflit, car je ne m'en sors plus !

 

(Pour info je tourne sous prestashop 1.5.2)

 

La seule tentative ayant un tant soit peu fonctionné était avec cette syntaxe:

<p><a class="iframe" href="http://monsite.com/cms.php?id_cms=x&content_only=1">nom de mon lien</a></p>
<script type="text/javascript">$('a.iframe').fancybox();</script>

 

Dans ce cas ma page s'ouvre mais seulement à partir des pages chargeant la librairie jquery (panier, paiement et produit), sur les autres, le lien reste inactif.

 

Quelqu'un saurait donc comment ajouter jquery et fancybox pour ces autres pages ? :)

Edited by regular777 (see edit history)

Share this post


Link to post
Share on other sites

Merci de ta réponse franck !

 

A vrai dire je ne savais même pas que jquery se chargeait partout..

 

Donc ma question serait plutôt comment appeler fancybox sans qu'il ne pose un conflit sur les pages le lançant déjà..?

 

Je croyais qu'en insérant :


<link href="/js/jquery/plugins/fancybox/jquery.fancybox.css" rel="stylesheet" type="text/css" media="all">
<script type="text/javascript" src="/js/jquery/plugins/fancybox/jquery.fancybox.js"></script>

 

dans le footer juste avant </body> ça fonctionnerait, mais le fait qu'il y ait doublon désactive complètement mes liens, même sur les pages produits et panier alors qu'ils fonctionnaient avant..

 

 

Une idée sur son utilisation ?

Edited by regular777 (see edit history)

Share this post


Link to post
Share on other sites

Bon, problème résolu !

Voila ce qui fonctionne :

 

1-Oubliez-mon post précédent !

 

Placez celui ci à la place juste avant la balise </body> dans le footer.tpl :

<script type="text/javascript">$('a.iframe').fancybox();</script>

 

J'utilise presta 1.5.2 donc voila la modif de ce code dans /classes/controller/FrontController.php :

public function setMedia()
{
 // if website is accessed by mobile device
 // @see FrontControllerCore::setMobileMedia()
 if ($this->context->getMobileDevice() != false)
 {
  $this->setMobileMedia();
  return true;
 }
 $this->addCSS(_THEME_CSS_DIR_.'global.css', 'all');
 $this->addjquery();
 $this->addjqueryPlugin('easing');
 $this->addJS(_PS_JS_DIR_.'tools.js');
 if (Tools::isSubmit('live_edit') && Tools::getValue('ad') && Tools::getAdminToken('AdminModulesPositions'.(int)Tab::getIdFromClassName('AdminModulesPositions').(int)Tools::getValue('id_employee')))
 {
  $this->addJqueryUI('ui.sortable');
  $this->addjqueryPlugin('fancybox');
  $this->addJS(_PS_JS_DIR_.'hookLiveEdit.js');
  $this->addCSS(_PS_CSS_DIR_.'jquery.fancybox-1.3.4.css', 'all'); // @TODO
 }
 if ($this->context->language->is_rtl)
  $this->addCSS(_THEME_CSS_DIR_.'rtl.css');
 // Execute Hook FrontController SetMedia
 Hook::exec('actionFrontControllerSetMedia', array());
}

 

En ça >

public function setMedia()
{
 // if website is accessed by mobile device
 // @see FrontControllerCore::setMobileMedia()
 if ($this->context->getMobileDevice() != false)
 {
  $this->setMobileMedia();
  return true;
 }
 $this->addCSS(_THEME_CSS_DIR_.'global.css', 'all');
 $this->addCSS(_PS_CSS_DIR_.'jquery.fancybox-1.3.4.css', 'all'); // @TODO
 $this->addjquery();
 $this->addjqueryPlugin('easing');
 $this->addJS(_PS_JS_DIR_.'tools.js');
 $this->addjqueryPlugin('fancybox');
 if (Tools::isSubmit('live_edit') && Tools::getValue('ad') && Tools::getAdminToken('AdminModulesPositions'.(int)Tab::getIdFromClassName('AdminModulesPositions').(int)Tools::getValue('id_employee')))
 {
  $this->addJqueryUI('ui.sortable');
  $this->addJS(_PS_JS_DIR_.'hookLiveEdit.js');
 }
 if ($this->context->language->is_rtl)
  $this->addCSS(_THEME_CSS_DIR_.'rtl.css');
 // Execute Hook FrontController SetMedia
 Hook::exec('actionFrontControllerSetMedia', array());
}

 

A partir de la tous les liens fancybox fonctionnent sans problème d'incompatibilité en changeant les liens en cette forme >

 

<a class="iframe" href=".../cms.php?id_cms=13&content_only=1">

 

ENFIN !

 

J'espère que cette astuce aidera ceux qui cherchent pour cette version !

 

Maintenant mon problème est d'afficher la frame un peu plus grand car là elle a la même taille que pour les CGV.

Quelqu'un sait où dois-je aller pour ça ? :)

 

EDIT: pour changer la taille, ajouter ce script en dessous du premier à rajouter dans le footer.tpl :

<script>{literal}$('a.iframe').fancybox({width:1105, height:570});{/literal}</script>

Edited by regular777 (see edit history)
  • Like 2

Share this post


Link to post
Share on other sites

Waw bravo !Merci

 

Mais on précise par ce lien que l'on veut juste le contenu du texte sans les modules autour par contre il reste toujours, chez le moi le footer apparent dans la popup, comment je pourais faire pour qu'il ne soit plus visible?

 

Je pense aux css de la lightbox pour y parvenir....

 

Je ne croyais plus pouvoir y arriver, merci c'est super va voir mes posts si quelques fois tu trouves des choses qui t'aides à mon tour.Je me suis cassé la tête sur les variables d'apparition de nom et de lien de catégorie par produit pour les modules, produits phares et dompromo, si tu as des questions sur ça n'hésites pas.

 

Merci encore.

Cordialement.

Share this post


Link to post
Share on other sites

Bonjour,

J'essais d'afficher une page cms dans une fancybox via iframe, j'ai ajouté le script <scripttype="text/javascript">$('a.iframe').fancybox();</script> à la fin de mon footer.tpl, j'ai modifié FrontController.php, comme indiqué dans ce post, mais ça ne marche pas... La console me dit : Uncaught TypeError: Object [object Object] has no method 'fancybox'

Je suis sous PS 1.5.5 et mon site, encore en phase de développement se trouve ici. Le lien que j'aimerais afficher en fancybox est 'Informations techniques' (en bas de la page produit).

Quelqu'un aurait-il une solution?

Merci d'avance

sujet déplacé vers http://www.prestashop.com/forums/topic/281600-pages-cms-via-fancybox-avec-ps-155/

Edited by juju33el (see edit history)

Share this post


Link to post
Share on other sites

j'ai réussi à lancer certainnes pages CMS via fancybox.

est-ce qu'on peut lancer une page tpl via fancybox?

 

 

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More