コード例 #1
0
 /**
  * Overrides the postSubmit function to add in additional metadata and data values. 
  */
 protected function postSubmit($isInsert)
 {
     require_once DOCROOT . 'client_helpers/helper_base.php';
     $result = true;
     if (isset($this->submission['metaFields'])) {
         $currentRule = data_cleaner::get_rule($this->test_type);
         if (isset($this->submission['metaFields']['metadata']['value'])) {
             $metadata = helper_base::explode_lines_key_value_pairs($this->submission['metaFields']['metadata']['value']);
             $this->save_verification_rule_metadata($currentRule, $metadata);
             $data = data_cleaner::parse_test_file($this->submission['metaFields']['data']['value']);
             $this->save_verification_rule_data($currentRule, $data);
             $this->postProcessRule($currentRule);
         }
     }
     return true;
 }
コード例 #2
0
 /**
  * Process the content of a verification rule file.
  */
 private function read_rule_content($rulesettings, $filename, $source_url)
 {
     if (!isset($rulesettings['metadata'])) {
         throw new exception("Missing Metadata section in {$filename}");
     }
     if (!isset($rulesettings['metadata']['testtype'])) {
         throw new exception("Missing Metadata TestType value in {$filename}");
     }
     require_once MODPATH . 'data_cleaner/plugins/data_cleaner.php';
     $currentRule = data_cleaner::get_rule($rulesettings['metadata']['testtype']);
     // Ensure that the required key/value pairs for this rule type are all present.
     foreach ($currentRule['required'] as $category => $keys) {
         $category = strtolower($category);
         foreach ($keys as $key) {
             // every key must exist. A * key means that anything is accepted.
             if ($key = '*') {
                 if (!isset($rulesettings[$category])) {
                     throw new exception("Missing content for {$category} section in {$filename}. " . print_r($rulesettings, true));
                 }
             } elseif (!isset($rulesettings[$category][$key])) {
                 throw new exception("Missing {$category} {$key} value in {$filename}");
             }
         }
     }
     $this->model->save_verification_rule($source_url, $filename, $rulesettings['metadata']);
     $this->model->save_verification_rule_metadata($currentRule, $rulesettings['metadata']);
     unset($rulesettings['metadata']);
     if (!empty($rulesettings)) {
         $this->model->save_verification_rule_data($currentRule, $rulesettings);
     }
     $this->model->postProcessRule($currentRule);
 }