コード例 #1
0
 /**
  * Add element to form.
  *
  * @param CRM_Core_Form $form
  */
 public static function add(&$form)
 {
     $error = NULL;
     $config = CRM_Core_Config::singleton();
     $useSSL = FALSE;
     if (!function_exists('recaptcha_get_html')) {
         require_once 'packages/recaptcha/recaptchalib.php';
     }
     // See if we are using SSL
     if (CRM_Utils_System::isSSL()) {
         $useSSL = TRUE;
     }
     $html = recaptcha_get_html($config->recaptchaPublicKey, $error, $useSSL);
     $form->assign('recaptchaHTML', $html);
     $form->assign('recaptchaOptions', $config->recaptchaOptions);
     $form->add('text', 'g-recaptcha-response', 'reCaptcha', NULL, TRUE);
     $form->registerRule('recaptcha', 'callback', 'validate', 'CRM_Utils_ReCAPTCHA');
     if ($form->isSubmitted() && empty($form->_submitValues['g-recaptcha-response'])) {
         $form->setElementError('g-recaptcha-response', ts('Input text must match the phrase in the image. Please review the image and re-enter matching text.'));
     }
 }
コード例 #2
0
ファイル: Registration.php プロジェクト: nyimbi/civicrm-core
 /**
  * Reset values for all options those are full.
  *
  * @param array $optionFullIds
  * @param CRM_Core_Form $form
  */
 public static function resetElementValue($optionFullIds = array(), &$form)
 {
     if (!is_array($optionFullIds) || empty($optionFullIds) || !$form->isSubmitted()) {
         return;
     }
     foreach ($optionFullIds as $fldId => $optIds) {
         $name = "price_{$fldId}";
         if (!$form->elementExists($name)) {
             continue;
         }
         $element = $form->getElement($name);
         $eleType = $element->getType();
         $resetSubmitted = FALSE;
         switch ($eleType) {
             case 'text':
                 if ($element->getValue() && $element->isFrozen()) {
                     $label = "{$element->getLabel()}<tt>(x)</tt>";
                     $element->setLabel($label);
                     $element->setPersistantFreeze();
                     $resetSubmitted = TRUE;
                 }
                 break;
             case 'group':
                 if (is_array($element->_elements)) {
                     foreach ($element->_elements as $child) {
                         $childType = $child->getType();
                         $methodName = 'getName';
                         if ($childType) {
                             $methodName = 'getValue';
                         }
                         if (in_array($child->{$methodName}(), $optIds) && $child->isFrozen()) {
                             $resetSubmitted = TRUE;
                             $child->setPersistantFreeze();
                         }
                     }
                 }
                 break;
             case 'select':
                 $value = $element->getValue();
                 if (in_array($value[0], $optIds)) {
                     foreach ($element->_options as $option) {
                         if ($option['attr']['value'] === "crm_disabled_opt-{$value[0]}") {
                             $placeholder = html_entity_decode($option['text'], ENT_QUOTES, "UTF-8");
                             $element->updateAttributes(array('placeholder' => $placeholder));
                             break;
                         }
                     }
                     $resetSubmitted = TRUE;
                 }
                 break;
         }
         //finally unset values from submitted.
         if ($resetSubmitted) {
             self::resetSubmittedValue($name, $optIds, $form);
         }
     }
 }