Tripal Plant PopGen Submit
pages.php File Reference

Go to the source code of this file.

Functions

 tpps_admin_files_diagnostics_page (array $form, array &$form_state, $study_accession=NULL)
 
 tpps_admin_state_compare_page (array $form, array &$form_state, $study_accession1=NULL, $study_accession2=NULL)
 
 tpps_arrayRecursiveDiff ($aArray1, $aArray2)
 
 tpps_arrDiff (array $a1, array $a2)
 
 tpps_objDiff ($obj1, $obj2)
 

Function Documentation

◆ tpps_admin_files_diagnostics_page()

tpps_admin_files_diagnostics_page ( array  $form,
array &  $form_state,
  $study_accession = NULL 
)

This function will check study submission state from database find the file ids and also check the managed tables to see what is missing. This will thus detect old files.

Definition at line 7 of file pages.php.

7  {
8  $markup = "";
9 
10  $results = chado_query('SELECT * FROM tpps_submission WHERE accession = :accession', [
11  ':accession' => $study_accession
12  ]);
13 
14  $serialized_data = "";
15  foreach($results as $row) {
16  $serialized_data = unserialize($row->submission_state);
17  }
18  // print_r($serialized_data['saved_values']);
19 
20  // print_r($serialized_data['ids']);
21  $project_id = $serialized_data['ids']['project_id'];
22 
23 
24  $project_file_ids = [];
25  // get file_ids from project_id
26  $results = chado_query('SELECT * FROM tpps_project_file_managed WHERE project_id = :project_id', [
27  ':project_id' => $project_id
28  ]);
29  foreach ($results as $row) {
30  // print_r($row);
31  array_push($project_file_ids, $row->fid);
32  }
33  // print_r($project_file_ids);
34  sort($project_file_ids);
35 
36  $saved_values = $serialized_data['saved_values'];
37  // print_r($saved_values);
38  $file_ids = [];
39  $organism_count = $saved_values['1']['organism']['number'];
40  // print_r($organism_count);
41  for($i=1; $i<=4; $i++) {
42  if ($i == 3) {
43  for($j=1; $j<=$organism_count; $j++) {
44  if(isset($saved_values[$i]['tree-accession']['species-' . $j]['file'])) {
45  array_push($file_ids, $saved_values[$i]['tree-accession']['species-' . $j]['file']);
46  }
47  }
48  }
49  if ($i == 4) {
50  // Phenotype files
51  for($j=1; $j<=$organism_count; $j++) {
52  if(isset($saved_values[$i]['organism-' . $j]['phenotype']['file'])) {
53  array_push($file_ids, $saved_values[$i]['organism-' . $j]['phenotype']['file']);
54  }
55  if(isset($saved_values[$i]['organism-' . $j]['phenotype']['metadata'])) {
56  array_push($file_ids, $saved_values[$i]['organism-' . $j]['phenotype']['metadata']);
57  }
58  }
59  for($j=1; $j<=$organism_count; $j++) {
60  if(isset($saved_values[$i]['organism-' . $j]['genotype']['files']['snps-assay'])) {
61  array_push($file_ids, $saved_values[$i]['organism-' . $j]['genotype']['files']['snps-assay']);
62  }
63  if(isset($saved_values[$i]['organism-' . $j]['genotype']['files']['snps-association'])) {
64  array_push($file_ids, $saved_values[$i]['organism-' . $j]['genotype']['files']['snps-association']);
65  }
66  if(isset($saved_values[$i]['organism-' . $j]['genotype']['files']['vcf'])) {
67  array_push($file_ids, $saved_values[$i]['organism-' . $j]['genotype']['files']['vcf']);
68  }
69  if(isset($saved_values[$i]['organism-' . $j]['genotype']['files']['ssrs'])) {
70  array_push($file_ids, $saved_values[$i]['organism-' . $j]['genotype']['files']['ssrs']);
71  }
72  if(isset($saved_values[$i]['organism-' . $j]['genotype']['files']['ssrs_extra'])) {
73  array_push($file_ids, $saved_values[$i]['organism-' . $j]['genotype']['files']['ssrs_extra']);
74  }
75  }
76  }
77  }
78  // print_r($file_ids);
79  sort($file_ids);
80 
81  $markup .= '<div style="font-size: 12px;">';
82  $markup .= '<div style="display: inline-block; width: 30%; vertical-align: top;">';
83  $markup .= '<h4>Project ID Managed</h4>';
84  foreach ($project_file_ids as $fid) {
85  $markup .= '<div>' . $fid . '-';
86  $file = file_load($fid);
87  if ($file) {
88  $file_url = check_plain(file_create_url($file->uri));
89  $markup .= "<a href='$file_url' target='blank'>$file->filename</a>";
90  }
91  $markup .= '</div>';
92  }
93  $markup .= '</div>';
94 
95  $markup .= '<div style="display: inline-block; width: 30%; vertical-align: top;">';
96  $markup .= '<h4>Submission state</h4>';
97  foreach ($file_ids as $fid) {
98  $markup .= '<div>' . $fid . '-';
99  $file = file_load($fid);
100  if ($file) {
101  $file_url = check_plain(file_create_url($file->uri));
102  $markup .= "<a href='$file_url' target='blank'>$file->filename</a>";
103  }
104  $markup .= '</div>';
105  }
106  $markup .= '</div>';
107 
108  $markup .= '<div style="display: inline-block; width: 30%; vertical-align: top;">';
109  $markup .= '<h4>History/State files</h4>';
110  $overall_file_ids = $serialized_data['files'];
111  sort($overall_file_ids);
112  foreach ($overall_file_ids as $fid) {
113  $markup .= '<div>' . $fid . '-';
114  $file = file_load($fid);
115  if ($file) {
116  $file_url = check_plain(file_create_url($file->uri));
117  $markup .= "<a href='$file_url' target='blank'>$file->filename</a>";
118  }
119  $markup .= '</div>';
120 
121  }
122  $markup .= '</div>';
123  $markup .= '</div>';
124 
125  $form['markup'] = array(
126  '#type' => 'markup',
127  '#markup' => $markup
128  );
129 
130  return $form;
131 }

◆ tpps_admin_state_compare_page()

tpps_admin_state_compare_page ( array  $form,
array &  $form_state,
  $study_accession1 = NULL,
  $study_accession2 = NULL 
)

This function will check study submission state from database and compare with another study submission state for differences

Definition at line 138 of file pages.php.

138  {
139 
140  // print_r($study_accession1);
141  // print_r($study_accession2);
142 
143  $results1 = chado_query('SELECT * FROM tpps_submission WHERE accession = :accession', [
144  ':accession' => $study_accession1
145  ]);
146 
147  $results2 = chado_query('SELECT * FROM tpps_submission WHERE accession = :accession', [
148  ':accession' => $study_accession2
149  ]);
150 
151  $submission1 = [];
152  foreach ($results1 as $row) {
153  $submission1 = unserialize($row->submission_state);
154  }
155 
156  $submission2 = [];
157  foreach ($results2 as $row) {
158  $submission2 = unserialize($row->submission_state);
159  }
160 
161  $markup = "";
162  $markup .= '<div style="width: 80%"><table width="800px">';
163  $markup .= '<tr>';
164  $markup .= '<td colspan="1" style="width: 30%; display: inline-block; vertical-align: top; word-wrap: break-word;">';
165  $markup .= '<h3>' . $study_accession1 . '</h3>';
166  $markup .= print_r($submission1['saved_values'], true);
167  $markup .= '</td>';
168  $markup .= '<td colspan="1" style="width: 30%; display: inline-block; vertical-align: top; word-wrap: break-word;">';
169  $markup .= '<h3>' . $study_accession2 . '</h3>';
170  $markup .= print_r($submission2['saved_values'], true);
171  $markup .= '</td>';
172  $markup .= '<td colspan="1" style="width: 30%; display: inline-block; vertical-align: top; word-wrap: break-word;">';
173  $markup .= '<h3>Differences</h3>';
174  // $markup .= print_r(array_diff($submission1['saved_values'], $submission2['saved_values']), true);
175  $markup .= print_r(tpps_arrayRecursiveDiff($submission1['saved_values'], $submission2['saved_values']), true);
176  $markup .= '</td>';
177  $markup .= '</tr>';
178  $markup .= '</table></div>';
179  $form['markup'] = array(
180  '#type' => 'markup',
181  '#markup' => $markup
182  );
183  return $form;
184 }
tpps_arrayRecursiveDiff($aArray1, $aArray2)
Definition: pages.php:187

◆ tpps_arrayRecursiveDiff()

tpps_arrayRecursiveDiff (   $aArray1,
  $aArray2 
)

Definition at line 187 of file pages.php.

187  {
188  $aReturn = array();
189 
190  foreach ($aArray1 as $mKey => $mValue) {
191  if (array_key_exists($mKey, $aArray2)) {
192  if (is_array($mValue)) {
193  $aRecursiveDiff = tpps_arrayRecursiveDiff($mValue, $aArray2[$mKey]);
194  if (count($aRecursiveDiff)) { $aReturn[$mKey] = $aRecursiveDiff; }
195  } else {
196  if ($mValue != $aArray2[$mKey]) {
197  $aReturn[$mKey] = $mValue;
198  }
199  }
200  } else {
201  $aReturn[$mKey] = $mValue;
202  }
203  }
204  return $aReturn;
205 }
tpps_arrayRecursiveDiff($aArray1, $aArray2)
Definition: pages.php:187

◆ tpps_arrDiff()

tpps_arrDiff ( array  $a1,
array  $a2 
)

Definition at line 214 of file pages.php.

214  :array {
215  $r = array();
216  foreach ($a1 as $k => $v) {
217  if (array_key_exists($k, $a2)) {
218  if ($v instanceof stdClass) {
219  $rad = objDiff($v, $a2[$k]);
220  if (count($rad)) { $r[$k] = $rad; }
221  }else if (is_array($v)){
222  $rad = arrDiff($v, $a2[$k]);
223  if (count($rad)) { $r[$k] = $rad; }
224  // required to avoid rounding errors due to the
225  // conversion from string representation to double
226  } else if (is_double($v)){
227  if (abs($v - $a2[$k]) > 0.000000000001) {
228  $r[$k] = array($v, $a2[$k]);
229  }
230  } else {
231  if ($v != $a2[$k]) {
232  $r[$k] = array($v, $a2[$k]);
233  }
234  }
235  } else {
236  $r[$k] = array($v, null);
237  }
238  }
239  return $r;
240 }

◆ tpps_objDiff()

tpps_objDiff (   $obj1,
  $obj2 
)

Definition at line 208 of file pages.php.

208  :array {
209  $a1 = (array)$obj1;
210  $a2 = (array)$obj2;
211  return tpps_arrDiff($a1, $a2);
212 }
tpps_arrDiff(array $a1, array $a2)
Definition: pages.php:214