That is not bag, but chorocontact do not works correct.
If I specify a css-class of my control like this:
then I'll have output like this
We understand that it have to be something like this:
where I have one class-attribute.
This issue have been solved by me... but today i have updated my Module, backuping my old version. Now I'll try to realize this feature at the current version.
If someone have a solution plz tell me..<br><br>Post edited by: cuhuak, at: 2008/04/18 11:47
If I specify a css-class of my control like this:
<input name="LastName" id="LastName" value="" maxlength="190" type="text" class="textInput" />
then I'll have output like this
<input name="LastName" class="required validate-alpha" id="LastName" value="" maxlength="190" type="text" class="textInput" />
We understand that it have to be something like this:
<input name="LastName" id="LastName" value="" maxlength="190" type="text" class="textInput required validate-alpha" />
where I have one class-attribute.
This issue have been solved by me... but today i have updated my Module, backuping my old version. Now I'll try to realize this feature at the current version.
If someone have a solution plz tell me..<br><br>Post edited by: cuhuak, at: 2008/04/18 11:47
Hi!
Here is solution.
file: ... components\com_chronocontact\chronocontact.php
Here is solution.
file: ... components\com_chronocontact\chronocontact.php
if( trim($paramsvalues->validate) == 'Yes'){
// Easy Validation //
$pattern = '/<[input|textarea|select].*?(name=["|\'](.*?)["|\']).*?>/i';
preg_match_all($pattern, $htmlstring, $matches);
//echo '<pre>';print_r ($matches);die;
$arr_required = explode(",", str_replace(" ","",$paramsvalues->val_required));
$arr_validate_number = explode(",", str_replace(" ","",$paramsvalues->val_validate_number));
$arr_validate_digits = explode(",", str_replace(" ","",$paramsvalues->val_validate_digits));
$arr_validate_alpha = explode(",", str_replace(" ","",$paramsvalues->val_validate_alpha));
$arr_validate_alphanum = explode(",", str_replace(" ","",$paramsvalues->val_validate_alphanum));
$arr_validate_date = explode(",", str_replace(" ","",$paramsvalues->val_validate_date));
$arr_validate_email = explode(",", str_replace(" ","",$paramsvalues->val_validate_email));
$arr_validate_url = explode(",", str_replace(" ","",$paramsvalues->val_validate_url));
$arr_validate_date_au = explode(",", str_replace(" ","",$paramsvalues->val_validate_date_au));
$arr_validate_currency_dollar = explode(",", str_replace(" ","",$paramsvalues->val_validate_currency_dollar));
$arr_validate_selection = explode(",", str_replace(" ","",$paramsvalues->val_validate_selection));
$arr_validate_one_required = explode(",", str_replace(" ","",$paramsvalues->val_validate_one_required));
$arr_all = array_merge($arr_required, $arr_validate_number, $arr_validate_digits, $arr_validate_alpha, $arr_validate_alphanum, $arr_validate_date, $arr_validate_email, $arr_validate_url, $arr_validate_date_au,
$arr_validate_currency_dollar, $arr_validate_selection, $arr_validate_one_required);
$i = 0;
$used_names = array ();
foreach ($matches[0] as $match)
{
$full_name = $matches[1][$i]; // with quotes and attribute 'name', for example: name="asdasd"
$name = $matches[2][$i]; // name value only
$i++;
// needed to avoid class attribute duplication in a radios or a checkboxes which has a same name
if (in_array($name,$used_names)) {
continue;
}
else {
$used_names[] = $name;
}
//searchng for the class-attributes into our controls
//as result we have array specified class-attributess
//case when class-attribute is after name-attribute
preg_match('/'.$name.'.*? class=["|\'](.*?)["|\']/i', $match, $class_matches);
$class_array = array();
if ($class_matches[0]!=''){
$class_array[] = $class_matches[1];
}
else {
//before name-attribute
preg_match('/class=["|\'](.*?)["|\'].*?'.$name.'/i', $match, $class_matches2);
if ($class_matches2[0]!=''){
$class_array[] = $class_matches2[1];
}
}
if(in_array($name,$arr_all)){
if(in_array($name,$arr_required)){
$class_array[] = "required";
}
if(in_array($name,$arr_validate_number)){
$class_array[] = "validate-number";
}
if(in_array($name,$arr_validate_digits)){
$class_array[] = "validate-digits";
}
if(in_array($name,$arr_validate_alpha)){
$class_array[] = "validate-alpha";
}
if(in_array($name,$arr_validate_alphanum)){
$class_array[] = "validate-alphanum";
}
if(in_array($name,$arr_validate_date)){
$class_array[] = "validate-date";
}
if(in_array($name,$arr_validate_email)){
$class_array[] = "validate-email";
}
if(in_array($name,$arr_validate_url)){
$class_array[] = "validate-url";
}
if(in_array($name,$arr_validate_date_au)){
$class_array[] = "validate-date-au";
}
if(in_array($name,$arr_validate_currency_dollar)){
$class_array[] = "validate-currency-dollar";
}
if(in_array($name,$arr_validate_selection)){
$class_array[] = "validate-selection";
}
if(in_array($name,$arr_validate_one_required)){
$class_array[] = "validate-one-required";
}
$class_array = array_reverse($class_array);
$class_string = implode(" ",$class_array);
if ($class_matches[0]!='') {
$htmlstring = preg_replace('/(name=["|\']'.$name.'["|\'].*?)(class=["|\'].*?["|\'])/i','$1class="'.$class_string.'"', $htmlstring);
}
elseif ($class_matches2[0]!='') {
$htmlstring = preg_replace('/(class=["|\'].*?["|\'])(.*?name=["|\']'.$name.'["|\'])/i','class="'.$class_string.'"$2', $htmlstring);
}
else {
$htmlstring = str_replace($full_name,$full_name.' class="'.$class_string.'"',$htmlstring);
}
}
}
$rows[0]->html = $htmlstring;
}
/// end validation //
Thanks for sharing the solution!!🙂
Max
Max
This topic is locked and no more replies can be posted.