function makeGeoDataSheet($data, $folderName, $format) { $ending = strtolower($format); // Anlegen eines gemeinsamen Index für Orte und Jahre, so dass beide Kategorien abgerufen werden können. $index1 = makeIndex($data, 'placeName'); $index2 = makeIndex($data, 'year'); $commonIndex = mergeIndices($index1, $index2); $rowArray = array(); $placeName = ''; // Durchgehen des Index und Abspeichern von standardisierten Datensätzen der Klasse geoDataRow im Array $rowArray foreach ($commonIndex as $entry) { // Die im Index mit Level 1 auftretenden Ortseinträge dienen nur zum Speichern von Ortsname und Geodaten if ($entry->level == 1) { // Der Test dient dem Ausschließen von Einträgen ohne Ortsnamen oder Geodaten $test = testEntry($entry); $placeName = $entry->label; $latitude = cleanCoordinate($entry->geoData['lat']); $longitude = cleanCoordinate($entry->geoData['long']); } //Für jeden Indexeintrag Level 2 (Jahre) werden so viele Einträge gespeichert, wie Datensätze unter content verzeichnet sind. if ($entry->level == 2 and $test == 1) { foreach ($entry->content as $occurrence) { $row = new geoDataRow(); $row->label = $placeName; $row->lat = cleanCoordinate($entry->geoData['lat']); $row->long = cleanCoordinate($entry->geoData['long']); $row->timeStamp = $entry->label; $row->lat = $latitude; $row->long = $longitude; if ($entry->authority['system'] == 'getty') { $row->getty = $entry->authority['id']; } elseif ($entry->authority['system'] == 'geoNames') { $row->geoNames = $entry->authority['id']; } $rowArray[] = $row; } } } // Jetzt werden die Objekte der Klasse geoDataRow in Einträge übersetzt, abhängig vom gewählten Format if ($ending == 'csv') { // Kopfdaten für CSV-Dateien $content = '"Name","Address","Description","Longitude","Latitude","TimeStamp","TimeSpan:begin","TimeSpan:end","GettyID","" '; foreach ($rowArray as $row) { $content .= makePlaceEntryCSV($row); } } elseif ($ending == 'kml') { // Kopfdaten für KML-Dateien $content = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xal="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"> <Folder>'; foreach ($rowArray as $row) { $content .= makePlaceEntryKML($row); } // Fußdaten für KML-Dateien $content .= ' </Folder> </kml>'; } // Abspeichern der im String $content zwischengespeicherten Daten in einer Datei im Projektordner $fileName = $folderName . '/printingPlaces.' . $ending; $datei = fopen($fileName, "w"); fwrite($datei, $content, 30000000); fclose($datei); }
function update_db($newinstall) { $database =& JFactory::getDBO(); $error = false; // we create the new columns for 2.7 $error = addColumn($database, 'preview_textfile_extensions', '', $error); $error = addColumn($database, 'edit_textfile_extensions', '', $error); $error = addColumn($database, 'js_create_folder', '', $error); $error = addColumn($database, 'js_rename_folder', '', $error); $error = addColumn($database, 'js_delete_folder', '', $error); $error = addColumn($database, 'js_copymove', '', $error); // new 2.8 $error = addColumn($database, 'language_dropdown', 'de,en,es,br,cn,ct,da,fr,it,jp,nl,no,pl,pt,se,sk,tw', $error); $error = addColumn($database, 'use_image_magic', 'false', $error); $error = addColumn($database, 'image_magic_path', 'convert', $error); $error = addColumn($database, 'exclude_directories', 'data.pxp,_vti_cnf,.svn,CVS,thumbs', $error); $error = addColumn($database, 'normalise_file_names', 'false', $error); $error = addColumn($database, 'download_multiple_files_as_zip', 'false', $error); $error = addColumn($database, 'allowed_view_file_extensions', 'all', $error); $error = addColumn($database, 'forbidden_view_file_extensions', '', $error); $error = addColumn($database, 'description_mode', 'false', $error); $error = addColumn($database, 'description_mode_show_default', 'true', $error); $error = addColumn($database, 'description_mode_store', 'email', $error); $error = addColumn($database, 'master_profile', 'false', $error); $error = addColumn($database, 'master_profile_mode', 'login', $error); $error = addColumn($database, 'master_profile_lowercase', 'true', $error); // new 2.8.3 $error = addColumn($database, 'normalise_directory_names', 'false', $error); $error = addColumn($database, 'direct_download', 'false', $error); $error = addColumn($database, 'fix_utf8', '', $error); // new 2.9 if (!testEntry('use_js_include')) { $database->setQuery("INSERT INTO #__joomla_flash_uploader_conf (key_id, value) values ('use_js_include','true')"); if (!$database->query()) { $error = true; echo $database->getErrorMsg() . '<br />'; } } if (!testEntry('backend_access_upload')) { $database->setQuery("INSERT INTO #__joomla_flash_uploader_conf (key_id, value) values ('backend_access_upload','Manager')"); if (!$database->query()) { $error = true; echo $database->getErrorMsg() . '<br />'; } } if (!testEntry('backend_access_config')) { $database->setQuery("INSERT INTO #__joomla_flash_uploader_conf (key_id, value) values ('backend_access_config','Manager')"); if (!$database->query()) { $error = true; echo $database->getErrorMsg() . '<br />'; } } if (!testEntry('file_chmod')) { $database->setQuery("INSERT INTO #__joomla_flash_uploader_conf (key_id, value) values ('file_chmod','')"); if (!$database->query()) { $error = true; echo $database->getErrorMsg() . '<br />'; } } $error = addColumn($database, 'overwrite_files', 'true', $error); $error = addColumn($database, 'description_mode_mandatory', 'false', $error); $error = addColumn($database, 'show_full_url_for_selected_file', 'false', $error); $error = addColumn($database, 'normalize_spaces', 'false', $error); if (!testEntry('dir_chmod')) { $database->setQuery("INSERT INTO #__joomla_flash_uploader_conf (key_id, value) values ('dir_chmod','')"); if (!$database->query()) { $error = true; echo $database->getErrorMsg() . '<br />'; } } if ($error) { echo "<p class='error'>"; echo JText::_('I_UPDATE_ERROR'); return true; echo "</p>"; } else { if (!$newinstall) { echo JText::_('I_UPDATE_OK'); } return false; } }