Example #1
0
 public static function get_instance()
 {
     if (empty(self::$instance)) {
         self::$instance = new self();
     }
     return self::$instance;
 }
Example #2
0
 public function scan_form_tags($cond = null)
 {
     $manager = WPCF7_FormTagsManager::get_instance();
     if (!empty($this->scanned_form_tags)) {
         $scanned = $this->scanned_form_tags;
     } else {
         $scanned = $manager->scan($this->prop('form'));
         $this->scanned_form_tags = $scanned;
     }
     if (empty($scanned)) {
         return array();
     }
     if (!is_array($cond) || empty($cond)) {
         return $scanned;
     }
     for ($i = 0, $size = count($scanned); $i < $size; $i++) {
         if (isset($cond['type'])) {
             if (is_string($cond['type']) && !empty($cond['type'])) {
                 if ($scanned[$i]['type'] != $cond['type']) {
                     unset($scanned[$i]);
                     continue;
                 }
             } elseif (is_array($cond['type'])) {
                 if (!in_array($scanned[$i]['type'], $cond['type'])) {
                     unset($scanned[$i]);
                     continue;
                 }
             }
         }
         if (isset($cond['name'])) {
             if (is_string($cond['name']) && !empty($cond['name'])) {
                 if ($scanned[$i]['name'] != $cond['name']) {
                     unset($scanned[$i]);
                     continue;
                 }
             } elseif (is_array($cond['name'])) {
                 if (!in_array($scanned[$i]['name'], $cond['name'])) {
                     unset($scanned[$i]);
                     continue;
                 }
             }
         }
     }
     return array_values($scanned);
 }
Example #3
0
 public function validate_form()
 {
     $body = $this->contact_form->prop('form');
     $pattern = '%<label(?:[ \\t\\n]+.*?)?>(.+?)</label>%s';
     if (preg_match_all($pattern, $body, $matches)) {
         $manager = WPCF7_FormTagsManager::get_instance();
         foreach ($matches[1] as $insidelabel) {
             $tags = $manager->scan($insidelabel);
             $fields_count = 0;
             foreach ($tags as $tag) {
                 $tag = new WPCF7_FormTag($tag);
                 if (in_array($tag->basetype, array('checkbox', 'radio'))) {
                     $fields_count += count($tag->values);
                     if ($tag->has_option('free_text')) {
                         $fields_count += 1;
                     }
                 } elseif (!empty($tag->name)) {
                     $fields_count += 1;
                 }
                 if (1 < $fields_count) {
                     $this->add_error('form.body', self::error_multiple_controls_in_label, array('link' => __('http://contactform7.com/configuration-errors/#form.body:error_multiple_controls_in_label', 'contact-form-7')));
                     return;
                 }
             }
         }
     }
 }
Example #4
0
 public static function get_instance()
 {
     wpcf7_deprecated_function(__METHOD__, '4.6', 'WPCF7_FormTagsManager::get_instance');
     self::$form_tags_manager = WPCF7_FormTagsManager::get_instance();
     return new self();
 }