예제 #1
0
파일: helper.php 프로젝트: JozefAB/qk
 public static function getFieldsValidation($membership_id = null, $upgrade = null)
 {
     $return = array();
     if (is_null($upgrade)) {
         $fields = RSMembership::getCustomFields(array('published' => 1, 'required' => 1));
     } else {
         $fields = array();
     }
     if (!is_null($membership_id)) {
         $membership_fields = RSMembership::getCustomMembershipFields($membership_id, array('published' => 1, 'required' => 1));
         $fields = array_merge($fields, $membership_fields);
     }
     foreach ($fields as $field) {
         $js = '';
         switch ($field->type) {
             case 'select':
             case 'multipleselect':
             case 'textarea':
             case 'textbox':
             case 'calendar':
                 $element = 'rsm_' . $field->name;
                 $js .= "if (document.getElementById('" . $element . "').value.length == 0)" . "\n";
                 break;
             case 'checkbox':
             case 'radio':
                 $field->values = RSMembershipHelper::isCode($field->values);
                 $field->values = str_replace("\r\n", "\n", $field->values);
                 $field->values = explode("\n", $field->values);
                 $ids = array();
                 foreach ($field->values as $i => $value) {
                     $element = 'rsm_field_' . $field->id . '_' . $i;
                     $ids[] = "!document.getElementById('" . $element . "').checked";
                 }
                 $element = '';
                 $js .= "if (" . implode(" && ", $ids) . ")" . "\n";
                 break;
         }
         $validation_message = JText::_($field->validation);
         if (empty($validation_message)) {
             $validation_message = JText::sprintf('COM_RSMEMBERSHIP_VALIDATION_DEFAULT_ERROR', JText::_($field->label));
         }
         $validation_message = str_replace(array("\r\n", "\r"), "\n", $validation_message);
         $validation_message = str_replace("\n", '\\n', $validation_message);
         $js .= "{\n";
         $js .= "msg.push('" . JText::_($validation_message, true) . "');" . "\n";
         if (@$element) {
             $js .= "document.getElementById('" . $element . "').className += ' rsm_field_error';\n";
         }
         $js .= "}\n";
         $return[] = $js;
     }
     return $return;
 }
예제 #2
0
 function getFieldsValidation()
 {
     $return = array();
     $db = JFactory::getDBO();
     $db->setQuery("SELECT * FROM #__rsmembership_fields WHERE published='1' AND required = '1' ORDER BY ordering");
     $fields = $db->loadObjectList();
     foreach ($fields as $field) {
         $js = '';
         switch ($field->type) {
             case 'select':
             case 'multipleselect':
             case 'textarea':
             case 'textbox':
             case 'calendar':
                 $element = 'rsm_' . $field->name;
                 $js .= "if (document.getElementById('" . $element . "').value.length == 0)" . "\n";
                 break;
             case 'checkbox':
             case 'radio':
                 $field->values = RSMembershipHelper::isCode($field->values);
                 $field->values = str_replace("\r\n", "\n", $field->values);
                 $field->values = explode("\n", $field->values);
                 $ids = array();
                 foreach ($field->values as $i => $value) {
                     $element = 'rsm_field_' . $field->id . '_' . $i;
                     $ids[] = "!document.getElementById('" . $element . "').checked";
                 }
                 $element = '';
                 $js .= "if (" . implode(" && ", $ids) . ")" . "\n";
                 break;
         }
         $validation_message = JText::_($field->validation);
         if (empty($validation_message)) {
             $validation_message = JText::sprintf('RSM_VALIDATION_DEFAULT_ERROR', JText::_($field->label));
         }
         $validation_message = str_replace(array("\r\n", "\r"), "\n", $validation_message);
         $validation_message = str_replace("\n", '\\n', $validation_message);
         $js .= "{\n";
         $js .= "msg.push('" . JText::_($validation_message, true) . "');" . "\n";
         if (@$element) {
             $js .= "document.getElementById('" . $element . "').className += ' rsm_field_error';\n";
         }
         $js .= "}\n";
         $return[] = $js;
     }
     return $return;
 }