Advertisement
DrupalCustom

RetrieveUnzip

Jun 20th, 2012
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.14 KB | None | 0 0
  1. function freeway_retrieve($form, &$form_state) {
  2.  
  3.   global $user;
  4.   $arrayForSendTranslation = array();
  5.   $arrayForSendTranslation = credentialProvider();
  6.  
  7.   $finalFunctionUserName = $arrayForSendTranslation[0];
  8.   $finalFunctionPassword = $arrayForSendTranslation[1];
  9.  
  10.  
  11.   $fileIdbtained = $_GET['fileId'];
  12.   $pidobtained = $_GET['projectID'];
  13.   $fileName = $_GET['fileName'];
  14.   $dbArray = array();
  15.  
  16.   $form['freeway_node_types'] = array(
  17.     '#type' => 'checkboxes',
  18.     '#title' => t('Contents which can be considered for Freeway'),
  19.     '#options' => $options,
  20.     '#default_value' => variable_get('freeway_node_types', array('page')),
  21.     '#description' => t('A text field will be available on these content types to make user-specific notes.'),
  22.   );
  23.  
  24. $parts = parse_ini_file('sites/all/modules/freeway/urlconfig.ini');
  25.  
  26.  
  27. $LoginClient = new SoapClient($parts['part1'], array("trace" => 1));
  28. $ServicesLink = new SoapClient($parts['part2'], array("trace" => 1));
  29.   //Clean extracted folder
  30.   $structurePreCleanExtracted = dirname(__FILE__) . '/extracted/';
  31.   if (is_dir($structurePreCleanExtracted)) {
  32.  
  33.     removedir(dirname(__FILE__) . '/extracted/');
  34.   }
  35.  
  36.  
  37.  
  38.   try {
  39.  
  40.     $arrResponse = $LoginClient->Logon(array('Username' => $finalFunctionUserName, 'Password' => $finalFunctionPassword));
  41.     $ticket = ($arrResponse->LogonResult);
  42.     $fileRetrieve = $ServicesLink->RetrieveProjectFileByID(array('Ticket' => $ticket, 'ProjectID' => $pidobtained, 'FileID' => $fileIdbtained));
  43.     $resultFile = $fileRetrieve->RetrieveProjectFileByIDResult;
  44.     $ourFileName = $fileName;
  45.  
  46.  
  47.     $ourFileHandle = fopen($ourFileName, 'w') or ("can't open file");
  48.     fclose($ourFileHandle);
  49.  
  50.     $fp = fopen($fileName, 'w');
  51.     fwrite($fp, $resultFile);
  52.     fclose($fp);
  53.  
  54.  
  55.     $zip = new ZipArchive;
  56.    
  57.     if ($zip->open($ourFileName)) {
  58.       for ($i = 0; $i < $zip->numFiles; $i++) {
  59.       }
  60.       if ($zip->extractTo(dirname(__FILE__) . '/extracted/')) {
  61.       }
  62.       else {
  63.         drupal_get_messages();
  64.         drupal_set_message("ERROR IN FILE EXTRACTING!");
  65.         drupal_goto("user");
  66.  
  67.       }
  68.       $zip->close();
  69.     }
  70.     else {
  71.       echo drupal_get_messages();
  72.       drupal_set_message("Error reading zip-archive!");
  73.       drupal_goto("user");
  74.  
  75.     }
  76.  
  77.     $dirlist = getFileListDash(dirname(__FILE__) . '/extracted/');
  78.     for ($i = 0; $i < count($dirlist); $i += 1) {
  79.       $xml = simplexml_load_file($dirlist[$i]);
  80.       $nodeID = $xml->NodeId;
  81.       $src_Lang = $xml->SrcLang;
  82.       $tar_Lang = $xml->TarLang;
  83.       $node_title = $xml->NodeTitle;
  84.       $node_body = $xml->NodeBody;
  85.  
  86.       $resultFileID = db_query("SELECT *  FROM {freeway_fileid} where freeway_file_id = '$fileIdbtained'");
  87.       $rowsFileID = $resultFileID->rowCount();  
  88.    if ($rowsFileID == 0) {
  89.         drupal_get_messages();
  90.         drupal_set_message("This content was not sent out from the current Drupal Connector setup. Hence cannot be retrieved!");
  91.  
  92.         unlink('./' . $ourFileName);
  93.         removedir(dirname(__FILE__) . '/extracted/');
  94.  
  95.         drupal_goto('user/' . $user->uid . '/freewayDashboard');
  96.       }
  97.       else {
  98.      
  99.         foreach($resultFileID as $recordFileID )
  100.         {
  101.           $fileIdFromTable = $recordFileID->freeway_file_id;
  102.           $first = $recordFileID->freeway_tar_lang;
  103.         }
  104.  
  105.       }
  106.  
  107.       $result = db_query("SELECT * FROM {freeway}
  108.                      WHERE node_id = '$nodeID'
  109.                      AND src_lang ='$src_Lang'
  110.                      AND tar_lang='$first'
  111.                      AND project_id ='$pidobtained'");
  112.                      
  113.      
  114.       $record = db_query("SELECT * FROM {freeway}
  115.                      WHERE node_id = '$nodeID'
  116.                      AND src_lang ='$src_Lang'
  117.                      AND tar_lang='$first'
  118.                      AND project_id ='$pidobtained'")->fetchObject();
  119.  
  120.      
  121.         foreach($result as $recordUI )
  122.       {
  123.         $serial_id = $recordUI->sr_id;
  124.  
  125.         if (strlen($serial_id)) {
  126.          
  127.           db_query("UPDATE {freeway} SET node_id ='$nodeID',file_id ='$fileIdbtained',project_id='$pidobtained',src_lang = '$src_Lang',tar_lang='$first',node_title='$node_title',node_body='$node_body' WHERE sr_id='$serial_id'");
  128.         }
  129.         else {
  130.  
  131.          
  132.           db_query("INSERT INTO {freeway} (node_id, file_id,project_id,src_lang, tar_lang, node_title, node_body) VALUES ('$nodeID','$fileIdbtained','$pidobtained','$src_Lang','$first','$node_title','$node_body')");
  133.         }
  134.  
  135.       }
  136.       if (!$record) {
  137.  
  138.        
  139.         db_query("INSERT INTO {freeway} (node_id, file_id,project_id,src_lang, tar_lang, node_title, node_body) VALUES ('$nodeID','$fileIdbtained','$pidobtained','$src_Lang','$first','$node_title','$node_body')");
  140.  
  141.       }
  142.  
  143.     }
  144.  
  145.    
  146.     rrmdir_a(dirname(__FILE__) . '/extracted/');
  147.     unlink('./' . $ourFileName);
  148.  
  149.  
  150.  
  151.   }
  152.  
  153.   catch (SoapFault $exception) {
  154.     drupal_get_messages();
  155.     drupal_set_message("The following exception took place." . $exception . "Kindly check Freeway mapping");
  156.     drupal_goto("user");
  157.  
  158.  
  159.   }
  160.   drupal_get_messages();
  161.   drupal_set_message(" Available files for the  project " . $pidobtained . " have been retrieved into Drupal Database");
  162.   drupal_goto('user/' . $user->uid . '/freewayDashboard');
  163.  
  164.   return $form;
  165.  
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement