Aldeag Posted April 19, 2017 Share Posted April 19, 2017 (edited) Bueno. Son dos problemas separados pero que afectan uno al otro. Y no sé si es mi culpa o de Prestashop. A la hora de realizar una compra al cliente se le pide registrarse. La cuestión es que para registrarse puedo pedirle que ponga el Código Postal o no, desde el Back Office Pero ponga lo que ponga yo, no le aparece al cliente al registrarse el campo "Código postal". Para solucionarlo en Traducciones cambié el nombre del campo "Dirección 2" por: "Dirección (sigue) y código postal (obligatorio)". Así al menos tengo el código postal del cliente. Hasta ahí sin problema. Resulta que Paypal antes me funcionaba bién. Pero ahora Paypal le pide al cliente que rellene el Código Postal porque es imprescindible para realizar la transacción, y le dá un código de error. A mí me llega otro al correo y Back Office tal que así: PayPal response:TIMESTAMP -> 2017-04-03T21:24:23ZL_ERRORCODE0 -> 10730L_SHORTMESSAGE0 -> Shipping Address Postal Code EmptyL_LONGMESSAGE0 -> The field Shipping Address Postal Code is requiredL_SEVERITYCODE0 -> Error O sea, que el cliente no puede registrarse con Código postal y Paypal no realiza la transacción sin Código Postal y así pocas ventas puedo hacer. Tengo Prestashop 1.6.1.3 tema standar y el módulo de Paypal versión 3.11.4 Gracias Edited April 19, 2017 by Aldeag (see edit history) Link to comment Share on other sites More sharing options...
JuanMartinWeb Posted April 21, 2017 Share Posted April 21, 2017 (edited) Hola Aldeag, Lo de Paypal es normal, se espera que esté ese campo por separado. Habría que arreglar lo del registro de clientes ¿Podrías enviarnos una captura de como tienes configurado el país? Un saludo! Edited April 21, 2017 by JuanMartinWeb (see edit history) Link to comment Share on other sites More sharing options...
Aldeag Posted April 27, 2017 Author Share Posted April 27, 2017 Estos son mis ajustes Link to comment Share on other sites More sharing options...
JuanMartinWeb Posted April 28, 2017 Share Posted April 28, 2017 Estos son mis ajustes Captura de pantalla 2017-04-27 a la(s) 13.47.46.png En la captura lo tienes bien configurado, está como obligatorio. Entonces me inclinaría por el tema que tengas instalado que no funcione bien con el Prestashop que tienes instalado. ¿Has probado a poner el tema por defecto a ver si te sale el código postal? Link to comment Share on other sites More sharing options...
Aldeag Posted April 28, 2017 Author Share Posted April 28, 2017 (edited) Es que uso el tema por defecto. Estoy preocupado por este asunto. En el Backoffice puedo elegir si el código postal es obligatorio o no. Si lo pongo, le exige al cliente el Codigo Postal, pero el campo no está por ninguna parte. Por eso tengo que deshabilitarlo, lo que me dá problemas con Paypal. No sé donde hacer los cambios. Estoy preocupado, ya que no puedo vender sin Paypal. Edited April 28, 2017 by Aldeag (see edit history) Link to comment Share on other sites More sharing options...
genweb Posted April 30, 2017 Share Posted April 30, 2017 Es que uso el tema por defecto. Estoy preocupado por este asunto. En el Backoffice puedo elegir si el código postal es obligatorio o no. Si lo pongo, le exige al cliente el Codigo Postal, pero el campo no está por ninguna parte. Por eso tengo que deshabilitarlo, lo que me dá problemas con Paypal. No sé donde hacer los cambios. Estoy preocupado, ya que no puedo vender sin Paypal. Revisa con el inspector de código de Chrome en tu formulario que el campo "código postal" que se solicita pero no se muestra, no esté escondido mediante CSS (pondrá algo como "display:none" asociado a un <input> del formulario) Link to comment Share on other sites More sharing options...
Aldeag Posted May 1, 2017 Author Share Posted May 1, 2017 Copio y pego parte del texto que sale si lo hago en Chrome como me dices. d="newsletter" value="1" autocomplete="off"/> Inscríbase a nuestra lista de correo</label></div><div class="checkbox"> <label for="optin"> <input type="checkbox" name="optin" id="optin" value="1" autocomplete="off"/> Recíba ofertas especiales de nuestros socios</label></div><h3 class="page-subheading top-indent">Dirección de entrega</h3><div class="required text form-group"> <label for="firstname">Nombre <sup>*</sup></label> <input type="text" class="text form-control validate" id="firstname" name="firstname" data-validate="isName" value="" /></div><div class="required text form-group"> <label for="lastname">Apellido <sup>*</sup></label> <input type="text" class="text form-control validate" id="lastname" name="lastname" data-validate="isName" value="" /></div><div class="required text form-group"> <label for="address1">Dirección <sup>*</sup></label> <input type="text" class="text form-control validate" name="address1" id="address1" data-validate="isAddress" value="" /></div><div class="text is_customer_param form-group"> <label for="address2">Dirección (2) y código postal (requerido)</label> <input type="text" class="text form-control validate" name="address2" id="address2" data-validate="isAddress" value="" /></div><div class="required postcode text form-group"> <label for="postcode">Código postal <sup>*</sup></label> <input type="text" class="text form-control validate" name="postcode" id="postcode" data-validate="isPostCode" value=""/></div><div class="required text form-group"> <label for="city">Ciudad <sup>*</sup></label> <input type="text" class="text form-control validate" name="city" id="city" data-validate="isCityName" value="" /></div><div class="required id_state form-group" style="display:none;"> <label for="id_state">Provincia o Estado <sup>*</sup></label> <select name="id_state" id="id_state" class="form-control"><option value="">-</option> </select></div><div class="required select form-group"> <label for="id_country">País <sup>*</sup></label> <select name="id_country" id="id_country" class="form-control"><option value="1">Alemania</option><option value="43">Antigua y Barbuda</option><option value="2">Austria</option><option value="48">Bahamas</option><option value="51">Barbados</option><option value="3">Bélgica</option><option value="55">Bermudas</option><option value="233">Bosnia y Herzegovina</option><option value="58">Brasil</option><option value="236">Bulgaria</option><option value="4">Canadá</option><option value="76">Chipre</option><option value="20">Dinamarca</option><option value="21">EE.UU.</option><option value="37">Eslovaquia</option><option value="193">Eslovenia</option><option value="6" selected="selected">España</option><option value="86">Estonia</option><option value="7">Finlandia</option><option value="8">Francia</option><option value="9">Grecia</option><option value="143">Hungría</option><option value="26">Irlanda</option><option value="223">Islas Vírgenes (Británicas)</option><option value="224">Islas Vírgenes (EE.UU.)</option><option value="10">Italia</option><option value="125">Letonia</option><option value="130">Liechtenstein</option><option value="131">Lituania</option><option value="12">Luxemburgo</option><option value="139">Malta</option><option value="145">México</option><option value="13">Países Bajos</option><option value="14">Polonia</option><option value="15">Portugal</option><option value="17">Reino Unido</option><option value="16">República Checa</option><option value="36">Rumania</option><option value="39">Samoa Americana</option><option value="18">Suecia</option><option value="216">Ucrania</option> </select></div><div class="required dni form-group"> <label for="dni">Número de identificación fiscal <sup>*</sup></label> <input type="text" class="text form-control validate" name="dni" id="dni" data-validate="isDniLite" value="" /> <span class="form_info">DNI/NIF/NIE</span></div><div class="form-group is_customer_param"> <label for="other">Información adicional</label><textarea class="form-control" name="other" id="other" cols="26" rows="7"></textarea></div><div class="form-group is_customer_param"> <label for="phone">Teléfono fijo <sup>**</sup></label> <input type="text" class="text form-control validate" name="phone" id="phone" data-validate="isPhoneNumber" value="" /></div><div class="required form-group"> <label for="phone_mobile">Teléfono móvil <sup>**</sup></label> <input type="text" class="text form-control validate" name="phone_mobile" id="phone_mobile" data-validate="isPhoneNumber" value="" /></div><p class="inline-infos required">** Debe registrar por lo menos un número telefónico</p> <input type="hidden" name="alias" id="alias" value="Mi dirección"/><div class="checkbox"> <label for="invoice_address"> <input type="checkbox" name="invoice_address" id="invoice_address" autocomplete="off"/> Deseo utilizar otra dirección para la facturación</label></div><div id="opc_invoice_address" class="is_customer_param"><h3 class="page-subheading top-indent">Dirección de facturación</h3><div class="required form-group"> <label for="firstname_invoice">Nombre <sup>*</sup></label> <input type="text" class="form-control validate" id="firstname_invoice" name="firstname_invoice" data-validate="isName" value="" /></div><div class="required form-group"> <label for="lastname_invoice">Apellido <sup>*</sup></label> <input type="text" class="form-control validate" id="lastname_invoice" name="lastname_invoice" data-validate="isName" value="" /></div><div class="required form-group"> <label for="address1_invoice">Dirección <sup>*</sup></label> <input type="text" class="form-control validate" name="address1_invoice" id="address1_invoice" data-validate="isAddress" value="" /></div><div class="form-group is_customer_param"> <label for="address2_invoice">Dirección (2) y código postal (requerido)</label> <input type="text" class="form-control address" name="address2_invoice" id="address2_invoice" data-validate="isAddress" value="" /></div><div class="required postcode_invoice form-group"> <label for="postcode_invoice">Código postal <sup>*</sup></label> <input type="text" class="form-control validate" name="postcode_invoice" id="postcode_invoice" data-validate="isPostCode" value=""/></div><div class="required form-group"> <label for="city_invoice">Ciudad <sup>*</sup></label> <input type="text" class="form-control validate" name="city_invoice" id="city_invoice" data-validate="isCityName" value="" /></div><div class="required id_state_invoice form-group" style="display:none;"> <label for="id_state_invoice">Provincia o Estado <sup>*</sup></label> <select name="id_state_invoice" id="id_state_invoice" class="form-control"><option value="">-</option> </select></div><div class="required form-group"> <label for="id_country_invoice">País <sup>*</sup></label> <select name="id_country_invoice" id="id_country_invoice" class="form-control"><option Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted May 1, 2017 Share Posted May 1, 2017 https://www.prestashop.com/forums/topic/323089-zip-code-and-state-are-not-showing/ https://www.prestashop.com/forums/topic/309163-no-postcode-in-add-address-page/ Link to comment Share on other sites More sharing options...
genweb Posted May 1, 2017 Share Posted May 1, 2017 En el código que has pegado se ve el código postal en un input: <input type="text" class="text form-control validate" name="postcode" id="postcode" data-validate="isPostCode" value=""/> Deberías localizar ese elemento con el inspector, y en la parte derecha, donde suelen aparecer los estilos CSS asociados a un elemento, buscar si ves un "display:none" O si quieres déjanos URL y le damos un vistazo al CSS. Link to comment Share on other sites More sharing options...
Aldeag Posted May 1, 2017 Author Share Posted May 1, 2017 (edited) Mi tienda es www.aldeaglobaltarifa.com Mira lo que veo con el inspector en Firefox (en imagen adjunta) ¿Que puedo modificar, como y donde? Edited May 1, 2017 by Aldeag (see edit history) Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted May 1, 2017 Share Posted May 1, 2017 (edited) ¿Puedes desactivar un momento la compresion de JS y CSS en parametros avanzados -> rendimiento para ver bien el problema? Eso si, siendo la plantilla por defecto, no se tendria que hacer ninguna modificación de CSS ni forzarla, etc.., otra cosa es que sea un bug relativo a la 1.6.1.3 que se haya reportado y soluciones en las siguientes variantes de la 1.6 (Actualmente la última de la 1.6, es la 1.6.1.13) Edited May 1, 2017 by Sergio Ruiz (see edit history) Link to comment Share on other sites More sharing options...
genweb Posted May 2, 2017 Share Posted May 2, 2017 Tienes el parámetro display:none en el código postal de la plantilla. Pero como dice Sergio, si es un bug de la plantilla, casi sería mejor actualizarla que ponerse a tocar código. #account-creation_form .id_state, #account-creation_form .dni, #account-creation_form .postcode{ display:none; } Link to comment Share on other sites More sharing options...
Aldeag Posted May 2, 2017 Author Share Posted May 2, 2017 Muchas gracias por contestar. Uff. Me dá un repelús actualizar. Pero sí, mi versión es la 1.6.1.3 Estos son los parámetros que he cambiado y ninguno aporta solución. Tengo activado solicitar Código Postal. ¿Tendría que modificar algún archivo? ¿Actualizar solo la plantilla? ¿Actualizar todo? ¿Cual es el mejor método? Link to comment Share on other sites More sharing options...
genweb Posted May 2, 2017 Share Posted May 2, 2017 Yo probaría a meter al final de uno de tus ficheros CSS del template estas líneas: #new_account_form .postcode { display: block!important;} Después de eso, el campo código postal apacererá y tendrías que probar muy bien que funciona todo correctamente. Esas líneas podrían ir al final de un fichero situado en una ruta aproximada: /themes/default/css/global.css IMPORTANTE: cuando hagas ese cambio, no verás nada hasta que no vacíes/regeneres la cache de la tienda. IMPORTANTE: si cambias cualquier fichero, haz una copia de seguridad en local antes, para poder rectificar si rompes algo. Link to comment Share on other sites More sharing options...
nadie Posted May 2, 2017 Share Posted May 2, 2017 Estimado Aldeag, Fijate una cosa, cuando eliges por ejemplo "finlandia" te aparece el cuadro del codigo postal, y despues cuando vuelves a seleccionar "España" si te aparece. Es decir, por lo que "observo" no te aparece en la "carga inicial" (Estoy probando en el registro) ¿Entiendo que tienes metido en codigopostal como adjuntas en las imagenes del principio en el formato de dirección de los paises (localización -> paises) (ademas de haber señalado que Contiene Codigo Postal) ? ¿no? Puedes desabilitar un momento lo que te ha dicho Sergio, que quiero ver una cosilla, creo que es mas importante averiguar la procedencia del fallo, que colocar un parche )( Link to comment Share on other sites More sharing options...
nadie Posted May 2, 2017 Share Posted May 2, 2017 Desconozco en este instante, si tiene algo que ver con tu problema, pero en la "consola" te salen errores de JS Adjunto pantallazo Link to comment Share on other sites More sharing options...
nadie Posted May 2, 2017 Share Posted May 2, 2017 ¿Tendría que modificar algún archivo? ¿Actualizar solo la plantilla? ¿Actualizar todo? ¿Cual es el mejor método? No he visto tus mensajes anteriores, en la parte donde adjuntas las opciones de Smart Cache que las tienes activadas, desactivalas, pero no para ver si se soluciona el problema, sino para que los usuarios del foro (genweb, sergio, etc..) puedan ver si el problema proviene de algun JS de los que te salen errores en la consola, u de otro lado. Saludos, Link to comment Share on other sites More sharing options...
Aldeag Posted May 2, 2017 Author Share Posted May 2, 2017 Os agradezco el tiempo que os tomáis con esto. Desactivé probé, y luego activé de nuevo esas opciones, ya que no encontaba diderencia. Voy a desactivarlas unas horas (o hasta mañana) para que podáis probarlas Link to comment Share on other sites More sharing options...
nadie Posted May 2, 2017 Share Posted May 2, 2017 Os agradezco el tiempo que os tomáis con esto. Desactivé probé, y luego activé de nuevo esas opciones, ya que no encontaba diderencia. Voy a desactivarlas unas horas (o hasta mañana) para que podáis probarlas Por lo visto parece que tienes un error: (No puedo asegurarte de que el fallo venga por ahí porque tampoco me he puesto a mirarlo, pero un error te da en ese fichero...) /themes/default-bootstrap/js/tools/statesManagement.js Prueba dejar ese fichero así:: /* * 2007-2016 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2016 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ //global variables var countriesNeedIDNumber = []; var countriesNeedZipCode = []; var states = []; $(document).ready(function(){ setCountries(); bindStateInputAndUpdate(); if (typeof bindUniform !=='undefined') bindUniform(); bindZipcode(); bindCheckbox(); $(document).on('click', '#invoice_address', function(e){ bindCheckbox(); }); }); function setCountries() { if (typeof countries !== 'undefined' && countries) { var countriesPS = []; for (var i in countries) { var id_country = countries[i]['id_country']; if (typeof countries[i]['states'] !== 'undefined' && parseInt(countries[i]['contains_states'])) { countriesPS[id_country] = []; for (var j in countries[i]['states']) countriesPS[parseInt(id_country)].push({'id' : parseInt(countries[i]['states'][j]['id_state']), 'name' : countries[i]['states'][j]['name']}); } if (typeof countries[i]['need_identification_number'] !== 'undefined' && parseInt(countries[i]['need_identification_number']) > 0) countriesNeedIDNumber.push(parseInt(countries[i]['id_country'])); if (typeof countries[i]['need_zip_code'] !== 'undefined' && parseInt(countries[i]['need_zip_code']) > 0) countriesNeedZipCode[parseInt(countries[i]['id_country'])] = countries[i]['zip_code_format']; } } states = countriesPS; } function bindCheckbox() { if ($('#invoice_address:checked').length > 0) { $('#opc_invoice_address').slideDown('slow'); if ($('#company_invoice').val() == '') $('#vat_number_block_invoice').hide(); if (typeof bindUniform !=='undefined') bindUniform(); } else $('#opc_invoice_address').slideUp('slow'); } function bindZipcode() { $(document).on('keyup', 'input[name^=postcode]', function(e) { var char = String.fromCharCode(e.keyCode); if (/[a-zA-Z]/.test(char)) $.trim($(this).val($(this).val().toUpperCase())); }); } function bindStateInputAndUpdate() { $('.id_state, .dni, .postcode').css({'display':'none'}); if (typeof idSelectedCountry !== 'undefined' && idSelectedCountry) $('#id_country option[value=' + idSelectedCountry + ']').prop('selected', true); updateState(); updateNeedIDNumber(); updateZipCode(); $(document).on('change', '#id_country', function(e) { updateState(); updateNeedIDNumber(); updateZipCode(); if (typeof validate_field !== 'undefined') validate_field('#postcode'); }); if ($('#id_country_invoice').length !== 0) { $(document).on('change', '#id_country_invoice', function(e) { updateState('invoice'); updateNeedIDNumber('invoice'); updateZipCode('invoice'); if (typeof validate_field !== 'undefined') validate_field('#postcode_invoice'); }); updateState('invoice'); updateNeedIDNumber('invoice'); updateZipCode('invoice'); } if (typeof idSelectedState !== 'undefined' && idSelectedState) $('.id_state option[value=' + idSelectedState + ']').prop('selected', true); if (typeof idSelectedStateInvoice !== 'undefined' && idSelectedStateInvoice) $('.id_state_invoice option[value=' + idSelectedStateInvoice + ']').prop('selected', true); } function updateState(suffix) { $('#id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '')+' option:not(:first-child)').remove(); if (typeof countries !== 'undefined') var state_list = states[parseInt($('#id_country' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).val())]; if (typeof state_list !== 'undefined') { $(state_list).each(function(key, item){ $('#id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).append('<option value="' + parseInt(item.id) + '">' + item.name + '</option>'); }); $('.id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '') + ':hidden').fadeIn('slow'); $('#id_state, #id_state_invoice').uniform(); } else $('.id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).fadeOut('fast'); } function updateNeedIDNumber(suffix) { var id_country = parseInt($('#id_country' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).val()); if (in_array(id_country, countriesNeedIDNumber)) { $('.dni' + (typeof suffix !== 'undefined' ? '_' + suffix : '') + ':hidden').fadeIn('slow'); $('#dni').uniform(); } else $('.dni' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).fadeOut('fast'); } function updateZipCode(suffix) { var id_country = parseInt($('#id_country' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).val()); if (typeof countriesNeedZipCode[id_country] !== 'undefined') { $('.postcode' + (typeof suffix !== 'undefined' ? '_' + suffix : '') + ':hidden').fadeIn('slow'); $('#postcode').uniform(); } else $('.postcode'+(typeof suffix !== 'undefined' ? '_' + suffix : '')).fadeOut('fast'); } Haz una copia del fichero "tuyo" antes. El contenido que te he pasado es del fichero que te he comentado en la versión 1.6.1.12, por lo tanto es solo para ir probando. Limpia cache, etc.. Saludos, Link to comment Share on other sites More sharing options...
nadie Posted May 2, 2017 Share Posted May 2, 2017 Espera me corrigo, el problema te esta dando en varios "js", porque no te reconoce: Uncaught TypeError: $(...).uniform is not a function Link to comment Share on other sites More sharing options...
genweb Posted May 2, 2017 Share Posted May 2, 2017 Te pego una copia de un statesManagement.js de otra tienda con mismo template que no presenta esos bugs y que difiere en varias líneas del tuyo que da error en http://aldeaglobaltarifa.com/themes/default-bootstrap/js/tools/statesManagement.js Si no tienes opción de actualizar tu template "default bootstrap" por completo, que sería lo ideal, la cosa sería sustituir tu fichero que da problemas (previa copia de seguridad) por este que te paso. Suerte! /** 2007-2014 PrestaShop** NOTICE OF LICENSE** This source file is subject to the Academic Free License (AFL 3.0)* that is bundled with this package in the file LICENSE.txt.* It is also available through the world-wide-web at this URL:* http://opensource.org/licenses/afl-3.0.php* If you did not receive a copy of the license and are unable to* obtain it through the world-wide-web, please send an email* to [email protected] so we can send you a copy immediately.** DISCLAIMER** Do not edit or add to this file if you wish to upgrade PrestaShop to newer* versions in the future. If you wish to customize PrestaShop for your* needs please refer to http://www.prestashop.com for more information.** @author PrestaShop SA <[email protected]>* @copyright 2007-2014 PrestaShop SA* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)* International Registered Trademark & Property of PrestaShop SA*///global variablesvar countriesNeedIDNumber = [];var countriesNeedZipCode = [];$(document).ready(function(){ setCountries(); bindStateInputAndUpdate(); bindUniform(); bindPostcode(); bindCheckbox(); $(document).on('click', '#invoice_address', function(e){ bindCheckbox(); });});function setCountries(){ if (typeof countries !== 'undefined' && countries) { var countriesPS = []; for (var i in countries) { var id_country = countries['id_country']; if (typeof countries['states'] !== 'undefined' && countries['states'] && countries['contains_states']) { countriesPS[id_country] = []; for (var j in countries['states']) countriesPS[parseInt(id_country)].push({'id' : parseInt(countries['states'][j]['id_state']), 'name' : countries['states'][j]['name']}); } if (typeof countries['need_identification_number'] !== 'undefined' && parseInt(countries['need_identification_number']) > 0) countriesNeedIDNumber.push(parseInt(countries['id_country'])); if (typeof countries['need_zip_code'] !== 'undefined' && parseInt(countries['need_zip_code']) > 0) countriesNeedZipCode[parseInt(countries['id_country'])] = countries['zip_code_format']; } } countries = countriesPS;}function bindCheckbox(){ if ($('#invoice_address:checked').length > 0) { $('#opc_invoice_address').slideDown('slow'); if ($('#company_invoice').val() == '') $('#vat_number_block_invoice').hide(); bindUniform(); } else $('#opc_invoice_address').slideUp('slow');}function bindUniform(){ $("select.form-control,input[type=radio],input[type=checkbox]").uniform();}function bindPostcode(){ $(document).on('keyup', 'input[name=postcode]', function(e) { $(this).val($(this).val().toUpperCase()); });}function bindStateInputAndUpdate(){ $('.id_state, .dni, .postcode').css({'display':'none'}); updateState(); updateNeedIDNumber(); updateZipCode(); $(document).on('change', '#id_country', function(e) { updateState(); updateNeedIDNumber(); updateZipCode(); }); if ($('#id_country_invoice').length !== 0) { $(document).on('change', '#id_country_invoice', function(e) { updateState('invoice'); updateNeedIDNumber('invoice'); updateZipCode('invoice'); }); updateState('invoice'); updateNeedIDNumber('invoice'); updateZipCode('invoice'); } if (typeof idSelectedState !== 'undefined' && idSelectedState) $('.id_state option[value= + idSelectedState + ]').prop('selected', true); if (typeof idSelectedStateInvoice !== 'undefined' && idSelectedStateInvoice) $('.id_state_invoice option[value= + idSelectedStateInvoice + ]').prop('selected', true);}function updateState(suffix){ $('#id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '')+' option:not(:first-child)').remove(); if (typeof countries !== 'undefined') var states = countries[parseInt($('#id_country' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).val())]; if (typeof states !== 'undefined') { $(states).each(function(key, item){ $('#id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).append('<option value="' + parseInt(item.id) + '">' + item.name + '</option>'); }); $('.id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '') + ':hidden').fadeIn('slow'); $('#id_state, #id_state_invoice').uniform(); } else $('.id_state' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).fadeOut('fast');}function updateNeedIDNumber(suffix){ var idCountry = parseInt($('#id_country' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).val()); if (typeof countriesNeedIDNumber !== 'undefined' && in_array(idCountry, countriesNeedIDNumber)) { $('.dni' + (typeof suffix !== 'undefined' ? '_' + suffix : '') + ':hidden').fadeIn('slow'); $('#dni').uniform(); } else $('.dni' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).fadeOut('fast');}function updateZipCode(suffix){ var idCountry = parseInt($('#id_country' + (typeof suffix !== 'undefined' ? '_' + suffix : '')).val()); if (typeof countriesNeedZipCode !== 'undefined' && typeof countriesNeedZipCode[idCountry] !== 'undefined') { $('.postcode' + (typeof suffix !== 'undefined' ? '_' + suffix : '') + ':hidden').fadeIn('slow'); $('#postcode').uniform(); } else $('.postcode'+(typeof suffix !== 'undefined' ? '_' + suffix : '')).fadeOut('fast');} Link to comment Share on other sites More sharing options...
Aldeag Posted May 2, 2017 Author Share Posted May 2, 2017 Te pego una copia de un statesManagement.js de otra tienda con mismo template que no presenta esos bugs y que difiere en varias líneas del tuyo que da error en http://aldeaglobaltarifa.com/themes/default-bootstrap/js/tools/statesManagement.js Si no tienes opción de actualizar tu template "default bootstrap" por completo, que sería lo ideal, la cosa sería sustituir tu fichero que da problemas (previa copia de seguridad) por este que te paso. Suerte! He hecho ese cambio, vaciado caché y sigo igual. No tengo campo Codigo Postal y no tengo desplegable Provincia que antes creo que sí tenía... Tengo este mensaje y estos ajustes. Link to comment Share on other sites More sharing options...
genweb Posted May 2, 2017 Share Posted May 2, 2017 He hecho ese cambio, vaciado caché y sigo igual. No tengo campo Codigo Postal y no tengo desplegable Provincia que antes creo que sí tenía... Tengo este mensaje y estos ajustes. El fichero http://aldeaglobaltarifa.com/themes/default-bootstrap/js/tools/statesManagement.js sigue siendo el antiguo y no el que yo te he pegado ¿has vuelto a restaurar ya el original? Link to comment Share on other sites More sharing options...
Aldeag Posted May 2, 2017 Author Share Posted May 2, 2017 El fichero http://aldeaglobaltarifa.com/themes/default-bootstrap/js/tools/statesManagement.js sigue siendo el antiguo y no el que yo te he pegado ¿has vuelto a restaurar ya el original? Si. Estaba probando ahora si hay algún cambio. Vuelvo a poner ese de nuevo y vacío caché Link to comment Share on other sites More sharing options...
Aldeag Posted May 2, 2017 Author Share Posted May 2, 2017 No encuentro las diferencias entre ambos Link to comment Share on other sites More sharing options...
Aldeag Posted May 3, 2017 Author Share Posted May 3, 2017 Espera me corrigo, el problema te esta dando en varios "js", porque no te reconoce: Uncaught TypeError: $(...).uniform is not a function ¿Y este error como se soluciona? Link to comment Share on other sites More sharing options...
genweb Posted May 3, 2017 Share Posted May 3, 2017 ¿Y este error como se soluciona? Ese error es el que estoy intentando ayudarte a solucionar Las diferencias son muchas, pero la más evidente es que tu fichero tiene estas líneas en la parte superior: //global variablesvar countriesNeedIDNumber = [];var countriesNeedZipCode = [];var states = []; Y el que yo te he puesto más arriba, no tiene esta línea: var states = []; Link to comment Share on other sites More sharing options...
Aldeag Posted May 3, 2017 Author Share Posted May 3, 2017 Bueno, pues me he tirado a la piscina y he actualizado toda la tienda con el módulo "Actualización 1-Click" y ahora tengo la versión 1.6.1.13, que le he tenido que hacer algún cambio por la apariencia de los radio buttons, pero que parece que me ha solucionado el problema del registro, Código postal, y Provincia. Al menos por ahora He vaciado caché, Reseteado CCC a su estado activo y por ahora pinta bién. Ahora veré si algunas modificaciones que le tuve que hacer al tema original por problemas que traía las tengo que volver a hacer o vienen solucionadas con la actualización. Me resistía a actualizar por miedo a tener que hacer nuevos cambios profundos pero, de momento, parece todo correcto. Muchas gracias por el interés que os estáis tomando. Sigo con las pruebas y seguiré informando y "molestando" si necesito ayuda. Espero que le sirva de ayuda a quien se encuentre un problema igual. Link to comment Share on other sites More sharing options...
Aldeag Posted May 3, 2017 Author Share Posted May 3, 2017 La actualización la he hecho alrededor de las 17:00 - 17:30 es decir hace dos horas desde este momento que son las 19:40. Por si me estáis siguiendo. Link to comment Share on other sites More sharing options...
Aldeag Posted May 3, 2017 Author Share Posted May 3, 2017 Bueno, pues tengo el Debug activado y me salta este error: Error occured: TypeError: $(...).uniform is not a functionhttp://aldeaglobaltarifa.com/themes/default-bootstrap/cache/v_57_d4f48d71c2d0d6063fd458d3b3082f2c.js on Line: 970 Y después de registrar el mismo cliente dos veces (previo borrado desde el BackOffice) NO ME APARECE EL CAMPO CODIGO POSTAL. Ha desaparecido!!! Link to comment Share on other sites More sharing options...
Aldeag Posted May 3, 2017 Author Share Posted May 3, 2017 ¿Tendrá que ver que he eliminado /js/autoload/15-jquery.uniform-modified.js para solucionar que no se ven los radio buttons y checkboxes tal y como se comenta en este tema?: https://www.prestashop.com/forums/topic/392542-how-to-prevent-radio-button-wrapping-by-span-and-div/ Link to comment Share on other sites More sharing options...
Aldeag Posted May 4, 2017 Author Share Posted May 4, 2017 He comprobado que había eliminado el archivo /js/autoload/15-jquery.uniform-modified.js y que al restituirlo parece ser que se eliminan los problemas del registro de los clientes. También se eliminan los problemas de pagar con Paypal. ¿Porque había eliminado ese archivo? Tengo en mi tienda el módulo Attribute Grid de Presto Changeo para la gestion de combinaciones tipo talla color. Pero la presencia de algún comando en el archivo eliminado hacía que ese módulo funcionara mal presentando mal los radio buttons. En un comentario de otro foro aquí en Prestashop recomendaban modicar algunas líneas o directamente eliminar el archivo, es el link que he puesto arriba: https://www.prestashop.com/forums/topic/392542-how-to-prevent-radio-button-wrapping-by-span-and-div/ Necesitaría saber que líneas cambiar en el archivo, ya que Attribute Grid lo necesito. No tengo ni idea de código ni programación pero parece que viene de ahí. Link to comment Share on other sites More sharing options...
genweb Posted May 5, 2017 Share Posted May 5, 2017 En ese hilo te dicen que para no eliminar el archivo, agregues al final del mismo este código para uno de ¿tus radio button problemáticos? $(window).load(function() {$.uniform.restore(".noUniform");}); Necesitaríamos ver un ejemplo del problema inicial (radio buttons mal presentados) para entender el problema del que hablan en ese topic e interpretar la solución menos agresiva (sin eliminar el fichero) Link to comment Share on other sites More sharing options...
Aldeag Posted May 5, 2017 Author Share Posted May 5, 2017 A ver si soy capaz de ordenar las imágenes. Con la modificación de arriba, pero sin el módulo Attribute Grid se ven los botones en blanco y negro y las combinaciones a la derecha. Al registrar el cliente se ven todos los campos correctamente (codigo postal, provincia...) Si activo Attribute Grid se ven las combinaciones en forma de cuadrícula pero no puedo marcar solo una combinación, porque al marcar otra combinación se debería desactivar la primera (son radio buttons, no checkboxes) Eso es un conflicto con Attribute Grid Sin el archivo /js/autoload/15-jquery.uniform-modified.js (borrado) se ven las combinaciones correctamente y los botones en azul. Si selecciono otra cominación, se deselecciona la primera. Atribute grid funciona correctamente, pero el registro de clientes está mal, me sale un mensaje de error y no aparece el campo Codigo Postal pero el aspecto de los desplegables también cambia (aunque me gusta mas, tiene mejor aspecto) Link to comment Share on other sites More sharing options...
Aldeag Posted May 5, 2017 Author Share Posted May 5, 2017 Con la línea modificada no es bastante. Se siguen viendo los botones en blanco y negro sobreescribiéndose al original sombreado y azul (que aparece brevemente unas décimas de segundo). Y Attribute Grid no funciona. Pero al menos se puede registrar el cliente con todos los campos. Link to comment Share on other sites More sharing options...
Aldeag Posted May 5, 2017 Author Share Posted May 5, 2017 Este es el contenido del archivo: /*Uniform v2.1.2Copyright © 2009 Josh Pyles / Pixelmatrix Design LLChttp://pixelmatrixdesign.comRequires jQuery 1.3 or newerMuch thanks to Thomas Reynolds and Buck Wilson for their help and advice onthis.Disabling text selection is made possible by Mathias Bynens<http://mathiasbynens.be/> and his noSelect plugin.<https://github.com/mathiasbynens/jquery-noselect>, which is embedded.Also, thanks to David Kaneda and Eugene Bond for their contributions to theplugin.Tyler Akins has also rewritten chunks of the plugin, helped close many issues,and ensured version 2 got out the door.License:MIT License - http://www.opensource.org/licenses/mit-license.phpEnjoy!*//*global jQuery, document, navigator*/(function (wind, $, undef) { "use strict"; /** * Use .prop() if jQuery supports it, otherwise fall back to .attr() * * @param jQuery $el jQuery'd element on which we're calling attr/prop * @param ... All other parameters are passed to jQuery's function * @return The result from jQuery */ function attrOrProp($el) { var args = Array.prototype.slice.call(arguments, 1); if ($el.prop) { // jQuery 1.6+ return $el.prop.apply($el, args); } // jQuery 1.5 and below return $el.attr.apply($el, args); } /** * For backwards compatibility with older jQuery libraries, only bind * one thing at a time. Also, this function adds our namespace to * events in one consistent location, shrinking the minified code. * * The properties on the events object are the names of the events * that we are supposed to add to. It can be a space separated list. * The namespace will be added automatically. * * @param jQuery $el * @param Object options Uniform options for this element * @param Object events Events to bind, properties are event names */ function bindMany($el, options, events) { var name, namespaced; for (name in events) { if (events.hasOwnProperty(name)) { namespaced = name.replace(/ |$/g, options.eventNamespace); $el.bind(namespaced, events[name]); } } } /** * Bind the hover, active, focus, and blur UI updates * * @param jQuery $el Original element * @param jQuery $target Target for the events (our div/span) * @param Object options Uniform options for the element $target */ function bindUi($el, $target, options) { bindMany($el, options, { focus: function () { $target.addClass(options.focusClass); }, blur: function () { $target.removeClass(options.focusClass); $target.removeClass(options.activeClass); }, mouseenter: function () { $target.addClass(options.hoverClass); }, mouseleave: function () { $target.removeClass(options.hoverClass); $target.removeClass(options.activeClass); }, "mousedown touchbegin": function () { if (!$el.is(":disabled")) { $target.addClass(options.activeClass); } }, "mouseup touchend": function () { $target.removeClass(options.activeClass); } }); } /** * Remove the hover, focus, active classes. * * @param jQuery $el Element with classes * @param Object options Uniform options for the element */ function classClearStandard($el, options) { $el.removeClass(options.hoverClass + " " + options.focusClass + " " + options.activeClass); } /** * Add or remove a class, depending on if it's "enabled" * * @param jQuery $el Element that has the class added/removed * @param String className Class or classes to add/remove * @param Boolean enabled True to add the class, false to remove */ function classUpdate($el, className, enabled) { if (enabled) { $el.addClass(className); } else { $el.removeClass(className); } } /** * Updating the "checked" property can be a little tricky. This * changed in jQuery 1.6 and now we can pass booleans to .prop(). * Prior to that, one either adds an attribute ("checked=checked") or * removes the attribute. * * @param jQuery $tag Our Uniform span/div * @param jQuery $el Original form element * @param Object options Uniform options for this element */ function classUpdateChecked($tag, $el, options) { var c = "checked", isChecked = $el.is(":" + c); if ($el.prop) { // jQuery 1.6+ $el.prop(c, isChecked); } else { // jQuery 1.5 and below if (isChecked) { $el.attr(c, c); } else { $el.removeAttr©; } } classUpdate($tag, options.checkedClass, isChecked); } /** * Set or remove the "disabled" class for disabled elements, based on * if the element is detected to be disabled. * * @param jQuery $tag Our Uniform span/div * @param jQuery $el Original form element * @param Object options Uniform options for this element */ function classUpdateDisabled($tag, $el, options) { classUpdate($tag, options.disabledClass, $el.is(":disabled")); } /** * Wrap an element inside of a container or put the container next * to the element. See the code for examples of the different methods. * * Returns the container that was added to the HTML. * * @param jQuery $el Element to wrap * @param jQuery $container Add this new container around/near $el * @param String method One of "after", "before" or "wrap" * @return $container after it has been cloned for adding to $el */ function divSpanWrap($el, $container, method) { switch (method) { case "after": // Result: <element /> <container /> $el.after($container); return $el.next(); case "before": // Result: <container /> <element /> $el.before($container); return $el.prev(); case "wrap": // Result: <container> <element /> </container> $el.wrap($container); return $el.parent(); } return null; } /** * Create a div/span combo for uniforming an element * * @param jQuery $el Element to wrap * @param Object options Options for the element, set by the user * @param Object divSpanConfig Options for how we wrap the div/span * @return Object Contains the div and span as properties */ function divSpan($el, options, divSpanConfig) { var $div, $span, id; if (!divSpanConfig) { divSpanConfig = {}; } divSpanConfig = $.extend({ bind: {}, divClass: null, divWrap: "wrap", spanClass: null, spanHtml: null, spanWrap: "wrap" }, divSpanConfig); $div = $('<div />'); $span = $('<span />'); // Automatically hide this div/span if the element is hidden. // Do not hide if the element is hidden because a parent is hidden. if (options.autoHide && $el.is(':hidden') && $el.css('display') === 'none') { $div.hide(); } if (divSpanConfig.divClass) { $div.addClass(divSpanConfig.divClass); } if (options.wrapperClass) { $div.addClass(options.wrapperClass); } if (divSpanConfig.spanClass) { $span.addClass(divSpanConfig.spanClass); } id = attrOrProp($el, 'id'); if (options.useID && id) { attrOrProp($div, 'id', options.idPrefix + '-' + id); } if (divSpanConfig.spanHtml) { $span.html(divSpanConfig.spanHtml); } $div = divSpanWrap($el, $div, divSpanConfig.divWrap); $span = divSpanWrap($el, $span, divSpanConfig.spanWrap); classUpdateDisabled($div, $el, options); return { div: $div, span: $span }; } /** * Wrap an element with a span to apply a global wrapper class * * @param jQuery $el Element to wrap * @param object options * @return jQuery Wrapper element */ function wrapWithWrapperClass($el, options) { var $span; if (!options.wrapperClass) { return null; } $span = $('<span />').addClass(options.wrapperClass); $span = divSpanWrap($el, $span, "wrap"); return $span; } /** * Test if high contrast mode is enabled. * * In high contrast mode, background images can not be set and * they are always returned as 'none'. * * @return boolean True if in high contrast mode */ function highContrast() { var c, $div, el, rgb; // High contrast mode deals with white and black rgb = 'rgb(120,2,153)'; $div = $('<div style="width:0;height:0;color:' + rgb + '">'); $('body').append($div); el = $div.get(0); // $div.css() will get the style definition, not // the actually displaying style if (wind.getComputedStyle) { c = wind.getComputedStyle(el, '').color; } else { c = (el.currentStyle || el.style || {}).color; } $div.remove(); return c.replace(/ /g, '') !== rgb; } /** * Change text into safe HTML * * @param String text * @return String HTML version */ function htmlify(text) { if (!text) { return ""; } return $('<span />').text(text).html(); } /** * If not MSIE, return false. * If it is, return the version number. * * @return false|number */ function isMsie() { return navigator.cpuClass && !navigator.product; } /** * Return true if this version of IE allows styling * * @return boolean */ function isMsieSevenOrNewer() { if (wind.XMLHttpRequest !== undefined) { return true; } return false; } /** * Test if the element is a multiselect * * @param jQuery $el Element * @return boolean true/false */ function isMultiselect($el) { var elSize; if ($el[0].multiple) { return true; } elSize = attrOrProp($el, "size"); if (!elSize || elSize <= 1) { return false; } return true; } /** * Meaningless utility function. Used mostly for improving minification. * * @return false */ function returnFalse() { return false; } /** * noSelect plugin, very slightly modified * http://mths.be/noselect v1.0.3 * * @param jQuery $elem Element that we don't want to select * @param Object options Uniform options for the element */ function noSelect($elem, options) { var none = 'none'; bindMany($elem, options, { 'selectstart dragstart mousedown': returnFalse }); $elem.css({ MozUserSelect: none, msUserSelect: none, webkitUserSelect: none, userSelect: none }); } /** * Updates the filename tag based on the value of the real input * element. * * @param jQuery $el Actual form element * @param jQuery $filenameTag Span/div to update * @param Object options Uniform options for this element */ function setFilename($el, $filenameTag, options) { var filename = $el.val(); if (filename === "") { filename = options.fileDefaultHtml; } else { filename = filename.split(/[\/\\]+/); filename = filename[(filename.length - 1)]; } $filenameTag.text(filename); } /** * Function from jQuery to swap some CSS values, run a callback, * then restore the CSS. Modified to pass JSLint and handle undefined * values with 'use strict'. * * @param jQuery $el Element * @param object newCss CSS values to swap out * @param Function callback Function to run */ function swap($elements, newCss, callback) { var restore, item; restore = []; $elements.each(function () { var name; for (name in newCss) { if (Object.prototype.hasOwnProperty.call(newCss, name)) { restore.push({ el: this, name: name, old: this.style[name] }); this.style[name] = newCss[name]; } } }); callback(); while (restore.length) { item = restore.pop(); item.el.style[item.name] = item.old; } } /** * The browser doesn't provide sizes of elements that are not visible. * This will clone an element and add it to the DOM for calculations. * * @param jQuery $el * @param String method */ function sizingInvisible($el, callback) { var targets; // We wish to target ourselves and any parents as long as // they are not visible targets = $el.parents(); targets.push($el[0]); targets = targets.not(':visible'); swap(targets, { visibility: "hidden", display: "block", position: "absolute" }, callback); } /** * Standard way to unwrap the div/span combination from an element * * @param jQuery $el Element that we wish to preserve * @param Object options Uniform options for the element * @return Function This generated function will perform the given work */ function unwrapUnwrapUnbindFunction($el, options) { return function () { $el.unwrap().unwrap().unbind(options.eventNamespace); }; } var allowStyling = true, // False if IE6 or other unsupported browsers highContrastTest = false, // Was the high contrast test ran? uniformHandlers = [ // Objects that take care of "unification" { // Buttons match: function ($el) { return $el.is("a, button, :submit, :reset, input[type=button]"); }, apply: function ($el, options) { var $div, defaultSpanHtml, ds, getHtml, doingClickEvent; defaultSpanHtml = options.submitDefaultHtml; if ($el.is(":reset")) { defaultSpanHtml = options.resetDefaultHtml; } if ($el.is("a, button")) { // Use the HTML inside the tag getHtml = function () { return $el.html() || defaultSpanHtml; }; } else { // Use the value property of the element getHtml = function () { return htmlify(attrOrProp($el, "value")) || defaultSpanHtml; }; } ds = divSpan($el, options, { divClass: options.buttonClass, spanHtml: getHtml() }); $div = ds.div; bindUi($el, $div, options); doingClickEvent = false; bindMany($div, options, { "click touchend": function () { var ev, res, target, href; if (doingClickEvent) { return; } if ($el.is(':disabled')) { return; } doingClickEvent = true; if ($el[0].dispatchEvent) { ev = document.createEvent("MouseEvents"); ev.initEvent("click", true, true); res = $el[0].dispatchEvent(ev); if ($el.is('a') && res) { target = attrOrProp($el, 'target'); href = attrOrProp($el, 'href'); if (!target || target === '_self') { document.location.href = href; } else { wind.open(href, target); } } } else { $el.click(); } doingClickEvent = false; } }); noSelect($div, options); return { remove: function () { // Move $el out $div.after($el); // Remove div and span $div.remove(); // Unbind events $el.unbind(options.eventNamespace); return $el; }, update: function () { classClearStandard($div, options); classUpdateDisabled($div, $el, options); $el.detach(); ds.span.html(getHtml()).append($el); } }; } }, { // Checkboxes match: function ($el) { return $el.is(":checkbox"); }, apply: function ($el, options) { var ds, $div, $span; ds = divSpan($el, options, { divClass: options.checkboxClass }); $div = ds.div; $span = ds.span; // Add focus classes, toggling, active, etc. bindUi($el, $div, options); bindMany($el, options, { "click touchend": function () { classUpdateChecked($span, $el, options); } }); classUpdateChecked($span, $el, options); return { remove: unwrapUnwrapUnbindFunction($el, options), update: function () { classClearStandard($div, options); $span.removeClass(options.checkedClass); classUpdateChecked($span, $el, options); classUpdateDisabled($div, $el, options); } }; } }, { // File selection / uploads match: function ($el) { return $el.is(":file"); }, apply: function ($el, options) { var ds, $div, $filename, $button; // The "span" is the button ds = divSpan($el, options, { divClass: options.fileClass, spanClass: options.fileButtonClass, spanHtml: options.fileButtonHtml, spanWrap: "after" }); $div = ds.div; $button = ds.span; $filename = $("<span />").html(options.fileDefaultHtml); $filename.addClass(options.filenameClass); $filename = divSpanWrap($el, $filename, "after"); // Set the size if (!attrOrProp($el, "size")) { attrOrProp($el, "size", $div.width() / 10); } // Actions function filenameUpdate() { setFilename($el, $filename, options); } bindUi($el, $div, options); // Account for input saved across refreshes filenameUpdate(); // IE7 doesn't fire onChange until blur or second fire. if (isMsie()) { // IE considers browser chrome blocking I/O, so it // suspends tiemouts until after the file has // been selected. bindMany($el, options, { click: function () { $el.trigger("change"); setTimeout(filenameUpdate, 0); } }); } else { // All other browsers behave properly bindMany($el, options, { change: filenameUpdate }); } noSelect($filename, options); noSelect($button, options); return { remove: function () { // Remove filename and button $filename.remove(); $button.remove(); // Unwrap parent div, remove events return $el.unwrap().unbind(options.eventNamespace); }, update: function () { classClearStandard($div, options); setFilename($el, $filename, options); classUpdateDisabled($div, $el, options); } }; } }, { // Input fields (text) match: function ($el) { if ($el.is("input")) { var t = (" " + attrOrProp($el, "type") + " ").toLowerCase(), allowed = " color date datetime datetime-local email month number password search tel text time url week "; return allowed.indexOf(t) >= 0; } return false; }, apply: function ($el, options) { var elType, $wrapper; elType = attrOrProp($el, "type"); $el.addClass(options.inputClass); $wrapper = wrapWithWrapperClass($el, options); bindUi($el, $el, options); if (options.inputAddTypeAsClass) { $el.addClass(elType); } return { remove: function () { $el.removeClass(options.inputClass); if (options.inputAddTypeAsClass) { $el.removeClass(elType); } if ($wrapper) { $el.unwrap(); } }, update: returnFalse }; } }, { // Radio buttons match: function ($el) { return $el.is(":radio"); }, apply: function ($el, options) { var ds, $div, $span; ds = divSpan($el, options, { divClass: options.radioClass }); $div = ds.div; $span = ds.span; // Add classes for focus, handle active, checked bindUi($el, $div, options); bindMany($el, options, { "click touchend": function () { // Find all radios with the same name, then update // them with $.uniform.update() so the right // per-element options are used $.uniform.update($(':radio[name=' + attrOrProp($el, "name") + ']')); } }); classUpdateChecked($span, $el, options); return { remove: unwrapUnwrapUnbindFunction($el, options), update: function () { classClearStandard($div, options); classUpdateChecked($span, $el, options); classUpdateDisabled($div, $el, options); } }; } }, { // Select lists, but do not style multiselects here match: function ($el) { if ($el.is("select") && !isMultiselect($el)) { return true; } return false; }, apply: function ($el, options) { var ds, $div, $span, origElemWidth; if (options.selectAutoWidth) { sizingInvisible($el, function () { origElemWidth = $el.width(); }); } ds = divSpan($el, options, { divClass: options.selectClass, spanHtml: ($el.find(":selected:first") || $el.find("option:first")).html(), spanWrap: "before" }); $div = ds.div; $span = ds.span; if (options.selectAutoWidth) { // Use the width of the select and adjust the // span and div accordingly sizingInvisible($el, function () { // Force "display: block" - related to bug #287 swap($([ $span[0], $div[0] ]), { display: "block" }, function () { var spanPad; spanPad = $span.outerWidth() - $span.width(); $div.width(origElemWidth); $span.width(origElemWidth -spanPad); }); }); } else { // Force the select to fill the size of the div $div.addClass('fixedWidth'); } // Take care of events bindUi($el, $div, options); bindMany($el, options, { change: function () { $span.html($el.find(":selected").html()); $div.removeClass(options.activeClass); }, "click touchend": function () { // IE7 and IE8 may not update the value right // until after click event - issue #238 var selHtml = $el.find(":selected").html(); if ($span.html() !== selHtml) { // Change was detected // Fire the change event on the select tag $el.trigger('change'); } }, keyup: function () { $span.html($el.find(":selected").html()); } }); noSelect($span, options); return { remove: function () { // Remove sibling span $span.remove(); // Unwrap parent div $el.unwrap().unbind(options.eventNamespace); return $el; }, update: function () { if (options.selectAutoWidth) { // Easier to remove and reapply formatting $.uniform.restore($el); $el.uniform(options); } else { classClearStandard($div, options); // Reset current selected text $span.html($el.find(":selected").html()); classUpdateDisabled($div, $el, options); } } }; } }, { // Select lists - multiselect lists only match: function ($el) { if ($el.is("select") && isMultiselect($el)) { return true; } return false; }, apply: function ($el, options) { var $wrapper; $el.addClass(options.selectMultiClass); $wrapper = wrapWithWrapperClass($el, options); bindUi($el, $el, options); return { remove: function () { $el.removeClass(options.selectMultiClass); if ($wrapper) { $el.unwrap(); } }, update: returnFalse }; } }, { // Textareas match: function ($el) { return $el.is("textarea"); }, apply: function ($el, options) { var $wrapper; $el.addClass(options.textareaClass); $wrapper = wrapWithWrapperClass($el, options); bindUi($el, $el, options); return { remove: function () { $el.removeClass(options.textareaClass); if ($wrapper) { $el.unwrap(); } }, update: returnFalse }; } } ]; // IE6 can't be styled - can't set opacity on select if (isMsie() && !isMsieSevenOrNewer()) { allowStyling = false; } $.uniform = { // Default options that can be overridden globally or when uniformed // globally: $.uniform.defaults.fileButtonHtml = "Pick A File"; // on uniform: $('input').uniform({fileButtonHtml: "Pick a File"}); defaults: { activeClass: "active", autoHide: true, buttonClass: "button", checkboxClass: "checker", checkedClass: "checked", disabledClass: "disabled", eventNamespace: ".uniform", fileButtonClass: "action", fileButtonHtml: "Choose File", fileClass: "uploader", fileDefaultHtml: "No file selected", filenameClass: "filename", focusClass: "focus", hoverClass: "hover", idPrefix: "uniform", inputAddTypeAsClass: true, inputClass: "uniform-input", radioClass: "radio", resetDefaultHtml: "Reset", resetSelector: false, // We'll use our own function when you don't specify one selectAutoWidth: true, selectClass: "selector", selectMultiClass: "uniform-multiselect", submitDefaultHtml: "Submit", // Only text allowed textareaClass: "uniform", useID: true, wrapperClass: null }, // All uniformed elements - DOM objects elements: [] }; $.fn.uniform = function (options) { var el = this; options = $.extend({}, $.uniform.defaults, options); // If we are in high contrast mode, do not allow styling if (!highContrastTest) { highContrastTest = true; if (highContrast()) { allowStyling = false; } } // Only uniform on browsers that work if (!allowStyling) { return this; } // Code for specifying a reset button if (options.resetSelector) { $(options.resetSelector).mouseup(function () { wind.setTimeout(function () { $.uniform.update(el); }, 10); }); } return this.each(function () { var $el = $(this), i, handler, callbacks; // Avoid uniforming elements already uniformed - just update if ($el.data("uniformed")) { $.uniform.update($el); return; } // See if we have any handler for this type of element for (i = 0; i < uniformHandlers.length; i = i + 1) { handler = uniformHandlers; if (handler.match($el, options)) { callbacks = handler.apply($el, options); $el.data("uniformed", callbacks); // Store element in our global array $.uniform.elements.push($el.get(0)); return; } } // Could not style this element }); }; $.uniform.restore = $.fn.uniform.restore = function (elem) { if (elem === undef) { elem = $.uniform.elements; } $(elem).each(function () { var $el = $(this), index, elementData; elementData = $el.data("uniformed"); // Skip elements that are not uniformed if (!elementData) { return; } // Unbind events, remove additional markup that was added elementData.remove(); // Remove item from list of uniformed elements index = $.inArray(this, $.uniform.elements); if (index >= 0) { $.uniform.elements.splice(index, 1); } $el.removeData("uniformed"); }); }; $.uniform.update = $.fn.uniform.update = function (elem) { if (elem === undef) { elem = $.uniform.elements; } $(elem).each(function () { var $el = $(this), elementData; elementData = $el.data("uniformed"); // Skip elements that are not uniformed if (!elementData) { return; } elementData.update($el, elementData.options); }); };}(this, jQuery));if (typeof isMobile != 'undefined' && !isMobile){ $(window).load(function () { $("select.form-control,input[type=checkbox]:not(.comparator), input[type=radio],input#id_carrier2, input[type=file]").uniform(); }); // refresh uniform selects on document width change $(window).resize( function () { $.uniform.update("select.form-control, input[type=file]"); } );} Link to comment Share on other sites More sharing options...
genweb Posted May 5, 2017 Share Posted May 5, 2017 El problema es que con capturas o código que nos pegues, no podemos hacer nada, necesitamos ver el fallo en la tienda para debuguearlo con el inspector de chrome y ver una posible solución. Incluso a veces viendo el código solo, sin acceso a modificar archivos, se vuelve una tarea casi imposible el resolverlo. Entiendo que tal y como está ahora la tienda, todo te iría perfecto, ¿salvo el código postal que veo que sigue sin salir? Lo mejor va a ser que nos centremos en resolver ese tema, que parece el menor de los fallos. Link to comment Share on other sites More sharing options...
Aldeag Posted May 5, 2017 Author Share Posted May 5, 2017 En principio parece ser una incompatibilidad con el módulo Attribute Grid (ya me he puesto en contacto con el desarrollador Presto-Changeo) ya que para que el módulo funcione bien, hay que desactivar algún comando y es desactivando el archivo que contiene ese comando cuando el módulo funciona, presenta los radio buttons en celeste en lugar de blanco y negro y y permite seleccionarlos adecuadamente, pero con el problema de que desaparecen algunos campos imprescindibles para el registro. El borrado del archivo /js/autoload/15-jquery.uniform-modified.js es el que me produce esos problemas de registro. La modificación del archivo no ha quedado bién explicada en el hilo que propuse así que espero una solución del desarrollador. Creo que de momento al menos he localizado la procedencia del problema. Y eso no lo hubiera hecho sin vuestra ayuda, ya que vuestros comentarios me han permitido seguirle la pista. Seguiré informando. Link to comment Share on other sites More sharing options...
genweb Posted May 6, 2017 Share Posted May 6, 2017 Espero que el desarrollador pueda resolverlo, suerte! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now