diff options
| author | fisharebest <fisharebest@gmail.com> | 2011-01-02 22:03:52 +0000 |
|---|---|---|
| committer | fisharebest <fisharebest@gmail.com> | 2011-01-02 22:03:52 +0000 |
| commit | 951f70944594a6d47bbc39bb388da9cd062d9480 (patch) | |
| tree | b24b87c66f9a5a612d26940c42a4d2af4a67a495 | |
| parent | 1491e6ef52cdf585634e95c67a13eaccf59cbe10 (diff) | |
| download | webtrees-951f70944594a6d47bbc39bb388da9cd062d9480.tar.gz webtrees-951f70944594a6d47bbc39bb388da9cd062d9480.tar.bz2 webtrees-951f70944594a6d47bbc39bb388da9cd062d9480.zip | |
Remove old/unused functions
| -rw-r--r-- | includes/functions/functions_tools.php | 237 |
1 files changed, 0 insertions, 237 deletions
diff --git a/includes/functions/functions_tools.php b/includes/functions/functions_tools.php deleted file mode 100644 index 7f4d97edae..0000000000 --- a/includes/functions/functions_tools.php +++ /dev/null @@ -1,237 +0,0 @@ -<?php -/** - * Functions used Tools to cleanup and manipulate Gedcoms before they are imported - * - * webtrees: Web based Family History software - * Copyright (C) 2010 webtrees development team. - * - * Derived from PhpGedView - * Copyright (C) 2002 to 2009 PGV Development Team. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * @package webtrees - * @subpackage Tools - * @see validategedcom.php - * @version $Id$ - */ - -if (!defined('WT_WEBTREES')) { - header('HTTP/1.0 403 Forbidden'); - exit; -} - -define('WT_FUNCTIONS_TOOLS_PHP', ''); - -/** - * check if we need to cleanup the places - * - * some programs, most notoriously FTM, put data in the PLAC field when it should be on the same line - * as the event. For example:<code>1 SSN - * 2 PLAC 123-45-6789</code> Should really be: <code>1 SSN 123-45-6789</code> - * this function checks if this exists - * @return boolean returns true if the cleanup is needed - * @see place_cleanup() - */ -function need_place_cleanup() -{ - global $fcontents; - //$ct = preg_match("/SOUR.+(Family Tree Maker|FTW)/", $fcontents); - //if ($ct==0) return false; - $ct = preg_match_all ("/^1 (CAST|DSCR|IDNO|NATI|NCHI|NMR|OCCU|PROP|RELI|SSN|TITL|_FA1|_FA2|_FA3|_FA4|_FA5|_FA6)(\s*)$[\s]+(^2 TYPE(.*)[\s]+)?(^2 DATE(.*)[\s]+)?^2 PLAC (.*)$/m",$fcontents,$matches, PREG_SET_ORDER); - if ($ct>0) - return $matches[0]; - return false; -} - -/** - * clean up the bad places found by the need_place_cleanup() function - * @return boolean returns true if cleanup was successful - * @see need_place_cleanup() - */ -function place_cleanup() -{ - global $fcontents; - -//searchs for '1 CAST|DSCR|IDNO|NATI|NCHI|NMR|OCCU|PROP|RELI|SSN|TITL #chars\n' -// 'optional 2 TYPE #chars\n' -// 'optional 2 DATE #chars\n' -// '2 PLAC #chars' -// and replaces the 1 level #chars with the PLAC #chars and blanks out the PLAC -$fcontents = preg_replace("/^1 (CAST|DSCR|IDNO|NATI|NCHI|NMR|OCCU|PROP|RELI|SSN|TITL|_FA1|_FA2|_FA3|_FA4|_FA5|_FA6)(\s*)$[\s]+(^2 TYPE(.*)[\s]+)?(^2 DATE(.*)[\s]+)?^2 PLAC (.*)$/m", - fixreplaceval('$1','$7','$3','$5'),$fcontents); -return true; -} - -//used to create string to be replaced back into GEDCOM -function fixreplaceval($val1,$val7,$val3,$val5) -{ - $val = "1 ".$val1." ".trim($val7)."\n"; - //trim off trailing spaces - $val3 = rtrim($val3); - if (!empty($val3)) - $val = $val.$val3; - - //trim off trailing spaces - $val5 = rtrim($val5); - if (!empty($val5)) - { - $val = $val.$val5; - } - - //$val = $val."\r\n2 PLAC"; - return trim($val); -} - - -/** - * check if we need to cleanup the dates - * - * Valid gedcom dates are in the form DD MMM YYYY (ie 01 JAN 2004). However many people will enter - * dates in an incorrect format. This function checks if dates have been entered incorrectly. - * This function will detect dates in the form YYYY-MM-DD, DD-MM-YYYY, and MM-DD-YYYY. It will also - * look for \ / - and . as delimeters. - * @return boolean returns true if the cleanup is needed - * @see date_cleanup() - */ -function need_date_cleanup() -{ - global $fcontents; - $ct = preg_match_all ("/\n\d DATE[^\d]+(\d\d\d\d)[\/\\\\\-\.](\d\d)[\/\\\\\-\.](\d\d)/",$fcontents,$matches, PREG_SET_ORDER); - if ($ct>0) { - return $matches[0]; - } - else - { - $ct = preg_match_all ("/\n\d DATE[^\d]+(\d\d)[\/\\\\\-\.](\d\d)[\/\\\\\-\.](\d\d\d\d)/",$fcontents,$matches, PREG_SET_ORDER); - if ($ct>0) { - // The user needs to choose between DMY and MDY - $matches[0]["choose"] = true; - return $matches[0]; - } - else { - $ct = preg_match_all ("/\n\d DATE ([^\d]+) [0-9]{1,2}, (\d\d\d\d)/",$fcontents,$matches, PREG_SET_ORDER); - if ($ct>0) { - return $matches[0]; - } - else { - $ct = preg_match_all("/\n\d DATE (\d\d)[^\s]([^\d]+)[^\s](\d\d\d\d)/", $fcontents, $matches, PREG_SET_ORDER); - if ($ct>0) { - return $matches[0]; - } else { - if (preg_match_all("/^\d DATE (BET|FROM) \d\d? (AND|TO) \d\d? \w\w\w \d\d\d\d/m", $fcontents, $matches, PREG_SET_ORDER)) { - return $matches[0]; - } - } - } - } - } - return false; -} - -function changemonth($monval) -{ - if ($monval=="01") return "JAN"; - elseif ($monval=="02") return "FEB"; - elseif ($monval=="03") return "MAR"; - elseif ($monval=="04") return "APR"; - elseif ($monval=="05") return "MAY"; - elseif ($monval=="06") return "JUN"; - elseif ($monval=="07") return "JUL"; - elseif ($monval=="08") return "AUG"; - elseif ($monval=="09") return "SEP"; - elseif ($monval=="10") return "OCT"; - elseif ($monval=="11") return "NOV"; - elseif ($monval=="12") return "DEC"; - return $monval; -} - -/** - * clean up the bad dates found by the need_date_cleanup() function - * @return boolean returns true if cleanup was successful - * @see need_date_cleanup() - */ -function date_cleanup($dayfirst=1) -{ - global $fcontents; - // Run all fixes twice, as there can be two dates in each DATE record - - // Convert ISO/Japanese style dates "2000-12-31" - $fcontents=preg_replace("/2 DATE (.*)(\d\d\d\d)\W(0?[1-9]|1[0-2])\W(\d\d)/e", "'2 DATE $1$4 '.changemonth('$3').' $2'", $fcontents); - $fcontents=preg_replace("/2 DATE (.*)(\d\d\d\d)\W(0?[1-9]|1[0-2])\W(\d\d)/e", "'2 DATE $1$4 '.changemonth('$3').' $2'", $fcontents); - // Convert US style dates "FEB 14, 2000" or "February 5, 2000" - $fcontents=preg_replace("/2 DATE (.*)((JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)[A-Z]*) (\d{1,2}), (\d{4})/i", "2 DATE $1$4 $3 $5", $fcontents); - $fcontents=preg_replace("/2 DATE (.*)((JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)[A-Z]*) (\d{1,2}), (\d{4})/i", "2 DATE $1$4 $3 $5", $fcontents); - - // Convert non-space delimiters "12-DEC-2000" or "01/02/2000" - // Without the "ungreedy" qualifier, this regex won't match the first of a pair of dates and - // with it, it won't match the second. Not sure why. - $fcontents=preg_replace("/2 DATE (.*?)(\d\d?)\W(\w+)\W(\d\d\d\d)/", "2 DATE $1$2 $3 $4", $fcontents); - $fcontents=preg_replace("/2 DATE (.*)(\d\d?)\W(\w+)\W(\d\d\d\d)/", "2 DATE $1$2 $3 $4", $fcontents); - - if ($dayfirst==1) { - // Interpret numeric dates as DD MM YYYY - $fcontents=preg_replace("/2 DATE (.*)(\d\d?) (0?[1-9]|1[0-2]) (\d\d\d\d)/e", "'2 DATE $1$2 '.changemonth('$3').' $4'", $fcontents); - $fcontents=preg_replace("/2 DATE (.*)(\d\d?) (0?[1-9]|1[0-2]) (\d\d\d\d)/e", "'2 DATE $1$2 '.changemonth('$3').' $4'", $fcontents); - } else if ($dayfirst==2) { - // Interpret numeric dates as MM DD YYYY - $fcontents=preg_replace("/2 DATE (.*)(0?[1-9]|1[0-2]) (\d\d?) (\d\d\d\d)/e", "'2 DATE $1$3 '.changemonth('$2').' $4'", $fcontents); - $fcontents=preg_replace("/2 DATE (.*)(0?[1-9]|1[0-2]) (\d\d?) (\d\d\d\d)/e", "'2 DATE $1$3 '.changemonth('$2').' $4'", $fcontents); - } - - // Convert "BET 1 AND 11 JUN 1900" to "BET 1 JUN 1900 AND 11 JUN 1900" - $fcontents=preg_replace("/^(\d DATE) (BET|FROM) (\d\d?) (AND|TO) (\d\d?) (\w\w\w \d\d\d\d)/m", '$1 $2 $3 $6 $4 $5 $6', $fcontents); - return true; -} - -/** - * convert XREFs to the value of another tag in the gedcom record - * - * Some genealogy applications do not maintain the gedcom XREF IDs between gedcom exports - * but instead use another Identifying tag in the Gedcom record. This function will allow - * the admin to replace the XREF IDs with the value of another tag. So for example you could replace - * the 0 @I1@ INDI with the value of the RIN tag R101 making the line look like this 0 @R101@ INDI - * @param String $tag the alternate tag in the gedcom record to use when replacing the xref id, defaults to RIN - */ -function xref_change($tag="RIN") -{ - global $fcontents; - global $GEDCOM; - $ged_id=get_id_from_gedcom($GEDCOM); - - //-- find all of the XREFS in the file - $ct = preg_match_all("/0 @(.*)@ INDI/", $fcontents, $match, PREG_SET_ORDER); - for ($i=0; $i<$ct; $i++) { - $xref = trim($match[$i][1]); - $indirec = find_gedcom_record($xref, $ged_id, true); - if ($indirec) { - $rt = preg_match("/1 NAME (.*)/", $indirec, $rmatch); - if ($rt>0) - { - $name = trim($rmatch[1])." (".$xref.")"; - $name = str_replace("/","",$name); - } - else - $name = $xref; - $rt = preg_match("/1 $tag (.*)/", $indirec, $rmatch); - if ($rt>0) { - $rin = trim($rmatch[1]); - $fcontents = str_replace("@$xref@", "@$rin@", $fcontents); - } - else echo "<span class=\"error\">No $tag found in record<br /></span>"; - } - } - return true; -} |
