Buy Now
Sign in

Verificador RUT

Zyraj , July 20 2018, 20:56
Z
Zyraj 20
July 20 2018, 20:56 #379166
I'm posting this because it could really be a time saver for someone.
Where I live we use a checksum at the end of our ID number, this checksum is obtained with an algorithm called Modulus 11. With this code you can add RUT validation to the text fields, but you could also break CF6 so back up the files involved before doing anything and proceed at your own risk!
Edit this file:
libraries/cegcore2/assets/js/g2.forms.js
And add the following function right after the email rules function (line 17 in my file):
jQuery.fn.form.settings.rules.rut = function(value){
if(value.match(/^\d{1,2}\.\d{3}\.\d{3}\-(\d|k|K)$/)){
var dv = value.slice(-1);
var rut=value.replace(/\.|\-/g,"");
var j = 2;
var sum = 0;
var i = (rut.length-1);
while (i--) {
if(j>7) j=2;
sum += rut.charAt(i) * j;
j++;
}
var dv2;
dv2=(11-(sum%11));
if (dv2==10) dv2="K";
if (dv2==11) dv2=0;
if(dv2==dv){
return true;
}else{
return false;
}
}else{
return false;
}
};
Also modify this file to add the button under the validation tab in the text field options:

libraries/cegcore2/admin/extensions/chronofc/views/field_text/field_text_config.php

change line 103 where it says "two fields" to "three fields" so it looks like this:
<div class="three fields">
Then in line 118 right after the div block for URL validation add this:
<div class="field">
<div class="ui checkbox toggle red">
<input type="hidden" name="Connection[views][<?php echo $n; ?>][validation][rut]" data-ghost="1" value="">
<input type="checkbox" class="hidden" name="Connection[views][<?php echo $n; ?>][validation][rut]" value="true">
<label><?php el('RUT'); ?></label>
</div>
</div>
I strongly suggest adding a specific mask for the RUT to avoid problems with the dots and hyphen since THIS validation will ask for them (E.g. 20.234.234-K). This can be easily done by adding this at line 220:
<option value="mask:99.999.999-&">RUT</option>
That's it! Hope it helps someone someday.
healyhatman 9
July 21 2018, 03:00 #379168
Any changes you make to those files will be overwritten the next time you update CF. Why don't you just add the custom validation in as a custom validation instead of messing with the core files?
https://www.chronoengine.com/faqs/74-chronoforms/chronoforms6/5293-validating-fields
Also be careful with input masks - they can cause problems with Android browsers.
Web developer at SkySpider.com.au - I DO NOT work for ChronoEngine!
Donations: paypal.me/healyhatman
Professional Work: kamron@skyspider.com.au
Custom CF / CC Plugins and Extensions: skyspider.com.au/store
healyhatman 9
July 21 2018, 03:24 #379169
ALSO ALSO: You don't need to add the custom mask to the core files. In the Design tab under "Extra Attributes" just use
data-inputmask:'mask':'99.999.999-&'
Web developer at SkySpider.com.au - I DO NOT work for ChronoEngine!
Donations: paypal.me/healyhatman
Professional Work: kamron@skyspider.com.au
Custom CF / CC Plugins and Extensions: skyspider.com.au/store
Z
Zyraj 20
July 21 2018, 03:36 #379171
Well it's a hack of course they will go away, it's up to you to keep your mods if you want, now if you want custom validation the code is perfectly functional in a jscript element but then again I rather have just a button to do it for me since it's used almost in all systems around here, and finally that's kinda the point of using open source plugins, to adapt the system to your needs, else I would be using brainfuck for my apps
Again its up to you to use masks or not, it wont affect the validation.
Cheers!
healyhatman 9
July 21 2018, 03:39 #379172
Step 1: Create your custom JS validation block
Step 2: Click the "save" button to the right of the block's name
Step 3: You now have a reusable block you can quickly add to any form
Web developer at SkySpider.com.au - I DO NOT work for ChronoEngine!
Donations: paypal.me/healyhatman
Professional Work: kamron@skyspider.com.au
Custom CF / CC Plugins and Extensions: skyspider.com.au/store
Z
Zyraj 20
July 21 2018, 04:41 #379174
Lets agree to disagree since my subordinate would never learn those steps and I need him to get things done easily, tuff luck.
Though I have to admit the save feature is absolutely new to me, it really comes handy, about the mask I actually went further and created an alias in inputmask.js because of specific needs, I'm not gonna get this guy to learn regexp, so my suggestion about adding the code just seemed like an easy tip to format the input, but again, if you don't want to modify core files its just about a copy/paste.
Thanks for all your tips anyway! it's always good to have an orthodox version.
Also masks been working perfect to me both in Android and iOS but I guess older versions may have trouble, I'll keep an eye on that!
healyhatman 9
July 23 2018, 00:07 #379180
Sure no problem. If someone facing your specific use case finds your tips helpful that's great. Just had to put it out there though so other people wanting custom validation, custom input mask, or easily reusable code blocks doesn't think they need to go through modifying core files to do it
Web developer at SkySpider.com.au - I DO NOT work for ChronoEngine!
Donations: paypal.me/healyhatman
Professional Work: kamron@skyspider.com.au
Custom CF / CC Plugins and Extensions: skyspider.com.au/store