private function get_uris($params)
 {
     $fields = array();
     if (in_array($params["dataset"], array("NMNH", "NHM"))) {
         $fields["institutionCode"] = "institutionCode_uri";
         $fields["sex"] = "sex_uri";
         $fields["typeStatus"] = "typeStatus_uri";
         $fields["lifeStage"] = "lifeStage_uri";
         $fields["collectionCode"] = "collectionCode_uri";
     }
     require_library('connectors/LifeDeskToScratchpadAPI');
     $func = new LifeDeskToScratchpadAPI();
     $spreadsheet_options = array("cache" => 1, "timeout" => 3600, "file_extension" => "xlsx", 'download_attempts' => 2, 'delay_in_minutes' => 2);
     $spreadsheet_options["expire_seconds"] = 0;
     // false => won't expire; 0 => expires now
     $uris = array();
     if ($spreadsheet = @$params["uri_file"]) {
         if ($arr = $func->convert_spreadsheet($spreadsheet, 0, $spreadsheet_options)) {
             foreach ($fields as $key => $value) {
                 $i = 0;
                 foreach ($arr[$key] as $item) {
                     $item = trim($item);
                     if ($item) {
                         $uris[$item] = $arr[$value][$i];
                     }
                     $i++;
                 }
             }
         }
     }
     return $uris;
 }
 function export_lifedesk_to_eol($params)
 {
     require_library('connectors/LifeDeskToScratchpadAPI');
     $func = new LifeDeskToScratchpadAPI();
     if ($this->text_path = $func->load_zip_contents($params["lifedesk"])) {
         self::update_eol_xml("LD_" . $params["name"]);
     }
     // remove temp dir
     $parts = pathinfo($this->text_path["eol_xml"]);
     recursive_rmdir($parts["dirname"]);
     debug("\n temporary directory removed: " . $parts["dirname"]);
 }
 private function get_institution_uris()
 {
     require_library('connectors/LifeDeskToScratchpadAPI');
     $func = new LifeDeskToScratchpadAPI();
     $arr = $func->convert_spreadsheet($this->institutions_xls, 0);
     $institutions = array();
     $k = 0;
     foreach ($arr["Code"] as $code) {
         $institutions[$code] = $arr["URI"][$k];
         $k++;
     }
     echo "\nInstitutions from spreadsheet [{$this->institutions_xls}]:" . count($institutions) . "\n";
     return $institutions;
 }
 private function get_uris()
 {
     require_library('connectors/LifeDeskToScratchpadAPI');
     $func = new LifeDeskToScratchpadAPI();
     $spreadsheet_options = array("cache" => 1, "timeout" => 3600, "file_extension" => "xlsx", 'download_attempts' => 2, 'delay_in_minutes' => 2);
     // $spreadsheet_options["expire_seconds"] = 0; // false => won't expire; 0 => expires now
     $temp = $func->convert_spreadsheet($this->triple_uris_spreadsheet, 0, $spreadsheet_options);
     /* spreadsheet headers: Wikipedia triple - Measurement Type - Measurement Value1 - Measurement Value2 */
     $uris = array();
     $i = -1;
     foreach ($temp["Wikipedia triple"] as $triple) {
         $i++;
         if ($temp["Measurement Type"][$i] == "EXCLUDE") {
             continue;
         }
         $uris[$triple]["mtype"] = $temp["Measurement Type"][$i];
         $uris[$triple]["v1"] = @$temp["Measurement Value1"][$i];
         $uris[$triple]["v2"] = @$temp["Measurement Value2"][$i];
     }
     return $uris;
 }
 public function get_array_from_spreadsheet($options)
 {
     $records = array();
     require_library('connectors/LifeDeskToScratchpadAPI');
     $func = new LifeDeskToScratchpadAPI();
     if ($spreadsheet = @$options["spreadsheet_file"]) {
         if ($arr = $func->convert_spreadsheet($spreadsheet, 0, $options)) {
             $fields = array_keys($arr);
             $fields[] = "record_id";
             $i = 0;
             foreach ($arr[$fields[0]] as $val) {
                 $rec = array();
                 foreach ($fields as $field) {
                     if ($field == "record_id") {
                         $rec[$field] = $i + 1;
                     } else {
                         $rec[$field] = $arr[$field][$i];
                     }
                 }
                 if ($rec) {
                     $records[] = $rec;
                 }
                 $i++;
             }
         }
     }
     return $records;
 }
 private function access_spreadsheet($params, $sheet_no)
 {
     require_library('connectors/LifeDeskToScratchpadAPI');
     $func = new LifeDeskToScratchpadAPI();
     if ($val = @$params["spreadsheet_options"]) {
         $spreadsheet_options = $val;
     } else {
         $spreadsheet_options = $this->spreadsheet_options;
     }
     if ($arr = $func->convert_spreadsheet($params['spreadsheet'], $sheet_no, $spreadsheet_options)) {
         return $arr;
     }
 }
    $params[$desk]["remote"]["name"] = $desk;
    //Dropbox
    $params[$desk]["dropbox"]["lifedesk"] = "";
    $params[$desk]["dropbox"]["bibtex_file"] = "";
    $params[$desk]["dropbox"]["scratchpad_images"] = "";
    $params[$desk]["dropbox"]["name"] = $desk;
    //local
    $params[$desk]["local"]["lifedesk"] = "http://localhost/cp/LD2Scratchpad/" . $desk . "/eol-partnership.xml.gz";
    $params[$desk]["local"]["bibtex_file"] = "";
    $params[$desk]["local"]["scratchpad_images"] = "http://localhost/cp/LD2Scratchpad/" . $desk . "/file_importer_image_xls.xls";
    $params[$desk]["local"]["name"] = $desk;
    $params[$desk]["local"]["scratchpad_biblio"] = "http://localhost/cp/LD2Scratchpad/" . $desk . "/node_importer_biblio_xls.xls";
    if ($desk == "africanamphibians") {
        $params[$desk]["local"]["scratchpad_taxonomy"] = "http://localhost/cp/LD2Scratchpad/" . $desk . "/taxonomy_importer_xls.xls";
    }
    $func = new LifeDeskToScratchpadAPI();
    $func->export_lifedesk_to_scratchpad($params[$desk]["local"]);
}
// */
/* start: Generate taxonomy of a LifeDesk 
// neotropicalfishes local
$lifedesk = 'neotropicalfishes';
$lifedesk = 'echinoderms';

$params = array();
$params[$lifedesk]["local"]["lifedesk"]   = "http://localhost/cp/LD2Scratchpad/" . $lifedesk . "/eol-partnership.xml.gz";
$params[$lifedesk]["local"]["name"]       = $lifedesk;
$parameters = $params[$lifedesk]["local"];
$func = new LifeDeskToScratchpadAPI();
$func->export_lifedesk_taxonomy($parameters);
*/
 private function get_spreadsheet($spreadsheet)
 {
     require_library('connectors/LifeDeskToScratchpadAPI');
     $func = new LifeDeskToScratchpadAPI();
     $final = array();
     $habitats = array();
     $spreadsheet_options = array("cache" => 0, "timeout" => 3600, "file_extension" => "xlsx", 'download_attempts' => 2, 'delay_in_minutes' => 1);
     //we don't want to cache spreadsheet
     if ($filename = Functions::save_remote_file_to_local($spreadsheet, $spreadsheet_options)) {
         if ($arr = $func->convert_spreadsheet($filename, 0, $spreadsheet_options)) {
             $i = 0;
             foreach ($arr['subsection'] as $subsection) {
                 if ($subsection) {
                     $final[$subsection]['section'] = $arr['section'][$i];
                     $final[$subsection]['habitats'][] = $arr['source text'][$i];
                 }
                 $habitats[$arr['source text'][$i]] = $arr['term'][$i];
                 $i++;
             }
         }
         unlink($filename);
     }
     $final = array_filter($final);
     //remove null arrays
     $habitats = array_filter($habitats);
     //remove null arrays
     return array('subsections' => $final, 'habitats' => $habitats);
 }
 function get_uris($params, $spreadsheet)
 {
     $fields = array();
     if ($params["dataset"] == "GBIF") {
         $fields["sex"] = "sex_uri";
         $fields["typeStatus"] = "typeStatus_uri";
         if (@$params["country"] == "Sweden") {
             $fields["datasetKey"] = "Type Specimen Repository URI";
         } else {
             $fields["institutionCode"] = "institutionCode_uri";
         }
         //rule case
         if (@$params["uri_type"] == "citation") {
             $fields["datasetKey France"] = "BibliographicCitation";
             //886
             $fields["datasetKey UK"] = "BibliographicCitation";
             //894
             $fields["datasetKey Germany"] = "BibliographicCitation";
             //872
             $fields["datasetKey Brazil"] = "BibliographicCitation";
             //892
             $fields["datasetKey"] = "BibliographicCitation";
             //from Netherlands (887), Sweden (893) spreadsheet
         }
     } else {
         $fields = $params["fields"];
     }
     require_library('connectors/LifeDeskToScratchpadAPI');
     $func = new LifeDeskToScratchpadAPI();
     if ($val = @$params["spreadsheet_options"]) {
         $spreadsheet_options = $val;
     } else {
         $spreadsheet_options = $this->spreadsheet_options;
     }
     $uris = array();
     if ($spreadsheet) {
         if ($arr = $func->convert_spreadsheet($spreadsheet, 0, $spreadsheet_options)) {
             foreach ($fields as $key => $value) {
                 $i = 0;
                 if (@$arr[$key]) {
                     foreach ($arr[$key] as $item) {
                         $item = trim($item);
                         if ($item) {
                             $temp = $arr[$value][$i];
                             $temp = trim(str_replace(array("\n"), "", $temp));
                             $uris[$item] = $temp;
                             if (!Functions::is_utf8($temp)) {
                                 echo "\nnot utf8: [{$temp}]\n";
                             }
                         }
                         $i++;
                     }
                 }
             }
         }
     }
     return $uris;
 }