Dimar Posted September 17, 2013 Share Posted September 17, 2013 Yo estoy utilizando este Script basado en Jquery: http://www.ajaxshake.com/es/JS/232231/tool-tip-javascript-gratis-cluetip.html lo estoy utilizando para indicar a los clientes los pasos a seguir para realizar una compra en toda la tienda, me funciona perfecto en toda la tienda sin ninguna falla, a excepción de la pagina del formulario donde uno se registra, simplemente pareciera que no leyera la libreria Jquery específicamente en esa pagina, y si meto el codigo del script en el archivo authentication.tpl para llamar a la libreria del Jquery, este si funciona perfecto, pero el Ajax desaparece antes de entrar. Me refiero que cuando colocas el email para ir luego al formulario de registro, esa transicion es por ajax (creo) y tengo que poner 2 veces el email para poder entrar al formulario. El codigo del Script para llamar a la libreria esta instalado en el archivo header.tpl entre etiquetas {literal}{/literal} y antes del cierre del </head> E utilizado el modulo de HTML box 1.4.3 para insertar la libreria y funciona sin utilizar el header.tpl, a excepción de la pagina authentication Si alguien me puede dar una idea de como meter la libreria en ese archivo authentication.tpl sin que afecte el ingreso a ese formulario. Parte del codigo tiene javascript o llama, nose: {capture name=path} {if !isset($email_create)}{l s='Authentication'}{else} <a href="{$link->getPageLink('authentication', true)|escape:'html'}" rel="nofollow" title="{l s='Authentication'}">{l s='Authentication'}</a> <span class="navigation-pipe">{$navigationPipe}</span>{l s='Create your account'} {/if}{/capture} {include file="$tpl_dir./breadcrumb.tpl"}<script type="text/javascript">// <![CDATA[var idSelectedCountry = {if isset($smarty.post.id_state)}{$smarty.post.id_state|intval}{else}false{/if};var countries = new Array();var countriesNeedIDNumber = new Array();var countriesNeedZipCode = new Array();{if isset($countries)} {foreach from=$countries item='country'} {if isset($country.states) && $country.contains_states} countries[{$country.id_country|intval}] = new Array(); {foreach from=$country.states item='state' name='states'} countries[{$country.id_country|intval}].push({ldelim}'id' : '{$state.id_state|intval}', 'name' : '{$state.name|addslashes}'{rdelim}); {/foreach} {/if} {if $country.need_identification_number} countriesNeedIDNumber.push({$country.id_country|intval}); {/if} {if isset($country.need_zip_code)} countriesNeedZipCode[{$country.id_country|intval}] = {$country.need_zip_code}; {/if} {/foreach}{/if}$(function(){ldelim} $('.id_state option[value={if isset($smarty.post.id_state)}{$smarty.post.id_state|intval}{else}{if isset($address)}{$address->id_state|intval}{/if}{/if}]').attr('selected', true);{rdelim});//]]>{literal}$(document).ready(function() { $('#company').on('input',function(){ vat_number(); }); vat_number(); function vat_number() { if ($('#company').val() != '') $('#vat_number').show(); else $('#vat_number').hide(); }});{/literal}</script><h1>{if !isset($email_create)}{l s='Authentication'}{else}{l s='Create an account'}{/if}</h1>{if !isset($back) || $back != 'my-account'}{assign var='current_step' value='login'}{include file="$tpl_dir./order-steps.tpl"}{/if}{include file="$tpl_dir./errors.tpl"}{assign var='stateExist' value=false}{assign var="postCodeExist" value=false}{if !isset($email_create)} <script type="text/javascript"> {literal} $(document).ready(function(){ // Retrocompatibility with 1.4 if (typeof baseUri === "undefined" && typeof baseDir !== "undefined") baseUri = baseDir; $('#create-account_form').submit(function(){ submitFunction(); return false; }); }); function submitFunction() { $('#create_account_error').html('').hide(); //send the ajax request to the server $.ajax({ type: 'POST', url: baseUri, async: true, cache: false, dataType : "json", data: { controller: 'authentication', SubmitCreate: 1, ajax: true, email_create: $('#email_create').val(), back: $('input[name=back]').val(), token: token }, success: function(jsonData) { if (jsonData.hasError) { var errors = ''; for(error in jsonData.errors) //IE6 bug fix if(error != 'indexOf') errors += '<li>'+jsonData.errors[error]+'</li>'; $('#create_account_error').html('<ol>'+errors+'</ol>').show(); } else { // adding a div to display a transition $('#center_column').html('<div id="noSlide">'+$('#center_column').html()+'</div>'); $('#noSlide').fadeOut('slow', function(){ $('#noSlide').html(jsonData.page); // update the state (when this file is called from AJAX you still need to update the state) bindStateInputAndUpdate(); $(this).fadeIn('slow', function(){ document.location = '#account-creation'; }); }); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert("TECHNICAL ERROR: unable to load form.\n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); } }); } {/literal} </script> Nose donde meter la libreria que es esta: {literal}<script language="JavaScript"> <script src="{$content_dir}js/jquery/tooltip/lib/jquery.js"> </script><script src="{$content_dir}js/jquery/tooltip/lib/jquery.hoverIntent.js"> </script><script src="{$content_dir}js/jquery/tooltip/jquery.cluetip.js"> </script><script src="{$content_dir}js/jquery/tooltip/lib/jquery.cluetip.compat.js"></script> <script src="{$content_dir}js/jquery/tooltip/demo/demo.js"></script> <!-- other scripts are below, just above the closing </body tag --><script type="text/javascript"> $(document).ready(function() { $('#clickme').cluetip({activation: 'click', width: 440, positionBy: 'bottomTop' });</script></script> {/literal} <link rel="stylesheet" href="{$content_dir}js/jquery/tooltip/jquery.cluetip.css" type="text/css" /> Alguien tiene una idea de como insertar la libreria en ese archivo?? Saludos!! Link to comment Share on other sites More sharing options...
Dimar Posted September 17, 2013 Author Share Posted September 17, 2013 Bueno despues de tanto probar, logre hacer que funcionara, solo que no pude hacer que se mantuviera el efecto ajax o javascript cuando se coloca el email y se le da al boton crear una cuenta. Es en Prestashop 1.5.5 (se me olvido colocarlo), al colocar el email y darle al boton crear una cuenta, la pagina se carga como cualquier otra cuando se le da a un boton y me manda al formulario y me sale el efecto Jquery cuando estoy escribiendo en el campo y el registro funciona perfecto y sin problemas. La libreria la inserte en el archivo authentication.tpl despues de la linea 144 donde aparece {/literal} nose si estara bien, pero funciona, aunque no como hubiera querido que fuera. Si alguien me puede sugerir algo, se agradece!!! Link to comment Share on other sites More sharing options...
Recommended Posts