Jump to content

Come aprire i link in una Fancybox


DARKF3D3

Recommended Posts

Vorrei far si che alcuni link presenti sul sito vengano aperti come la fancybox che permette di leggere le condizioni di vendita al momento della registrazione senza dover aprire una nuova pagina. Sapete come posso fare?

 

Ho provato così ma non funziona:

 

<a href="http://www.sito.it/content/6-informativa-sulla-privacy?content_only=1" class="iframe">Informativa sulla Privacy</a>.*
<script type="text/javascript">$('a.iframe').fancybox();</script>

Link to comment
Share on other sites

Il file FrontController.php sembra impostato correttamente eppure invece di aprirmi la fancybox apre una pagina normale.

public function setMedia()
{
 global $cookie;
 Tools::addCSS(_THEME_CSS_DIR_.'global.css', 'all');
 Tools::addJS(array(_PS_JS_DIR_.'jquery/jquery.min.js', _PS_JS_DIR_.'jquery/jquery.easing.1.3.js', _PS_JS_DIR_.'tools.js'));
 if (Tools::isSubmit('live_edit') && Tools::getValue('ad') && Tools::getValue('liveToken') == sha1(Tools::getValue('ad')._COOKIE_KEY_))
 {
  Tools::addJS(array(
   _PS_JS_DIR_.'jquery/jquery-ui-1.8.10.custom.min.js',
   _PS_JS_DIR_.'jquery/jquery.fancybox-1.3.4.js',
   _PS_JS_DIR_.'hookLiveEdit.js')
   );
  Tools::addCSS(_PS_CSS_DIR_.'jquery.fancybox-1.3.4.css');
 }
 $language = new Language($cookie->id_lang);
 if ($language->is_rtl)
  Tools::addCSS(_THEME_CSS_DIR_.'rtl.css');
}

 

Alla fine ho risolto, il problema era il posizionamento delle due righe di codice riguardanti le fancybox, questo è il file modificato (funzionante):

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_.'jquery/jquery.min.js', _PS_JS_DIR_.'jquery/jquery.easing.1.3.js', _PS_JS_DIR_.'tools.js',	   _PS_JS_DIR_.'jquery/jquery.fancybox-1.3.4.js'));
 if (Tools::isSubmit('live_edit') && Tools::getValue('ad') && Tools::getValue('liveToken') == sha1(Tools::getValue('ad')._COOKIE_KEY_))
 {
  Tools::addJS(array(
   _PS_JS_DIR_.'jquery/jquery-ui-1.8.10.custom.min.js',
   _PS_JS_DIR_.'hookLiveEdit.js')
   );
 }
 $language = new Language($cookie->id_lang);
 if ($language->is_rtl)
  Tools::addCSS(_THEME_CSS_DIR_.'rtl.css');
}

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

  • 1 month later...

Ciao,

io ho la versione 1.5.0.17.

Anch'io come DARKF3D3 avevo il bisogno di creare un link usando fancybox

nella pagina di registrazione per le normative sulla privacy.

 

 

Nel mio caso, senza modificare il FrontController.php, è bastato aggiungere al file

root/modules/blockcustomerprivacy/blockcustomerprivacy.php

 

la seguente riga

$this->context->controller->addJqueryPlugin('fancybox');

 

nella funzione

public function hookHeader($params)
{
 if (!$this->checkConfig())
  return;
 $this->context->controller->addJS(($this->_path).'blockcustomerprivacy.js');
}

 

che diventa appunto

public function hookHeader($params)
{
 if (!$this->checkConfig())
  return;
 $this->context->controller->addJqueryPlugin('fancybox');
 $this->context->controller->addJS(($this->_path).'blockcustomerprivacy.js');
}

 

e poi aggiunto da BO nel form di inserimento dell'informativa sulla privacy

lo stesso tipo di link inserito da DARKF3D3

<a href="http://www.sito.it/content/6-informativa-sulla-privacy?content_only=1" class="iframe">Informativa sulla Privacy</a>.*
<script type="text/javascript">$('a.iframe').fancybox();</script>

 

 

Ciao

  • Like 1
Link to comment
Share on other sites

  • 3 months later...

salve

 

uso la versione 1.5.3.1, e questa modifica non va.

quando inserisco il codice nel modulo privacy in editor sorgente html la parte:

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

 

quando salvo la modifica diventa

 

 

%MINIFYHTMLd2f6537a55615ca63d497e2cca91a6b04%

 

 

a qualcuno di voi ha riscontrato questo anomalia?

 

Risolto:

 

Resettato parametro Performance - "Smart cache" per il codice JavaScript (mantieni il funzionamento classico)

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

  • 3 months later...

Salve, ho una domanda a voi che siete più esperti di me.

Se volessi usare una fancybox per "pilotare" il cliente ad inserire il quantitativo giusto di prodotti dentro il carrello? Al momento nel file ovverride\controllers\front\CartController.php uso

 if ($numero_pallet > 10)
	  $this->errors[] = Tools::displayError('Il numero di bancali di merce necessari per consegnare tale ordine è: '.$numero_pallet.'. Ti ricordiamo che è possibile acquistare max 10 bancali!', false);

la funzione dispalyError presente nel file Tools.php.

Quello che vorrei fare è crearmi una nuova funzione nel file Tools.php chiamata per esempio Pippo.

Questa funzione riceverà una stringa (come da codice sopra riportato), che deve essere scritta dentro una fancybox. Come poter fare? Ho trovato post simili a questo dove dei link vengono aperti dentro una fancybox, ma quello che serve a me è visualizzare una stringa che cambia di volta in volta dentro una fancybox.

Ideee?

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...