Advertisement
Guest User

Untitled

a guest
Nov 20th, 2012
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.34 KB | None | 0 0
  1.     private function parseRosterFiles(){
  2.         $dir = "/usr/cwis/data/sa-data/ccc-api/scripts/PHP/responses/";
  3.         $files = glob($dir . "roster*");
  4.         $failed = array();
  5.         $failcnt = 0;
  6.         //throw new Exception(var_dump($files));
  7.  
  8.         if ($files !== NULL){
  9.             $data = NULL;
  10.             for ($i = 0; $i < count($files); $i++) {
  11.                 $resArray = json_decode(utf8_decode(file_get_contents($files[$i])));
  12.                 if ($resArray !== NULL) {
  13.                     // The data is both stdClasses and Arrays, lets just make them all arrays...
  14.                     // This is actually really fast, does it in about 1-200ms.
  15.                     for ($j = 0; $j < count($resArray); $j++) {
  16.                         $resArray[$j] = (array)$resArray[$j];
  17.  
  18.                         for ($k = 0; $k < count($resArray[$j]['users']); $k++) {
  19.                             $resArray[$j]['users'][$k] = (array)$resArray[$j]['users'][$k];
  20.                             foreach ($resArray[$j]['users'][$k] as $rauK => $rauV) {
  21.                                 $resArray[$j]['users'][$k][$rauK] = (array)$rauV;
  22.                                 $resArray[$j]['users'][$k][$rauK] = array_values($resArray[$j]['users'][$k][$rauK]);
  23.                                 if ($rauK == "position_data") {
  24.                                     for ($l = 0; $l < count($resArray[$j]['users'][$k]['position_data']); $l++) {
  25.                                         $resArray[$j]['users'][$k]['position_data'][$l] = (array)$resArray[$j]['users'][$k]['position_data'][$l];
  26.                                     }
  27.                                 }
  28.                             }
  29.                         }
  30.                     }
  31.  
  32.                     //throw new Exception(var_dump($resArray));
  33.                     unset($j, $k, $l, $m);
  34.                     $insert = array();
  35.                     $inscnt = 0;
  36.                     $iq = "";
  37.                     $uq = "";
  38.  
  39.                     for ($j = 0; $j < count($resArray); $j++) {
  40.                         // Outside loop, has org info and user array
  41.                         for ($k = 0; $k < count($resArray[$j]['users']); $k++) {
  42.                             for ($l = 0; $l < count($resArray[$j]['users'][$k]['position_data']); $l++) {
  43.                                 $insert[$inscnt] = array();
  44.                                 $insert[$inscnt]['org_id'] = $resArray[$j]['orgid'];
  45.                                 $insert[$inscnt]['org_name'] = $resArray[$j]['orgname'];
  46.  
  47.                                 // Fix for weird array indicies of "0" not the int, the string, which causes all SORTS of headaches.
  48.                                 $insert[$inscnt]['usr_campusemail'] = $resArray[$j]['users'][$k]['campusemail'][0];
  49.                                 $insert[$inscnt]['usr_firstname'] = $resArray[$j]['users'][$k]['firstname'][0];
  50.                                 $insert[$inscnt]['usr_lastname'] = $resArray[$j]['users'][$k]['lastname'][0];
  51.                                 $insert[$inscnt]['usr_id'] = $resArray[$j]['users'][$k]['id'][0];
  52.                                 $insert[$inscnt]['usr_preferredemail'] = isset($resArray[$j]['users'][$k]['preferredemail'][0]) ? $resArray[$j]['users'][$k]['preferredemail'][0] : "";
  53.                                 $insert[$inscnt]['usr_username'] = $resArray[$j]['users'][$k]['username'][0];
  54.  
  55.                                 $insert[$inscnt]['usr_position_name'] = $resArray[$j]['users'][$k]['position_data'][$l]['name'];
  56.                                 $insert[$inscnt]['usr_position_enddate'] = $resArray[$j]['users'][$k]['position_data'][$l]['enddate'];
  57.                                 $insert[$inscnt]['usr_position_startdate'] = $resArray[$j]['users'][$k]['position_data'][$l]['startdate'];
  58.                                 $insert[$inscnt]['usr_position_userenddate'] = $resArray[$j]['users'][$k]['position_data'][$l]['userenddate'];
  59.                                 $insert[$inscnt]['usr_position_userstartdate'] = $resArray[$j]['users'][$k]['position_data'][$l]['userstartdate'];
  60.                                 $insert[$inscnt]['usr_position_template'] = $resArray[$j]['users'][$k]['position_data'][$l]['template'];
  61.                                 $insert[$inscnt]['usr_position_type'] = $resArray[$j]['users'][$k]['position_data'][$l]['type'];
  62.  
  63.                                 $chk = "SELECT ccr.* FROM ccc_cl_roster as ccr WHERE ccr.cl_usr_id = '" . $insert[$inscnt]['usr_id'] . "'";
  64.                                 //$res  = get_result_array($chk);
  65.                                 $res = NULL;
  66.                                 $diff = array();
  67.                                 $keys = "";
  68.                                 $values = "";
  69.  
  70.                                 if ($res != NULL) {
  71.                                     $uStr = "";
  72.                                     foreach ($res[0] as $kr => $vr) {
  73.                                         foreach ($insert[$inscnt] as $ki => $vi) {
  74.                                             if ($kr == ("cl_" . $ki)) {
  75.                                                 if ($vr != $vi) {
  76.                                                     $vi = urlencode($vi);
  77.                                                     $uStr .= $ki . " = '" . $vi . "',";
  78.                                                 }
  79.                                             }
  80.                                         }
  81.                                     }
  82.  
  83.                                     if (strlen($uStr) > 0) {
  84.                                         $uStr = substr($uStr, 0, strlen($uStr) - 1);
  85.                                         $uq .= "    UPDATE ccc_cl_roster
  86.                                                             SET " . $uStr;
  87.                                         $uq .= "    WHERE cl_usr_id = '" . $insert[$inscnt]['usr_id'] . "'";
  88.                                     }
  89.  
  90.                                 } else {
  91.                                     foreach ($insert[$inscnt] as $ki => $vi) {
  92.                                         $vi = urlencode(addslashes($vi));
  93.                                         $keys .= "cl_" . $ki . ",";
  94.                                         $values .= "'" . $vi . "',";
  95.                                     }
  96.  
  97.                                     $keys = substr($keys, 0, strlen($keys) - 1);
  98.                                     $values = substr($values, 0, strlen($values) - 1);
  99.  
  100.                                     if ($inscnt == 0) {
  101.                                         $iq .= "    INSERT INTO ccc_cl_roster (id, " . $keys . ")";
  102.                                         $iq .= "    VALUES ";
  103.                                     }
  104.  
  105.                                     $iq .= "(" . $inscnt . ", " . $values . "),";
  106.                                     //throw new Exception(var_dump($iq));
  107.                                 }
  108.  
  109.                                 $inscnt++;
  110.                              } // end of position loop
  111.                         }// End of User Loop
  112.                     }
  113.                     unset($insert);
  114.  
  115.                     if (strlen($iq) > 0) {
  116.                         $iq = substr($iq, 0, strlen($iq) - 1);
  117.                         $res = insert_data($iq);
  118.                         $iq = "";
  119.                     }
  120.  
  121.                     if (isset($uq)) {
  122.                         if (strlen($uq) > 0) {
  123.                             $res1 = insert_data($uq);
  124.                             $uq = "";
  125.                         }
  126.                     }
  127.                     $insert = array();
  128.                     $inscnt = -1;
  129.                    
  130.                 }
  131.                 unset($data);
  132.                 unset($resArray);
  133.                 echo " ";
  134.                 ob_flush();
  135.                 flush();
  136.             }
  137.         }
  138.  
  139.         if ($failcnt == 0) {
  140.             return true;
  141.         } else {
  142.             return $failed;
  143.         }
  144.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement