Právě je 27 dub 2024 06:39

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 12 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: PrestaShop 1.6 - Povinné popisné číslo v poli adresa
PříspěvekNapsal: 21 led 2015 16:51 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
607
Zdravím,

Potrebujem radu, ako dosiahnuť toho, aby pri registrácii nedochádzalo k tomu, čo sa mi deje práve teraz.
Niektorí zákazníci totižto uvedú adresu (Ulica) napr :
Jahodová

Ale neuvedú popisné číslo, čižse správne by malo byť :
Jahodová 22

Potreboval by som nejakým spôsobom spraviť aby bol formát adresy + popisného čísla povinný. Čize, ak zák. napíše len ulicu, a nenapíse číslo, tak aby mu vyskočila hláška, že treba doplniť popisné číslo.

Je možné toto nejak docieliť ?

Ďakujem pekne za pomoc ! :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop 1.6 - Povinné popisné číslo v poli adresa
PříspěvekNapsal: 21 led 2015 16:52 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
607
Ešte prikladám screen :

(Jedná sa o jednostránkové objednávanie)


Přílohy:
Untitled-2.jpg
Untitled-2.jpg [ 225.98 KiB | Zobrazeno 2472 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop 1.6 - Povinné popisné číslo v poli adresa
PříspěvekNapsal: 28 led 2015 12:24 
C4 podpora
C4 podpora

Registrován:
30 čer 2009 09:14
Příspěvky:
8507
Dobrý den,

je nutné upravit funkci pro kontrolu tvaru pole Adresa.

Takže nejdříve v souboru classes/Validate.php najděte tuto část kódu:
Kód:
public static function isAddress($address)
{
    return empty($address) || preg_match('/^[^!<>?=+@{}_$%]*$/u', $address);
}
a změňte ji na:
Kód:
public static function isAddress($address)
{
    return empty($address) || preg_match('/^[^!<>?=+@{}_$%]*[0-9]+[^!<>?=+@{}_$%]*$/u', $address);
}

Pak ještě upravte javascriptovou kontrolu v souboru js/validate.js, ve kterém najděte řádky:
Kód:
function validate_isAddress(s)
{
   var reg = /^[^!<>?=+@{}_$%]+$/;
   return reg.test(s);
}
a upravte je na tvar:
Kód:
function validate_isAddress(s)
{
   var reg = /^[^!<>?=+@{}_$%]*[0-9]+[^!<>?=+@{}_$%]*$/;
   return reg.test(s);
}

Po této úpravě bude nutné do pole Adresa zadat i číslo.

_________________
Radek Plašil
Webhosting C4
https://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop 1.6 - Povinné popisné číslo v poli adresa
PříspěvekNapsal: 28 led 2015 12:42 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
607
Tak to je super ! :) Ďakujem veľmi pekne za návod. Hned idem nato ;) a dám vedieť , či to funguje


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop 1.6 - Povinné popisné číslo v poli adresa
PříspěvekNapsal: 28 led 2015 13:03 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
607
Paráda, funguje ;)... Akurát taký menší problém, neviem čím to je, ale zrejme to súvisí s mojou úpravou registrácie, kde som odstránil "titul, rok narodenia atd".

Pri kontrole údajov, nesvietia tie zelené "háčiky" viď obrázok.


Přílohy:
reg.jpg
reg.jpg [ 208.68 KiB | Zobrazeno 2425 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop 1.6 - Kontrola všech polí při registraci
PříspěvekNapsal: 28 led 2015 17:04 
C4 podpora
C4 podpora

Registrován:
30 čer 2009 09:14
Příspěvky:
8507
Dobrý den,

s Vaší úpravou to nesouvisí. Otestoval jsem kontrolu polí a zjistil jsem, že kontrola ostatních polí opravdu není všude (např. při samotné registraci nebo při standardní objednávce 5 kroků). Bohužel netuším, za jakého důvodu ji tvůrci aplikace do těchto částí nepřidali. Pokud byste ji chtěl doplnit, tak byste si musel upravit zdrojový kód šablony themes/default-bootstrap/authentication.tpl.

Na ukázku Vám uvedu úpravu pro pole Adresa (resp. address1). V souboru themes/default-bootstrap/authentication.tpl najděte řádek:
Kód:
<input type="text" class="form-control" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}" />
a nyní musíte do atributu class přidat validate a ještě doplnit typ validace data-validate="isAddress". Takže upravený řádek bude vypadat následovně:
Kód:
<input type="text" class="form-control validate" name="address1" id="address1" data-validate="isAddress" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}" />

Jen upozořnuji, že v souboru se řádek pro každé pole nachází dvakrát (právě pro různé části obchodu), takže úpravu proveďte na obou řádcích. A stejným způsobem si upravte i ostatní pole. Samozřejmě každé pole používá jiný způsob validace, takže na správné hodnoty atributu data-validate se můžete podívat v souboru themes/default-bootstrap/order-opc-new-account.tpl.

Aby se změna v šabloně projevila, tak nezapomeňte v administraci aplikace PrestaShop v sekci Nástroje > Kompilace šablony > Smarty přepnout volbu Kompilace šablony na Překompilovat šablony, pokud byly soubory zaktualizovány (příp. Vynucená kompilace). Po uložení načtěte stránku se změnou a vraťte nastavení volby Kompilace šablony zpět.

_________________
Radek Plašil
Webhosting C4
https://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop 1.6 - Kontrola všech polí při registraci
PříspěvekNapsal: 28 led 2015 18:47 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
607
Paráda :) Doplnené na všetky polia, hneď to vyzerá krajšie :).
Ďakujem pekne za super popis a návod !


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop 1.6 - Povinné popisné číslo v poli adresa
PříspěvekNapsal: 13 črc 2015 19:43 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
607
Dobrý deň,

Po upgrade na 1.6.1.0. nefunguje overenie políčka s poštovným
(V čistej inštalácii funguje OK)

V čom je chyba? Skúšal som prekopírovať themes/default.../všetky tpl. a aj tak to nefunguje, takže zrejme je problém niekde v JS?

Ďakujem za odpoveď


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop 1.6 - Povinné popisné číslo v poli adresa
PříspěvekNapsal: 14 črc 2015 11:56 
C4 podpora
C4 podpora

Registrován:
30 čer 2009 09:14
Příspěvky:
8507
Dobrý den,

a provedl jste při aktualizaci aplikace PrestaShop i aktualizaci šablony? Pokud ne, tak to samozřejmě může způsobovat problémy. Po vyplnění pole PSČ se v konzoli zobrazí chyba "TypeError: countries[id_country] is undefined", a proto nefunguje ověření pole. Můžete vyzkoušet zkopírovat z oficiálního instalačního balíčku poslední verze aplikace složku themes/default-bootstrap/js. Ale nejlepší bude, když zkopírujete kompletní složku šablony themes/default-bootstrap/, vyhnete se tak možným problémům v jiných částech obchodu.

_________________
Radek Plašil
Webhosting C4
https://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop 1.6 - Povinné popisné číslo v poli adresa
PříspěvekNapsal: 14 črc 2015 12:39 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
607
Zdravím,

Díky za odpoveď, skúsil som prepísať celú zložku s témou, ale problém stále pretrváva.
Napadlo ma, keď píšete ""TypeError: countries[id_country] is undefined""
Či to nesúvisí s touto zmenou?
Topic: prestashop-1-6-odber-na-spolecnost-dobrovolne-ico-t5659.html

Alebo kde by potom mohol byť problém? Ďakujem pekne


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 12 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
PrestaShop partneři

Seznam všech partnerů

PrestaShop Hosting
Návody pro C4

© 2009-2024 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz