Update of /cvsroot/bitweaver/_bit_phpgedview/includes
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19010/phpgedview/includes
Modified Files:
lang_codes_std.php pclzip.lib.php index_cache.php .htaccess
reportheader.php specialchars.php authentication.php
lang_settings_std.php grampsxml.rng templecodes.php
session.php help_text_vars.php sort_tables_utf8.php
cssparser.inc.php
Added Files:
media_reorder.php media_tab_head.php session_spider.php
family_nav.php dmsounds_UTF8.php hitcount.php
accesskeyHeaders.php media_reorder_count.php
Removed Files:
repository_class.php functions_editlang.php
functions_privacy.php functions_name.php date_class.php
functions_print_lists.php functions_import.php
feedcreator.class.php reportbase.php functions_db.php
mutex_class.php serviceclient_class.php localclient_class.php
source_class.php functions_mediadb.php reporthtml.php
GEClippings.php functions_mail.php functions_tools.php
person_class.php functions.php GrampsExport.php
class_stats_compat.php functions_print.php
functions_print_facts.php gedcomrecord.php menu.php
family_class.php class_stats.php functions_lang.php
reportpdf.php functions_rss.php functions_export.php
GEWebService.php GEDownloadGedcom.php functions_date.php
functions_places.php functions_edit.php media_class.php
functions_charts.php functions_rtl.php
Log Message:
Code update for PGV4.2 - sections moved to sub-directories
Index: templecodes.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/templecodes.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- templecodes.php 7 Jul 2008 17:30:13 -0000 1.4
+++ templecodes.php 30 Apr 2009 18:32:43 -0000 1.5
@@ -1,154 +1,156 @@
-<?php
-
-if (stristr($_SERVER["SCRIPT_NAME"], basename(__FILE__))!==false) {
- print "You cannot access an include file directly.";
- exit;
-}
-
-# $Id$
-$TEMPLE_CODES = array();
-$TEMPLE_CODES["ABA"]= "Aba, Nigeria";
-$TEMPLE_CODES["ACCRA"]= "Accra, Ghana";
-$TEMPLE_CODES["ADELA"]= "Adelaide, Australia";
-$TEMPLE_CODES["ALBUQ"]= "Albuquerque, New Mexico";
-$TEMPLE_CODES["ANCHO"]= "Anchorage, Alaska";
-$TEMPLE_CODES["SAMOA"]= "Apia, Samoa";
-$TEMPLE_CODES["ASUNC"]= "Asuncion, Paraguay";
-$TEMPLE_CODES["ATLAN"]= "Atlanta, Georgia";
-$TEMPLE_CODES["SWISS"]= "Bern, Switzerland";
-$TEMPLE_CODES["BOGOT"]= "Bogota, Columbia";
-$TEMPLE_CODES["BILLI"]= "Billings, Montana";
-$TEMPLE_CODES["BIRMI"]= "Birmingham, Alabama";
-$TEMPLE_CODES["BISMA"]= "Bismarck, North Dakota";
-$TEMPLE_CODES["BOGOT"]= "Bogota, Colombia";
-$TEMPLE_CODES["BOISE"]= "Boise, Idaho";
-$TEMPLE_CODES["BOSTO"]= "Boston, Massachusetts";
-$TEMPLE_CODES["BOUNT"]= "Bountiful, Utah";
-$TEMPLE_CODES["BRISB"]= "Brisbane, Australia";
-$TEMPLE_CODES["BROUG"]= "Baton Rouge, Louisiana";
-$TEMPLE_CODES["BAIRE"]= "Buenos Aires, Argentina";
-$TEMPLE_CODES["CAMPI"]= "Campinas, Brazil";
-$TEMPLE_CODES["CARAC"]= "Caracas, Venezuela";
-$TEMPLE_CODES["ALBER"]= "Cardston, Alberta, Canada";
-$TEMPLE_CODES["CHICA"]= "Chicago, Illinois";
-$TEMPLE_CODES["CIUJU"]= "Ciudad Juarez, Mexico";
-$TEMPLE_CODES["COCHA"]= "Cochabamba, Bolivia";
-$TEMPLE_CODES["COLJU"]= "Colonia Juarez, Mexico";
-$TEMPLE_CODES["COLSC"]= "Columbia, South Carolina";
-$TEMPLE_CODES["COLUM"]= "Columbus, Ohio";
-$TEMPLE_CODES["COPEN"]= "Copenhagen, Denmark";
-$TEMPLE_CODES["CRIVE"]= "Columbia River, Washington";
-$TEMPLE_CODES["DALLA"]= "Dallas, Texas";
-$TEMPLE_CODES["DENVE"]= "Denver, Colorado";
-$TEMPLE_CODES["DETRO"]= "Detroit, Michigan";
-$TEMPLE_CODES["EDMON"]= "Edmonton, Alberta, Canada";
-$TEMPLE_CODES["EHOUS"]= "ENDOWMENT HOUSE";
-$TEMPLE_CODES["FRANK"]= "Frankfurt am Main, Germany"; // There's also a Frankfurt an der Oder in Germany
-$TEMPLE_CODES["FREIB"]= "Freiburg, Germany";
-$TEMPLE_CODES["FRESN"]= "Fresno, California";
-$TEMPLE_CODES["FUKUO"]= "Fukuoka, Japan";
-$TEMPLE_CODES["GUADA"]= "Guadalajara, Mexico";
-$TEMPLE_CODES["GUATE"]= "Guatemala City, Guatemala";
-$TEMPLE_CODES["GUAYA"]= "Guayaquil, Ecuador";
-$TEMPLE_CODES["HAGUE"]= "The Hague, Netherlands";
-$TEMPLE_CODES["HALIF"]= "Halifax, Nova Scotia, Canada";
-$TEMPLE_CODES["NZEAL"]= "Hamilton, New Zealand";
-$TEMPLE_CODES["HARTF"]= "Hartford, Connecticut";
-$TEMPLE_CODES["HELSI"]= "Helsinki, Finland";
-$TEMPLE_CODES["HERMO"]= "Hermosillo, Mexico";
-$TEMPLE_CODES["HKONG"]= "Hong Kong";
-$TEMPLE_CODES["HOUST"]= "Houston, Texas";
-$TEMPLE_CODES["IFALL"]= "Idaho Falls, Idaho";
-$TEMPLE_CODES["JOHAN"]= "Johannesburg, South Africa";
-$TEMPLE_CODES["JRIVE"]= "Jordan River, Utah";
-$TEMPLE_CODES["KIEV"]= "Kiev, Ukraine";
-$TEMPLE_CODES["KONA"]= "Kona, Hawaii";
-$TEMPLE_CODES["HAWAI"]= "Laie, Hawaii";
-$TEMPLE_CODES["LVEGA"]= "Las Vegas, Nevada";
-$TEMPLE_CODES["LIMA"]= "Lima, Peru";
-$TEMPLE_CODES["LOGAN"]= "Logan, Utah";
-$TEMPLE_CODES["LONDO"]= "London, England";
-$TEMPLE_CODES["LANGE"]= "Los Angeles, California";
-$TEMPLE_CODES["LOUIS"]= "Louisville, Kentucky";
-$TEMPLE_CODES["LUBBO"]= "Lubbock, Texas";
-$TEMPLE_CODES["MADRI"]= "Madrid, Spain";
-$TEMPLE_CODES["MANIL"]= "Manila, Philippines";
-$TEMPLE_CODES["MANTI"]= "Manti, Utah";
-$TEMPLE_CODES["MEDFO"]= "Medford, Oregon";
-$TEMPLE_CODES["MELBO"]= "Melbourne, Australia";
-$TEMPLE_CODES["MEMPH"]= "Memphis, Tennessee";
-$TEMPLE_CODES["MERID"]= "Merida, Mexico";
-$TEMPLE_CODES["ARIZO"]= "Mesa, Arizona";
-$TEMPLE_CODES["MEXIC"]= "Mexico City, Mexico";
-$TEMPLE_CODES["MONTE"]= "Monterrey, Mexico";
-$TEMPLE_CODES["MNTVD"]= "Montevideo, Uruguay";
-$TEMPLE_CODES["MONTI"]= "Monticello, Utah";
-$TEMPLE_CODES["MONTR"]= "Montreal, Quebec, Canada";
-$TEMPLE_CODES["MTIMP"]= "Mt. Timpanogos, Utah";
-$TEMPLE_CODES["NASHV"]= "Nashville, Tennessee";
-$TEMPLE_CODES["NAUV2"]= "Nauvoo, Illinois (new)";
-$TEMPLE_CODES["NAUVO"]= "Nauvoo, Illinois (original)";
-$TEMPLE_CODES["NBEAC"]= "Newport Beach, California";
-$TEMPLE_CODES["NYORK"]= "New York, New York";
-$TEMPLE_CODES["NUKUA"]= "Nuku'Alofa, Tonga";
-$TEMPLE_CODES["OAKLA"]= "Oakland, California";
-$TEMPLE_CODES["OAXAC"]= "Oaxaca, Mexico";
-$TEMPLE_CODES["OGDEN"]= "Ogden, Utah";
-$TEMPLE_CODES["OKLAH"]= "Oklahoma City, Oklahoma";
-$TEMPLE_CODES["ORLAN"]= "Orlando, Florida";
-$TEMPLE_CODES["PALEG"]= "Porto Alegre, Mexico";
-$TEMPLE_CODES["PALMY"]= "Palmyra, New York";
-$TEMPLE_CODES["PAPEE"]= "Papeete, Tahiti";
-$TEMPLE_CODES["PERTH"]= "Perth, Australia";
-$TEMPLE_CODES["PORTL"]= "Portland, Oregon";
-$TEMPLE_CODES["POFFI"]= "PRESIDENT'S OFFICE";
-$TEMPLE_CODES["PREST"]= "Preston, England";
-$TEMPLE_CODES["PROVO"]= "Provo, Utah";
-$TEMPLE_CODES["RALEI"]= "Raleigh, North Carolina";
-$TEMPLE_CODES["RECIF"]= "Recife, Brazil";
-$TEMPLE_CODES["REDLA"]= "Redlands, California";
-$TEMPLE_CODES["REGIN"]= "Regina, Saskatchewan, Canada";
-$TEMPLE_CODES["RENO"]= "Reno, Nevada";
-$TEMPLE_CODES["SACRA"]= "Sacramento, California";
-$TEMPLE_CODES["SLAKE"]= "Salt Lake City, Utah";
-$TEMPLE_CODES["SANTO"]= "San Antonio, Texas";
-$TEMPLE_CODES["SDIEG"]= "San Diego, California";
-$TEMPLE_CODES["SJOSE"]= "San Jose, Costa Rica";
-$TEMPLE_CODES["SANTI"]= "Santiago, Chile";
-$TEMPLE_CODES["SDOMI"]= "Santo Domingo, Dom. Rep.";
-$TEMPLE_CODES["SPAUL"]= "Sao Paulo, Brazil";
-$TEMPLE_CODES["SEATT"]= "Seattle, Washington";
-$TEMPLE_CODES["SEOUL"]= "Seoul, Korea";
-$TEMPLE_CODES["SNOWF"]= "Snowflake, Arizona";
-$TEMPLE_CODES["SPOKA"]= "Spokane, Washington";
-$TEMPLE_CODES["SGEOR"]= "St. George, Utah";
-$TEMPLE_CODES["SLOUI"]= "St. Louis, Missouri";
-$TEMPLE_CODES["SPMIN"]= "St. Paul, Minnesota";
-$TEMPLE_CODES["STOCK"]= "Stockholm, Sweden";
-$TEMPLE_CODES["SUVA"]= "Suva, Fiji";
-$TEMPLE_CODES["SYDNE"]= "Sydney, Australia";
-$TEMPLE_CODES["TAIPE"]= "Taipei, Taiwan";
-$TEMPLE_CODES["TAMPI"]= "Tampico, Mexico";
-$TEMPLE_CODES["TOKYO"]= "Tokyo, Japan";
-$TEMPLE_CODES["TORNO"]= "Toronto, Ontario, Canada";
-$TEMPLE_CODES["TGUTI"]= "Tuxtla Gutierrez, Mexico";
-$TEMPLE_CODES["VERAC"]= "Veracruz, Mexico";
-$TEMPLE_CODES["VERNA"]= "Vernal, Utah";
-$TEMPLE_CODES["VILLA"]= "Villa Hermosa, Mexico";
-$TEMPLE_CODES["WASHI"]= "Washington, DC";
-$TEMPLE_CODES["WINTE"]= "Winter Quarters, Nebraska";
-
-$STATUS_CODES = array();
-$STATUS_CODES["CHILD"]= "Died as a child: exempt";
-$STATUS_CODES["INFANT"] = "Died as an infant: exempt";
-$STATUS_CODES["STILLBORN"] = "Stillborn: exempt";
-$STATUS_CODES["BIC"] = "Born in the covenant";
-$STATUS_CODES["SUBMITTED"] = "Submitted but not yet cleared";
-$STATUS_CODES["UNCLEARED"] = "Uncleared: insufficient data";
-$STATUS_CODES["CLEARED"] = "Cleared but not yet completed";
-$STATUS_CODES["COMPLETED"] = "Completed; date unknown";
-$STATUS_CODES["PRE-1970"] = "Completed before 1970; date not available";
-$STATUS_CODES["CANCELLED"] = "Sealing cancelled (divorce)";
-$STATUS_CODES["DNS"] = "Do Not Seal: unauthorized";
-$STATUS_CODES["DNS/CAN"] = "Do Not Seal, previous sealing cancelled";
-?>
+<?php
+
+if (!defined('PGV_PHPGEDVIEW')) {
+ header('HTTP/1.0 403 Forbidden');
+ exit;
+}
+
+define('PGV_TEMPLECODES_PHP', '');
+
+# $Id$
+$TEMPLE_CODES = array();
+$TEMPLE_CODES["ABA"]= "Aba, Nigeria";
+$TEMPLE_CODES["ACCRA"]= "Accra, Ghana";
+$TEMPLE_CODES["ADELA"]= "Adelaide, Australia";
+$TEMPLE_CODES["ALBUQ"]= "Albuquerque, New Mexico";
+$TEMPLE_CODES["ANCHO"]= "Anchorage, Alaska";
+$TEMPLE_CODES["SAMOA"]= "Apia, Samoa";
+$TEMPLE_CODES["ASUNC"]= "Asuncion, Paraguay";
+$TEMPLE_CODES["ATLAN"]= "Atlanta, Georgia";
+$TEMPLE_CODES["SWISS"]= "Bern, Switzerland";
+$TEMPLE_CODES["BOGOT"]= "Bogota, Columbia";
+$TEMPLE_CODES["BILLI"]= "Billings, Montana";
+$TEMPLE_CODES["BIRMI"]= "Birmingham, Alabama";
+$TEMPLE_CODES["BISMA"]= "Bismarck, North Dakota";
+$TEMPLE_CODES["BOGOT"]= "Bogota, Colombia";
+$TEMPLE_CODES["BOISE"]= "Boise, Idaho";
+$TEMPLE_CODES["BOSTO"]= "Boston, Massachusetts";
+$TEMPLE_CODES["BOUNT"]= "Bountiful, Utah";
+$TEMPLE_CODES["BRISB"]= "Brisbane, Australia";
+$TEMPLE_CODES["BROUG"]= "Baton Rouge, Louisiana";
+$TEMPLE_CODES["BAIRE"]= "Buenos Aires, Argentina";
+$TEMPLE_CODES["CAMPI"]= "Campinas, Brazil";
+$TEMPLE_CODES["CARAC"]= "Caracas, Venezuela";
+$TEMPLE_CODES["ALBER"]= "Cardston, Alberta, Canada";
+$TEMPLE_CODES["CHICA"]= "Chicago, Illinois";
+$TEMPLE_CODES["CIUJU"]= "Ciudad Juarez, Mexico";
+$TEMPLE_CODES["COCHA"]= "Cochabamba, Bolivia";
+$TEMPLE_CODES["COLJU"]= "Colonia Juarez, Mexico";
+$TEMPLE_CODES["COLSC"]= "Columbia, South Carolina";
+$TEMPLE_CODES["COLUM"]= "Columbus, Ohio";
+$TEMPLE_CODES["COPEN"]= "Copenhagen, Denmark";
+$TEMPLE_CODES["CRIVE"]= "Columbia River, Washington";
+$TEMPLE_CODES["DALLA"]= "Dallas, Texas";
+$TEMPLE_CODES["DENVE"]= "Denver, Colorado";
+$TEMPLE_CODES["DETRO"]= "Detroit, Michigan";
+$TEMPLE_CODES["EDMON"]= "Edmonton, Alberta, Canada";
+$TEMPLE_CODES["EHOUS"]= "ENDOWMENT HOUSE";
+$TEMPLE_CODES["FRANK"]= "Frankfurt am Main, Germany"; // There's also a Frankfurt an der Oder in Germany
+$TEMPLE_CODES["FREIB"]= "Freiburg, Germany";
+$TEMPLE_CODES["FRESN"]= "Fresno, California";
+$TEMPLE_CODES["FUKUO"]= "Fukuoka, Japan";
+$TEMPLE_CODES["GUADA"]= "Guadalajara, Mexico";
+$TEMPLE_CODES["GUATE"]= "Guatemala City, Guatemala";
+$TEMPLE_CODES["GUAYA"]= "Guayaquil, Ecuador";
+$TEMPLE_CODES["HAGUE"]= "The Hague, Netherlands";
+$TEMPLE_CODES["HALIF"]= "Halifax, Nova Scotia, Canada";
+$TEMPLE_CODES["NZEAL"]= "Hamilton, New Zealand";
+$TEMPLE_CODES["HARTF"]= "Hartford, Connecticut";
+$TEMPLE_CODES["HELSI"]= "Helsinki, Finland";
+$TEMPLE_CODES["HERMO"]= "Hermosillo, Mexico";
+$TEMPLE_CODES["HKONG"]= "Hong Kong";
+$TEMPLE_CODES["HOUST"]= "Houston, Texas";
+$TEMPLE_CODES["IFALL"]= "Idaho Falls, Idaho";
+$TEMPLE_CODES["JOHAN"]= "Johannesburg, South Africa";
+$TEMPLE_CODES["JRIVE"]= "Jordan River, Utah";
+$TEMPLE_CODES["KIEV"]= "Kiev, Ukraine";
+$TEMPLE_CODES["KONA"]= "Kona, Hawaii";
+$TEMPLE_CODES["HAWAI"]= "Laie, Hawaii";
+$TEMPLE_CODES["LVEGA"]= "Las Vegas, Nevada";
+$TEMPLE_CODES["LIMA"]= "Lima, Peru";
+$TEMPLE_CODES["LOGAN"]= "Logan, Utah";
+$TEMPLE_CODES["LONDO"]= "London, England";
+$TEMPLE_CODES["LANGE"]= "Los Angeles, California";
+$TEMPLE_CODES["LOUIS"]= "Louisville, Kentucky";
+$TEMPLE_CODES["LUBBO"]= "Lubbock, Texas";
+$TEMPLE_CODES["MADRI"]= "Madrid, Spain";
+$TEMPLE_CODES["MANIL"]= "Manila, Philippines";
+$TEMPLE_CODES["MANTI"]= "Manti, Utah";
+$TEMPLE_CODES["MEDFO"]= "Medford, Oregon";
+$TEMPLE_CODES["MELBO"]= "Melbourne, Australia";
+$TEMPLE_CODES["MEMPH"]= "Memphis, Tennessee";
+$TEMPLE_CODES["MERID"]= "Merida, Mexico";
+$TEMPLE_CODES["ARIZO"]= "Mesa, Arizona";
+$TEMPLE_CODES["MEXIC"]= "Mexico City, Mexico";
+$TEMPLE_CODES["MONTE"]= "Monterrey, Mexico";
+$TEMPLE_CODES["MNTVD"]= "Montevideo, Uruguay";
+$TEMPLE_CODES["MONTI"]= "Monticello, Utah";
+$TEMPLE_CODES["MONTR"]= "Montreal, Quebec, Canada";
+$TEMPLE_CODES["MTIMP"]= "Mt. Timpanogos, Utah";
+$TEMPLE_CODES["NASHV"]= "Nashville, Tennessee";
+$TEMPLE_CODES["NAUV2"]= "Nauvoo, Illinois (new)";
+$TEMPLE_CODES["NAUVO"]= "Nauvoo, Illinois (original)";
+$TEMPLE_CODES["NBEAC"]= "Newport Beach, California";
+$TEMPLE_CODES["NYORK"]= "New York, New York";
+$TEMPLE_CODES["NUKUA"]= "Nuku'Alofa, Tonga";
+$TEMPLE_CODES["OAKLA"]= "Oakland, California";
+$TEMPLE_CODES["OAXAC"]= "Oaxaca, Mexico";
+$TEMPLE_CODES["OGDEN"]= "Ogden, Utah";
+$TEMPLE_CODES["OKLAH"]= "Oklahoma City, Oklahoma";
+$TEMPLE_CODES["ORLAN"]= "Orlando, Florida";
+$TEMPLE_CODES["PALEG"]= "Porto Alegre, Mexico";
+$TEMPLE_CODES["PALMY"]= "Palmyra, New York";
+$TEMPLE_CODES["PAPEE"]= "Papeete, Tahiti";
+$TEMPLE_CODES["PERTH"]= "Perth, Australia";
+$TEMPLE_CODES["PORTL"]= "Portland, Oregon";
+$TEMPLE_CODES["POFFI"]= "PRESIDENT'S OFFICE";
+$TEMPLE_CODES["PREST"]= "Preston, England";
+$TEMPLE_CODES["PROVO"]= "Provo, Utah";
+$TEMPLE_CODES["RALEI"]= "Raleigh, North Carolina";
+$TEMPLE_CODES["RECIF"]= "Recife, Brazil";
+$TEMPLE_CODES["REDLA"]= "Redlands, California";
+$TEMPLE_CODES["REGIN"]= "Regina, Saskatchewan, Canada";
+$TEMPLE_CODES["RENO"]= "Reno, Nevada";
+$TEMPLE_CODES["SACRA"]= "Sacramento, California";
+$TEMPLE_CODES["SLAKE"]= "Salt Lake City, Utah";
+$TEMPLE_CODES["SANTO"]= "San Antonio, Texas";
+$TEMPLE_CODES["SDIEG"]= "San Diego, California";
+$TEMPLE_CODES["SJOSE"]= "San Jose, Costa Rica";
+$TEMPLE_CODES["SANTI"]= "Santiago, Chile";
+$TEMPLE_CODES["SDOMI"]= "Santo Domingo, Dom. Rep.";
+$TEMPLE_CODES["SPAUL"]= "Sao Paulo, Brazil";
+$TEMPLE_CODES["SEATT"]= "Seattle, Washington";
+$TEMPLE_CODES["SEOUL"]= "Seoul, Korea";
+$TEMPLE_CODES["SNOWF"]= "Snowflake, Arizona";
+$TEMPLE_CODES["SPOKA"]= "Spokane, Washington";
+$TEMPLE_CODES["SGEOR"]= "St. George, Utah";
+$TEMPLE_CODES["SLOUI"]= "St. Louis, Missouri";
+$TEMPLE_CODES["SPMIN"]= "St. Paul, Minnesota";
+$TEMPLE_CODES["STOCK"]= "Stockholm, Sweden";
+$TEMPLE_CODES["SUVA"]= "Suva, Fiji";
+$TEMPLE_CODES["SYDNE"]= "Sydney, Australia";
+$TEMPLE_CODES["TAIPE"]= "Taipei, Taiwan";
+$TEMPLE_CODES["TAMPI"]= "Tampico, Mexico";
+$TEMPLE_CODES["TOKYO"]= "Tokyo, Japan";
+$TEMPLE_CODES["TORNO"]= "Toronto, Ontario, Canada";
+$TEMPLE_CODES["TGUTI"]= "Tuxtla Gutierrez, Mexico";
+$TEMPLE_CODES["VERAC"]= "Veracruz, Mexico";
+$TEMPLE_CODES["VERNA"]= "Vernal, Utah";
+$TEMPLE_CODES["VILLA"]= "Villa Hermosa, Mexico";
+$TEMPLE_CODES["WASHI"]= "Washington, DC";
+$TEMPLE_CODES["WINTE"]= "Winter Quarters, Nebraska";
+
+$STATUS_CODES = array();
+$STATUS_CODES["CHILD"]= "Died as a child: exempt";
+$STATUS_CODES["INFANT"] = "Died as an infant: exempt";
+$STATUS_CODES["STILLBORN"] = "Stillborn: exempt";
+$STATUS_CODES["BIC"] = "Born in the covenant";
+$STATUS_CODES["SUBMITTED"] = "Submitted but not yet cleared";
+$STATUS_CODES["UNCLEARED"] = "Uncleared: insufficient data";
+$STATUS_CODES["CLEARED"] = "Cleared but not yet completed";
+$STATUS_CODES["COMPLETED"] = "Completed; date unknown";
+$STATUS_CODES["PRE-1970"] = "Completed before 1970; date not available";
+$STATUS_CODES["CANCELLED"] = "Sealing cancelled (divorce)";
+$STATUS_CODES["DNS"] = "Do Not Seal: unauthorized";
+$STATUS_CODES["DNS/CAN"] = "Do Not Seal, previous sealing cancelled";
+?>
--- reporthtml.php DELETED ---
--- reportpdf.php DELETED ---
--- functions_privacy.php DELETED ---
--- repository_class.php DELETED ---
--- functions_export.php DELETED ---
--- functions_places.php DELETED ---
--- functions_print_facts.php DELETED ---
--- class_stats_compat.php DELETED ---
--- person_class.php DELETED ---
--- functions_import.php DELETED ---
Index: help_text_vars.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/help_text_vars.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- help_text_vars.php 7 Jul 2008 17:30:13 -0000 1.1
+++ help_text_vars.php 30 Apr 2009 18:32:43 -0000 1.2
@@ -1,252 +1,255 @@
-<?php
-/**
- * File contains var's to glue Help_text for PHPGedView together
- *
- * phpGedView: Genealogy Viewer
- * Copyright (C) 2002 to 2008 John Finlay and Others
- *
- * 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 PhpGedView
- * @subpackage Help
- * @author John Finlay & Jans Luder
- * @version $Id$
- */
-
-// The variables in this file are used to glue together other var's in the help_text.xx.php
-// Do NOT put any var's, that need to be translated, in this file
-if (strstr($_SERVER["SCRIPT_NAME"],"help_text_vars")) {
- print "Now, why would you want to do that. You're not hacking are you?";
- exit;
-}
-loadLangFile("pgv_confighelp");
-
-$pgv_lang["help_manageservers.php"] = "#pgv_lang[help_managesites]#";
-$pgv_lang["edit_RESN_help"] = "#pgv_lang[RESN_help]#";
-
-$pgv_lang["help_aliveinyear.php"] = "#pgv_lang[alive_in_year_help]#";
-
-//General
-$pgv_lang["start_ahelp"] = "<div class=\"list_value_wrap\"><center class=\"error\">#pgv_lang[start_admin_help]#</center>";
-$pgv_lang["end_ahelp"] = "<center class=\"error\">#pgv_lang[end_admin_help]#</center></div>";
-$pgv_lang["redast"] = "<span class=\"error\"<b>*</b></span>";
-
-// Header
-$pgv_lang["header_help_items"] = "<a name=\"header\"> </a>#pgv_lang[header_help]#<br /><a name=\"header_search\"></a><a href=\"#header\">$UpArrow </a>#pgv_lang[header_search_help]#<br /><a name=\"header_lang_select\"></a><a href=\"#header\">$UpArrow </a>#pgv_lang[header_lang_select_help]#<br /><a name=\"header_user_links\"></a><a href=\"#header\">$UpArrow </a>#pgv_lang[header_user_links_help]#<br /><a name=\"header_favorites\"></a><a href=\"#header\">$UpArrow </a>#pgv_lang[header_favorites_help]#<br /><a name=\"header_theme\"></a><a href=\"#header\">$UpArrow </a>#pgv_lang[header_theme_help]#<br />";
-$pgv_lang["menu_help_items"] = "<a name=\"menu\"> </a>#pgv_lang[menu_help]#<a name=\"menu_fam\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_famtree_help]#<br /><a name=\"menu_myged\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_myged_help]#<a name=\"menu_charts\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_charts_help]#<a name=\"menu_lists\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_lists_help]#<a name=\"menu_annical\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_annical_help]#<a name=\"menu_clip\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_clip_help]#<a name=\"menu_search\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_search_help]#<a name=\"menu_rslog\"></a><a name=\"menu_help\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_help_help]#<br />";
-$pgv_lang["index_portal_help_blocks"] = "<a href=\"#top\">$UpArrow </a><a name=\"index_portal\"> </a>#pgv_lang[index_portal_head_help]##pgv_lang[index_portal_help]#<br /><a name=\"index_welcome\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_welcome_help]#<br /><a name=\"index_login\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_login_help]#<br /><a name=\"index_events\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_events_help]#<br /><a name=\"index_onthisday\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_onthisday_help]#<br /><a name=\"index_charts\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_charts_help]#<br /><a name=\"index_favorites\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_favorites_help]#<br /><a name=\"index_stats\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_stats_help]#<br /><a name=\"index_common_surnames\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_common_names_help]#<br /><a name=\"index_media\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_media_help]#<br /><a name=\"index_loggedin\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_loggedin_help]#<br /><a name=\"recent_changes\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[recent_changes_help]#<br />";
-
-//Help
-$pgv_lang["help_help_items"] = "#pgv_lang[help_help]#<br />#pgv_lang[help_page_help]##pgv_lang[help_content_help]##pgv_lang[help_faq_help]##pgv_lang[help_HS_help]##pgv_lang[help_qm_help]#";
-$pgv_lang["def_help_items"] = "<a name=\"def\"> </a>#pgv_lang[def_help]#<br /><a name=\"def_gedcom\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_gedcom_help]#<br /><a name=\"def_gedcom_date\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_gedcom_date_help]#<br /><a name=\"def_pdf_format\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_pdf_format_help]#<br /><a name=\"def_pgv\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_pgv_help]#<br /><a name=\"def_portal\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_portal_help]#<br /><a name=\"def_theme\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_theme_help]#<br />";
-
-// edit_user.php (My account)
-$pgv_lang["edituser_user_contact_help"] = "#pgv_lang[edituser_contact_meth_help]#<br /><br /><b>#pgv_lang[messaging]#</b><br />#pgv_lang[mail_option1_help]#<br /><b>#pgv_lang[messaging2]#</b><br />#pgv_lang[mail_option2_help]#<br /><b>#pgv_lang[mailto]#</b><br />#pgv_lang[mail_option3_help]#<br /><b>#pgv_lang[no_messaging]#</b><br />#pgv_lang[mail_option4_help]#<br />";
-$pgv_lang["help_edituser.php"] = "~#pgv_lang[myuserdata]#~<br /><br />#pgv_lang[edituser_my_account_help]#<br />#pgv_lang[more_help]#";
-
-// user_admin.php
-$pgv_lang["help_useradmin.php"] = "#pgv_lang[useradmin_help]#<br /><br />#pgv_lang[is_user_help]#<br />#pgv_lang[more_help]#";
-$pgv_lang["useradmin_user_contact_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_user_contact_help]#";
-$pgv_lang["useradmin_change_lang_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_change_lang_help]#";
-$pgv_lang["useradmin_email_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_email_help]#";
-$pgv_lang["useradmin_user_theme_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_user_theme_help]#";
-// these need to be checked and maybe moved to the help_text.en.php
-$pgv_lang["useradmin_username_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_username_help]#";
-$pgv_lang["useradmin_firstname_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_firstname_help]#";
-$pgv_lang["useradmin_lastname_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_lastname_help]#";
-$pgv_lang["useradmin_password_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_password_help]#";
-$pgv_lang["useradmin_conf_password_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_conf_password_help]#";
-$pgv_lang["edit_useradmin_help"] = "#pgv_lang[useradmin_edit_user_help]#<br />#pgv_lang[more_help]#";
-
-// general help items used in help welcome page
-$pgv_lang["general_help"] = "<a name=\"header_general\"> </a>#pgv_lang[header_general_help]##pgv_lang[best_display_help]#<br />#pgv_lang[preview_help]#<br />";
-
-// page help for the Welcome page
-$pgv_lang["help_index.php"] = "#pgv_lang[index_help]#<br />#pgv_lang[index_portal_help_blocks]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[header_help_items]#<br /><br /><a href=\"#top\">$UpArrow </a>#pgv_lang[menu_help_items]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[general_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[def_help_items]#<br />";
-
-// page help for the MyGedView page
-$pgv_lang["mygedview_portal_help_blocks"] = "<a name=\"mygedview_portal\"></a>#pgv_lang[mygedview_portal_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_welcome\"></a>#pgv_lang[mygedview_welcome_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_customize\"></a>#pgv_lang[mygedview_customize_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_message\"></a>#pgv_lang[mygedview_message_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_events\"></a>#pgv_lang[index_events_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_onthisday\"></a>#pgv_lang[index_onthisday_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_charts\"></a>#pgv_lang[index_charts_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_favorites\"></a>#pgv_lang[mygedview_favorites_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_stats\"></a>#pgv_lang[index_stats_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_myjournal\"></a>#pgv_lang[mygedview_myjournal_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_media\"></a>#pgv_lang[index_media_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_loggedin\"></a>#pgv_lang[index_loggedin_help]#<br /><a name=\"mygedview_recent_changes\"></a><a href=\"#mygedview_portal\">$UpArrow </a>#pgv_lang[recent_changes_help]#<br />";
-$pgv_lang["index_myged_help"] = "#pgv_lang[mygedview_portal_help_blocks]#<br />";
-
-
-//Login
-$pgv_lang["help_login.php"] = "#pgv_lang[login_page_help]#<br />#pgv_lang[mygedview_login_help]#";
-$pgv_lang["help_login_register.php"] = "~#pgv_lang[requestaccount]#~<br /><br />#pgv_lang[register_info_01]#";
-$pgv_lang["help_login_lost_pw.php"] = "~#pgv_lang[lost_pw_reset]#~<br /><br />#pgv_lang[pls_note11]#";
-$pgv_lang["index_login_register_help"] = "#pgv_lang[index_login_help]#<br />#pgv_lang[new_user_help]#<br /><br />#pgv_lang[new_password_help]#<br />";
-
-//Add Facts
-$pgv_lang["add_new_facts_help"] = "#pgv_lang[multiple_help]#<br />#pgv_lang[add_facts_help]#<br />#pgv_lang[add_custom_facts_help]#<br />#pgv_lang[add_from_clipboard_help]#<br />#pgv_lang[def_gedcom_date_help]#<br />#pgv_lang[add_facts_general_help]#";
-
-//Admin Help News Block
-$pgv_lang["index_gedcom_news_ahelp"] = "#pgv_lang[index_gedcom_news_help]##pgv_lang[start_ahelp]##pgv_lang[index_gedcom_news_adm_help]##pgv_lang[end_ahelp]#";
-
-//Admin Help Advanced HTML Block
-$pgv_lang["index_htmlplus_ahelp"] = "#pgv_lang[index_htmlplus_help]##pgv_lang[start_ahelp]##pgv_lang[index_htmlplus_content_help]##pgv_lang[end_ahelp]#";
-
-/*
-//Upgrade Utility
-$pgv_lang["help_upgrade.php"] ="#pgv_lang[how_upgrade_help]#<br /><br />#pgv_lang[readme_help]#";
-*/
-
-//-- Admin
-$pgv_lang["help_admin.php"] ="~#pgv_lang[administration]#~</b><br /><br />#pgv_lang[admin_help]#<br /><br />#pgv_lang[readme_help]#";
-
-//-- Language editor and configuration
-$pgv_lang["help_editlang.php"] ="#pgv_lang[lang_edit_help]#<br /><br />#pgv_lang[translation_forum_help]#<br /><br />#pgv_lang[bom_check_help]#<br /><br />#pgv_lang[edit_lang_utility_help]#<br /><br />#pgv_lang[export_lang_utility_help]#<br /><br />#pgv_lang[compare_lang_utility_help]#<br /><br />#pgv_lang[add_new_language_help]#<br /><br />#pgv_lang[more_help]#";
-$pgv_lang["help_changelanguage.php"] ="#pgv_lang[config_lang_utility_help]##pgv_lang[more_help]#";
-
-//-- User Migrate and Backup tool
-$pgv_lang["help_usermigrate.php"] ="#pgv_lang[um_tool_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[um_sql_index_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[um_index_sql_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[um_bu_help]#";
-
-//-- FAQ List editing tool
-$pgv_lang["faq_page_help"] = "#pgv_lang[help_faq.php]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[preview_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[restore_faq_edits_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[add_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[edit_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[delete_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[moveup_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[movedown_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[add_faq_header_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[add_faq_body_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[add_faq_order_help]#";
-
-//-- G E D C O M
-//-- Gedcom Info
-$pgv_lang["gedcom_info_help"] = "<div class=\"name_head center\"><b>#pgv_lang[help_contents_gedcom_info]#</b></div><br />#pgv_lang[def_gedcom_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[def_gedcom_date_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[ppp_levels_help]#";
-
-//-- Add Gedcom
-$pgv_lang["help_addgedcom.php"] ="#pgv_lang[add_gedcom_help]#<br /><br />#pgv_lang[add_upload_gedcom_help]#<br />#pgv_lang[readme_help]#";
-//-- Add new Gedcom
-$pgv_lang["help_addnewgedcom.php"] ="#pgv_lang[add_new_gedcom_help]#<br /><br />#pgv_lang[readme_help]#";
-//-- Download Gedcom
-$pgv_lang["help_downloadgedcom.php"] ="#pgv_lang[download_gedcom_help]#";
-//-- Edit Gedcoms
-$pgv_lang["help_editgedcoms.php"] ="#pgv_lang[edit_gedcoms_help]#";
-//-- Edit Config Gedcoms
-$pgv_lang["help_editconfig_gedcom.php"] ="#pgv_lang[edit_config_gedcom_help]##pgv_lang[more_config_hjaelp]#<br /><br />#pgv_lang[readme_help]#";
-//-- Import Gedcom
-$pgv_lang["help_importgedcom.php"] ="#pgv_lang[import_gedcom_help]#";
-//-- Upload Gedcom
-$pgv_lang["help_uploadgedcom.php"] ="#pgv_lang[upload_gedcom_help]#<br /><br />#pgv_lang[add_upload_gedcom_help]#<br />#pgv_lang[readme_help]#";
-//-- Validate Gedcom
-$pgv_lang["help_validategedcom.php"] ="#pgv_lang[validate_gedcom_help]#";
-//-- Edit Privacy
-$pgv_lang["help_edit_privacy.php"] ="~#pgv_lang[edit_privacy_title]#~<br /><br />#pgv_lang[edit_privacy_help]##pgv_lang[more_config_hjaelp]#<br />#pgv_lang[readme_help]#";
-
-//Specials for contents
-$vpos = strpos($pgv_lang["enter_terms"], ":", 0);
-if ($vpos>0) $enter_terms = substr($pgv_lang["enter_terms"], 0, $vpos);
-else $enter_terms = $pgv_lang["enter_terms"];
-$vpos = strpos($pgv_lang["soundex_search"], ":", 0);
-if ($vpos>0) $soundex_search = substr($pgv_lang["soundex_search"], 0, $vpos);
-else $soundex_search = $pgv_lang["soundex_search"];
-
-$pgv_lang["help_used_in_contents"] = "<div class=\"name_head center\"><b>#pgv_lang[page_help]#</b></div><br />#pgv_lang[help_help_items]#";
-$pgv_lang["search_used_in_contents"] = "<div class=\"name_head center\"><b>#pgv_lang[search]#</b></div><ul><li><a href=\"#header_search\">#pgv_lang[header]#</a></li><li><a href=\"#menu_search\">#pgv_lang[menu]#</a></li><li><a href=\"#help_search\">#pgv_lang[search]#</li><li><a href=\"#search_enter_terms\">$enter_terms</a></li></ul><br /><br /><a href=\"#top\">$UpArrow </a><a name=\"header_search\"></a>#pgv_lang[header_search_help]#<br /><br /><a href=\"#top\">$UpArrow </a><a name=\"menu_search\"></a>#pgv_lang[menu_search_help]#<br /><a href=\"#top\">$UpArrow </a><a name=\"help_search\"></a>#pgv_lang[help_search.php]#<br /><a href=\"#top\">$UpArrow </a><a name=\"search_enter_terms\"></a>#pgv_lang[search_enter_terms_help]#";
-
-
-/*-- Var's for Menu Item: Help contents
- The var $pgv_lang["help_contents_help"] contains all the vars below.
- example: $pgv_lang["h1"] >>> help_index.php will be the var $pgv_lang["help_index.php"],
- to be displayed if the text of $pgv_lang["welcome_page"] is clicked in the Help Contents
-*/
-$pgv_lang["h1"] = "help_index.php,welcome_page";
-$pgv_lang["h2"] = "index_myged_help,mygedview";
-$pgv_lang["h3"] = "help_calendar.php,anniversary_calendar";
-$pgv_lang["h4"] = "help_clippings.php,clip_cart";
-$pgv_lang["h5"] = "help_descendancy.php,descend_chart";
-$pgv_lang["h6"] = "help_edituser.php,editowndata";
-$pgv_lang["h7"] = "gedcom_info_help,help_contents_gedcom_info";
-$pgv_lang["h8"] = "help_family.php,family_info";
-$pgv_lang["h9"] = "help_famlist.php,family_list";
-$pgv_lang["h10"] = "header_help_items,header";
-$pgv_lang["h11"] = "help_individual.php,indi_info";
-$pgv_lang["h12"] = "help_indilist.php,individual_list";
-$pgv_lang["h13"] = "help_login.php,login";
-$pgv_lang["h14"] = "menu_help_items,menu";
-$pgv_lang["h15"] = "help_medialist.php,media_list";
-$pgv_lang["h16"] = "help_relationship.php,relationship_chart";
-$pgv_lang["h17"] = "best_display_help,resolution";
-$pgv_lang["h18"] = "search_used_in_contents,search";
-$pgv_lang["h19"] = "help_source.php,source";
-$pgv_lang["h20"] = "help_sourcelist.php,source_list";
-$pgv_lang["h21"] = "help_pedigree.php,index_header";
-$pgv_lang["h22"] = "preview_help,print_preview";
-$pgv_lang["h23"] = "help_placelist.php,place_list";
-$pgv_lang["h24"] = "help_timeline.php,timeline_chart";
-$pgv_lang["h25"] = "help_used_in_contents,page_help";
-$pgv_lang["h26"] = "edituser_password_help,password";
-$pgv_lang["h27"] = "edituser_username_help,username";
-$pgv_lang["h28"] = "add_media_help,add_media_lbl";
-$pgv_lang["h29"] = "help_login_register.php,requestaccount";
-$pgv_lang["h30"] = "help_login_lost_pw.php,lost_pw_reset";
-$pgv_lang["h31"] = "help_ancestry.php,ancestry_chart";
-$pgv_lang["h32"] = "help_fanchart.php,fan_chart";
-$pgv_lang["h33"] = "help_reportengine.php,reports";
-$pgv_lang["h34"] = "def_help_items,definitions";
-$pgv_lang["h35"] = "accesskey_viewing_advice_help,accesskeys";
-$pgv_lang["h36"] = "help_faq.php,faq_list";
-$pgv_lang["h37"] = "hs_title_help,hs_title";
-$pgv_lang["h38"] = "help_hourglass.php,hourglass_chart";
-$pgv_lang["h39"] = "help_familybook.php,familybook_chart";
-$pgv_lang["h40"] = "search_replace_help,search_replace";
-$pgv_lang["h41"] = "soundex_search_help,search_soundex";
-
-$pgv_lang["help_contents_help"] = "";
-$i=1;
-while (isset($pgv_lang["h$i"])) {
- $Which = "h".$i;
- if ($pgv_lang[$Which]!="") $pgv_lang["help_contents_help"] .= "#pgv_lang[h$i]#";
- $i++;
-}
-
-
-
-
-//-- Help Contents for admin
-
-// $pgv_lang["ah1"] = "how_upgrade_help,ah1_help";
-$pgv_lang["ah1"] = "";
-$pgv_lang["ah2"] = "help_editconfig.php,ah2_help";
-$pgv_lang["ah3"] = "add_upload_gedcom_help,ah3_help";
-$pgv_lang["ah4"] = "gedcom_configfile_help,ah4_help";
-$pgv_lang["ah5"] = "default_gedcom_help,ah5_help";
-$pgv_lang["ah6"] = "delete_gedcom_help,ah6_help";
-$pgv_lang["ah7"] = "add_gedcom_help,ah7_help";
-$pgv_lang["ah8"] = "add_new_gedcom_help,ah8_help";
-$pgv_lang["ah9"] = "download_gedcom_help,ah9_help";
-$pgv_lang["ah10"] = "edit_gedcoms_help,ah10_help";
-$pgv_lang["ah11"] = "edit_config_gedcom_help,ah11_help";
-$pgv_lang["ah12"] = "import_gedcom_help,ah12_help";
-$pgv_lang["ah13"] = "upload_gedcom_help,ah13_help";
-$pgv_lang["ah14"] = "validate_gedcom_help,ah14_help";
-$pgv_lang["ah15"] = "convert_ansi2utf_help,ah15_help";
-$pgv_lang["ah16"] = "help_edit_privacy.php,ah16_help";
-$pgv_lang["ah17"] = "help_useradmin.php,ah17_help";
-$pgv_lang["ah18"] = "help_admin.php,ah18_help";
-//$pgv_lang["ah19"] = "addmedia_tool_help,ah19_help";
-$pgv_lang["ah19"] = "";
-$pgv_lang["ah20"] = "change_indi2id_help,ah20_help";
-$pgv_lang["ah21"] = "help_editlang.php,ah21_help";
-$pgv_lang["ah22_help"] = "_Readme.txt";
-$pgv_lang["ah22"] = "readme_help,ah22_help";
-$pgv_lang["ah23"] = "help_changelanguage.php,ah23_help";
-$pgv_lang["ah24"] = "um_tool_help,ah24_help";
-$pgv_lang["ah25"] = "um_bu_help,ah25_help";
-$pgv_lang["ah26"] = "faq_page_help,ah26_help";
-
-$pgv_lang["a_help_contents_help"] = "";
-$i=1;
-while (isset($pgv_lang["ah$i"])) {
- $Which = "ah".$i;
- if ($pgv_lang[$Which]!="") $pgv_lang["a_help_contents_help"] .= "#pgv_lang[ah$i]#";
- $i++;
-}
-
-$pgv_lang["admin_help_contents_help"] =$pgv_lang["help_contents_help"].$pgv_lang["a_help_contents_help"];
-
-?>
+<?php
+/**
+ * File contains var's to glue Help_text for PHPGedView together
+ *
+ * phpGedView: Genealogy Viewer
+ * 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 PhpGedView
+ * @subpackage Help
+ * @author John Finlay & Jans Luder
+ * @version $Id$
+ */
+
+// The variables in this file are used to glue together other var's in the help_text.xx.php
+// Do NOT put any var's, that need to be translated, in this file
+
+if (!defined('PGV_PHPGEDVIEW')) {
+ header('HTTP/1.0 403 Forbidden');
+ exit;
+}
+
+define('PGV_HELP_TEXT_VARS_PHP', '');
+
+loadLangFile("pgv_confighelp");
+
+$pgv_lang["help_manageservers.php"] = "#pgv_lang[help_managesites]#";
+$pgv_lang["edit_RESN_help"] = "#pgv_lang[RESN_help]#";
+
+//General
+$pgv_lang["start_ahelp"] = "<div class=\"list_value_wrap\"><center class=\"error\">#pgv_lang[start_admin_help]#</center>";
+$pgv_lang["end_ahelp"] = "<center class=\"error\">#pgv_lang[end_admin_help]#</center></div>";
+$pgv_lang["redast"] = "<span class=\"error\"<b>*</b></span>";
+
+// Header
+$pgv_lang["header_help_items"] = "<a name=\"header\"> </a>#pgv_lang[header_help]#<br /><a name=\"header_search\"></a><a href=\"#header\">$UpArrow </a>#pgv_lang[header_search_help]#<br /><a name=\"header_lang_select\"></a><a href=\"#header\">$UpArrow </a>#pgv_lang[header_lang_select_help]#<br /><a name=\"header_user_links\"></a><a href=\"#header\">$UpArrow </a>#pgv_lang[header_user_links_help]#<br /><a name=\"header_favorites\"></a><a href=\"#header\">$UpArrow </a>#pgv_lang[header_favorites_help]#<br /><a name=\"header_theme\"></a><a href=\"#header\">$UpArrow </a>#pgv_lang[header_theme_help]#<br />";
+$pgv_lang["menu_help_items"] = "<a name=\"menu\"> </a>#pgv_lang[menu_help]#<a name=\"menu_fam\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_famtree_help]#<br /><a name=\"menu_myged\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_myged_help]#<a name=\"menu_charts\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_charts_help]#<a name=\"menu_lists\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_lists_help]#<a name=\"menu_annical\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_annical_help]#<a name=\"menu_clip\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_clip_help]#<a name=\"menu_search\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_search_help]#<a name=\"menu_rslog\"></a><a name=\"menu_help\"></a><a href=\"#menu\">$UpArrow </a>#pgv_lang[menu_help_help]#<br />";
+$pgv_lang["index_portal_help_blocks"] = "<a href=\"#top\">$UpArrow </a><a name=\"index_portal\"> </a>#pgv_lang[index_portal_head_help]##pgv_lang[index_portal_help]#<br /><a name=\"index_welcome\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_welcome_help]#<br /><a name=\"index_login\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_login_help]#<br /><a name=\"index_events\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_events_help]#<br /><a name=\"index_onthisday\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_onthisday_help]#<br /><a name=\"index_charts\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_charts_help]#<br /><a name=\"index_favorites\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_favorites_help]#<br /><a name=\"index_stats\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_stats_help]#<br /><a name=\"index_common_surnames\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_common_names_help]#<br /><a name=\"index_media\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_media_help]#<br /><a name=\"index_loggedin\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[index_loggedin_help]#<br /><a name=\"recent_changes\"></a><a href=\"#index_portal\">$UpArrow </a>#pgv_lang[recent_changes_help]#<br />";
+
+//Help
+$pgv_lang["help_help_items"] = "#pgv_lang[help_help]#<br />#pgv_lang[help_page_help]##pgv_lang[help_content_help]##pgv_lang[help_faq_help]##pgv_lang[help_HS_help]##pgv_lang[help_qm_help]#";
+$pgv_lang["def_help_items"] = "<a name=\"def\"> </a>#pgv_lang[def_help]#<br /><a name=\"def_gedcom\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_gedcom_help]#<br /><a name=\"def_gedcom_date\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_gedcom_date_help]#<br /><a name=\"def_pdf_format\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_pdf_format_help]#<br /><a name=\"def_pgv\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_pgv_help]#<br /><a name=\"def_portal\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_portal_help]#<br /><a name=\"def_theme\"></a><a href=\"#def\">$UpArrow </a>#pgv_lang[def_theme_help]#<br />";
+
+// edit_user.php (My account)
+$pgv_lang["edituser_user_contact_help"] = "#pgv_lang[edituser_contact_meth_help]#<br /><br /><b>#pgv_lang[messaging]#</b><br />#pgv_lang[mail_option1_help]#<br /><b>#pgv_lang[messaging2]#</b><br />#pgv_lang[mail_option2_help]#<br /><b>#pgv_lang[mailto]#</b><br />#pgv_lang[mail_option3_help]#<br /><b>#pgv_lang[no_messaging]#</b><br />#pgv_lang[mail_option4_help]#<br />";
+$pgv_lang["help_edituser.php"] = "~#pgv_lang[myuserdata]#~<br /><br />#pgv_lang[edituser_my_account_help]#<br />#pgv_lang[more_help]#";
+
+// user_admin.php
+$pgv_lang["help_useradmin.php"] = "#pgv_lang[useradmin_help]#<br /><br />#pgv_lang[is_user_help]#<br />#pgv_lang[more_help]#";
+$pgv_lang["useradmin_user_contact_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_user_contact_help]#";
+$pgv_lang["useradmin_change_lang_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_change_lang_help]#";
+$pgv_lang["useradmin_email_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_email_help]#";
+$pgv_lang["useradmin_user_theme_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_user_theme_help]#";
+// these need to be checked and maybe moved to the help_text.en.php
+$pgv_lang["useradmin_username_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_username_help]#";
+$pgv_lang["useradmin_firstname_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_firstname_help]#";
+$pgv_lang["useradmin_lastname_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_lastname_help]#";
+$pgv_lang["useradmin_password_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_password_help]#";
+$pgv_lang["useradmin_conf_password_help"] = "#pgv_lang[is_user_help]#<br /><br />#pgv_lang[edituser_conf_password_help]#";
+$pgv_lang["edit_useradmin_help"] = "#pgv_lang[useradmin_edit_user_help]#<br />#pgv_lang[more_help]#";
+
+// general help items used in help welcome page
+$pgv_lang["general_help"] = "<a name=\"header_general\"> </a>#pgv_lang[header_general_help]##pgv_lang[best_display_help]#<br />#pgv_lang[preview_help]#<br />";
+
+// page help for the Welcome page
+$pgv_lang["help_index.php"] = "#pgv_lang[index_help]#<br />#pgv_lang[index_portal_help_blocks]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[header_help_items]#<br /><br /><a href=\"#top\">$UpArrow </a>#pgv_lang[menu_help_items]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[general_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[def_help_items]#<br />";
+
+// page help for the MyGedView page
+$pgv_lang["mygedview_portal_help_blocks"] = "<a name=\"mygedview_portal\"></a>#pgv_lang[mygedview_portal_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_welcome\"></a>#pgv_lang[mygedview_welcome_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_customize\"></a>#pgv_lang[mygedview_customize_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_message\"></a>#pgv_lang[mygedview_message_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_events\"></a>#pgv_lang[index_events_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_onthisday\"></a>#pgv_lang[index_onthisday_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_charts\"></a>#pgv_lang[index_charts_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_favorites\"></a>#pgv_lang[mygedview_favorites_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_stats\"></a>#pgv_lang[index_stats_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_myjournal\"></a>#pgv_lang[mygedview_myjournal_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_media\"></a>#pgv_lang[index_media_help]#<br /><a href=\"#mygedview_portal\">$UpArrow </a><a name=\"mygedview_loggedin\"></a>#pgv_lang[index_loggedin_help]#<br /><a name=\"mygedview_recent_changes\"></a><a href=\"#mygedview_portal\">$UpArrow </a>#pgv_lang[recent_changes_help]#<br />";
+$pgv_lang["index_myged_help"] = "#pgv_lang[mygedview_portal_help_blocks]#<br />";
+
+
+//Login
+$pgv_lang["help_login.php"] = "#pgv_lang[login_page_help]#<br />#pgv_lang[mygedview_login_help]#";
+$pgv_lang["help_login_register.php"] = "#pgv_lang[register_info_01]#";
+$pgv_lang["help_login_lost_pw.php"] = "~#pgv_lang[lost_pw_reset]#~<br /><br />#pgv_lang[pls_note11]#";
+$pgv_lang["index_login_register_help"] = "#pgv_lang[index_login_help]#<br />#pgv_lang[new_user_help]#<br /><br />#pgv_lang[new_password_help]#<br />";
+
+//Add Facts
+$pgv_lang["add_new_facts_help"] = "#pgv_lang[multiple_help]#<br />#pgv_lang[add_facts_help]#<br />#pgv_lang[add_custom_facts_help]#<br />#pgv_lang[add_from_clipboard_help]#<br />#pgv_lang[def_gedcom_date_help]#<br />#pgv_lang[add_facts_general_help]#";
+
+//Admin Help News Block
+$pgv_lang["index_gedcom_news_ahelp"] = "#pgv_lang[index_gedcom_news_help]##pgv_lang[start_ahelp]##pgv_lang[index_gedcom_news_adm_help]##pgv_lang[end_ahelp]#";
+
+//Admin Help Advanced HTML Block
+$pgv_lang["index_htmlplus_ahelp"] = "#pgv_lang[index_htmlplus_help]##pgv_lang[start_ahelp]##pgv_lang[index_htmlplus_content_help]##pgv_lang[end_ahelp]#";
+
+/*
+//Upgrade Utility
+$pgv_lang["help_upgrade.php"] ="#pgv_lang[how_upgrade_help]#<br /><br />#pgv_lang[readme_help]#";
+*/
+
+//-- Admin
+$pgv_lang["help_admin.php"] ="~#pgv_lang[administration]#~</b><br /><br />#pgv_lang[admin_help]#<br /><br />#pgv_lang[readme_help]#";
+
+//-- Language editor and configuration
+$pgv_lang["help_editlang.php"] ="#pgv_lang[lang_edit_help]#<br /><br />#pgv_lang[translation_forum_help]#<br /><br />#pgv_lang[bom_check_help]#<br /><br />#pgv_lang[edit_lang_utility_help]#<br /><br />#pgv_lang[export_lang_utility_help]#<br /><br />#pgv_lang[compare_lang_utility_help]#<br /><br />#pgv_lang[add_new_language_help]#<br /><br />#pgv_lang[more_help]#";
+$pgv_lang["help_changelanguage.php"] ="#pgv_lang[config_lang_utility_help]##pgv_lang[more_help]#";
+
+//-- User Migrate and Backup tool
+$pgv_lang["help_usermigrate.php"] ="#pgv_lang[um_tool_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[um_sql_index_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[um_index_sql_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[um_bu_help]#";
+
+//-- FAQ List editing tool
+$pgv_lang["faq_page_help"] = "#pgv_lang[help_faq.php]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[preview_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[restore_faq_edits_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[add_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[edit_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[delete_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[moveup_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[movedown_faq_item_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[add_faq_header_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[add_faq_body_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[add_faq_order_help]#";
+
+//-- G E D C O M
+//-- Gedcom Info
+$pgv_lang["gedcom_info_help"] = "<div class=\"name_head center\"><b>#pgv_lang[help_contents_gedcom_info]#</b></div><br />#pgv_lang[def_gedcom_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[def_gedcom_date_help]#<br /><a href=\"#top\">$UpArrow </a>#pgv_lang[ppp_levels_help]#";
+
+//-- Add Gedcom
+$pgv_lang["help_addgedcom.php"] ="#pgv_lang[add_gedcom_help]#<br /><br />#pgv_lang[add_upload_gedcom_help]#<br />#pgv_lang[readme_help]#";
+//-- Add new Gedcom
+$pgv_lang["help_addnewgedcom.php"] ="#pgv_lang[add_new_gedcom_help]#<br /><br />#pgv_lang[readme_help]#";
+//-- Download Gedcom
+$pgv_lang["help_downloadgedcom.php"] ="#pgv_lang[download_gedcom_help]#";
+//-- Edit Gedcoms
+$pgv_lang["help_editgedcoms.php"] ="#pgv_lang[edit_gedcoms_help]#";
+//-- Edit Config Gedcoms
+$pgv_lang["help_editconfig_gedcom.php"] ="#pgv_lang[edit_config_gedcom_help]##pgv_lang[more_help_advice]#<br /><br />#pgv_lang[readme_help]#";
+//-- Import Gedcom
+$pgv_lang["help_importgedcom.php"] ="#pgv_lang[import_gedcom_help]#";
+//-- Upload Gedcom
+$pgv_lang["help_uploadgedcom.php"] ="#pgv_lang[upload_gedcom_help]#<br /><br />#pgv_lang[add_upload_gedcom_help]#<br />#pgv_lang[readme_help]#";
+//-- Validate Gedcom
+$pgv_lang["help_validategedcom.php"] ="#pgv_lang[validate_gedcom_help]#";
+//-- Edit Privacy
+$pgv_lang["help_edit_privacy.php"] ="~#pgv_lang[edit_privacy_title]#~<br /><br />#pgv_lang[edit_privacy_help]##pgv_lang[more_help_advice]#<br />#pgv_lang[readme_help]#";
+
+//Specials for contents
+$vpos = strpos($pgv_lang["enter_terms"], ":", 0);
+if ($vpos>0) $enter_terms = substr($pgv_lang["enter_terms"], 0, $vpos);
+else $enter_terms = $pgv_lang["enter_terms"];
+$vpos = strpos($pgv_lang["soundex_search"], ":", 0);
+if ($vpos>0) $soundex_search = substr($pgv_lang["soundex_search"], 0, $vpos);
+else $soundex_search = $pgv_lang["soundex_search"];
+
+$pgv_lang["help_used_in_contents"] = "<div class=\"name_head center\"><b>#pgv_lang[page_help]#</b></div><br />#pgv_lang[help_help_items]#";
+$pgv_lang["search_used_in_contents"] = "<div class=\"name_head center\"><b>#pgv_lang[search]#</b></div><ul><li><a href=\"#header_search\">#pgv_lang[header]#</a></li><li><a href=\"#menu_search\">#pgv_lang[menu]#</a></li><li><a href=\"#help_search\">#pgv_lang[search]#</li><li><a href=\"#search_enter_terms\">$enter_terms</a></li></ul><br /><br /><a href=\"#top\">$UpArrow </a><a name=\"header_search\"></a>#pgv_lang[header_search_help]#<br /><br /><a href=\"#top\">$UpArrow </a><a name=\"menu_search\"></a>#pgv_lang[menu_search_help]#<br /><a href=\"#top\">$UpArrow </a><a name=\"help_search\"></a>#pgv_lang[help_search.php]#<br /><a href=\"#top\">$UpArrow </a><a name=\"search_enter_terms\"></a>#pgv_lang[search_enter_terms_help]#";
+
+
+/*-- Var's for Menu Item: Help contents
+ The var $pgv_lang["help_contents_help"] contains all the vars below.
+ example: $pgv_lang["h1"] >>> help_index.php will be the var $pgv_lang["help_index.php"],
+ to be displayed if the text of $pgv_lang["welcome_page"] is clicked in the Help Contents
+*/
+$pgv_lang["h1"] = "help_index.php,welcome_page";
+$pgv_lang["h2"] = "index_myged_help,mygedview";
+$pgv_lang["h3"] = "help_calendar.php,anniversary_calendar";
+$pgv_lang["h4"] = "help_clippings.php,clip_cart";
+$pgv_lang["h5"] = "help_descendancy.php,descend_chart";
+$pgv_lang["h6"] = "help_edituser.php,editowndata";
+$pgv_lang["h7"] = "gedcom_info_help,help_contents_gedcom_info";
+$pgv_lang["h8"] = "help_family.php,family_info";
+$pgv_lang["h9"] = "help_famlist.php,family_list";
+$pgv_lang["h10"] = "header_help_items,header";
+$pgv_lang["h11"] = "help_individual.php,indi_info";
+$pgv_lang["h12"] = "help_indilist.php,individual_list";
+$pgv_lang["h13"] = "help_login.php,login";
+$pgv_lang["h14"] = "menu_help_items,menu";
+$pgv_lang["h15"] = "help_medialist.php,media_list";
+$pgv_lang["h16"] = "help_relationship.php,relationship_chart";
+$pgv_lang["h17"] = "best_display_help,resolution";
+$pgv_lang["h18"] = "search_used_in_contents,search";
+$pgv_lang["h19"] = "help_source.php,source";
+$pgv_lang["h20"] = "help_sourcelist.php,source_list";
+$pgv_lang["h21"] = "help_pedigree.php,index_header";
+$pgv_lang["h22"] = "preview_help,print_preview";
+$pgv_lang["h23"] = "help_placelist.php,place_list";
+$pgv_lang["h24"] = "help_timeline.php,timeline_chart";
+$pgv_lang["h25"] = "help_used_in_contents,page_help";
+$pgv_lang["h26"] = "edituser_password_help,password";
+$pgv_lang["h27"] = "edituser_username_help,username";
+$pgv_lang["h28"] = "add_media_help,add_media_lbl";
+$pgv_lang["h29"] = "help_login_register.php,requestaccount";
+$pgv_lang["h30"] = "help_login_lost_pw.php,lost_pw_reset";
+$pgv_lang["h31"] = "help_ancestry.php,ancestry_chart";
+$pgv_lang["h32"] = "help_fanchart.php,fan_chart";
+$pgv_lang["h33"] = "help_reportengine.php,reports";
+$pgv_lang["h34"] = "def_help_items,definitions";
+$pgv_lang["h35"] = "accesskey_viewing_advice_help,accesskeys";
+$pgv_lang["h36"] = "help_faq.php,faq_list";
+$pgv_lang["h37"] = "hs_title_help,hs_title";
+$pgv_lang["h38"] = "help_hourglass.php,hourglass_chart";
+$pgv_lang["h39"] = "help_familybook.php,familybook_chart";
+$pgv_lang["h40"] = "search_replace_help,search_replace";
+$pgv_lang["h41"] = "soundex_search_help,search_soundex";
+$pgv_lang["h42"] = "help_treenav.php,interactive_tree";
+
+$pgv_lang["help_contents_help"] = "";
+$i=1;
+while (isset($pgv_lang["h$i"])) {
+ $Which = "h".$i;
+ if ($pgv_lang[$Which]!="") $pgv_lang["help_contents_help"] .= "#pgv_lang[h$i]#";
+ $i++;
+}
+
+
+
+
+//-- Help Contents for admin
+
+// $pgv_lang["ah1"] = "how_upgrade_help,ah1_help";
+$pgv_lang["ah1"] = "";
+$pgv_lang["ah2"] = "help_editconfig.php,ah2_help";
+$pgv_lang["ah3"] = "add_upload_gedcom_help,ah3_help";
+$pgv_lang["ah4"] = "gedcom_configfile_help,ah4_help";
+$pgv_lang["ah5"] = "default_gedcom_help,ah5_help";
+$pgv_lang["ah6"] = "delete_gedcom_help,ah6_help";
+$pgv_lang["ah7"] = "add_gedcom_help,ah7_help";
+$pgv_lang["ah8"] = "add_new_gedcom_help,ah8_help";
+$pgv_lang["ah9"] = "download_gedcom_help,ah9_help";
+$pgv_lang["ah10"] = "edit_gedcoms_help,ah10_help";
+$pgv_lang["ah11"] = "edit_config_gedcom_help,ah11_help";
+$pgv_lang["ah12"] = "import_gedcom_help,ah12_help";
+$pgv_lang["ah13"] = "upload_gedcom_help,ah13_help";
+$pgv_lang["ah14"] = "validate_gedcom_help,ah14_help";
+$pgv_lang["ah15"] = "convert_ansi2utf_help,ah15_help";
+$pgv_lang["ah16"] = "help_edit_privacy.php,ah16_help";
+$pgv_lang["ah17"] = "help_useradmin.php,ah17_help";
+$pgv_lang["ah18"] = "help_admin.php,ah18_help";
+//$pgv_lang["ah19"] = "addmedia_tool_help,ah19_help";
+$pgv_lang["ah19"] = "";
+$pgv_lang["ah20"] = "change_indi2id_help,ah20_help";
+$pgv_lang["ah21"] = "help_editlang.php,ah21_help";
+$pgv_lang["ah22_help"] = "_Readme.txt";
+$pgv_lang["ah22"] = "readme_help,ah22_help";
+$pgv_lang["ah23"] = "help_changelanguage.php,ah23_help";
+$pgv_lang["ah24"] = "um_tool_help,ah24_help";
+$pgv_lang["ah25"] = "um_bu_help,ah25_help";
+$pgv_lang["ah26"] = "faq_page_help,ah26_help";
+
+$pgv_lang["a_help_contents_help"] = "";
+$i=1;
+while (isset($pgv_lang["ah$i"])) {
+ $Which = "ah".$i;
+ if ($pgv_lang[$Which]!="") $pgv_lang["a_help_contents_help"] .= "#pgv_lang[ah$i]#";
+ $i++;
+}
+
+$pgv_lang["admin_help_contents_help"] =$pgv_lang["help_contents_help"].$pgv_lang["a_help_contents_help"];
+
+?>
--- functions_mediadb.php DELETED ---
--- functions.php DELETED ---
--- functions_rss.php DELETED ---
--- functions_lang.php DELETED ---
--- menu.php DELETED ---
--- NEW FILE: media_tab_head.php ---
<?php
/**
* Provides media tab header for reorder media Items using drag and drop
*
* phpGedView: Genealogy Viewer
* Copyright (C) 2008 PHPGedView 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 PhpGedView
* @subpackage Module
* @version $Id: media_tab_head.php,v 1.1 2009/04/30 18:32:43 lsces Exp $
* @author Brian Holland
*/
if (!defined('PGV_PHPGEDVIEW')) {
header('HTTP/1.0 403 Forbidden');
exit;
}
define('PGV_MEDIA_TAB_HEAD_PHP', '');
global $LB_AL_HEAD_LINKS, $gedrec;
require_once("js/prototype.js.htm");
require_once("js/scriptaculous.js.htm");
?>
<script language="javascript" type="text/javascript">
<!--
function reorder_media() {
var win02 = window.open("edit_interface.php?action=reorder_media&pid=<?php print $pid; ?>", "win02", "resizable=1, menubar=0, scrollbars=1, top=20, height=840, width=450 ");
if (window.focus) {win02.focus();}
}
-->
</script>
<?php
// Find if indi and family associated media exists and then count them ( $tot_med_ct)
include ('includes/media_reorder_count.php');
$gedrec = find_gedcom_record($pid);
$regexp = "/OBJE @(.*)@/";
$ct = preg_match_all($regexp, $gedrec, $match, PREG_SET_ORDER);
// If media exists and is greater than 1 item ---------------------
if ($tot_med_ct>1) {
print "<table border=\"0\" width=\"100%\"><tr>";
// print "<td class=\"width10 center wrap\" valign=\"top\"></td>";
//Popup Reorder Media
print "<td class=\"width15 center wrap\" valign=\"top\">";
print "<button type=\"button\" title=\"". $pgv_lang["reorder_media"]."\" onclick=\"reorder_media();\">". $pgv_lang["reorder_media"] ."</button>";
print "</td>";
//print "<td width=\"5%\"> </td>";
print "\n";
print "</tr></table>";
}
?>
--- serviceclient_class.php DELETED ---
Index: index_cache.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/index_cache.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- index_cache.php 7 Jul 2008 17:30:14 -0000 1.3
+++ index_cache.php 30 Apr 2009 18:32:43 -0000 1.4
@@ -1,136 +1,138 @@
-<?php
-/**
- * Index caching functions
- *
- * phpGedView: Genealogy Viewer
- * Copyright (C) 2002 to 2007 PGV Development Team
- *
- * 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 PhpGedView
- * @subpackage Display
- * @version $Id$
- */
-
-if (stristr($_SERVER["SCRIPT_NAME"], basename(__FILE__))!==false) {
- print "You cannot access an include file directly.";
- exit;
-}
-
-/**
- * load a cached block from a file
- * @param array $block [0]:name of the block to load, [1]:block's configuration
- * @param int $index An id for this block in the case of multiple instances of the same block on the page
- * @return boolean returns false if the block could not be loaded from cache
- */
-function loadCachedBlock($block, $index) {
- global $PGV_BLOCKS, $INDEX_DIRECTORY, $DEBUG, $lang_short_cut, $LANGUAGE, $GEDCOM;
-
- //-- ignore caching when DEBUG is set
- if (isset($DEBUG) && $DEBUG==true) return false;
-
- //-- ignore caching for logged in users
- if (PGV_USER_ID) return false;
-
- //-- ignore cache when its life is not configured or when its life is zero
- $cacheLife = 0;
- if (isset($block[1]['cache'])) $cacheLife = $block[1]['cache'];
- else {
- if (isset($PGV_BLOCKS[$block[0]]['config']['cache'])) $cacheLife = $PGV_BLOCKS[$block[0]]['config']['cache'];
- }
- if ($cacheLife==0) return false;
-
- $fname = $INDEX_DIRECTORY."/cache/".$lang_short_cut[$LANGUAGE]."/".$GEDCOM."/".$index."_".$block[0];
- if (file_exists($fname)) {
- // Check for expired cache (<0: no expiry), 0: immediate, >0: expires in x days) Zero already checked
- if ($cacheLife > 0) {
- $modtime = filemtime($fname);
- //-- time should start at the beginning of the day
- $modtime = $modtime - (date("G",$modtime)*60*60 + date("i",$modtime)*60 + date("s",$modtime));
- $checktime = ($cacheLife*24*60*60);
- $modtime = $modtime+$checktime;
- if ($modtime<time()) return false;
- }
- return @readfile($fname);
- }
- return false;
-}
-
-/**
- * Save a block's content to the cache file
- * @param array $block [0]:name of the block to save, [1]:block's configuration
- * @param int $index An id for this block in the case of multiple instances of the same block on the page
- * @param string $content the actual content to save in the cache
- * @return boolean returns false if the block could not be saved to cache
- */
-function saveCachedBlock($block, $index, $content) {
- global $PGV_BLOCKS, $INDEX_DIRECTORY, $DEBUG, $lang_short_cut, $LANGUAGE, $GEDCOM;
-
- //-- ignore caching when DEBUG is set
- if (isset($DEBUG) && $DEBUG==true) return false;
-
- //-- ignore caching for logged in users
- if (PGV_USER_ID) return false;
-
- //-- ignore cache when its life is not configured or when its life is zero
- $cacheLife = 0;
- if (isset($block[1]['cache'])) $cacheLife = $block[1]['cache'];
- else if (isset($PGV_BLOCKS[$block[0]]['config']['cache'])) $cacheLife = $PGV_BLOCKS[$block[0]]['config']['cache'];
- if ($cacheLife==0) return false;
-
- $fname = $INDEX_DIRECTORY."/cache";
- @mkdir($fname);
- //--many people are not going to like automatically setting the permissions
- //--777 is considered a security risk, if we can create the directory we should be able to write to it
- //--do we need a windows specific check here instead?
- //@chmod($fname, 0777); // Make SURE this dir. has 0777 perm. (so Admin can delete it without "root" access)
-
- $fname .= "/".$lang_short_cut[$LANGUAGE];
- @mkdir($fname);
- //@chmod($fname, 0777);
-
- $fname .= "/".$GEDCOM;
- @mkdir($fname);
- //@chmod($fname, 0777);
-
- $fname .= "/".$index."_".$block[0];
- $fp = @fopen($fname, "wb");
- if (!$fp) return false;
- @fwrite($fp, $content);
- @fclose($fp);
- return true;
-}
-
-/**
- * clears the cache files
- */
-function clearCache() {
- global $PGV_BLOCKS, $INDEX_DIRECTORY, $DEBUG, $lang_short_cut, $LANGUAGE, $GEDCOM;
-
- foreach($lang_short_cut as $key=>$value) {
- $fname = $INDEX_DIRECTORY."/cache/".$value."/".$GEDCOM;
- if (file_exists($fname)) {
- $dir = dir($fname);
- while (false !== ($entry = $dir->read())) {
- if ($entry!="." && $entry!="..") @unlink($fname."/".$entry);
- }
- }
- }
-
- if (file_exists($INDEX_DIRECTORY."/".$GEDCOM."_upcoming.php")) {
- @unlink($INDEX_DIRECTORY."/".$GEDCOM."_upcoming.php");
- }
-}
-?>
+<?php
+/**
+ * Index caching functions
+ *
+ * phpGedView: Genealogy Viewer
+ * Copyright (C) 2002 to 2007 PGV Development Team
+ *
+ * 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 PhpGedView
+ * @subpackage Display
+ * @version $Id$
+ */
+
+if (!defined('PGV_PHPGEDVIEW')) {
+ header('HTTP/1.0 403 Forbidden');
+ exit;
+}
+
+define('PGV_INDEX_CACHE_PHP', '');
+
+/**
+ * load a cached block from a file
+ * @param array $block [0]:name of the block to load, [1]:block's configuration
+ * @param int $index An id for this block in the case of multiple instances of the same block on the page
+ * @return boolean returns false if the block could not be loaded from cache
+ */
+function loadCachedBlock($block, $index) {
+ global $PGV_BLOCKS, $INDEX_DIRECTORY, $lang_short_cut, $LANGUAGE, $GEDCOM;
+
+ //-- ignore caching when DEBUG is set
+ //-- ignore caching for logged in users
+ if (PGV_DEBUG || PGV_USER_ID) {
+ return false;
+ }
+
+ //-- ignore cache when its life is not configured or when its life is zero
+ $cacheLife = 0;
+ if (isset($block[1]['cache'])) $cacheLife = $block[1]['cache'];
+ else {
+ if (isset($PGV_BLOCKS[$block[0]]['config']['cache'])) $cacheLife = $PGV_BLOCKS[$block[0]]['config']['cache'];
+ }
+ if ($cacheLife==0) return false;
+
+ $fname = $INDEX_DIRECTORY."/cache/".$lang_short_cut[$LANGUAGE]."/".$GEDCOM."/".$index."_".$block[0];
+ if (file_exists($fname)) {
+ // Check for expired cache (<0: no expiry), 0: immediate, >0: expires in x days) Zero already checked
+ if ($cacheLife > 0) {
+ $modtime = filemtime($fname);
+ //-- time should start at the beginning of the day
+ $modtime = $modtime - (date("G",$modtime)*60*60 + date("i",$modtime)*60 + date("s",$modtime));
+ $checktime = ($cacheLife*24*60*60);
+ $modtime = $modtime+$checktime;
+ if ($modtime<time()) return false;
+ }
+ return @readfile($fname);
+ }
+ return false;
+}
+
+/**
+ * Save a block's content to the cache file
+ * @param array $block [0]:name of the block to save, [1]:block's configuration
+ * @param int $index An id for this block in the case of multiple instances of the same block on the page
+ * @param string $content the actual content to save in the cache
+ * @return boolean returns false if the block could not be saved to cache
+ */
+function saveCachedBlock($block, $index, $content) {
+ global $PGV_BLOCKS, $INDEX_DIRECTORY, $lang_short_cut, $LANGUAGE, $GEDCOM;
+
+ //-- ignore caching when DEBUG is set
+ //-- ignore caching for logged in users
+ if (PGV_DEBUG || PGV_USER_ID) {
+ return false;
+ }
+
+ //-- ignore cache when its life is not configured or when its life is zero
+ $cacheLife = 0;
+ if (isset($block[1]['cache'])) $cacheLife = $block[1]['cache'];
+ else if (isset($PGV_BLOCKS[$block[0]]['config']['cache'])) $cacheLife = $PGV_BLOCKS[$block[0]]['config']['cache'];
+ if ($cacheLife==0) return false;
+
+ $fname = $INDEX_DIRECTORY."/cache";
+ @mkdir($fname);
+ //--many people are not going to like automatically setting the permissions
+ //--777 is considered a security risk, if we can create the directory we should be able to write to it
+ //--do we need a windows specific check here instead?
+ //@chmod($fname, 0777); // Make SURE this dir. has 0777 perm. (so Admin can delete it without "root" access)
+
+ $fname .= "/".$lang_short_cut[$LANGUAGE];
+ @mkdir($fname);
+ //@chmod($fname, 0777);
+
+ $fname .= "/".$GEDCOM;
+ @mkdir($fname);
+ //@chmod($fname, 0777);
+
+ $fname .= "/".$index."_".$block[0];
+ $fp = @fopen($fname, "wb");
+ if (!$fp) return false;
+ @fwrite($fp, $content);
+ @fclose($fp);
+ return true;
+}
+
+/**
+ * clears the cache files
+ */
+function clearCache() {
+ global $PGV_BLOCKS, $INDEX_DIRECTORY, $lang_short_cut, $LANGUAGE, $GEDCOM;
+
+ foreach($lang_short_cut as $key=>$value) {
+ $fname = $INDEX_DIRECTORY."/cache/".$value."/".$GEDCOM;
+ if (file_exists($fname)) {
+ $dir = dir($fname);
+ while (false !== ($entry = $dir->read())) {
+ if ($entry!="." && $entry!="..") @unlink($fname."/".$entry);
+ }
+ }
+ }
+
+ if (file_exists($INDEX_DIRECTORY."/".$GEDCOM."_upcoming.php")) {
+ @unlink($INDEX_DIRECTORY."/".$GEDCOM."_upcoming.php");
+ }
+}
+?>
--- functions_tools.php DELETED ---
--- NEW FILE: accesskeyHeaders.php ---
<?php
/**
* Code for access key codes
*
* phpGedView: Genealogy Viewer
* Copyright (C) 2002 to 2005 PGV Development Team
*
* 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 PhpGedView
* @subpackage Charts
* @version $Id: accesskeyHeaders.php,v 1.1 2009/04/30 18:32:43 lsces Exp $
*/
if (!defined('PGV_PHPGEDVIEW')) {
header('HTTP/1.0 403 Forbidden');
exit;
}
global $SEARCH_SPIDER, $pgv_lang, $SCRIPT_NAME;
if (empty($SEARCH_SPIDER)) {
?>
<div class="accesskeys">
<a class="accesskeys" href="#content" title="<?php print $pgv_lang["accesskey_skip_to_content_desc"]; ?>" tabindex="-1" accesskey="<?php print $pgv_lang["accesskey_skip_to_content"]; ?>"><?php print $pgv_lang["accesskey_skip_to_content_desc"]; ?></a>
<a class="accesskeys" href="javascript:// accesskey_viewing_advice_help" onfocus="this.onclick" onclick="return helpPopup('accesskey_viewing_advice_help');" title="<?php print $pgv_lang["accesskey_viewing_advice_desc"]; ?>" accesskey="<?php print $pgv_lang["accesskey_viewing_advice"]; ?>"><?php print $pgv_lang["accesskey_viewing_advice_desc"]; ?></a>
<a href="javascript:// help_<?php print basename($SCRIPT_NAME); ?>" onclick="return helpPopup('help_<?php print basename($SCRIPT_NAME); ?>&action=<?php print $action;?>');" accesskey="<?php print $pgv_lang["accesskey_help_current_page"]; ?>"> </a>
<a href="javascript:// help_contents_help" onclick="return helpPopup('help_contents_help');" accesskey="<?php print $pgv_lang["accesskey_help_content"]; ?>"> </a>
</div>
<?php
}
--- media_class.php DELETED ---
--- localclient_class.php DELETED ---
Index: cssparser.inc.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/cssparser.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- cssparser.inc.php 7 Jul 2008 17:30:13 -0000 1.4
+++ cssparser.inc.php 30 Apr 2009 18:32:43 -0000 1.5
@@ -1,251 +1,253 @@
-<?php
-/**
- * Class to parse css information.
- *
- * See the readme file : http://www.phpclasses.org/browse/file/4685.html
- *
- * $Id$
- *
- * @author http://www.phpclasses.org/browse/package/1289.html
- * @package PhpGedView
- * @subpackage Charts
- */
-
-if (stristr($_SERVER["SCRIPT_NAME"], basename(__FILE__))!==false) {
- print "You cannot access an include file directly.";
- exit;
-}
-
-class cssparser {
- var $css;
- var $html;
-
- function cssparser($html = true) {
- // Register "destructor"
- register_shutdown_function(array(&$this, "finalize"));
- $this->html = ($html != false);
- $this->Clear();
- }
-
- function finalize() {
- unset($this->css);
- }
-
- function Clear() {
- unset($this->css);
- $this->css = array();
- if($this->html) {
- $this->Add("ADDRESS", "");
- $this->Add("APPLET", "");
- $this->Add("AREA", "");
- $this->Add("A", "text-decoration : underline; color : Blue;");
- $this->Add("A:visited", "color : Purple;");
- $this->Add("BASE", "");
- $this->Add("BASEFONT", "");
- $this->Add("BIG", "");
- $this->Add("BLOCKQUOTE", "");
- $this->Add("BODY", "");
- $this->Add("BR", "");
- $this->Add("B", "font-weight: bold;");
- $this->Add("CAPTION", "");
- $this->Add("CENTER", "");
- $this->Add("CITE", "");
- $this->Add("CODE", "");
- $this->Add("DD", "");
- $this->Add("DFN", "");
- $this->Add("DIR", "");
- $this->Add("DIV", "");
- $this->Add("DL", "");
- $this->Add("DT", "");
- $this->Add("EM", "");
- $this->Add("FONT", "");
- $this->Add("FORM", "");
- $this->Add("H1", "");
- $this->Add("H2", "");
- $this->Add("H3", "");
- $this->Add("H4", "");
- $this->Add("H5", "");
- $this->Add("H6", "");
- $this->Add("HEAD", "");
- $this->Add("HR", "");
- $this->Add("HTML", "");
- $this->Add("IMG", "");
- $this->Add("INPUT", "");
- $this->Add("ISINDEX", "");
- $this->Add("I", "font-style: italic;");
- $this->Add("KBD", "");
- $this->Add("LINK", "");
- $this->Add("LI", "");
- $this->Add("MAP", "");
- $this->Add("MENU", "");
- $this->Add("META", "");
- $this->Add("OL", "");
- $this->Add("OPTION", "");
- $this->Add("PARAM", "");
- $this->Add("PRE", "");
- $this->Add("P", "");
- $this->Add("SAMP", "");
- $this->Add("SCRIPT", "");
- $this->Add("SELECT", "");
- $this->Add("SMALL", "");
- $this->Add("STRIKE", "");
- $this->Add("STRONG", "");
- $this->Add("STYLE", "");
- $this->Add("SUB", "");
- $this->Add("SUP", "");
- $this->Add("TABLE", "");
- $this->Add("TD", "");
- $this->Add("TEXTAREA", "");
- $this->Add("TH", "");
- $this->Add("TITLE", "");
- $this->Add("TR", "");
- $this->Add("TT", "");
- $this->Add("UL", "");
- $this->Add("U", "text-decoration : underline;");
- $this->Add("VAR", "");
- }
- }
-
- function SetHTML($html) {
- $this->html = ($html != false);
- }
-
- function Add($key, $codestr) {
- $key = strtolower($key);
-// $codestr = strtolower($codestr);
- if(!isset($this->css[$key])) {
- $this->css[$key] = array();
- }
- $codes = explode(";",$codestr);
- if(count($codes) > 0) {
- foreach($codes as $indexval => $code) {
- $code = trim($code);
- @list($codekey, $codevalue) = explode(":",$code);
- if(strlen($codekey) > 0) {
- $this->css[$key][trim($codekey)] = trim($codevalue);
- }
- }
- }
- }
-
- function Get($key, $property) {
- $key = strtolower($key);
-// $property = strtolower($property);
- @list($tag, $subtag) = explode(":",$key);
- @list($tag, $class) = explode(".",$tag);
- @list($tag, $id) = explode("#",$tag);
- $result = "";
- foreach($this->css as $_tag => $value) {
- @list($_tag, $_subtag) = explode(":",$_tag);
- @list($_tag, $_class) = explode(".",$_tag);
- @list($_tag, $_id) = explode("#",$_tag);
-
- $tagmatch = (strcmp($tag, $_tag) == 0) | (strlen($_tag) == 0);
- $subtagmatch = (strcmp($subtag, $_subtag) == 0) | (strlen($_subtag) == 0);
- $classmatch = (strcmp($class, $_class) == 0) | (strlen($_class) == 0);
- $idmatch = (strcmp($id, $_id) == 0);
-
- if($tagmatch & $subtagmatch & $classmatch & $idmatch) {
- $temp = $_tag;
- if((strlen($temp) > 0) & (strlen($_class) > 0)) {
- $temp .= ".".$_class;
- } elseif(strlen($temp) == 0) {
- $temp = ".".$_class;
- }
- if((strlen($temp) > 0) & (strlen($_subtag) > 0)) {
- $temp .= ":".$_subtag;
- } elseif(strlen($temp) == 0) {
- $temp = ":".$_subtag;
- }
- if(isset($this->css[$temp][$property])) {
- $result = $this->css[$temp][$property];
- }
- }
- }
- return $result;
- }
-
- function GetSection($key) {
- $key = strtolower($key);
-
- @list($tag, $subtag) = explode(":",$key);
- @list($tag, $class) = explode(".",$tag);
- @list($tag, $id) = explode("#",$tag);
- $result = array();
- foreach($this->css as $_tag => $value) {
- @list($_tag, $_subtag) = explode(":",$_tag);
- @list($_tag, $_class) = explode(".",$_tag);
- @list($_tag, $_id) = explode("#",$_tag);
-
- $tagmatch = (strcmp($tag, $_tag) == 0) | (strlen($_tag) == 0);
- $subtagmatch = (strcmp($subtag, $_subtag) == 0) | (strlen($_subtag) == 0);
- $classmatch = (strcmp($class, $_class) == 0) | (strlen($_class) == 0);
- $idmatch = (strcmp($id, $_id) == 0);
-
- if($tagmatch & $subtagmatch & $classmatch & $idmatch) {
- $temp = $_tag;
- if((strlen($temp) > 0) & (strlen($_class) > 0)) {
- $temp .= ".".$_class;
- } elseif(strlen($temp) == 0) {
- $temp = ".".$_class;
- }
- if((strlen($temp) > 0) & (strlen($_subtag) > 0)) {
- $temp .= ":".$_subtag;
- } elseif(strlen($temp) == 0) {
- $temp = ":".$_subtag;
- }
- foreach($this->css[$temp] as $property => $value) {
- $result[$property] = $value;
- }
- }
- }
- return $result;
- }
-
- function ParseStr($str) {
- $this->Clear();
- // Remove comments
- $str = preg_replace("/\/\*(.*)?\*\//Usi", "", $str);
- // Parse this damn csscode
- $parts = explode("}",$str);
- if(count($parts) > 0) {
- foreach($parts as $indexval => $part) {
- @list($keystr,$codestr) = explode("{",$part);
- $keys = explode(",",trim($keystr));
- if(count($keys) > 0) {
- foreach($keys as $indexval => $key) {
- if(strlen($key) > 0) {
- $key = str_replace("\n", "", $key);
- $key = str_replace("\\", "", $key);
- $this->Add($key, trim($codestr));
- }
- }
- }
- }
- }
- //
- return (count($this->css) > 0);
- }
-
- function Parse($filename) {
- $this->Clear();
- if(file_exists($filename)) {
- return $this->ParseStr(file_get_contents($filename));
- } else {
- return false;
- }
- }
-
- function GetCSS() {
- $result = "";
- foreach($this->css as $key => $values) {
- $result .= $key." {\n";
- foreach($values as $key => $value) {
- $result .= " $key: $value;\n";
- }
- $result .= "}*\n\n";
- }
- return $result;
- }
-}
-?>
+<?php
+/**
+ * Class to parse css information.
+ *
+ * See the readme file : http://www.phpclasses.org/browse/file/4685.html
+ *
+ * $Id$
+ *
+ * @author http://www.phpclasses.org/browse/package/1289.html
+ * @package PhpGedView
+ * @subpackage Charts
+ */
+
+if (!defined('PGV_PHPGEDVIEW')) {
+ header('HTTP/1.0 403 Forbidden');
+ exit;
+}
+
+define('PGV_CSS_PARSER_PHP', '');
+
+class cssparser {
+ var $css;
+ var $html;
+
+ function cssparser($html = true) {
+ // Register "destructor"
+ register_shutdown_function(array(&$this, "finalize"));
+ $this->html = ($html != false);
+ $this->Clear();
+ }
+
+ function finalize() {
+ unset($this->css);
+ }
+
+ function Clear() {
+ unset($this->css);
+ $this->css = array();
+ if($this->html) {
+ $this->Add("ADDRESS", "");
+ $this->Add("APPLET", "");
+ $this->Add("AREA", "");
+ $this->Add("A", "text-decoration : underline; color : Blue;");
+ $this->Add("A:visited", "color : Purple;");
+ $this->Add("BASE", "");
+ $this->Add("BASEFONT", "");
+ $this->Add("BIG", "");
+ $this->Add("BLOCKQUOTE", "");
+ $this->Add("BODY", "");
+ $this->Add("BR", "");
+ $this->Add("B", "font-weight: bold;");
+ $this->Add("CAPTION", "");
+ $this->Add("CENTER", "");
+ $this->Add("CITE", "");
+ $this->Add("CODE", "");
+ $this->Add("DD", "");
+ $this->Add("DFN", "");
+ $this->Add("DIR", "");
+ $this->Add("DIV", "");
+ $this->Add("DL", "");
+ $this->Add("DT", "");
+ $this->Add("EM", "");
+ $this->Add("FONT", "");
+ $this->Add("FORM", "");
+ $this->Add("H1", "");
+ $this->Add("H2", "");
+ $this->Add("H3", "");
+ $this->Add("H4", "");
+ $this->Add("H5", "");
+ $this->Add("H6", "");
+ $this->Add("HEAD", "");
+ $this->Add("HR", "");
+ $this->Add("HTML", "");
+ $this->Add("IMG", "");
+ $this->Add("INPUT", "");
+ $this->Add("ISINDEX", "");
+ $this->Add("I", "font-style: italic;");
+ $this->Add("KBD", "");
+ $this->Add("LINK", "");
+ $this->Add("LI", "");
+ $this->Add("MAP", "");
+ $this->Add("MENU", "");
+ $this->Add("META", "");
+ $this->Add("OL", "");
+ $this->Add("OPTION", "");
+ $this->Add("PARAM", "");
+ $this->Add("PRE", "");
+ $this->Add("P", "");
+ $this->Add("SAMP", "");
+ $this->Add("SCRIPT", "");
+ $this->Add("SELECT", "");
+ $this->Add("SMALL", "");
+ $this->Add("STRIKE", "");
+ $this->Add("STRONG", "");
+ $this->Add("STYLE", "");
+ $this->Add("SUB", "");
+ $this->Add("SUP", "");
+ $this->Add("TABLE", "");
+ $this->Add("TD", "");
+ $this->Add("TEXTAREA", "");
+ $this->Add("TH", "");
+ $this->Add("TITLE", "");
+ $this->Add("TR", "");
+ $this->Add("TT", "");
+ $this->Add("UL", "");
+ $this->Add("U", "text-decoration : underline;");
+ $this->Add("VAR", "");
+ }
+ }
+
+ function SetHTML($html) {
+ $this->html = ($html != false);
+ }
+
+ function Add($key, $codestr) {
+ $key = strtolower($key);
+// $codestr = strtolower($codestr);
+ if(!isset($this->css[$key])) {
+ $this->css[$key] = array();
+ }
+ $codes = explode(";",$codestr);
+ if(count($codes) > 0) {
+ foreach($codes as $indexval => $code) {
+ $code = trim($code);
+ @list($codekey, $codevalue) = explode(":",$code);
+ if(strlen($codekey) > 0) {
+ $this->css[$key][trim($codekey)] = trim($codevalue);
+ }
+ }
+ }
+ }
+
+ function Get($key, $property) {
+ $key = strtolower($key);
+// $property = strtolower($property);
+ @list($tag, $subtag) = explode(":",$key);
+ @list($tag, $class) = explode(".",$tag);
+ @list($tag, $id) = explode("#",$tag);
+ $result = "";
+ foreach($this->css as $_tag => $value) {
+ @list($_tag, $_subtag) = explode(":",$_tag);
+ @list($_tag, $_class) = explode(".",$_tag);
+ @list($_tag, $_id) = explode("#",$_tag);
+
+ $tagmatch = (strcmp($tag, $_tag) == 0) | (strlen($_tag) == 0);
+ $subtagmatch = (strcmp($subtag, $_subtag) == 0) | (strlen($_subtag) == 0);
+ $classmatch = (strcmp($class, $_class) == 0) | (strlen($_class) == 0);
+ $idmatch = (strcmp($id, $_id) == 0);
+
+ if($tagmatch & $subtagmatch & $classmatch & $idmatch) {
+ $temp = $_tag;
+ if((strlen($temp) > 0) & (strlen($_class) > 0)) {
+ $temp .= ".".$_class;
+ } elseif(strlen($temp) == 0) {
+ $temp = ".".$_class;
+ }
+ if((strlen($temp) > 0) & (strlen($_subtag) > 0)) {
+ $temp .= ":".$_subtag;
+ } elseif(strlen($temp) == 0) {
+ $temp = ":".$_subtag;
+ }
+ if(isset($this->css[$temp][$property])) {
+ $result = $this->css[$temp][$property];
+ }
+ }
+ }
+ return $result;
+ }
+
+ function GetSection($key) {
+ $key = strtolower($key);
+
+ @list($tag, $subtag) = explode(":",$key);
+ @list($tag, $class) = explode(".",$tag);
+ @list($tag, $id) = explode("#",$tag);
+ $result = array();
+ foreach($this->css as $_tag => $value) {
+ @list($_tag, $_subtag) = explode(":",$_tag);
+ @list($_tag, $_class) = explode(".",$_tag);
+ @list($_tag, $_id) = explode("#",$_tag);
+
+ $tagmatch = (strcmp($tag, $_tag) == 0) | (strlen($_tag) == 0);
+ $subtagmatch = (strcmp($subtag, $_subtag) == 0) | (strlen($_subtag) == 0);
+ $classmatch = (strcmp($class, $_class) == 0) | (strlen($_class) == 0);
+ $idmatch = (strcmp($id, $_id) == 0);
+
+ if($tagmatch & $subtagmatch & $classmatch & $idmatch) {
+ $temp = $_tag;
+ if((strlen($temp) > 0) & (strlen($_class) > 0)) {
+ $temp .= ".".$_class;
+ } elseif(strlen($temp) == 0) {
+ $temp = ".".$_class;
+ }
+ if((strlen($temp) > 0) & (strlen($_subtag) > 0)) {
+ $temp .= ":".$_subtag;
+ } elseif(strlen($temp) == 0) {
+ $temp = ":".$_subtag;
+ }
+ foreach($this->css[$temp] as $property => $value) {
+ $result[$property] = $value;
+ }
+ }
+ }
+ return $result;
+ }
+
+ function ParseStr($str) {
+ $this->Clear();
+ // Remove comments
+ $str = preg_replace("/\/\*(.*)?\*\//Usi", "", $str);
+ // Parse this damn csscode
+ $parts = explode("}",$str);
+ if(count($parts) > 0) {
+ foreach($parts as $indexval => $part) {
+ @list($keystr,$codestr) = explode("{",$part);
+ $keys = explode(",",trim($keystr));
+ if(count($keys) > 0) {
+ foreach($keys as $indexval => $key) {
+ if(strlen($key) > 0) {
+ $key = str_replace("\n", "", $key);
+ $key = str_replace("\\", "", $key);
+ $this->Add($key, trim($codestr));
+ }
+ }
+ }
+ }
+ }
+ //
+ return (count($this->css) > 0);
+ }
+
+ function Parse($filename) {
+ $this->Clear();
+ if(file_exists($filename)) {
+ return $this->ParseStr(file_get_contents($filename));
+ } else {
+ return false;
+ }
+ }
+
+ function GetCSS() {
+ $result = "";
+ foreach($this->css as $key => $values) {
+ $result .= $key." {\n";
+ foreach($values as $key => $value) {
+ $result .= " $key: $value;\n";
+ }
+ $result .= "}*\n\n";
+ }
+ return $result;
+ }
+}
+?>
Index: pclzip.lib.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/pclzip.lib.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- pclzip.lib.php 7 Jul 2008 17:30:15 -0000 1.3
+++ pclzip.lib.php 30 Apr 2009 18:32:43 -0000 1.4
@@ -1,5754 +1,5754 @@
-<?php
-// --------------------------------------------------------------------------------
-// PhpConcept Library - Zip Module 2.5
-// --------------------------------------------------------------------------------
-// License GNU/LGPL - Vincent Blavet - March 2006
-// http://www.phpconcept.net
-// --------------------------------------------------------------------------------
-//
-// Presentation :
-// PclZip is a PHP library that manage ZIP archives.
-// So far tests show that archives generated by PclZip are readable by
[...11477 lines suppressed...]
+ // The path translated.
+ // --------------------------------------------------------------------------------
+ function PclZipUtilTranslateWinPath($p_path, $p_remove_disk_letter=true)
+ {
+ if (stristr(php_uname(), 'windows')) {
+ // ----- Look for potential disk letter
+ if (($p_remove_disk_letter) && (($v_position = strpos($p_path, ':')) != false)) {
+ $p_path = substr($p_path, $v_position+1);
+ }
+ // ----- Change potential windows directory separator
+ if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0,1) == '\\')) {
+ $p_path = strtr($p_path, '\\', '/');
+ }
+ }
+ return $p_path;
+ }
+ // --------------------------------------------------------------------------------
+
+
+?>
--- NEW FILE: dmsounds_UTF8.php ---
<?php
/**
* Sound table for Daitch-Mokotoff "Sounds like" algorithm
*
* phpGedView: Genealogy Viewer
* 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 PhpGedView
* @version $Id: dmsounds_UTF8.php,v 1.1 2009/04/30 18:32:43 lsces Exp $
*/
if (!defined('PGV_PHPGEDVIEW')) {
header('HTTP/1.0 403 Forbidden');
exit;
}
define('PGV_DMSOUNDS_UTF8_PHP', '');
// Hebrew alphabet
define('ALEF', '×');
define('BET', '×');
define('GIMEL', '×');
define('DALET', '×');
define('HE', '×');
define('VAV', '×');
define('ZAYIN', '×');
define('HET', '×');
define('TET', '×');
define('YOD', '×');
define('FINAL_KAF', '×');
define('KAF', '×');
define('LAMED', '×');
define('FINAL_MEM', '×');
define('MEM', '×');
define('FINAL_NUN', '×');
define('NUN', '× ');
define('SAMEKH', 'ס');
define('AYIN', '×¢');
define('FINAL_PE', '×£');
define('PE', 'פ');
define('FINAL_TSADI', '×¥');
define('TSADI', 'צ');
define('QOF', '×§');
define('RESH', 'ר');
define('SHIN', 'ש');
define('TAV', 'ת');
define('DOUBLE_VAV', '×°');
define('DOUBLE_YOD', 'ײ');
define('VAV_YOD', '×±');
/**
* Name transformation arrays.
*
* Used to transform the Name string to simplify the "sounds like" table.
* This is especially useful in Hebrew.
*
* Each array entry defines the "from" and "to" arguments of an ereg($from, $to, $text)
* function call to achieve the desired transformations.
*
* Note about the use of "\x01":
* This code, which can't legitimately occur in the kind of text we're dealing with,
* is used as a place-holder so that conditional string replacements can be done.
*/
$transformNameTable = array(
// Force Yiddish ligatures to be treated as separate letters
array(DOUBLE_VAV, VAV.VAV),
array(DOUBLE_YOD, YOD.YOD),
array(VAV_YOD, VAV.YOD),
// Feature request 1511090, bullet (a)
array(BET.VAV, BET.AYIN),
array(PE.VAV, PE.AYIN),
array(VAV.MEM, AYIN.MEM),
array(VAV.FINAL_MEM, AYIN.FINAL_MEM),
array(VAV.NUN, AYIN.NUN),
array(VAV.FINAL_NUN, AYIN.FINAL_NUN),
// Feature request 1511090, bullet (b)
array(VAV.VAV, BET),
// Feature request 1511090, bullet (c)
array("\x01", ''),
array(YOD.YOD.HE.'$', "\x01".HE),
array(YOD.YOD.AYIN.'$', "\x01".AYIN),
array(YOD.YOD, AYIN),
array("\x01", YOD.YOD)
);
$maxchar = 7; // Max. table key length (in ASCII bytes -- NOT in UTF-8 characters!)
/**
* The DM sound coding table is organized this way:
* key: a variable-length string that corresponds to the UTF-8 character sequence
* represented by the table entry. Currently, that string can be up to 7
* bytes long. This maximum length is defined by the value of global variable
* $maxchar.
* value: an array as follows:
* [0]: zero if not a vowel
* [1]: sound value when this string is at the beginning of the word
* [2]: sound value when this string is followed by a vowel
* [3]: sound value for other cases
* [1],[2],[3] can be repeated several times to create branches in the code
* an empty sound value means "ignore in this state"
*/
$dmsounds = array();
// Latin alphabet
$dmsounds["A"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','1','', '0','','');
$dmsounds["Ã
"] = array('1', '0','','');
$dmsounds["Ä"] = array('1', '0','','');
$dmsounds["Ä"] = array('1', '','','', '','','6');
$dmsounds["Ạ"] = array('1', '0','','');
$dmsounds["Ả"] = array('1', '0','','');
$dmsounds["Ấ"] = array('1', '0','','');
$dmsounds["Ầ"] = array('1', '0','','');
$dmsounds["Ẩ"] = array('1', '0','','');
$dmsounds["Ẫ"] = array('1', '0','','');
$dmsounds["Ậ"] = array('1', '0','','');
$dmsounds["Ắ"] = array('1', '0','','');
$dmsounds["Ằ"] = array('1', '0','','');
$dmsounds["Ẳ"] = array('1', '0','','');
$dmsounds["Ẵ"] = array('1', '0','','');
$dmsounds["Ặ"] = array('1', '0','','');
$dmsounds["AE"] = array('1', '0','1','');
$dmsounds["Ã"] = array('1', '0','1','');
$dmsounds["AI"] = array('1', '0','1','');
$dmsounds["AJ"] = array('1', '0','1','');
$dmsounds["AU"] = array('1', '0','7','');
$dmsounds["AV"] = array('1', '0','7','', '7','7','7');
$dmsounds["ÃU"] = array('1', '0','1','');
$dmsounds["AY"] = array('1', '0','1','');
$dmsounds["B"] = array('0', '7','7','7');
//$dmsounds["C"] = array('0', '5','5','5', '4','4','4');
$dmsounds["C"] = array('0', '5','5','5', '34','4','4');
$dmsounds["Ä"] = array('0', '4','4','4');
$dmsounds["Ä"] = array('0', '4','4','4');
$dmsounds["Ã"] = array('0', '4','4','4');
//$dmsounds["CH"] = array('0', '5','5','5', '4','4','4');
$dmsounds["CH"] = array('0', '5','5','5', '34','4','4');
$dmsounds["CHS"] = array('0', '5','54','54');
$dmsounds["CK"] = array('0', '5','5','5', '45','45','45');
$dmsounds["CCS"] = array('0', '4','4','4');
$dmsounds["CS"] = array('0', '4','4','4');
$dmsounds["CSZ"] = array('0', '4','4','4');
$dmsounds["CZ"] = array('0', '4','4','4');
$dmsounds["CZS"] = array('0', '4','4','4');
$dmsounds["D"] = array('0', '3','3','3');
$dmsounds["Ä"] = array('0', '3','3','3');
$dmsounds["Ä"] = array('0', '3','3','3');
$dmsounds["DRS"] = array('0', '4','4','4');
$dmsounds["DRZ"] = array('0', '4','4','4');
$dmsounds["DS"] = array('0', '4','4','4');
$dmsounds["DSH"] = array('0', '4','4','4');
$dmsounds["DSZ"] = array('0', '4','4','4');
$dmsounds["DT"] = array('0', '3','3','3');
$dmsounds["DDZ"] = array('0', '4','4','4');
$dmsounds["DDZS"] = array('0', '4','4','4');
$dmsounds["DZ"] = array('0', '4','4','4');
$dmsounds["DŹ"] = array('0', '4','4','4');
$dmsounds["DÅ»"] = array('0', '4','4','4');
$dmsounds["DZH"] = array('0', '4','4','4');
$dmsounds["DZS"] = array('0', '4','4','4');
$dmsounds["E"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ä"] = array('1', '0','','');
$dmsounds["Ä"] = array('1', '0','','');
$dmsounds["Ä"] = array('1', '','','6', '','','');
$dmsounds["Ẹ"] = array('1', '0','','');
$dmsounds["Ẻ"] = array('1', '0','','');
$dmsounds["Ẽ"] = array('1', '0','','');
$dmsounds["Ế"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["EAU"] = array('1', '0','','');
$dmsounds["EI"] = array('1', '0','1','');
$dmsounds["EJ"] = array('1', '0','1','');
$dmsounds["EU"] = array('1', '1','1','');
$dmsounds["EY"] = array('1', '0','1','');
$dmsounds["F"] = array('0', '7','7','7');
$dmsounds["FB"] = array('0', '7','7','7');
//$dmsounds["G"] = array('0', '5','5','5', '4','4','4');
$dmsounds["G"] = array('0', '5','5','5', '34','4','4');
$dmsounds["Ä"] = array('0', '','','');
$dmsounds["GGY"] = array('0', '5','5','5');
$dmsounds["GY"] = array('0', '5','5','5');
$dmsounds["H"] = array('0', '5','5','', '5','5','5');
$dmsounds["I"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ĩ"] = array('1', '0','','');
$dmsounds["Ä®"] = array('1', '0','','');
$dmsounds["İ"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["IA"] = array('1', '1','','');
$dmsounds["IE"] = array('1', '1','','');
$dmsounds["IO"] = array('1', '1','','');
$dmsounds["IU"] = array('1', '1','','');
$dmsounds["J"] = array('0', '1','','', '4','4','4', '5','5','');
$dmsounds["K"] = array('0', '5','5','5');
$dmsounds["KH"] = array('0', '5','5','5');
$dmsounds["KS"] = array('0', '5','54','54');
$dmsounds["L"] = array('0', '8','8','8');
$dmsounds["Ľ"] = array('0', '8','8','8');
$dmsounds["Ĺ"] = array('0', '8','8','8');
$dmsounds["Å"] = array('0', '7','7','7', '8','8','8');
//$dmsounds["LL"] = array('0', '8','8','8', '58','8','8', '1','','');
$dmsounds["LL"] = array('0', '8','8','8', '58','8','8', '1','8','8');
//$dmsounds["LLY"] = array('0', '8','8','8', '1','','');
$dmsounds["LLY"] = array('0', '8','8','8', '1','8','8');
//$dmsounds["LY"] = array('0', '8','8','8', '1','','');
$dmsounds["LY"] = array('0', '8','8','8', '1','8','8');
$dmsounds["M"] = array('0', '6','6','6');
$dmsounds["MÄ"] = array('0', '66','66','66');
$dmsounds["MN"] = array('0', '66','66','66');
$dmsounds["N"] = array('0', '6','6','6');
$dmsounds["Å"] = array('0', '6','6','6');
$dmsounds["Å"] = array('0', '6','6','6');
$dmsounds["Ã"] = array('0', '6','6','6');
$dmsounds["NM"] = array('0', '66','66','66');
$dmsounds["O"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Å"] = array('1', '0','','');
$dmsounds["Å"] = array('1', '0','','');
$dmsounds["Æ "] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á»"] = array('1', '0','','');
$dmsounds["á» "] = array('1', '0','','');
$dmsounds["Ợ"] = array('1', '0','','');
$dmsounds["OE"] = array('1', '0','','');
$dmsounds["OI"] = array('1', '0','1','');
$dmsounds["OJ"] = array('1', '0','1','');
$dmsounds["OU"] = array('1', '0','','');
$dmsounds["OY"] = array('1', '0','1','');
$dmsounds["P"] = array('0', '7','7','7');
$dmsounds["PF"] = array('0', '7','7','7');
$dmsounds["PH"] = array('0', '7','7','7');
$dmsounds["Q"] = array('0', '5','5','5');
$dmsounds["R"] = array('0', '9','9','9');
$dmsounds["Å"] = array('0', '4','4','4');
$dmsounds["RS"] = array('0', '4','4','4', '94','94','94');
$dmsounds["RZ"] = array('0', '4','4','4', '94','94','94');
$dmsounds["S"] = array('0', '4','4','4');
$dmsounds["Å"] = array('0', '4','4','4');
$dmsounds["Å "] = array('0', '4','4','4');
$dmsounds["Å"] = array('0', '4','4','4');
$dmsounds["SC"] = array('0', '2','4','4');
$dmsounds["Å Ä"] = array('0', '2','4','4');
$dmsounds["SCH"] = array('0', '4','4','4');
$dmsounds["SCHD"] = array('0', '2','43','43');
$dmsounds["SCHT"] = array('0', '2','43','43');
$dmsounds["SCHTCH"] = array('0', '2','4','4');
$dmsounds["SCHTSCH"] = array('0', '2','4','4');
$dmsounds["SCHTSH"] = array('0', '2','4','4');
$dmsounds["SD"] = array('0', '2','43','43');
$dmsounds["SH"] = array('0', '4','4','4');
$dmsounds["SHCH"] = array('0', '2','4','4');
$dmsounds["SHD"] = array('0', '2','43','43');
$dmsounds["SHT"] = array('0', '2','43','43');
$dmsounds["SHTCH"] = array('0', '2','4','4');
$dmsounds["SHTSH"] = array('0', '2','4','4');
$dmsounds["Ã"] = array('0', '','4','4');
$dmsounds["ST"] = array('0', '2','43','43');
$dmsounds["STCH"] = array('0', '2','4','4');
$dmsounds["STRS"] = array('0', '2','4','4');
$dmsounds["STRZ"] = array('0', '2','4','4');
$dmsounds["STSCH"] = array('0', '2','4','4');
$dmsounds["STSH"] = array('0', '2','4','4');
$dmsounds["SSZ"] = array('0', '4','4','4');
$dmsounds["SZ"] = array('0', '4','4','4');
$dmsounds["SZCS"] = array('0', '2','4','4');
$dmsounds["SZCZ"] = array('0', '2','4','4');
$dmsounds["SZD"] = array('0', '2','43','43');
$dmsounds["SZT"] = array('0', '2','43','43');
$dmsounds["T"] = array('0', '3','3','3');
$dmsounds["Ť"] = array('0', '3','3','3');
$dmsounds["Å¢"] = array('0', '3','3','3', '4','4','4');
$dmsounds["TC"] = array('0', '4','4','4');
$dmsounds["TCH"] = array('0', '4','4','4');
$dmsounds["TH"] = array('0', '3','3','3');
$dmsounds["TRS"] = array('0', '4','4','4');
$dmsounds["TRZ"] = array('0', '4','4','4');
$dmsounds["TS"] = array('0', '4','4','4');
$dmsounds["TSCH"] = array('0', '4','4','4');
$dmsounds["TSH"] = array('0', '4','4','4');
$dmsounds["TSZ"] = array('0', '4','4','4');
$dmsounds["TTCH"] = array('0', '4','4','4');
$dmsounds["TTS"] = array('0', '4','4','4');
$dmsounds["TTSCH"] = array('0', '4','4','4');
$dmsounds["TTSZ"] = array('0', '4','4','4');
$dmsounds["TTZ"] = array('0', '4','4','4');
$dmsounds["TZ"] = array('0', '4','4','4');
$dmsounds["TZS"] = array('0', '4','4','4');
$dmsounds["U"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ã"] = array('1', '0','','');
$dmsounds["Ũ"] = array('1', '0','','');
$dmsounds["Ū"] = array('1', '0','','');
$dmsounds["Å®"] = array('1', '0','','');
$dmsounds["Ű"] = array('1', '0','','');
$dmsounds["Ų"] = array('1', '0','','');
$dmsounds["Ư"] = array('1', '0','','');
$dmsounds["Ụ"] = array('1', '0','','');
$dmsounds["Ủ"] = array('1', '0','','');
$dmsounds["Ứ"] = array('1', '0','','');
$dmsounds["Ừ"] = array('1', '0','','');
$dmsounds["Ử"] = array('1', '0','','');
$dmsounds["á»®"] = array('1', '0','','');
$dmsounds["á»°"] = array('1', '0','','');
$dmsounds["UE"] = array('1', '0','','');
$dmsounds["UI"] = array('1', '0','1','');
$dmsounds["UJ"] = array('1', '0','1','');
$dmsounds["UY"] = array('1', '0','1','');
$dmsounds["UW"] = array('1', '0','1','', '0','7','7');
$dmsounds["V"] = array('0', '7','7','7');
//$dmsounds["W"] = array('0', '7','7','7', '7','','');
$dmsounds["W"] = array('0', '7','7','7');
$dmsounds["X"] = array('0', '5','54','54');
$dmsounds["Y"] = array('1', '1','','');
$dmsounds["Ã"] = array('1', '1','','');
$dmsounds["Ỳ"] = array('1', '1','','');
$dmsounds["á»´"] = array('1', '1','','');
$dmsounds["á»¶"] = array('1', '1','','');
$dmsounds["Ỹ"] = array('1', '1','','');
$dmsounds["Z"] = array('0', '4','4','4');
$dmsounds["Ź"] = array('0', '4','4','4');
$dmsounds["Å»"] = array('0', '4','4','4');
$dmsounds["Ž"] = array('0', '4','4','4');
$dmsounds["ZD"] = array('0', '2','43','43');
$dmsounds["ZDZ"] = array('0', '2','4','4');
$dmsounds["ZDZH"] = array('0', '2','4','4');
$dmsounds["ZH"] = array('0', '4','4','4');
$dmsounds["ZHD"] = array('0', '2','43','43');
$dmsounds["ZHDZH"] = array('0', '2','4','4');
$dmsounds["ZS"] = array('0', '4','4','4');
$dmsounds["ZSCH"] = array('0', '4','4','4');
$dmsounds["ZSH"] = array('0', '4','4','4');
$dmsounds["ZZS"] = array('0', '4','4','4');
// Cyrillic alphabet
$dmsounds["Ð"] = array('1', '0','','');
$dmsounds["Ð"] = array('0', '7','7','7');
$dmsounds["Ð"] = array('0', '7','7','7');
$dmsounds["Ð"] = array('0', '5','5','5');
$dmsounds["Ð"] = array('0', '3','3','3');
$dmsounds["ÐÐ"] = array('0', '4','4','4');
$dmsounds["Ð"] = array('1', '0','','');
$dmsounds["Ð"] = array('1', '0','','');
$dmsounds["Ð"] = array('0', '4','4','4');
$dmsounds["Ð"] = array('0', '4','4','4');
$dmsounds["Ð"] = array('1', '0','','');
$dmsounds["Ð"] = array('1', '1','','', '4','4','4');
$dmsounds["Ð"] = array('0', '5','5','5');
$dmsounds["Ð"] = array('0', '8','8','8');
$dmsounds["Ð"] = array('0', '6','6','6');
$dmsounds["Ð"] = array('0', '6','6','6');
$dmsounds["Ð"] = array('1', '0','','');
$dmsounds["Ð"] = array('0', '7','7','7');
$dmsounds["Ð "] = array('0', '9','9','9');
$dmsounds["Ð Ð"] = array('0', '4','4','4');
$dmsounds["С"] = array('0', '4','4','4');
$dmsounds["Т"] = array('0', '3','3','3');
$dmsounds["У"] = array('1', '0','','');
$dmsounds["Ф"] = array('0', '7','7','7');
$dmsounds["Ð¥"] = array('0', '5','5','5');
$dmsounds["Ц"] = array('0', '4','4','4');
$dmsounds["Ч"] = array('0', '4','4','4');
$dmsounds["Ш"] = array('0', '4','4','4');
$dmsounds["Щ"] = array('0', '2','4','4');
$dmsounds["Ъ"] = array('0', '','','');
$dmsounds["Ы"] = array('0', '1','','');
$dmsounds["Ь"] = array('0', '','','');
$dmsounds["Ð"] = array('1', '0','','');
$dmsounds["Ю"] = array('0', '1','','');
$dmsounds["Я"] = array('0', '1','','');
// Greek alphabet
$dmsounds["Î"] = array('1', '0','','');
$dmsounds["Î"] = array('1', '0','','');
$dmsounds["ÎÎ"] = array('1', '0','1','');
$dmsounds["ÎÎ¥"] = array('1', '0','1','');
$dmsounds["Î"] = array('0', '7','7','7');
$dmsounds["Î"] = array('0', '5','5','5');
$dmsounds["Î"] = array('0', '3','3','3');
$dmsounds["Î"] = array('1', '0','','');
$dmsounds["Î"] = array('1', '0','','');
$dmsounds["ÎÎ"] = array('1', '0','1','');
$dmsounds["ÎÎ¥"] = array('1', '1','1','');
$dmsounds["Î"] = array('0', '4','4','4');
$dmsounds["Î"] = array('1', '0','','');
$dmsounds["Î"] = array('1', '0','','');
$dmsounds["Î"] = array('0', '3','3','3');
$dmsounds["Î"] = array('1', '0','','');
$dmsounds["Î"] = array('1', '0','','');
$dmsounds["Ϊ"] = array('1', '0','','');
$dmsounds["Î"] = array('1', '0','','');
$dmsounds["Î"] = array('0', '5','5','5');
$dmsounds["Î"] = array('0', '8','8','8');
$dmsounds["Î"] = array('0', '6','6','6');
$dmsounds["ÎÎ "] = array('0', '7','7','7');
$dmsounds["Î"] = array('0', '6','6','6');
$dmsounds["ÎΤ"] = array('0', '3','3','3');
$dmsounds["Î"] = array('0', '5','54','54');
$dmsounds["Î"] = array('1', '0','','');
$dmsounds["Î"] = array('1', '0','','');
$dmsounds["ÎÎ"] = array('1', '0','1','');
$dmsounds["ÎÎ¥"] = array('1', '0','1','');
$dmsounds["Î "] = array('0', '7','7','7');
$dmsounds["Ρ"] = array('0', '9','9','9');
$dmsounds["Σ"] = array('0', '4','4','4');
$dmsounds["Ï"] = array('0', '','','4');
$dmsounds["Τ"] = array('0', '3','3','3');
$dmsounds["ΤÎ"] = array('0', '4','4','4');
$dmsounds["ΤΣ"] = array('0', '4','4','4');
$dmsounds["Î¥"] = array('1', '1','','');
$dmsounds["Î"] = array('1', '1','','');
$dmsounds["Ϋ"] = array('1', '1','','');
$dmsounds["ΰ"] = array('1', '1','','');
$dmsounds["Î¥Î"] = array('1', '5','5','5');
$dmsounds["ΥΥ"] = array('1', '65','65','65');
$dmsounds["Φ"] = array('0', '7','7','7');
$dmsounds["Χ"] = array('0', '5','5','5');
$dmsounds["Ψ"] = array('0', '7','7','7');
$dmsounds["Ω"] = array('1', '0','','');
$dmsounds["Î"] = array('1', '0','','');
// Hebrew alphabet
$dmsounds[ALEF] = array('1', '0','','');
$dmsounds[ALEF.VAV] = array('1', '0','7','');
$dmsounds[ALEF.GIMEL] = array('1', '4','4','4', '5','5','5', '34','34','34');
//$dmsounds[BET.BET] = array('0', '77','77','77');
$dmsounds[BET.BET] = array('0', '7','7','7', '77','77','77');
$dmsounds[BET] = array('0', '7','7','7');
//$dmsounds[GIMEL.GIMEL] = array('0', '45','45','45', '55','55','55');
$dmsounds[GIMEL.GIMEL] = array('0', '4','4','4', '5','5','5', '45','45','45', '55','55','55', '54','54','54');
$dmsounds[GIMEL.DALET] = array('0', '43','43','43', '53','53','53');
$dmsounds[GIMEL.HE] = array('0', '45','45','45', '55','55','55');
$dmsounds[GIMEL.ZAYIN] = array('0', '44','44','44', '45','45','45');
$dmsounds[GIMEL.HET] = array('0', '45','45','45', '55','55','55');
$dmsounds[GIMEL.KAF] = array('0', '45','45','45', '55','55','55');
$dmsounds[GIMEL.FINAL_KAF] = array('0', '45','45','45', '55','55','55');
$dmsounds[GIMEL.TSADI] = array('0', '44','44','44', '45','45','45');
$dmsounds[GIMEL.FINAL_TSADI] = array('0', '44','44','44', '45','45','45');
$dmsounds[GIMEL.QOF] = array('0', '45','45','45', '54','54','54');
$dmsounds[GIMEL.SHIN] = array('0', '44','44','44', '54','54','54');
$dmsounds[GIMEL.TAV] = array('0', '43','43','43', '53','53','53');
$dmsounds[GIMEL] = array('0', '4','4','4', '5','5','5');
$dmsounds[DALET.ZAYIN] = array('0', '4','4','4');
//$dmsounds[DALET.DALET] = array('0', '33','33','33');
$dmsounds[DALET.DALET] = array('0', '3','3','3', '33','33','33');
$dmsounds[DALET.TET] = array('0', '33','33','33');
$dmsounds[DALET.SHIN] = array('0', '4','4','4');
$dmsounds[DALET.TSADI] = array('0', '4','4','4');
$dmsounds[DALET.FINAL_TSADI] = array('0', '4','4','4');
$dmsounds[DALET] = array('0', '3','3','3');
$dmsounds[HE.GIMEL] = array('0', '54','54','54', '55','55','55');
$dmsounds[HE.KAF] = array('0', '55','55','55');
$dmsounds[HE.HET] = array('0', '55','55','55');
$dmsounds[HE.QOF] = array('0', '55','55','55', '5','5','5');
$dmsounds[HE.HE] = array('0', '5','5','', '55','55',''); // -- added by GK
$dmsounds[HE] = array('0', '5','5','');
$dmsounds[VAV.YOD] = array('1', '','','', '7','7','7');
$dmsounds[VAV] = array('1', '7','7','7', '7','','');
$dmsounds[VAV.VAV] = array('1', '7','7','7', '7','','');
$dmsounds[VAV.VAV.PE] = array('1', '7','7','7', '77','77','77');
$dmsounds[ZAYIN.SHIN] = array('0', '4','4','4', '44','44','44');
$dmsounds[ZAYIN.DALET.ZAYIN] = array('0', '2','4','4');
$dmsounds[ZAYIN] = array('0', '4','4','4');
$dmsounds[ZAYIN.GIMEL] = array('0', '44','44','44', '45','45','45');
//$dmsounds[ZAYIN.ZAYIN] = array('0', '44','44','44');
$dmsounds[ZAYIN.ZAYIN] = array('0', '4','4','4', '44','44','44');
$dmsounds[ZAYIN.SAMEKH] = array('0', '44','44','44');
$dmsounds[ZAYIN.TSADI] = array('0', '44','44','44');
$dmsounds[ZAYIN.FINAL_TSADI] = array('0', '44','44','44');
$dmsounds[HET.GIMEL] = array('0', '54','54','54', '53','53','53');
//$dmsounds[HET.HET] = array('0', '55','55','55');
$dmsounds[HET.HET] = array('0', '5','5','5', '55','55','55');
$dmsounds[HET.QOF] = array('0', '55','55','55', '5','5','5');
$dmsounds[HET.KAF] = array('0', '45','45','45', '55','55','55');
$dmsounds[HET.SAMEKH] = array('0', '5','54','54');
$dmsounds[HET.SHIN] = array('0', '5','54','54');
$dmsounds[HET] = array('0', '5','5','5');
$dmsounds[TET.SHIN] = array('0', '4','4','4');
$dmsounds[TET.DALET] = array('0', '33','33','33');
$dmsounds[TET.YOD] = array('0', '3','3','3', '4','4','4', '3','3','34');
$dmsounds[TET.TAV] = array('0', '33','33','33');
$dmsounds[TET.TET] = array('0', '3','3','3', '33','33','33'); // -- added by GK
$dmsounds[TET] = array('0', '3','3','3');
$dmsounds[YOD] = array('1', '1','','');
$dmsounds[YOD.ALEF] = array('1', '1','','', '1','1','1');
$dmsounds[KAF.GIMEL] = array('0', '55','55','55', '54','54','54');
$dmsounds[KAF.SHIN] = array('0', '5','54','54');
$dmsounds[KAF.SAMEKH] = array('0', '5','54','54');
$dmsounds[KAF.KAF] = array('0', '5','5','5', '55','55','55'); // == added by GK
$dmsounds[KAF.FINAL_KAF] = array('0', '5','5','5', '55','55','55'); // == added by GK
$dmsounds[KAF] = array('0', '5','5','5');
$dmsounds[KAF.HET] = array('0', '55','55','55', '5','5','5');
$dmsounds[FINAL_KAF] = array('0', '','5','5');
$dmsounds[LAMED] = array('0', '8','8','8');
$dmsounds[LAMED.LAMED] = array('0', '88','88','88', '8','8','8');
$dmsounds[MEM.NUN] = array('0', '66','66','66');
$dmsounds[MEM.FINAL_NUN] = array('0', '66','66','66');
//$dmsounds[MEM.MEM] = array('0', '66','66','66');
$dmsounds[MEM.MEM] = array('0', '6','6','6', '66','66','66');
$dmsounds[MEM.FINAL_MEM] = array('0', '6','6','6', '66','66','66'); // -- added by GK
$dmsounds[MEM] = array('0', '6','6','6');
$dmsounds[FINAL_MEM] = array('0', '','6','6');
$dmsounds[NUN.MEM] = array('0', '66','66','66');
$dmsounds[NUN.FINAL_MEM] = array('0', '66','66','66');
//$dmsounds[NUN.NUN] = array('0', '66','66','66');
$dmsounds[NUN.NUN] = array('0', '6','6','6', '66','66','66');
$dmsounds[NUN.FINAL_NUN] = array('0', '6','6','6', '66','66','66'); // -- added by GK
$dmsounds[NUN] = array('0', '6','6','6');
$dmsounds[FINAL_NUN] = array('0', '','6','6');
$dmsounds[SAMEKH.TAV.SHIN] = array('0', '2','4','4');
$dmsounds[SAMEKH.TAV.ZAYIN] = array('0', '2','4','4');
$dmsounds[SAMEKH.TET.ZAYIN] = array('0', '2','4','4');
$dmsounds[SAMEKH.TET.SHIN] = array('0', '2','4','4');
$dmsounds[SAMEKH.TSADI.DALET] = array('0', '2','4','4');
$dmsounds[SAMEKH.TET] = array('0', '2','4','4', '43','43','43');
$dmsounds[SAMEKH.TAV] = array('0', '2','4','4', '43','43','43');
$dmsounds[SAMEKH.GIMEL] = array('0', '44','44','44', '4','4','4');
//$dmsounds[SAMEKH.SAMEKH] = array('0', '44','44','44');
$dmsounds[SAMEKH.SAMEKH] = array('0', '4','4','4', '44','44','44');
$dmsounds[SAMEKH.TSADI] = array('0', '44','44','44');
$dmsounds[SAMEKH.FINAL_TSADI] = array('0', '44','44','44');
$dmsounds[SAMEKH.ZAYIN] = array('0', '44','44','44');
$dmsounds[SAMEKH.SHIN] = array('0', '44','44','44');
$dmsounds[SAMEKH] = array('0', '4','4','4');
$dmsounds[AYIN] = array('1', '0','','');
$dmsounds[PE.BET] = array('0', '7','7','7', '77','77','77');
$dmsounds[PE.VAV.VAV] = array('0', '7','7','7', '77','77','77');
$dmsounds[PE.PE] = array('0', '7','7','7', '77','77','77');
$dmsounds[PE.FINAL_PE] = array('0', '7','7','7', '77','77','77'); // -- added by GK
$dmsounds[PE] = array('0', '7','7','7');
$dmsounds[FINAL_PE] = array('0', '','7','7');
$dmsounds[TSADI.GIMEL] = array('0', '44','44','44', '45','45','45');
$dmsounds[TSADI.ZAYIN] = array('0', '44','44','44');
$dmsounds[TSADI.SAMEKH] = array('0', '44','44','44');
//$dmsounds[TSADI.TSADI] = array('0', '44','44','44');
//$dmsounds[TSADI.FINAL_TSADI] = array('0', '44','44','44');
$dmsounds[TSADI.TSADI] = array('0', '4','4','4', '5','5','5', '44','44','44', '54','54','54', '45','45','45');
$dmsounds[TSADI.FINAL_TSADI] = array('0', '4','4','4', '5','5','5', '44','44','44', '54','54','54');
$dmsounds[TSADI.SHIN] = array('0', '44','44','44', '4','4','4', '5','5','5');
$dmsounds[TSADI] = array('0', '4','4','4', '5','5','5');
$dmsounds[FINAL_TSADI] = array('0', '','4','4');
$dmsounds[QOF.HE] = array('0', '55','55','5');
$dmsounds[QOF.SAMEKH] = array('0', '5','54','54');
$dmsounds[QOF.SHIN] = array('0', '5','54','54');
//$dmsounds[QOF.QOF] = array('0', '55','55','55');
$dmsounds[QOF.QOF] = array('0', '5','5','5', '55','55','55');
$dmsounds[QOF.HET] = array('0', '55','55','55');
$dmsounds[QOF.KAF] = array('0', '55','55','55');
$dmsounds[QOF.FINAL_KAF] = array('0', '55','55','55');
$dmsounds[QOF.GIMEL] = array('0', '55','55','55', '54','54','54');
$dmsounds[QOF] = array('0', '5','5','5');
$dmsounds[RESH.RESH] = array('0', '99','99','99', '9','9','9');
$dmsounds[RESH] = array('0', '9','9','9');
$dmsounds[SHIN.TET.ZAYIN] = array('0', '2','4','4');
$dmsounds[SHIN.TAV.SHIN] = array('0', '2','4','4');
$dmsounds[SHIN.TAV.ZAYIN] = array('0', '2','4','4');
$dmsounds[SHIN.TET.SHIN] = array('0', '2','4','4');
$dmsounds[SHIN.DALET] = array('0', '2','43','43');
$dmsounds[SHIN.ZAYIN] = array('0', '44','44','44');
$dmsounds[SHIN.SAMEKH] = array('0', '44','44','44');
$dmsounds[SHIN.TAV] = array('0', '2','43','43');
$dmsounds[SHIN.GIMEL] = array('0', '4','4','4', '44','44','44', '4','43','43');
$dmsounds[SHIN.TET] = array('0', '2','43','43', '44','44','44');
$dmsounds[SHIN.TSADI] = array('0', '44','44','44', '45','45','45');
$dmsounds[SHIN.FINAL_TSADI] = array('0', '44','','44', '45','','45');
$dmsounds[SHIN.SHIN] = array('0', '4','4','4', '44','44','44');
$dmsounds[SHIN] = array('0', '4','4','4');
$dmsounds[TAV.GIMEL] = array('0', '34','34','34');
$dmsounds[TAV.ZAYIN] = array('0', '34','34','34');
$dmsounds[TAV.SHIN] = array('0', '4','4','4');
//$dmsounds[TAV.TAV] = array('0', '33','33','33', '4','4','4');
$dmsounds[TAV.TAV] = array('0', '3','3','3', '4','4','4', '33','33','33', '44','44','44', '34','34','34', '43','43','43');
$dmsounds[TAV] = array('0', '3','3','3', '4','4','4');
// Arabic alphabet
$dmsounds["ا"] = array('1', '0','','');
$dmsounds["ب"] = array('0', '7','7','7');
$dmsounds["ت"] = array('0', '3','3','3');
$dmsounds["Ø«"] = array('0', '3','3','3');
$dmsounds["ج"] = array('0', '4','4','4');
$dmsounds["Ø"] = array('0', '5','5','5');
$dmsounds["Ø®"] = array('0', '5','5','5');
$dmsounds["د"] = array('0', '3','3','3');
$dmsounds["ذ"] = array('0', '3','3','3');
$dmsounds["ر"] = array('0', '9','9','9');
$dmsounds["ز"] = array('0', '4','4','4');
$dmsounds["س"] = array('0', '4','4','4');
$dmsounds["Ø´"] = array('0', '4','4','4');
$dmsounds["ص"] = array('0', '4','4','4');
$dmsounds["ض"] = array('0', '3','3','3');
$dmsounds["Ø·"] = array('0', '3','3','3');
$dmsounds["ظ"] = array('0', '4','4','4');
$dmsounds["ع"] = array('1', '0','','');
$dmsounds["غ"] = array('0', '0','','');
$dmsounds["Ù"] = array('0', '7','7','7');
$dmsounds["Ù"] = array('0', '5','5','5');
$dmsounds["Ù"] = array('0', '5','5','5');
$dmsounds["Ù"] = array('0', '8','8','8');
$dmsounds["ÙØ§"] = array('0', '8','8','8');
$dmsounds["Ù
"] = array('0', '6','6','6');
$dmsounds["Ù"] = array('0', '6','6','6');
$dmsounds["ÙÙ"] = array('0', '66','66','66');
$dmsounds["Ù"] = array('0', '5','5','');
$dmsounds["Ù"] = array('1', '','','', '7','','');
$dmsounds["Ù"] = array('0', '1','','');
$dmsounds["Ø¢"] = array('0', '1','','');
$dmsounds["Ø©"] = array('0', '','','3');
$dmsounds["Û"] = array('0', '1','','');
$dmsounds["Ù"] = array('1', '1','','');
?>
Index: grampsxml.rng
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/grampsxml.rng,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- grampsxml.rng 7 Jul 2008 17:30:14 -0000 1.2
+++ grampsxml.rng 30 Apr 2009 18:32:43 -0000 1.3
@@ -1,532 +1,532 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-# Gramps - a GTK+/GNOME based genealogy program
-#
-# Copyright (C) 2005-2006 Donald N. Allingham
-#
-# 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.
[...1033 lines suppressed...]
+ </element></optional>
+ <optional><element name="place">
+ <attribute name="hlink"><data type="IDREF"/></attribute>
+ </element></optional>
+ <optional><element name="status">
+ <attribute name="val"><text/></attribute>
+ </element></optional>
+ <optional><element name="sealed_to">
+ <attribute name="hlink"><data type="IDREF"/></attribute>
+ </element></optional>
+ <optional><element name="note">
+ <ref name="note-content"/>
+ </element></optional>
+ <optional><ref name="date-content"/></optional>
+ <zeroOrMore><element name="sourceref">
+ <ref name="sourceref-content"/>
+ </element></zeroOrMore>
+ </define>
+
+</grammar>
--- functions_charts.php DELETED ---
--- functions_print.php DELETED ---
--- NEW FILE: media_reorder.php ---
<?php
/**
* Reorder media Items using drag and drop
*
* phpGedView: Genealogy Viewer
* 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 PhpGedView
* @subpackage Module
* @version $Id: media_reorder.php,v 1.1 2009/04/30 18:32:43 lsces Exp $
* @author Brian Holland
*/
if (!defined('PGV_PHPGEDVIEW')) {
header('HTTP/1.0 403 Forbidden');
exit;
}
define('PGV_MEDIA_REORDER_PHP', '');
include_once("includes/functions/functions_print_facts.php");
print "<br /><b>".$pgv_lang["reorder_media"]."</b>";
// print_help_link("reorder_children_help", "qm");
print "  --- " . $pgv_lang["reorder_media_window_title"];
global $MULTI_MEDIA, $TBLPREFIX, $SHOW_ID_NUMBERS, $MEDIA_EXTERNAL;
global $pgv_lang, $pgv_changes, $factarray, $view;
global $GEDCOMS, $GEDCOM, $MEDIATYPE, $pgv_changes, $DBCONN, $DBTYPE;
global $WORD_WRAPPED_NOTES, $MEDIA_DIRECTORY, $PGV_IMAGE_DIR, $PGV_IMAGES, $TEXT_DIRECTION;
global $is_media, $cntm1, $cntm2, $cntm3, $cntm4, $t, $mgedrec;
global $typ2b, $edit, $tabno ;
global $ids, $pid, $related, $level, $gedrec, $media_data, $order, $order1, $order2, $j ;
print "\n";
?>
<form name="reorder_form" method="post" action="edit_interface.php">
<input type="hidden" name="action" value="reorder_media_update" />
<input type="hidden" name="pid" value="<?php print $pid; ?>" />
<!-- <input type="hidden" name="option" value="bybirth" /> -->
<center><p>
<button type="submit" title="<?php print $pgv_lang["reorder_media_save"];?>"><?php print $pgv_lang["save"];?></button>
<button type="submit" title="<?php print $pgv_lang["reorder_media_reset"];?>" onclick="document.reorder_form.action.value='reset_media_update'; document.reorder_form.submit();"><?php print $pgv_lang["reset"];?></button>
<button type="submit" title="<?php print $pgv_lang["reorder_media_cancel"];?>" onclick="window.close();"><?php print $pgv_lang["cancel"];?></button>
</center>
<ul id="reorder_media_list">
<?php
print "\n";
if (!showFact("OBJE", $pid)) return false;
if (!isset($pgv_changes[$pid."_".$GEDCOM])) $gedrec = find_gedcom_record($pid);
else $gedrec = find_updated_record($pid);
//related=true means show related items
$related="true";
//-- find all of the related ids
$ids = array($pid);
if ($related) {
$ct = preg_match_all("/1 FAMS @(.*)@/", $gedrec, $match, PREG_SET_ORDER);
for($i=0; $i<$ct; $i++) {
$ids[] = trim($match[$i][1]);
}
}
//-- If they exist, get a list of the sorted current objects in the indi gedcom record - (1 _PGV_OBJS @xxx@ .... etc) ----------
$sort_current_objes = array();
if ($level>0) $sort_regexp = "/".$level." _PGV_OBJS @(.*)@/";
else $sort_regexp = "/_PGV_OBJS @(.*)@/";
$sort_ct = preg_match_all($sort_regexp, $gedrec, $sort_match, PREG_SET_ORDER);
for ($i=0; $i<$sort_ct; $i++) {
if (!isset($sort_current_objes[$sort_match[$i][1]])) $sort_current_objes[$sort_match[$i][1]] = 1;
else $sort_current_objes[$sort_match[$i][1]]++;
$sort_obje_links[$sort_match[$i][1]][] = $sort_match[$i][0];
}
$sort_media_found = false;
// -----------------------------------------------------------------------------------------------
// create ORDER BY list from Gedcom sorted records list ---------------------------
$orderbylist = 'ORDER BY '; // initialize
foreach ($sort_match as $media_id) {
$orderbylist .= "m_media='$media_id[1]' DESC, ";
}
$orderbylist = rtrim($orderbylist, ', ');
// print_r($orderbylist);
// -----------------------------------------------------------------------------------------------
//-- get a list of the current objects in the record
$current_objes = array();
if ($level>0) $regexp = "/".$level." OBJE @(.*)@/";
else $regexp = "/OBJE @(.*)@/";
$ct = preg_match_all($regexp, $gedrec, $match, PREG_SET_ORDER);
for ($i=0; $i<$ct; $i++) {
if (!isset($current_objes[$match[$i][1]])) $current_objes[$match[$i][1]] = 1;
else $current_objes[$match[$i][1]]++;
$obje_links[$match[$i][1]][] = $match[$i][0];
}
$media_found = false;
$sqlmm = "SELECT DISTINCT ";
// Adding DISTINCT is the fix for: [ 1488550 ] Family/Individual Media Duplications
// but it may not work for all RDBMS.
// $sqlmm = "SELECT ";
$sqlmm .= "m_media, m_ext, m_file, m_titl, m_gedfile, m_gedrec, mm_gid, mm_gedrec FROM ".$TBLPREFIX."media, ".$TBLPREFIX."media_mapping where ";
$sqlmm .= "mm_gid IN (";
$i=0;
foreach ($ids as $key=>$media_id) {
if ($i>0) $sqlmm .= ",";
$sqlmm .= "'".$DBCONN->escapeSimple($media_id)."'";
$i++;
}
$sqlmm .= ") AND mm_gedfile = '".$GEDCOMS[$GEDCOM]["id"]."' AND mm_media=m_media AND mm_gedfile=m_gedfile ";
//-- for family and source page only show level 1 obje references
if ($level>0) $sqlmm .= "AND mm_gedrec ".PGV_DB_LIKE." '$level OBJE%'";
if ($sort_ct>0) {
$sqlmm .= $orderbylist;
} else {
// $sqlmm .= " ORDER BY m_titl ";
$sqlmm .= " ORDER BY mm_gid DESC ";
}
$resmm = dbquery($sqlmm);
$foundObjs = array();
// $resmm1 = mysql_query($sqlmm);
// $numm = mysql_num_rows($resmm1);
while ($rowm = $resmm->fetchRow(DB_FETCHMODE_ASSOC)) {
if (isset($foundObjs[$rowm['m_media']])) {
if (isset($current_objes[$rowm['m_media']])) $current_objes[$rowm['m_media']]--;
continue;
}
// NOTE: Determine the size of the mediafile
$imgwidth = 300+40;
$imgheight = 300+150;
if (preg_match("'://'", $rowm["m_file"])) {
if (in_array($rowm["m_ext"], $MEDIATYPE)) {
$imgwidth = 400+40;
$imgheight = 500+150;
} else {
$imgwidth = 800+40;
$imgheight = 400+150;
}
}
else if (file_exists(filename_decode(check_media_depth($rowm["m_file"], "NOTRUNC")))) {
$imgsize = findImageSize(check_media_depth($rowm["m_file"], "NOTRUNC"));
$imgwidth = $imgsize[0]+40;
$imgheight = $imgsize[1]+150;
}
$rows = array();
$rows['normal'] = $rowm;
if (isset($current_objes[$rowm['m_media']])) $current_objes[$rowm['m_media']]--;
/*
if (!isset($j)) {
$j=0;
} else {
$j=$j;
}
*/
foreach($rows as $rtype => $rowm) {
// if (FactViewRestricted($rowm['m_media'], $rowm['m_gedrec']) == "true")
$res = media_reorder_row($rtype, $rowm, $pid);
$media_found = $media_found || $res;
$foundObjs[$rowm['m_media']] = true;
// $media_data = $rowm['m_media'];
// print "<input type=\"hidden\" name=\"order1[$media_data]\" value=\"$j\" />";
print "\n\n";
//BH Debug
// $order2[].=$media_data;
$j++;
}
}
?>
</ul>
<?php
// BH Debug ----------------------------------------------------------------------------------
// print "<br /><br /> No 2 = <br />";
// print_r($order2);
// echo "<input type=\"hidden\" name=\"order2\" value=\"$order2\" />";
print "\n";
?>
<script type="text/javascript" language="javascript">
// <![CDATA[
new Effect.BlindDown('reorder_media_list', {duration: .5});
Sortable.create('reorder_media_list',
{
scroll:window,
onUpdate : function() {
inputs = $('reorder_media_list').getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].value = i;
}
}
}
);
// ]]>
</script>
<center>
<button type="submit" title="<?php print $pgv_lang["reorder_media_save"];?>"><?php print $pgv_lang["save"];?></button>
<button type="submit" title="<?php print $pgv_lang["reorder_media_reset"];?>" onclick="document.reorder_form.action.value='reset_media_update'; document.reorder_form.submit();"><?php print $pgv_lang["reset"];?></button>
<button type="submit" title="<?php print $pgv_lang["reorder_media_cancel"];?>" onclick="window.close();"><?php print $pgv_lang["cancel"];?></button>
</center><p>
</form>
<?php
?>
Index: sort_tables_utf8.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/sort_tables_utf8.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- sort_tables_utf8.php 7 Jul 2008 17:30:13 -0000 1.2
+++ sort_tables_utf8.php 30 Apr 2009 18:32:43 -0000 1.3
@@ -1,89 +1,243 @@
-<?php
-/**
- * phpGedView: Genealogy Viewer
- * Copyright (C) 2002 to 2003 John Finlay and Others
- *
- * 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 PhpGedView
- * @version $Id$
- */
-
-if (stristr($_SERVER["SCRIPT_NAME"], basename(__FILE__))!==false) {
- print "You cannot access an include file directly.";
- exit;
-}
-
-/**********************************************************************************
- * *
- * To prevent loss of some characters, this file MUST be saved in UTF-8 mode *
- * *
- ********************************************************************************** */
-
- /**
- * Build the tables required for the Dictionary sort
- *
- * A Dictionary sort is one where all letters with diacritics are considered to be
- * identical to the base letter (without the mark). Diacritics become important
- * only when the two strings (without marks) are identical.
- *
- * There are two sets of tables, one for the Upper Case version of a UTF8 character
- * and the other for the lower-case version. The two tables are not necessarily
- * identical. For example, the Turkish dotless i doesn't exist in the Upper case
- * table.
- *
- * Within each set, there are three lists which MUST have a one-to-one relationship.
- * The "DiacritStrip" list gives the base letter of the corresponding "DiacritWhole"
- * character.
- * The "DiacritOrder" list assigns a sort value to the diacritic mark of the
- * "DiacritWhole" character. All letters that don't appear in these lists, including
- * the base letter from which the one bearing diacritic marks is formed, are assigned
- * a sort value of " ". By using a single letter from the ASCII code chart, we can
- * have 52 different UTF8 characters all mapping to the same base character. This will
- * handle Vietnamese, which is by far the richest language in terms of diacritic marks.
- */
-
-global $DICTIONARY_SORT, $LANGUAGE;
-global $UCDiacritWhole, $LCDiacritWhole, $unknownNN, $unknownPN, $pgv_lang;
-
-if (!isset($DICTIONARY_SORT[$LANGUAGE])) $DICTIONARY_SORT[$LANGUAGE] = false;
-if ($DICTIONARY_SORT[$LANGUAGE]) {
- $UCDiacritWhole = "ÃÃÃÃÃÃ
ǺÄÄÄÇÃÄÄÄÄÄÄÃÃÃÃÄÄÄÄÄÄÄÄ¢Ä Ä¤Ä¦ÃÃÃÃĨĪĬİĮÇĴĶĹĻĽĿÅÃÅÅ
ÅÃÃÃÃÃÅÃǾÅÅÆ ÇÅÅÅÅÅÅŠŢŤŦÃÃÃÃŨŰŲŪŬŮƯÇÇÇÇÇŴßŶŹŻŽ";
- $UCDiacritStrip = "AAAAAAAAAAACCCCCDDEEEEEEEEEGGGGHHIIIIIIIIIIJKLLLLLNNNNOOOOOOOOOOOORRRSSSSTTTUUUUUUUUUUUUUUUUWYYYZZZ";
- $UCDiacritOrder = "ABCDEFGHIJKABCDEABABCDEFGHIJKLMABABCDEFGHIJAAABCDEABCDABCDEFGHIJKLABCABCDABCABCDEFGHIJKLMNOPAABCABC";
- $LCDiacritWhole = "áà äâãåǻÄÄÄ
ÇçÄÄÄÄÄÄéèëêÄÄÄÄÄÆÄÄġģĥħÃìïîĩīÄįÇĵķĺļľÅÅñÅÅÅóòöôõÅøǿÅÅÆ¡ÇÅÅÅÅÅÅšţťŧúùüûũűūÅůųūưÇÇÇÇÇŵýÿŷźżž";
- $LCDiacritStrip = "aaaaaaaaaaacccccddeeeeeeeeefgggghhiiiiiiiiijklllllnnnnoooooooooooorrrsssstttuuuuuuuuuuuuuuuuuwyyyzzz";
- $LCDiacritOrder = "ABCDEFGHIJKABCDEABABCDEFGHIAABCDABCDEFGHIJLAAABCDEABCDABCDEFGHIJKLABCABCDABCABCDEFGHIJKLMNOPQAABCABC";
-}
-
-$unknownNN = array();
-$unknownNN["hebrew"] = "(×× ××××¢)";
-$unknownNN["arabic"] = "(ØºÙØ± Ù
عرÙÙ)";
-$unknownNN["greek"] = "(άγνÏÏÏοÏ/η)";
-$unknownNN["russian"] = "(неопÑеделено)";
-$unknownNN["chinese"] = "(æªç¥)";
-$unknownNN["vietnamese"] = "(vô danh)";
-$unknownNN["other"] = $pgv_lang["NN"];
-
-$unknownPN = array();
-$unknownPN["hebrew"] = "(×× ××××¢)";
-$unknownPN["arabic"] = "(ØºÙØ± Ù
عرÙÙ)";
-$unknownPN["greek"] = "(άγνÏÏÏοÏ/η)";
-$unknownPN["russian"] = "(неопÑеделено)";
-$unknownPN["chinese"] = "(æªç¥)";
-$unknownPN["vietnamese"] = "(không biết tuá»i)";
-$unknownPN["other"] = $pgv_lang["PN"];
-
-?>
+<?php
+/**
+ * phpGedView: Genealogy Viewer
+ * Copyright (C) 2007 to 2008 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 PhpGedView
+ * @version $Id$
+ */
+
+if (!defined('PGV_PHPGEDVIEW')) {
+ header('HTTP/1.0 403 Forbidden');
+ exit;
+}
+
+define('PGV_SORT_TABLES_UTF8_PHP', '');
+
+/**********************************************************************************
+ * *
+ * To prevent loss of some characters, this file MUST be saved in UTF-8 mode *
+ * *
+ ********************************************************************************** */
+
+ /**
+ * Build the tables required for the Dictionary sort
+ *
+ * A Dictionary sort is one where all letters with diacritics are considered to be
+ * identical to the base letter (without the mark). Diacritics become important
+ * only when the two strings (without marks) are identical.
+ *
+ * There are two sets of tables, one for the Upper Case version of a UTF8 character
+ * and the other for the lower-case version. The two tables are not necessarily
+ * identical. For example, the Turkish dotless i doesn't exist in the Upper case
+ * table.
+ *
+ * Within each set, there are three lists which MUST have a one-to-one relationship.
+ * The "DiacritStrip" list gives the base letter of the corresponding "DiacritWhole"
+ * character.
+ * The "DiacritOrder" list assigns a sort value to the diacritic mark of the
+ * "DiacritWhole" character. All letters that don't appear in these lists, including
+ * the base letter from which the one bearing diacritic marks is formed, are assigned
+ * a sort value of " ". By using a single letter from the ASCII code chart, we can
+ * have 52 different UTF8 characters all mapping to the same base character. This will
+ * handle Vietnamese, which is by far the richest language in terms of diacritic marks.
+ */
+
+global $DICTIONARY_SORT, $LANGUAGE;
+global $UCDiacritWhole, $LCDiacritWhole, $unknownNN, $unknownPN, $pgv_lang;
+global $UTF8_ranges, $UTF8_numbers, $UTF8_brackets, $UTF8_LC_letters;
+
+if (!isset($DICTIONARY_SORT[$LANGUAGE])) $DICTIONARY_SORT[$LANGUAGE] = false;
+if ($DICTIONARY_SORT[$LANGUAGE]) {
+ $UCDiacritWhole = "ÃÃÃÃÃÃ
ǺÄÄÄÇÃÄÄÄÄÄÄÃÃÃÃÄÄÄÄÄÄÄÄ¢Ä Ä¤Ä¦ÃÃÃÃĨĪĬİĮÇĴĶĹĻĽĿÅÃÅÅ
ÅÃÃÃÃÃÅÃǾÅÅÆ ÇÅÅÅÅÅÅŠŢŤŦÃÃÃÃŨŰŲŪŬŮƯÇÇÇÇÇŴßŶŹŻŽ";
+ $UCDiacritStrip = "AAAAAAAAAAACCCCCDDEEEEEEEEEGGGGHHIIIIIIIIIIJKLLLLLNNNNOOOOOOOOOOOORRRSSSSTTTUUUUUUUUUUUUUUUUWYYYZZZ";
+ $UCDiacritOrder = "ABCDEFGHIJKABCDEABABCDEFGHIJKLMABABCDEFGHIJAAABCDEABCDABCDEFGHIJKLABCABCDABCABCDEFGHIJKLMNOPAABCABC";
+ $LCDiacritWhole = "áà äâãåǻÄÄÄ
ÇçÄÄÄÄÄÄéèëêÄÄÄÄÄÆÄÄġģĥħÃìïîĩīÄįÇĵķĺļľÅÅñÅÅÅóòöôõÅøǿÅÅÆ¡ÇÅÅÅÅÅÅšţťŧúùüûũűūÅůųūưÇÇÇÇÇŵýÿŷźżž";
+ $LCDiacritStrip = "aaaaaaaaaaacccccddeeeeeeeeefgggghhiiiiiiiiijklllllnnnnoooooooooooorrrsssstttuuuuuuuuuuuuuuuuuwyyyzzz";
+ $LCDiacritOrder = "ABCDEFGHIJKABCDEABABCDEFGHIAABCDABCDEFGHIJLAAABCDEABCDABCDEFGHIJKLABCABCDABCABCDEFGHIJKLMNOPQAABCABC";
+}
+
+$unknownNN = array(
+ 'hebrew' =>$pgv_lang['NNhebrew'],
+ 'arabic' =>$pgv_lang['NNarabic'],
+ 'greek' =>$pgv_lang['NNgreek'],
+ 'russian' =>$pgv_lang['NNrussian'],
+ 'chinese' =>$pgv_lang['NNchinese'],
+ 'vietnamese'=>$pgv_lang['NNvietnamese'],
+ 'thai' =>$pgv_lang['NNthai'],
+ 'other' =>$pgv_lang['NNother'],
+);
+$unknownPN = array(
+ 'hebrew' =>$pgv_lang['PNhebrew'],
+ 'arabic' =>$pgv_lang['PNarabic'],
+ 'greek' =>$pgv_lang['PNgreek'],
+ 'russian' =>$pgv_lang['PNrussian'],
+ 'chinese' =>$pgv_lang['PNchinese'],
+ 'vietnamese'=>$pgv_lang['PNvietnamese'],
+ 'thai' =>$pgv_lang['PNthai'],
+ 'other' =>$pgv_lang['PNother'],
+);
+
+// Table of UTF8 code ranges
+// Reference: Unicode Consortium http://www.unicode.org
+$UTF8_ranges = array();
+$UTF8_ranges[] = array("other", 0x000041, 0x00005A); // upper-case base letters
+$UTF8_ranges[] = array("other", 0x000061, 0x00007A); // lower-case base letters
+$UTF8_ranges[] = array("other", 0x0000C0, 0x0000D6); // Letters with diacritics
+$UTF8_ranges[] = array("other", 0x0000D8, 0x0000F6); // More letters with diacritics
+$UTF8_ranges[] = array("other", 0x0000F8, 0x00024F); // More letters with diacritics
+$UTF8_ranges[] = array("greek", 0x000370, 0x0003FF); // Greek
+$UTF8_ranges[] = array("russian", 0x000400, 0x00052F); // Cyrillic
+$UTF8_ranges[] = array("hebrew", 0x000590, 0x0005FF); // Hebrew
+$UTF8_ranges[] = array("arabic", 0x000600, 0x0006FF); // Arabic
+$UTF8_ranges[] = array("arabic", 0x000750, 0x0007FF); // Arabic
+$UTF8_ranges[] = array("thai", 0x000E00, 0x000E7F); // Thai
+$UTF8_ranges[] = array("vietnamese", 0x001E00, 0x001EFF); // Vietnamese (assumption!!!)
+$UTF8_ranges[] = array("greek", 0x001F00, 0x001FFF); // Greek
+$UTF8_ranges[] = array("chinese", 0x002E80, 0x002FDF); // Chinese
+$UTF8_ranges[] = array("chinese", 0x003190, 0x00319F); // Chinese
+$UTF8_ranges[] = array("chinese", 0x0031C0, 0x0031EF); // Chinese
+$UTF8_ranges[] = array("chinese", 0x003400, 0x004DBF); // Chinese
+$UTF8_ranges[] = array("chinese", 0x004E00, 0x009FBF); // Chinese
+$UTF8_ranges[] = array("chinese", 0x00F900, 0x00FAFF); // Chinese
+$UTF8_ranges[] = array("other", 0x00FB00, 0x00FB06); // Latin ligatures
+$UTF8_ranges[] = array("hebrew", 0x00FB1D, 0x00FB4F); // Hebrew ligatures
+$UTF8_ranges[] = array("arabic", 0x00FB50, 0x00FDFF); // Arabic
+$UTF8_ranges[] = array("arabic", 0x00FE70, 0x00FEFF); // Arabic
+$UTF8_ranges[] = array("chinese", 0x020000, 0x02A6DF); // Chinese
+$UTF8_ranges[] = array("chinese", 0x02F800, 0x02FA1F); // Chinese
+
+// Numbers: These are always rendered in LTR, even when the rest of the text is RTL
+$UTF8_numbers = array(
+ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+ "\xD9\xA0", "\xD9\xA1", "\xD9\xA2", "\xD9\xA3", "\xD9\xA4", "\xD9\xA5", "\xD9\xA6", "\xD9\xA7", "\xD9\xA8", "\xD9\xA9",
+ "\xDB\xB0", "\xDB\xB1", "\xDB\xB2", "\xDB\xB3", "\xDB\xB4", "\xDB\xB5", "\xDB\xB6", "\xDB\xB7", "\xDB\xB8", "\xDB\xB9"
+ );
+
+// Parentheses and other paired characters that need to be reversed for proper appearance within RTL text
+$UTF8_brackets = array(
+ '('=>')', ')'=>'(',
+ '['=>']', ']'=>'[',
+ '{'=>'}', '}'=>'{',
+ '<'=>'>', '>'=>'<',
+ "\xC2\xAB"=>"\xC2\xBB", "\xC2\xBB"=>"\xC2\xAB",
+ "\xEF\xB4\xBF"=>"\xEF\xB4\xBE", "\xEF\xB4\xBE"=>"\xEF\xB4\xBF",
+ "\xE2\x80\xBA"=>"\xE2\x80\xB9", "\xE2\x80\xB9"=>"\xE2\x80\xBA",
+ "\xE2\x80\x9E"=>"\xE2\x80\x9C", "\xE2\x80\x9D"=>"\xE2\x80\x9C", "\xE2\x80\x9C"=>"\xE2\x80\x9D",
+ "\xE2\x80\x9A"=>"\xE2\x80\x98", "\xE2\x80\x99"=>"\xE2\x80\x98", "\xE2\x80\x98"=>"\xE2\x80\x99"
+ );
+
+/*
+ * Array of lower-case UTF8 letters with their upper-case equivalents
+ * key: lower-case UTF8 letter
+ * value: equivalent upper-case UTF8 letter
+ */
+$UTF8_LC_letters = array (
+ // basic Latin letters and Latin letters with diacritics
+ 'a'=>'A', 'à '=>'Ã', 'á'=>'Ã', 'â'=>'Ã', 'ã'=>'Ã', 'ä'=>'Ã', 'Ã¥'=>'Ã
', 'æ'=>'Ã', 'Ä'=>'Ä', 'Ä'=>'Ä', 'Ä
'=>'Ä', 'Ç'=>'Ç', 'Ç»'=>'Ǻ', 'ǽ'=>'Ǽ', 'ạ'=>'Ạ', 'ả'=>'Ả', 'ấ'=>'Ấ', 'ầ'=>'Ầ', 'ẩ'=>'Ẩ', 'ẫ'=>'Ẫ', 'áº'=>'Ậ', 'ắ'=>'Ắ', 'ằ'=>'Ằ', 'ẳ'=>'Ẳ', 'ẵ'=>'Ẵ', 'ặ'=>'Ặ',
+ 'b'=>'B',
+ 'c'=>'C', 'ç'=>'Ã', 'Ä'=>'Ä', 'Ä'=>'Ä', 'Ä'=>'Ä', 'Ä'=>'Ä',
+ 'd'=>'D', 'Ä'=>'Ä', 'Ä'=>'Ä',
+ 'e'=>'E', 'è'=>'Ã', 'é'=>'Ã', 'ê'=>'Ã', 'ë'=>'Ã', 'Ä'=>'Ä', 'Ä'=>'Ä', 'Ä'=>'Ä', 'Ä'=>'Ä', 'Ä'=>'Ä', 'ẹ'=>'Ẹ', 'ẻ'=>'Ẻ', 'ẽ'=>'Ẽ', 'ế'=>'Ế', 'á»'=>'á»', 'á»'=>'á»', 'á»
'=>'á»', 'á»'=>'á»',
+ 'f'=>'F',
+ 'g'=>'G', 'Ä'=>'Ä', 'Ä'=>'Ä', 'Ä¡'=>'Ä ', 'Ä£'=>'Ä¢',
+ 'h'=>'H', 'ĥ'=>'Ĥ', 'ħ'=>'Ħ',
+ 'i'=>'I', 'ì'=>'Ã', 'Ã'=>'Ã', 'î'=>'Ã', 'ï'=>'Ã', 'Ä©'=>'Ĩ', 'Ä«'=>'Ī', 'Ä'=>'Ĭ', 'į'=>'Ä®', 'ı'=>'İ', 'ij'=>'IJ', 'Ç'=>'Ç', 'á»'=>'á»', 'á»'=>'á»',
+ 'j'=>'J', 'ĵ'=>'Ĵ',
+ 'k'=>'K', 'ķ'=>'Ķ',
+ 'l'=>'L', 'ĺ'=>'Ĺ', 'ļ'=>'Ä»', 'ľ'=>'Ľ', 'Å'=>'Ä¿', 'Å'=>'Å',
+ 'm'=>'M',
+ 'n'=>'N', 'ñ'=>'Ã', 'Å'=>'Å', 'Å'=>'Å
', 'Å'=>'Å',
+ 'o'=>'O', 'ò'=>'Ã', 'ó'=>'Ã', 'ô'=>'Ã', 'õ'=>'Ã', 'ö'=>'Ã', 'ø'=>'Ã', 'Å'=>'Å', 'Å'=>'Å', 'Å'=>'Å', 'Å'=>'Å', 'Æ¡'=>'Æ ', 'Ç'=>'Ç', 'Ç¿'=>'Ǿ', 'á»'=>'á»', 'á»'=>'á»', 'á»'=>'á»', 'á»'=>'á»', 'á»'=>'á»', 'á»'=>'á»', 'á»'=>'á»', 'á»'=>'á»', 'á»'=>'á»', 'á»'=>'á»', 'ỡ'=>'á» ', 'ợ'=>'Ợ',
+ 'p'=>'P',
+ 'q'=>'Q',
+ 'r'=>'R', 'Å'=>'Å', 'Å'=>'Å', 'Å'=>'Å',
+ 's'=>'S', 'Å'=>'Å',
+ 't'=>'T',
+ 'u'=>'U', 'ù'=>'Ã', 'ú'=>'Ã', 'û'=>'Ã', 'ü'=>'Ã', 'Å'=>'Ŭ', 'ů'=>'Å®', 'ű'=>'Ű', 'ų'=>'Ų', 'ư'=>'Ư', 'Ç'=>'Ç', 'Ç'=>'Ç', 'Ç'=>'Ç', 'Ç'=>'Ç', 'Ç'=>'Ç', 'ụ'=>'Ụ', 'á»§'=>'Ủ', 'ứ'=>'Ứ', 'ừ'=>'Ừ', 'á»'=>'Ử', 'ữ'=>'á»®', 'á»±'=>'á»°',
+ 'v'=>'V',
+ 'w'=>'W', 'ŵ'=>'Å´', 'áº'=>'áº', 'áº'=>'áº', 'áº
'=>'áº',
+ 'x'=>'X',
+ 'y'=>'Y', 'ý'=>'Ã', 'Å·'=>'Ŷ', 'ÿ'=>'Ÿ', 'ỳ'=>'Ỳ', 'ỵ'=>'á»´', 'á»·'=>'á»¶', 'ỹ'=>'Ỹ',
+ 'z'=>'Z', 'ź'=>'Ź', 'ż'=>'Ż', 'ž'=>'Ž',
+ 'ð'=>'Ã',
+ 'Å'=>'Å',
+ 'þ'=>'Ã',
+ 'É'=>'Æ',
+ // Greek
+ 'α'=>'Î', 'ά'=>'Î',
+ 'β'=>'Î',
+ 'γ'=>'Î',
+ 'δ'=>'Î',
+ 'ε'=>'Î', 'Î'=>'Î',
+ 'ζ'=>'Î',
+ 'η'=>'Î', 'ή'=>'Î',
+ 'θ'=>'Î',
+ 'ι'=>'Î', 'ί'=>'Î', 'Ï'=>'Ϊ',
+ 'κ'=>'Î',
+ 'λ'=>'Î',
+ 'μ'=>'Î',
+ 'ν'=>'Î',
+ 'ξ'=>'Î',
+ 'ο'=>'Î', 'Ï'=>'Î',
+ 'Ï'=>'Î ',
+ 'Ï'=>'Ρ',
+ 'Ï'=>'Σ',
+ 'Ï'=>'Τ',
+ 'Ï
'=>'Î¥', 'Ï'=>'Ϋ',
+ 'Ï'=>'Φ',
+ 'Ï'=>'Χ',
+ 'Ï'=>'Ψ',
+ 'Ï'=>'Ω', 'Ï'=>'Î',
+ // Cyrillic
+ 'а'=>'Ð',
+ 'б'=>'Ð',
+ 'в'=>'Ð',
+ 'г'=>'Ð', 'Ò'=>'Ò', 'Ñ'=>'Ð', 'Ò'=>'Ò',
+ 'д'=>'Ð',
+ 'е'=>'Ð', 'Ñ'=>'Ð',
+ 'ж'=>'Ð', 'Ò'=>'Ò',
+ 'з'=>'Ð',
+ 'и'=>'Ð', 'й'=>'Ð', 'Ñ'=>'Ð', 'Ñ'=>'Ð',
+ 'Ñ'=>'Ð',
+ 'к'=>'Ð', 'Ñ'=>'Ð', 'Ò'=>'Ò', 'Ò'=>'Ò',
+ 'л'=>'Ð', 'Ñ'=>'Ð',
+ 'м'=>'Ð',
+ 'н'=>'Ð', 'Ò£'=>'Ò¢', 'Ñ'=>'Ð',
+ 'о'=>'Ð',
+ 'п'=>'Ð',
+ 'Ñ'=>'Ð ',
+ 'Ñ'=>'С',
+ 'Ñ'=>'Т', 'Ñ'=>'Ð',
+ 'Ñ'=>'У', 'Ñ'=>'Ð', 'Ò¯'=>'Ò®', 'Ò±'=>'Ò°',
+ 'Ñ'=>'Ф',
+ 'Ñ
'=>'Ð¥', 'Ò³'=>'Ò²',
+ 'Ñ'=>'Ц', 'Ñ'=>'Ð',
+ 'Ñ'=>'Ч', 'Ò¹'=>'Ò¸',
+ 'Ñ'=>'Ш', 'Ñ'=>'Щ',
+ 'Ñ'=>'Ъ', 'Ñ'=>'Ы', 'Ñ'=>'Ь',
+ 'Ñ'=>'Ð',
+ 'Ñ'=>'Ю',
+ 'Ñ'=>'Я',
+ 'Ñ'=>'Ð',
+ 'Ñ'=>'Ð',
+ 'Ñ'=>'Ð
',
+ 'Ò»'=>'Òº',
+ 'Ó'=>'Ó',
+ 'Ó©'=>'Ó¨'
+ );
+?>
--- date_class.php DELETED ---
Index: specialchars.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/specialchars.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- specialchars.php 7 Jul 2008 17:30:13 -0000 1.3
+++ specialchars.php 30 Apr 2009 18:32:43 -0000 1.4
@@ -1,1247 +1,1300 @@
-<?PHP
-/**
- * Special Character tables, for use by JavaScript to input characters
- * that aren't on your keyboard
- *
- * THIS FILE MUST BE SAVED IN UTF-8 ENCODING (or some special characters will be lost)
- *
- * When updating, be sure to add the language into the array $specialchar_languages,
- * add a case for that language into the switch, and add any new special characters
- * into the default case of the switch near the bottom.
- *
[...2516 lines suppressed...]
+ "¿" => "¿",
+ "«" => "«",
+ "»" => "»",
+ "†" => "â ",
+ "‡" => "â¡",
+ "∞" => "â", // infinity
+ "÷" => "÷",
+ "×" => "Ã",
+ "ª" => "ª", // feminine ordinal (nª)
+ "º" => "º", // masculine ordinal (nº)
+ "€" => "â¬",
+ "¢" => "¢",
+ "£" => "£",
+ "¥" => "Â¥",
+ "§" => "§",
+ "©" => "©",
+ "°" => "°", // degree symbol
+ "¶" => "¶",
+);
+?>
--- feedcreator.class.php DELETED ---
--- NEW FILE: hitcount.php ---
<?php
/**
* Counts how many hits.
*
* phpGedView: Genealogy Viewer
* Copyright (C) 2002 to 2008 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
*
* @version $Id: hitcount.php,v 1.1 2009/04/30 18:32:43 lsces Exp $
* @package PhpGedView
* @subpackage Charts
*/
if (!defined('PGV_PHPGEDVIEW')) {
header('HTTP/1.0 403 Forbidden');
exit;
}
//only do counter stuff if counters are enabled
if($SHOW_COUNTER)
{
$PGV_COUNTER_FILENAME = $INDEX_DIRECTORY.$GEDCOM."pgv_counters.txt";
$PGV_COUNTER_NAME = $GEDCOM."pgv_counter";
$PGV_INDI_COUNTER_NAME = $GEDCOM."pgv_indi_counter";
// if counter file doesn't exist create it
if(!file_exists($PGV_COUNTER_FILENAME))
{
$fp=fopen($PGV_COUNTER_FILENAME,"w");
fputs($fp,"0");
fclose($fp);
}
if(isset($pid) && find_person_record($pid)) { //individual counter
// Capitalize ID to make sure we have a correct hitcount on the individual
$pid = strtoupper($pid);
//see if already viewed individual this session
if(isset($_SESSION[$PGV_INDI_COUNTER_NAME][$pid]))
{
$hitCount = $_SESSION[$PGV_INDI_COUNTER_NAME][$pid];
}
else //haven't viewed individual this session
{
$l_fcontents = file_get_contents($PGV_COUNTER_FILENAME);
$ct = preg_match_all ("/@$pid@...);
if($ct>0) //found individual increment counter
{
$hitCount = $matches[1][0];
$hitCount = ((int)$hitCount) + 1;
$l_fcontents = preg_replace("/(@$pid@) (\d+)/","$1 $hitCount",$l_fcontents);
$fp=fopen($PGV_COUNTER_FILENAME,"r+");
fputs($fp,$l_fcontents);
fclose($fp);
}
else //first view of individual
{
$fp=fopen($PGV_COUNTER_FILENAME,"r+");
fseek($fp,0,SEEK_END);
fputs($fp,"\r\n@...."@ 1");
fclose($fp);
$hitCount=1;
}
$_SESSION[$PGV_INDI_COUNTER_NAME][$pid] = $hitCount;
}
}
else //web site counter
{
// has user started a session on site yet
if(isset($_SESSION[$PGV_COUNTER_NAME]))
{
$hitCount = $_SESSION[$PGV_COUNTER_NAME];
}
else //new user so increment counter and save
{
$l_fcontents = file_get_contents($PGV_COUNTER_FILENAME);
$ct = preg_match ("/^(\d+)/",$l_fcontents,$matches);
if($ct)
{
$hitCount = $matches[0];
$hitCount = ((int)$hitCount) + 1;
$ct = preg_match("/^(\d+)@/",$l_fcontents,$matches);
if($ct) //found missing return & newline
$l_fcontents = preg_replace("/^(\d+)/","$hitCount\r\n",$l_fcontents);
else //returns & newline exist
$l_fcontents = preg_replace("/^(\d+)/","$hitCount",$l_fcontents);
$fp=fopen($PGV_COUNTER_FILENAME,"r+");
fputs($fp,$l_fcontents);
fclose($fp);
}
else
$hitCount=0;
$_SESSION[$PGV_COUNTER_NAME]=$hitCount;
}
}
//replace the numbers with their images
if (array_key_exists('0', $PGV_IMAGES))
for($i=0;$i<10;$i++)
$hitCount = str_replace("$i","<img src=\"".$PGV_IMAGE_DIR."/".$PGV_IMAGES[$i]["digit"]."\" alt=\"pgv_counter\" />","$hitCount");
else
$hitCount="<span class=\"hit-counter\">{$hitCount}</span>";
if ($TEXT_DIRECTION=="rtl") $hitCount = getLRM() . $hitCount . getLRM();
}
?>
--- functions_edit.php DELETED ---
--- functions_print_lists.php DELETED ---
--- functions_name.php DELETED ---
Index: session.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/session.php,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- session.php 7 Jul 2008 17:30:13 -0000 1.19
+++ session.php 30 Apr 2009 18:32:43 -0000 1.20
@@ -1,1029 +1,707 @@
-<?php
-/**
- * Startup and session logic
- *
- * phpGedView: Genealogy Viewer
- * Copyright (C) 2002 to 2008 PGV Development Team
- *
- * 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.
[...1705 lines suppressed...]
+// Make sure that they follow the directionality of the page, not that of the
+// enclosed text.
+if ($TEXT_DIRECTION=='ltr') {
+ define ('PGV_LPARENS', '‎(');
+ define ('PGV_RPARENS', ')‎');
+} else {
+ define ('PGV_LPARENS', '‏(');
+ define ('PGV_RPARENS', ')‏');
+}
+
+// define constants to be used when setting permissions after creating files/directories
+if (substr(PHP_SAPI, 0, 3) == 'cgi') { // cgi-mode, should only be writable by owner
+ define('PGV_PERM_EXE', 0755); // to be used on directories, php files and htaccess files
+ define('PGV_PERM_FILE', 0644); // to be used on images, text files, etc
+} else { // mod_php mode, should be writable by everyone
+ define('PGV_PERM_EXE', 0777);
+ define('PGV_PERM_FILE', 0666);
+}
+
+?>
Index: reportheader.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/reportheader.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- reportheader.php 7 Jul 2008 17:30:13 -0000 1.4
+++ reportheader.php 30 Apr 2009 18:32:43 -0000 1.5
@@ -1,170 +1,172 @@
-<?php
-
-/**
- * Report Header Parser
- *
- * used by the SAX parser to generate PDF reports from the XML report file.
- *
- * @package PhpGedView
- * @subpackage Reports
- * @version $Id$
- */
-
-if (stristr($_SERVER["SCRIPT_NAME"], basename(__FILE__))!==false) {
- print "You cannot access an include file directly.";
- exit;
-}
-
-/**
- * element handlers array
- *
- * An array of element handler functions
- * @global array $elementHandler
- */
-$elementHandler = array();
-$elementHandler["PGVReport"]["start"] = "PGVReportSHandler";
-$elementHandler["PGVRvar"]["start"] = "PGVRvarSHandler";
-$elementHandler["PGVRTitle"]["start"] = "PGVRTitleSHandler";
-$elementHandler["PGVRTitle"]["end"] = "PGVRTitleEHandler";
-$elementHandler["PGVRDescription"]["end"] = "PGVRDescriptionEHandler";
-$elementHandler["PGVRInput"]["start"] = "PGVRInputSHandler";
-$elementHandler["PGVRInput"]["end"] = "PGVRInputEHandler";
-
-$text = "";
-$report_array = array();
-
-
-
-/**
- * xml start element handler
- *
- * this function is called whenever a starting element is reached
- * @param resource $parser the resource handler for the xml parser
- * @param string $name the name of the xml element parsed
- * @param array $attrs an array of key value pairs for the attributes
- */
-function startElement($parser, $name, $attrs) {
- global $elementHandler, $processIfs, $processGedcoms, $processRepeats;
-
- if (($processIfs==0 || $name=="PGVRif")) {
- if (isset($elementHandler[$name]["start"])) call_user_func($elementHandler[$name]["start"], $attrs);
- }
-}
-
-/**
- * xml end element handler
- *
- * this function is called whenever an ending element is reached
- * @param resource $parser the resource handler for the xml parser
- * @param string $name the name of the xml element parsed
- */
-function endElement($parser, $name) {
- global $elementHandler, $processIfs, $processGedcoms, $processRepeats;
-
- if (($processIfs==0 || $name=="PGVRif")) {
- if (isset($elementHandler[$name]["end"])) call_user_func($elementHandler[$name]["end"]);
- }
-}
-
-/**
- * xml character data handler
- *
- * this function is called whenever raw character data is reached
- * just print it to the screen
- * @param resource $parser the resource handler for the xml parser
- * @param string $data the name of the xml element parsed
- */
-function characterData($parser, $data) {
- global $text;
-
- $text .= $data;
-}
-
-function PGVReportSHandler($attrs) {
- global $report_array;
- global $PRIV_PUBLIC, $PRIV_USER, $PRIV_NONE, $PRIV_HIDE;
-
- $access = $PRIV_PUBLIC;
- if (isset($attrs["access"])) {
- if (isset($$attrs["access"])) $access = $$attrs["access"];
- }
- $report_array["access"] = $access;
-
- if (isset($attrs["icon"])) $report_array["icon"] = $attrs["icon"];
- else $report_array["icon"] = "";
-}
-
-function PGVRvarSHandler($attrs) {
- global $text, $vars, $pgv_lang, $factarray, $fact, $desc, $type, $generation;
-
- $var = $attrs["var"];
- if (!empty($var)) {
- $tfact = $fact;
- if ($fact=="EVEN") $tfact = $type;
- $var = preg_replace(array("/\[/","/\]/","/@fact/","/@desc/"), array("['","']",$tfact,$desc), $var);
- eval("if (!empty(\$$var)) \$var = \$$var;");
- $ct = preg_match("/factarray\['(.*)'\]/", $var, $match);
- if ($ct>0) $var = $match[1];
- $text .= $var;
- }
-}
-
-function PGVRTitleSHandler() {
- global $report_array, $text;
-
- $text = "";
-}
-
-function PGVRTitleEHandler() {
- global $report_array, $text;
-
- $report_array["title"] = $text;
- $text = "";
-}
-
-function PGVRDescriptionEHandler() {
- global $report_array, $text;
-
- $report_array["description"] = $text;
- $text = "";
-}
-
-function PGVRInputSHandler($attrs) {
- global $input, $text;
-
- $text ="";
- $input = array();
- $input["name"] = "";
- $input["type"] = "";
- $input["lookup"] = "";
- $input["default"] = "";
- $input["value"] = "";
- $input["options"] = "";
- if (isset($attrs["name"])) $input["name"] = $attrs["name"];
- if (isset($attrs["type"])) $input["type"] = $attrs["type"];
- if (isset($attrs["lookup"])) $input["lookup"] = $attrs["lookup"];
- if (isset($attrs["default"])) {
- if ($attrs["default"]=="NOW") $input["default"] = date("d M Y");
- else {
- $ct = preg_match("/NOW\s*([+\-])\s*(\d+)/", $attrs['default'], $match);
- if ($ct>0) {
- $plus = 1;
- if ($match[1]=="-") $plus = -1;
- $input["default"] = date("d M Y", time()+$plus*60*60*24*$match[2]);
- }
- else $input["default"] = $attrs["default"];
- }
- }
- if (isset($attrs["options"])) $input["options"] = $attrs["options"];
-}
-
-function PGVRInputEHandler() {
- global $report_array, $text, $input;
-
- $input["value"] = $text;
- if (!isset($report_array["inputs"])) $report_array["inputs"] = array();
- $report_array["inputs"][] = $input;
- $text = "";
-}
-
-?>
+<?php
+
+/**
+ * Report Header Parser
+ *
+ * used by the SAX parser to generate PDF reports from the XML report file.
+ *
+ * @package PhpGedView
+ * @subpackage Reports
+ * @version $Id$
+ */
+
+if (!defined('PGV_PHPGEDVIEW')) {
+ header('HTTP/1.0 403 Forbidden');
+ exit;
+}
+
+define('PGV_REPORTHEADER_PHP', '');
+
+/**
+ * element handlers array
+ *
+ * An array of element handler functions
+ * @global array $elementHandler
+ */
+$elementHandler = array();
+$elementHandler["PGVReport"]["start"] = "PGVReportSHandler";
+$elementHandler["PGVRvar"]["start"] = "PGVRvarSHandler";
+$elementHandler["PGVRTitle"]["start"] = "PGVRTitleSHandler";
+$elementHandler["PGVRTitle"]["end"] = "PGVRTitleEHandler";
+$elementHandler["PGVRDescription"]["end"] = "PGVRDescriptionEHandler";
+$elementHandler["PGVRInput"]["start"] = "PGVRInputSHandler";
+$elementHandler["PGVRInput"]["end"] = "PGVRInputEHandler";
+
+$text = "";
+$report_array = array();
+
+
+
+/**
+ * xml start element handler
+ *
+ * this function is called whenever a starting element is reached
+ * @param resource $parser the resource handler for the xml parser
+ * @param string $name the name of the xml element parsed
+ * @param array $attrs an array of key value pairs for the attributes
+ */
+function startElement($parser, $name, $attrs) {
+ global $elementHandler, $processIfs, $processGedcoms, $processRepeats;
+
+ if (($processIfs==0 || $name=="PGVRif")) {
+ if (isset($elementHandler[$name]["start"])) call_user_func($elementHandler[$name]["start"], $attrs);
+ }
+}
+
+/**
+ * xml end element handler
+ *
+ * this function is called whenever an ending element is reached
+ * @param resource $parser the resource handler for the xml parser
+ * @param string $name the name of the xml element parsed
+ */
+function endElement($parser, $name) {
+ global $elementHandler, $processIfs, $processGedcoms, $processRepeats;
+
+ if (($processIfs==0 || $name=="PGVRif")) {
+ if (isset($elementHandler[$name]["end"])) call_user_func($elementHandler[$name]["end"]);
+ }
+}
+
+/**
+ * xml character data handler
+ *
+ * this function is called whenever raw character data is reached
+ * just print it to the screen
+ * @param resource $parser the resource handler for the xml parser
+ * @param string $data the name of the xml element parsed
+ */
+function characterData($parser, $data) {
+ global $text;
+
+ $text .= $data;
+}
+
+function PGVReportSHandler($attrs) {
+ global $report_array;
+ global $PRIV_PUBLIC, $PRIV_USER, $PRIV_NONE, $PRIV_HIDE;
+
+ $access = $PRIV_PUBLIC;
+ if (isset($attrs["access"])) {
+ if (isset($$attrs["access"])) $access = $$attrs["access"];
+ }
+ $report_array["access"] = $access;
+
+ if (isset($attrs["icon"])) $report_array["icon"] = $attrs["icon"];
+ else $report_array["icon"] = "";
+}
+
+function PGVRvarSHandler($attrs) {
+ global $text, $vars, $pgv_lang, $factarray, $fact, $desc, $type, $generation;
+
+ $var = $attrs["var"];
+ if (!empty($var)) {
+ $tfact = $fact;
+ if ($fact=="EVEN") $tfact = $type;
+ $var = preg_replace(array("/\[/","/\]/","/@fact/","/@desc/"), array("['","']",$tfact,$desc), $var);
+ eval("if (!empty(\$$var)) \$var = \$$var;");
+ $ct = preg_match("/factarray\['(.*)'\]/", $var, $match);
+ if ($ct>0) $var = $match[1];
+ $text .= $var;
+ }
+}
+
+function PGVRTitleSHandler() {
+ global $report_array, $text;
+
+ $text = "";
+}
+
+function PGVRTitleEHandler() {
+ global $report_array, $text;
+
+ $report_array["title"] = $text;
+ $text = "";
+}
+
+function PGVRDescriptionEHandler() {
+ global $report_array, $text;
+
+ $report_array["description"] = $text;
+ $text = "";
+}
+
+function PGVRInputSHandler($attrs) {
+ global $input, $text;
+
+ $text ="";
+ $input = array();
+ $input["name"] = "";
+ $input["type"] = "";
+ $input["lookup"] = "";
+ $input["default"] = "";
+ $input["value"] = "";
+ $input["options"] = "";
+ if (isset($attrs["name"])) $input["name"] = $attrs["name"];
+ if (isset($attrs["type"])) $input["type"] = $attrs["type"];
+ if (isset($attrs["lookup"])) $input["lookup"] = $attrs["lookup"];
+ if (isset($attrs["default"])) {
+ if ($attrs["default"]=="NOW") $input["default"] = date("d M Y");
+ else {
+ $ct = preg_match("/NOW\s*([+\-])\s*(\d+)/", $attrs['default'], $match);
+ if ($ct>0) {
+ $plus = 1;
+ if ($match[1]=="-") $plus = -1;
+ $input["default"] = date("d M Y", time()+$plus*60*60*24*$match[2]);
+ }
+ else $input["default"] = $attrs["default"];
+ }
+ }
+ if (isset($attrs["options"])) $input["options"] = $attrs["options"];
+}
+
+function PGVRInputEHandler() {
+ global $report_array, $text, $input;
+
+ $input["value"] = $text;
+ if (!isset($report_array["inputs"])) $report_array["inputs"] = array();
+ $report_array["inputs"][] = $input;
+ $text = "";
+}
+
+?>
--- source_class.php DELETED ---
--- NEW FILE: family_nav.php ---
<?php
/**
* Family Navigator for phpGedView
*
* Display immediate family members table for fast navigation
* ( Currently used with Facts and Details tab, and Album Tab pages )
*
* phpGedView: Genealogy Viewer
* Copyright (C) 2007 to 2008 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 PhpGedView
* @subpackage Includes
* @version $Id: family_nav.php,v 1.1 2009/04/30 18:32:43 lsces Exp $
* @author Brian Holland
*/
if (!defined('PGV_PHPGEDVIEW')) {
header('HTTP/1.0 403 Forbidden');
exit;
}
define('PGV_FAMILY_NAV_PHP', '');
// -----------------------------------------------------------------------------
// Function Family Nav for PHPGedView - called by individual_ctrl.php
// -----------------------------------------------------------------------------
// function family_nav() {
// ------------------------------------------------------------------------------
global $edit, $tabno, $mediacnt, $GEDCOM, $pid;
$edit=$edit;
global $show_full, $tabno;
$show_full="1";
// Gets current clicked tab to set $tabno -----------
if (isset($_COOKIE['lastclick'])) {
$tabno=$_COOKIE['lastclick']-1;
}else{
$tabno=0;
}
// Debug only -----------------------------------------
// echo "Lastclick =" . $_COOKIE['lastclick'];
//echo "<br />";
//print "TAB =" . $tabno;
// =====================================================================
// Start Family Nav Table ----------------------------
echo "<table class=\"facts_table\" width='230' cellpadding=\"0\">";
global $pgv_lang, $SHOW_ID_NUMBERS, $PGV_IMAGE_DIR, $PGV_IMAGES;
global $spouselinks, $parentlinks, $DeathYr, $BirthYr;
global $TEXT_DIRECTION;
$personcount=0;
$families = $this->indi->getChildFamilies();
//-- parent families -------------------------------------------------------------
foreach($families as $famid=>$family) {
$label = $this->indi->getChildFamilyLabel($family);
$people = $this->buildFamilyList($family, "parents");
$styleadd = "";
?>
<tr>
<td style="padding-bottom: 4px;" align="center" colspan="2">
<?php
echo "<a href=family.php?famid=".$famid.">";
//echo "<b>". $pgv_lang["parent_family"] ." (".$famid.")</b>";
echo "<b>".$pgv_lang["parent_family"]." </b><span class=\"age\">(".$famid.")</span>";
echo "</a>";
?>
</td>
</tr>
<?php
if (isset($people["husb"])) {
$menu = array();
$menu["label"] = " " . $people["husb"]->getLabel() . " ". "\n";
$menu["submenuclass"] = "submenu";
$menu["items"] = array();
$submenu = array();
$submenu["label"] = print_pedigree_person_nav($people["husb"]->getXref(), 2, !$this->isPrintPreview(), 0, $personcount++);
$submenu["label"] .= PrintReady($parentlinks);
$menu["items"][] = $submenu;
if (PrintReady($people["husb"]->getDeathYear()) == 0) { $DeathYr = ""; }else{ $DeathYr = PrintReady($people["husb"]->getDeathYear()); }
if (PrintReady($people["husb"]->getBirthYear()) == 0) { $BirthYr = ""; }else{ $BirthYr = PrintReady($people["husb"]->getBirthYear()); }
?>
<tr>
<td class="facts_label<?php print $styleadd; ?>" nowrap="nowrap">
<?php // print $people["husb"]->getLabel(); ?>
<?php
print_menu($menu);
?>
</td>
<td align="center" class="<?php print $this->getPersonStyle($people["husb"]); ?>">
<?php
print "<a href=\"".encode_url($people["husb"]->getLinkUrl()."&tab={$tabno}")."\">";
print PrintReady($people["husb"]->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
print "</a>";
?>
</td>
</tr>
<?php
}
if (isset($people["wife"])) {
$menu = array();
$menu["label"] = " " . $people["wife"]->getLabel() . " ". "\n";
$menu["submenuclass"] = "submenu";
$menu["items"] = array();
$submenu = array();
$submenu["label"] = print_pedigree_person_nav($people["wife"]->getXref(), 2, !$this->isPrintPreview(), 0, $personcount++);
$submenu["label"] .= PrintReady($parentlinks);
$menu["items"][] = $submenu;
if (PrintReady($people["wife"]->getDeathYear()) == 0) { $DeathYr = ""; }else{ $DeathYr = PrintReady($people["wife"]->getDeathYear()); }
if (PrintReady($people["wife"]->getBirthYear()) == 0) { $BirthYr = ""; }else{ $BirthYr = PrintReady($people["wife"]->getBirthYear()); }
?>
<tr>
<td class="facts_label<?php print $styleadd; ?>">
<?php //print $people["wife"]->getLabel(); ?>
<?php
print_menu($menu);
?>
</td>
<td align="center" class="<?php print $this->getPersonStyle($people["wife"]); ?>">
<?php
print "<a href=\"".encode_url($people["wife"]->getLinkUrl()."&tab={$tabno}")."\">";
print PrintReady($people["wife"]->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
print "</a>";
?>
</td>
</tr>
<?php
}
if (isset($people["children"])) {
$elderdate = $family->getMarriageDate();
foreach($people["children"] as $key=>$child) {
if ($pid == $child->getXref() ){
}else{
$menu = array();
$menu["label"] = $child->getLabel() . "\n";
$menu["submenuclass"] = "submenu";
$menu["items"] = array();
$submenu = array();
$submenu["label"] = print_pedigree_person_nav($child->getXref(), 2, !$this->isPrintPreview(), 0, $personcount++);
$submenu["label"] .= PrintReady($spouselinks);
$menu["items"][] = $submenu;
}
if (PrintReady($child->getDeathYear()) == 0) { $DeathYr = ""; }else{ $DeathYr = PrintReady($child->getDeathYear()); }
if (PrintReady($child->getBirthYear()) == 0) { $BirthYr = ""; }else{ $BirthYr = PrintReady($child->getBirthYear()); }
?>
<tr>
<td class="facts_label<?php print $styleadd; ?>">
<?php
if ($pid == $child->getXref() ) {
print $child->getLabel();
}else{
print_menu($menu);
}
?>
</td>
<td align="center" class="<?php print $this->getPersonStyle($child); ?>">
<?php
if ($pid == $child->getXref()) {
print PrintReady($child->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
}else{
print "<a href=\"".encode_url($child->getLinkUrl()."&tab={$tabno}")."\">";
print PrintReady($child->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
print "</a>";
}
?>
</td>
</tr>
<?php
$elderdate = $child->getBirthDate();
}
}
}
//-- step families ----------------------------------------------------------------
foreach($this->indi->getStepFamilies() as $famid=>$family) {
$label = $this->indi->getStepFamilyLabel($family);
$people = $this->buildFamilyList($family, "step");
if ($people){
echo "<tr><td><br /></td><td></td></tr>";
}
$styleadd = "";
$elderdate = "";
?>
<tr>
<td style="padding-bottom: 4px;" align="center" colspan="2">
<?php
echo "<a href=family.php?famid=".$famid.">";
echo "<b>".$pgv_lang["step_parent_family"]." </b><span class=\"age\">(".$famid.")</span>";
echo "</a>";
?>
</td>
</tr>
<?php
//if (isset($people["husb"]) && $people["husb"]->getLabel() == ".") {
if (isset($people["husb"]) ) {
$menu = array();
if ($people["husb"]->getLabel() == ".") {
$menu["label"] = " " . $pgv_lang["stepdad"] . " ". "\n";
}else{
$menu["label"] = " " . $people["husb"]->getLabel() . " ". "\n";
}
$menu["submenuclass"] = "submenu";
$menu["items"] = array();
$submenu = array();
$submenu["label"] = print_pedigree_person_nav($people["husb"]->getXref(), 2, !$this->isPrintPreview(), 0, $personcount++);
$submenu["label"] .= PrintReady($parentlinks);
$menu["items"][] = $submenu;
if (PrintReady($people["husb"]->getDeathYear()) == 0) { $DeathYr = ""; }else{ $DeathYr = PrintReady($people["husb"]->getDeathYear()); }
if (PrintReady($people["husb"]->getBirthYear()) == 0) { $BirthYr = ""; }else{ $BirthYr = PrintReady($people["husb"]->getBirthYear()); }
?>
<tr>
<td class="facts_label<?php print $styleadd; ?>" nowrap="nowrap">
<?php
print_menu($menu);
?>
</td>
<td align="center" class="<?php print $this->getPersonStyle($people["husb"]); ?>" >
<?php
print "<a href=\"".encode_url($people["husb"]->getLinkUrl()."&tab={$tabno}")."\">";
print PrintReady($people["husb"]->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
print "</a>";
?>
</td>
</tr>
<?php
$elderdate = $people["husb"]->getBirthDate();
}
$styleadd = "";
//if (isset($people["wife"]) && $people["wife"]->getLabel() == ".") {
if (isset($people["wife"]) ) {
$menu = array();
if ($people["wife"]->getLabel() == ".") {
$menu["label"] = " " . $pgv_lang["stepmom"] . " ". "\n";
}else{
$menu["label"] = " " . $people["wife"]->getLabel() . " ". "\n";
}
$menu["submenuclass"] = "submenu";
$menu["items"] = array();
$submenu = array();
$submenu["label"] = print_pedigree_person_nav($people["wife"]->getXref(), 2, !$this->isPrintPreview(), 0, $personcount++);
$submenu["label"] .= PrintReady($parentlinks);
$menu["items"][] = $submenu;
if (PrintReady($people["wife"]->getDeathYear()) == 0) { $DeathYr = ""; }else{ $DeathYr = PrintReady($people["wife"]->getDeathYear()); }
if (PrintReady($people["wife"]->getBirthYear()) == 0) { $BirthYr = ""; }else{ $BirthYr = PrintReady($people["wife"]->getBirthYear()); }
?>
<tr>
<td class="facts_label<?php print $styleadd; ?>" nowrap="nowrap">
<?php
print_menu($menu);
?>
</td>
<td align="center" class="<?php print $this->getPersonStyle($people["wife"]); ?>">
<?php
print "<a href=\"".encode_url($people["wife"]->getLinkUrl()."&tab={$tabno}")."\">";
print PrintReady($people["wife"]->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
print "</a>";
?>
</td>
</tr>
<?php
}
$styleadd = "";
if (isset($people["children"])) {
$elderdate = $family->getMarriageDate();
foreach($people["children"] as $key=>$child) {
$menu = array();
$menu["label"] = $child->getLabel() . "\n";
$menu["submenuclass"] = "submenu";
$menu["items"] = array();
$submenu = array();
$submenu["label"] = print_pedigree_person_nav($child->getXref(), 2, !$this->isPrintPreview(), 0, $personcount++);
$submenu["label"] .= PrintReady($spouselinks);
$menu["items"][] = $submenu;
if (PrintReady($child->getDeathYear()) == 0) { $DeathYr = ""; }else{ $DeathYr = PrintReady($child->getDeathYear()); }
if (PrintReady($child->getBirthYear()) == 0) { $BirthYr = ""; }else{ $BirthYr = PrintReady($child->getBirthYear()); }
?>
<tr>
<td class="facts_label<?php print $styleadd; ?>" nowrap="nowrap">
<?php //print $child->getLabel(); ?>
<?php
print_menu($menu);
?>
</td>
<td align="center" class="<?php print $this->getPersonStyle($child); ?>">
<?php
print "<a href=\"".encode_url($child->getLinkUrl()."&tab={$tabno}")."\">";
print PrintReady($child->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
print "</a>";
?>
</td>
</tr>
<?php
//$elderdate = $child->getBirthDate();
}
}
}
//-- spouse and children --------------------------------------------------
$families = $this->indi->getSpouseFamilies();
foreach($families as $famid=>$family) {
echo "<tr><td><br /></td><td></td></tr>";
?>
<tr>
<td style="padding-bottom: 4px;" align="center" colspan="2">
<?php
echo "<a href=family.php?famid=".$famid.">";
echo "<b>".$pgv_lang["immediate_family"]." </b><span class=\"age\">(".$famid.")</span>";
echo "</a>";
?>
</td>
</tr>
<?php
//$personcount = 0;
$people = $this->buildFamilyList($family, "spouse");
if ($this->indi->equals($people["husb"])){
$spousetag = 'WIFE';
}else{
$spousetag = 'HUSB';
}
$styleadd = "";
if ( isset($people["husb"]) && $spousetag == 'HUSB' ) {
$menu = array();
$menu["label"] = " " . $people["husb"]->getLabel() . " ". "\n";
$menu["submenuclass"] = "submenu";
$menu["items"] = array();
$submenu = array();
$submenu["label"] = print_pedigree_person_nav($people["husb"]->getXref(), 2, !$this->isPrintPreview(), 0, $personcount++);
$submenu["label"] .= PrintReady($parentlinks);
$menu["items"][] = $submenu;
if (PrintReady($people["husb"]->getDeathYear()) == 0) { $DeathYr = ""; }else{ $DeathYr = PrintReady($people["husb"]->getDeathYear()); }
if (PrintReady($people["husb"]->getBirthYear()) == 0) { $BirthYr = ""; }else{ $BirthYr = PrintReady($people["husb"]->getBirthYear()); }
?>
<tr>
<td class="facts_label<?php print $styleadd; ?>" nowrap="nowrap">
<?php // print $people["husb"]->getLabel(); ?>
<?php
print_menu($menu);
?>
</td>
<td align="center" class="<?php print $this->getPersonStyle($people["husb"]); ?>">
<?php
if ($pid == $people["husb"]->getXref()) {
print PrintReady($people["husb"]->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
}else{
print "<a href=\"".encode_url($people["husb"]->getLinkUrl()."&tab={$tabno}")."\">";
print PrintReady($people["husb"]->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
print "</a>";
}
?>
</td>
</tr>
<?php
}
if ( isset($people["wife"]) && $spousetag == 'WIFE') {
$menu = array();
$menu["label"] = " " . $people["wife"]->getLabel() . " ". "\n";
$menu["submenuclass"] = "submenu";
$menu["items"] = array();
$submenu = array();
$submenu["label"] = print_pedigree_person_nav($people["wife"]->getXref(), 2, !$this->isPrintPreview(), 0, $personcount++);
$submenu["label"] .= PrintReady($parentlinks);
$menu["items"][] = $submenu;
if (PrintReady($people["wife"]->getDeathYear()) == 0) { $DeathYr = ""; }else{ $DeathYr = PrintReady($people["wife"]->getDeathYear()); }
if (PrintReady($people["wife"]->getBirthYear()) == 0) { $BirthYr = ""; }else{ $BirthYr = PrintReady($people["wife"]->getBirthYear()); }
?>
<tr>
<td class="facts_label<?php print $styleadd; ?>" nowrap="nowrap">
<?php // print $people["wife"]->getLabel(); ?>
<?php
print_menu($menu);
?>
</td>
<td align="center" class="<?php print $this->getPersonStyle($people["wife"]); ?>">
<?php
if ($pid == $people["wife"]->getXref()) {
print PrintReady($people["wife"]->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
}else{
print "<a href=\"".encode_url($people["wife"]->getLinkUrl()."&tab={$tabno}")."\">";
print PrintReady($people["wife"]->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
print "</a>";
}
?>
</td>
</tr>
<?php
}
$styleadd = "";
if (isset($people["children"])) {
foreach($people["children"] as $key=>$child) {
$menu = array();
$menu["label"] = " " . $child->getLabel() . " ". "\n";
$menu["submenuclass"] = "submenu";
$menu["items"] = array();
$submenu = array();
$submenu["label"] = print_pedigree_person_nav($child->getXref(), 2, !$this->isPrintPreview(), 0, $personcount++);
$submenu["label"] .= PrintReady($spouselinks);
$menu["items"][] = $submenu;
if (PrintReady($child->getDeathYear()) == 0) { $DeathYr = ""; }else{ $DeathYr = PrintReady($child->getDeathYear()); }
if (PrintReady($child->getBirthYear()) == 0) { $BirthYr = ""; }else{ $BirthYr = PrintReady($child->getBirthYear()); }
?>
<tr>
<td class="facts_label<?php print $styleadd; ?>" nowrap="nowrap">
<?php //print $child->getLabel(); ?>
<?php
print_menu($menu);
?>
</td>
<td align="center" class="<?php print $this->getPersonStyle($child); ?>">
<?php
print "<a href=\"".encode_url($child->getLinkUrl()."&tab={$tabno}")."\">";
print PrintReady($child->getFullName());
print "<font size=\"1\"><br />" . $BirthYr . " - " . $DeathYr . "</font>";
print "</a>";
?>
</td>
</tr>
<?php
}
}
}
echo "</table>";
// -----------------------------------------------------------------------------
// }
// -----------------------------------------------------------------------------
// End Family Nav Table
// -----------------------------------------------------------------------------
// ==================================================================
require_once 'includes/functions/functions_charts.php';
/**
* print the information for an individual chart box
*
* find and print a given individuals information for a pedigree chart
* @param string $pid the Gedcom Xref ID of the to print
* @param int $style the style to print the box in, 1 for smaller boxes, 2 for larger boxes
* @param boolean $show_famlink set to true to show the icons for the popup links and the zoomboxes
* @param int $count on some charts it is important to keep a count of how many boxes were printed
*/
function print_pedigree_person_nav($pid, $style=1, $show_famlink=true, $count=0, $personcount="1") {
global $HIDE_LIVE_PEOPLE, $SHOW_LIVING_NAMES, $PRIV_PUBLIC, $factarray, $ZOOM_BOXES, $LINK_ICONS, $view, $SCRIPT_NAME, $GEDCOM;
global $pgv_lang, $MULTI_MEDIA, $SHOW_HIGHLIGHT_IMAGES, $bwidth, $bheight, $PEDIGREE_FULL_DETAILS, $SHOW_ID_NUMBERS, $SHOW_PEDIGREE_PLACES;
global $CONTACT_EMAIL, $CONTACT_METHOD, $TEXT_DIRECTION, $DEFAULT_PEDIGREE_GENERATIONS, $OLD_PGENS, $talloffset, $PEDIGREE_LAYOUT, $MEDIA_DIRECTORY;
global $PGV_IMAGE_DIR, $PGV_IMAGES, $ABBREVIATE_CHART_LABELS, $USE_MEDIA_VIEWER;
global $chart_style, $box_width, $generations, $show_spouse, $show_full;
global $CHART_BOX_TAGS, $SHOW_LDS_AT_GLANCE, $PEDIGREE_SHOW_GENDER;
global $SEARCH_SPIDER;
global $spouselinks, $parentlinks, $step_parentlinks, $persons, $person_step, $person_parent, $tabno, $theme_name, $spousetag;
global $natdad, $natmom;
if ($style != 2) $style=1;
if (empty($show_full)) $show_full = 0;
if (empty($PEDIGREE_FULL_DETAILS)) $PEDIGREE_FULL_DETAILS = 0;
if (!isset($OLD_PGENS)) $OLD_PGENS = $DEFAULT_PEDIGREE_GENERATIONS;
if (!isset($talloffset)) $talloffset = $PEDIGREE_LAYOUT;
$person=Person::getInstance($pid);
if ($pid==false || empty($person)) {
$spouselinks = false;
$parentlinks = false;
$step_parentlinks = false;
}
$tmp=array('M'=>'','F'=>'F', 'U'=>'NN');
$isF=$tmp[$person->getSex()];
$spouselinks = "";
$parentlinks = "";
$step_parentlinks = "";
$disp=$person->canDisplayDetails();
if ($person->canDisplayName()) {
if ($show_famlink && (empty($SEARCH_SPIDER))) {
if ($LINK_ICONS!="disabled") {
//-- draw a box for the family popup
if ($TEXT_DIRECTION=="rtl") {
$spouselinks .= "\n\t\t\t<table class=\"person_box$isF\" style=\" position: absolute; top: -19px; left: -1px; \"><tr><td align=\"right\" style=\"font-size:10px;font-weight:normal;\" class=\"name2\" nowrap=\"nowrap\">";
$spouselinks .= "<font size=\"1\"><b>" . $pgv_lang['family'] . "</b><br /></font>";
$parentlinks .= "\n\t\t\t<table class=\"person_box$isF\" style=\" position: absolute; top: -19px; left: -1px; \"><tr><td align=\"right\" style=\"font-size:10px;font-weight:normal;\" class=\"name2\" nowrap=\"nowrap\">";
$parentlinks .= "<font size=\"1\"><b>" . $pgv_lang['parents'] . "</b><br /></font>";
$step_parentlinks .= "\n\t\t\t<table class=\"person_box$isF\" style=\" position: absolute; top: -19px; left: -1px; \"><tr><td align=\"right\" style=\"font-size:10px;font-weight:normal;\" class=\"name2\" nowrap=\"nowrap\">";
$step_parentlinks .= "<font size=\"1\"><b>" . $pgv_lang['parents'] . "</b><br /></font>";
}else{
$spouselinks .= "\n\t\t\t<table class=\"person_box$isF\" style=\" position: absolute; top: -19px; right: -1px; \"><tr><td align=\"left\" style=\"font-size:10px;font-weight:normal;\" class=\"name2\" nowrap=\"nowrap\">";
$spouselinks .= "<font size=\"1\"><b>" . $pgv_lang['family'] . "</b><br /></font>";
$parentlinks .= "\n\t\t\t<table class=\"person_box$isF\" style=\" position: absolute; top: -19px; right: -1px; \"><tr><td align=\"left\" style=\"font-size:10px;font-weight:normal;\" class=\"name2\" nowrap=\"nowrap\">";
$parentlinks .= "<font size=\"1\"><b>" . $pgv_lang['parents'] . "</b><br /></font>";
$step_parentlinks .= "\n\t\t\t<table class=\"person_box$isF\" style=\" position: absolute; top: -19px; right: -1px; \"><tr><td align=\"left\" style=\"font-size:10px;font-weight:normal;\" class=\"name2\" nowrap=\"nowrap\">";
$step_parentlinks .= "<font size=\"1\"><b>" . $pgv_lang['parents'] . "</b><br /></font>";
}
$persons = "";
$person_parent = "";
$person_step = "";
//-- parent families --------------------------------------
$fams = $person->getChildFamilies();
foreach($fams as $famid=>$family) {
if (!is_null($family)) {
$husb = $family->getHusband($person);
$wife = $family->getWife($person);
// $spouse = $family->getSpouse($person);
$children = $family->getChildren();
$num = count($children);
// Husband ------------------------------
if ($husb || $num>0) {
if ($TEXT_DIRECTION=="ltr") {
$title = $pgv_lang["familybook_chart"].": ".$famid;
}else{
$title = $famid." :".$pgv_lang["familybook_chart"];
}
if ($husb) {
$person_parent="Yes";
if ($TEXT_DIRECTION=="ltr") {
$title = $pgv_lang["indi_info"].": ".$husb->getXref();
}else{
$title = $husb->getXref()." :".$pgv_lang["indi_info"];
}
$parentlinks .= "<a href=\"".encode_url($husb->getLinkUrl()."&tab={$tabno}")."\">";
$parentlinks .= PrintReady($husb->getFullName());
$parentlinks .= "</a>";
$parentlinks .= "<br />";
$natdad = "yes";
}
}
// Wife ------------------------------
if ($wife || $num>0) {
if ($TEXT_DIRECTION=="ltr") {
$title = $pgv_lang["familybook_chart"].": ".$famid;
}else{
$title = $famid." :".$pgv_lang["familybook_chart"];
}
if ($wife) {
$person_parent="Yes";
if ($TEXT_DIRECTION=="ltr") {
$title = $pgv_lang["indi_info"].": ".$wife->getXref();
}else{
$title = $wife->getXref()." :".$pgv_lang["indi_info"];
}
$parentlinks .= "<a href=\"".encode_url($wife->getLinkUrl()."&tab={$tabno}")."\">";
$parentlinks .= PrintReady($wife->getFullName());
$parentlinks .= "</a>";
$parentlinks .= "<br />";
$natmom = "yes";
}
}
}
}
//-- step families -----------------------------------------
$fams = $person->getStepFamilies();
foreach($fams as $famid=>$family) {
if (!is_null($family)) {
$husb = $family->getHusband($person);
$wife = $family->getWife($person);
// $spouse = $family->getSpouse($person);
$children = $family->getChildren();
$num = count($children);
if ($natdad == "yes") {
}else{
// Husband -----------------------
if ( ($husb || $num>0) && $husb->getLabel() != "." ) {
if ($TEXT_DIRECTION=="ltr") {
$title = $pgv_lang["familybook_chart"].": ".$famid;
}else{
$title = $famid." :".$pgv_lang["familybook_chart"];
}
if ($husb) {
$person_step="Yes";
if ($TEXT_DIRECTION=="ltr") {
$title = $pgv_lang["indi_info"].": ".$husb->getXref();
}else{
$title = $husb->getXref()." :".$pgv_lang["indi_info"];
}
$parentlinks .= "<a href=\"".encode_url($husb->getLinkUrl()."&tab={$tabno}")."\">";
$parentlinks .= PrintReady($husb->getFullName());
$parentlinks .= "</a>";
$parentlinks .= "<br />";
}
}
}
if ($natmom == "yes") {
}else{
// Wife ----------------------------
if ($wife || $num>0) {
if ($TEXT_DIRECTION=="ltr") {
$title = $pgv_lang["familybook_chart"].": ".$famid;
}else{
$title = $famid." :".$pgv_lang["familybook_chart"];
}
if ($wife) {
$person_step="Yes";
if ($TEXT_DIRECTION=="ltr") {
$title = $pgv_lang["indi_info"].": ".$wife->getXref();
}else{
$title = $wife->getXref()." :".$pgv_lang["indi_info"];
}
$parentlinks .= "<a href=\"".encode_url($wife->getLinkUrl()."&tab={$tabno}")."\">";
$parentlinks .= PrintReady($wife->getFullName());
$parentlinks .= "</a>";
$parentlinks .= "<br />";
}
}
}
}
}
// Spouse Families -------------------------------------- @var $family Family
$fams = $person->getSpouseFamilies();
foreach($fams as $famid=>$family) {
if (!is_null($family)) {
$spouse = $family->getSpouse($person);
$children = $family->getChildren();
$num = count($children);
// Spouse ------------------------------
if ($spouse || $num>0) {
if ($TEXT_DIRECTION=="ltr") {
$title = $pgv_lang["familybook_chart"].": ".$famid;
}else{
$title = $famid." :".$pgv_lang["familybook_chart"];
}
if ($spouse) {
if ($TEXT_DIRECTION=="ltr") {
$title = $pgv_lang["indi_info"].": ".$spouse->getXref();
}else{
$title = $spouse->getXref()." :".$pgv_lang["indi_info"];
}
$spouselinks .= "<a href=\"".encode_url($spouse->getLinkUrl()."&tab={$tabno}")."\">";
$spouselinks .= PrintReady($spouse->getFullName());
$spouselinks .= "</a><br />";
if ($spouse->getFullName() != "") {
$persons = "Yes";
}
}
}
// Children ------------------------------ @var $child Person
foreach($children as $c=>$child) {
if ($child) {
$persons="Yes";
if ($TEXT_DIRECTION=="ltr") {
$title = $pgv_lang["indi_info"].": ".$child->getXref();
$spouselinks .= "o ";
$spouselinks .= "<a href=\"".encode_url($child->getLinkUrl()."&tab={$tabno}")."\">";
$spouselinks .= PrintReady($child->getFullName());
$spouselinks .= "</a>";
$spouselinks .= "<br />";
}else{
$title = $child->getXref()." :".$pgv_lang["indi_info"];
$spouselinks .= "<a href=\"".encode_url($child->getLinkUrl()."&tab={$tabno}")."\">";
$spouselinks .= PrintReady($child->getFullName() );
$spouselinks .= "</a>";
$spouselinks .= " o";
$spouselinks .= "<br />";
}
}
}
}
}
?>
<?php if ($theme_name=="Xenea" || $theme_name=="Standard" || $theme_name=="Wood" || $theme_name=="Ocean") { ?>
<style type="text/css" rel="stylesheet">
a:hover .name2 { color: #222222; }
</style>
<?php } ?>
<?php
if ($persons != "Yes") {
$spouselinks .= "(" . $pgv_lang['none'] . ")</td></tr></table>\n\t\t";
}else{
$spouselinks .= "</td></tr></table>\n\t\t";
}
if ($person_parent != "Yes") {
$parentlinks .= "(" . $pgv_lang['unknown'] . ")</td></tr></table>\n\t\t";
}else{
$parentlinks .= "</td></tr></table>\n\t\t";
}
if ($person_step != "Yes") {
$step_parentlinks .= "(" . $pgv_lang['unknown'] . ")</td></tr></table>\n\t\t";
}else{
$step_parentlinks .= "</td></tr></table>\n\t\t";
}
}
}
}
}
// ==============================================================
?>
Index: lang_settings_std.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/lang_settings_std.php,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- lang_settings_std.php 7 Jul 2008 17:30:14 -0000 1.6
+++ lang_settings_std.php 30 Apr 2009 18:32:43 -0000 1.7
@@ -1,67 +1,940 @@
-<?php
-/**
- * Standard file of language_settings.php
- *
- * -> NEVER manually delete or edit this file <-
- *
- * phpGedView: Genealogy Viewer
- * Copyright (C) 2002 to 2007 John Finlay and Others
- *
- * 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
[...976 lines suppressed...]
+'factsfile'=>'languages/facts.ar.php',
+'adminfile'=>'languages/admin.ar.php',
+'editorfile'=>'languages/editor.ar.php',
+'countryfile'=>'languages/countries.ar.php',
+'faqlistfile'=>'languages/faqlist.ar.php',
+'extrafile'=>'languages/extra.ar.php',
+'DATE_FORMAT'=>'D M Y',
+'TIME_FORMAT'=>'h:i:sA',
+'WEEK_START'=>'0',
+'TEXT_DIRECTION'=>'rtl',
+'NAME_REVERSE'=>false,
+'ALPHABET_upper'=>'Ø§Ø¨ØªØ«Ø¬ØØ®Ø¯Ø°Ø±Ø²Ø³Ø´ØµØ¶Ø·Ø¸Ø¹ØºÙÙÙÙÙ
ÙÙÙÙØ¢Ø©ÙÛ',
+'ALPHABET_lower'=>'Ø§Ø¨ØªØ«Ø¬ØØ®Ø¯Ø°Ø±Ø²Ø³Ø´ØµØ¶Ø·Ø¸Ø¹ØºÙÙÙÙÙ
ÙÙÙÙØ¢Ø©ÙÛ',
+'MULTI_LETTER_ALPHABET'=>'',
+'MULTI_LETTER_EQUIV'=>'',
+'DICTIONARY_SORT'=>false,
+'COLLATION'=>'utf8_unicode_ci'
+);
+
+?>
--- GEClippings.php DELETED ---
--- class_stats.php DELETED ---
--- gedcomrecord.php DELETED ---
--- NEW FILE: media_reorder_count.php ---
<?php
/**
* Provides media count for reorder media Items using drag and drop
*
* phpGedView: Genealogy Viewer
* Copyright (C) 2002 to 2008 PHPGedView 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 PhpGedView
* @subpackage Module
* @version $Id: media_reorder_count.php,v 1.1 2009/04/30 18:32:43 lsces Exp $
* @author Brian Holland
*/
if (!defined('PGV_PHPGEDVIEW')) {
header('HTTP/1.0 403 Forbidden');
exit;
}
define('PGV_MEDIA_REORDER_COUNT_PHP', '');
// Find if indi and family associated media exists and then count them ( $tot_med_ct) ===================================================
// Check indi gedcom items
$gedrec = find_gedcom_record($pid);
$level=0;
if ($level>0) $regexp = "/".$level." OBJE @(.*)@/";
else $regexp = "/OBJE @(.*)@/";
// $regexp = "/OBJE @(.*)@/";
$ct_indi = preg_match_all($regexp, $gedrec, $match, PREG_SET_ORDER);
for($i=0; $i<$ct_indi; $i++) {
if (!isset($current_objes[$match[$i][1]])) $current_objes[$match[$i][1]] = 1;
else $current_objes[$match[$i][1]]++;
$obje_links[$match[$i][1]][] = $match[$i][0];
}
//-- Test if indi is related
$ct = preg_match_all("/1 FAMS @(.*)@/", $gedrec, $match, PREG_SET_ORDER);
if ($ct>0) {
// find all the related ids
$related=true;
if ($related) {
$ct = preg_match_all("/1 FAMS @(.*)@/", $gedrec, $match, PREG_SET_ORDER);
for($i=0; $i<$ct; $i++) {
$ids[] = trim($match[$i][1]);
}
}
// Use database to get details of indi related items ---------------------------------------------
$sqlmm = "SELECT DISTINCT ";
// $sqlmm = "SELECT ";
$sqlmm .= "m_media, m_ext, m_file, m_titl, m_gedfile, m_gedrec, mm_gid, mm_gedrec FROM ".$TBLPREFIX."media, ".$TBLPREFIX."media_mapping where ";
$sqlmm .= "mm_gid IN (";
$i=0;
foreach($ids as $key=>$id) {
if ($i>0) $sqlmm .= ",";
$sqlmm .= "'".$DBCONN->escapeSimple($id)."'";
$i++;
}
$sqlmm .= ") AND mm_gedfile = '".$GEDCOMS[$GEDCOM]["id"]."' AND mm_media=m_media AND mm_gedfile=m_gedfile ";
//-- for family and source page only show level 1 obje references----------------------------------------
$level=0;
if ($level>0) {
$sqlmm .= "AND mm_gedrec ".PGV_DB_LIKE." '$level OBJE%'";
}
// Order by -------------------------------------------------------
$sqlmm .= " ORDER BY mm_gid DESC ";
// Perform DB Query -----------------------
$resmm = dbquery($sqlmm);
// Get related media item count
$ct_db = $resmm->numRows();
//else if indi not related
}else{
// Get related media item count
$ct_db = 0;
}
// Gedcom media count --------------------------------
if (isset($current_objes)) {
$ct_objs = count($current_objes);
}else{
$ct_objs = 0;
}
// $foundObjs = array();
//Total Media count
$tot_med_ct = ($ct_db + $ct_objs);
// Debug --------------------------------------------
// echo "<br />";
// print_r($current_objes);
// echo "<br />";
// echo "<br />";
// echo "Objes count = " . $ct_objs . "<br />";
// echo "Db count = " . $ct_db . "<br />";
// echo "Indi count = " . $ct_indi . "<br /><br />";
// echo "Total Media count = " . $tot_med_ct;
// =====================================================================================
?>
--- GrampsExport.php DELETED ---
--- GEDownloadGedcom.php DELETED ---
--- functions_mail.php DELETED ---
--- family_class.php DELETED ---
--- GEWebService.php DELETED ---
--- mutex_class.php DELETED ---
--- functions_editlang.php DELETED ---
Index: lang_codes_std.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/lang_codes_std.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- lang_codes_std.php 7 Jul 2008 17:30:14 -0000 1.5
+++ lang_codes_std.php 30 Apr 2009 18:32:43 -0000 1.6
@@ -1,60 +1,263 @@
-<?php
-/**
- *
- * @package PhpGedView
- * @subpackage Languages
- * @version $Id$
- *
- * RFC1766 (HTML language codes) refers to ISO standard 639, and specifies that the
- * 2-character language code of the ISO standard should be used, and that an ISO
- * standard country code can be used as a suffix to the two-character major language
- * code to produce regional variants. For example, en-us for the English (US) variant.
- *
- * When checking the ISO-639 codes, you should use the Library of Congress site as your
- * authority. LOC is the current registrar for ISO-639.
- *
- * See Library of Congress http://www.loc.gov/standards/iso639-2/langcodes.html
- *
- */
-
-/**
- * This table lists various languages and an appropriate flag for that language.
- * The key field is the abbreviation, internal to PhpGedView, for the language.
- *
- * The abbreviations are used when a new language is to be implemented in PhpGedView.
- * For example, the abbreviation for "Croatian" is "hr". This means that the various
- * files within PhpGedView that are specific to Croatian would have .hr. as the last
- * part of the file name, and the Croatian flag would be croatia.gif.
- *
- * Note that PhpGedView allows the flag names to be other than as shown above. For
- * example, the flag for English (abbreviation "en") could be "australia.gif".
- *
- * This table is used to produce the list of languages that can still be added to
- * PhpGedView.
- *
- */
-
-if (stristr($_SERVER["SCRIPT_NAME"], basename(__FILE__))!==false) {
- print "You cannot access an include file directly.";
- exit;
-}
-
-$lng_codes["en"] = array("English", "United Kingdom");
-
-/**
- * This table provides the list of browser languages that are handled by the same
- * basic language code. Essentially, it's a list of code synonyms.
- *
- * For example, language code "de" (German) also applies to language code "de-at"
- * (German, Austria), "de-ch" (German, Switzerland), "de-de" (German, Germany) "de-li"
- * (German, Liechtenstein), and "de-lu" (German, Luxemburg).
- *
- * If a given language code isn't in the list, that language doesn't have any
- * synonym codes. For example, code "cy" (Welsh) isn't in the list, so there aren't
- * any synonym codes for Welsh.
- *
- */
-
-$lng_synonyms["en"] = "en-au;en-bz;en-ca;en-gb;en-ie;en-jm;en-nz;en-tt;en-us;en-za;";
-
-?>
+<?php
+/**
+ *
+ * @package PhpGedView
+ * @subpackage Languages
+ * @version $Id$
+ *
+ * RFC1766 (HTML language codes) refers to ISO standard 639, and specifies that the
+ * 2-character language code of the ISO standard should be used, and that an ISO
+ * standard country code can be used as a suffix to the two-character major language
+ * code to produce regional variants. For example, en-us for the English (US) variant.
+ *
+ * When checking the ISO-639 codes, you should use the Library of Congress site as your
+ * authority. LOC is the current registrar for ISO-639.
+ *
+ * See Library of Congress http://www.loc.gov/standards/iso639-2/langcodes.html
+ *
+ */
+
+/**
+ * This table lists various languages and an appropriate flag for that language.
+ * The key field is the abbreviation, internal to PhpGedView, for the language.
+ *
+ * The abbreviations are used when a new language is to be implemented in PhpGedView.
+ * For example, the abbreviation for "Croatian" is "hr". This means that the various
+ * files within PhpGedView that are specific to Croatian would have .hr. as the last
+ * part of the file name, and the Croatian flag would be croatia.gif.
+ *
+ * Note that PhpGedView allows the flag names to be other than as shown above. For
+ * example, the flag for English (abbreviation "en") could be "australia.gif".
+ *
+ * This table is used to produce the list of languages that can still be added to
+ * PhpGedView.
+ *
+ */
+
+if (!defined('PGV_PHPGEDVIEW')) {
+ header('HTTP/1.0 403 Forbidden');
+ exit;
+}
+
+define('PGV_LANG_CODES_STD_PHP', '');
+
+$lng_codes["aa"] = array("Afar", "Ethiopia");
+$lng_codes["ab"] = array("Abkhazian", "Georgia");
+$lng_codes["af"] = array("Afrikaans", "South Africa");
+$lng_codes["ak"] = array("Akan", "Guinea");
+$lng_codes["sq"] = array("Albanian", "Albania");
+$lng_codes["am"] = array("Amharic", "Ethiopia");
+$lng_codes["ar"] = array("Arabic", "Arab League"); // Common alternate: plain green
+$lng_codes["an"] = array("Aragonese", "Spain");
+$lng_codes["hy"] = array("Armenian", "Armenia");
+$lng_codes["av"] = array("Avaric", "Azerbaijan");
+$lng_codes["ay"] = array("Aymara", "Peru");
+$lng_codes["az"] = array("Azerbaijani", "Azerbaijan");
+$lng_codes["bm"] = array("Bambara", "Mali");
+$lng_codes["ba"] = array("Bashkir", "Russia");
+$lng_codes["eu"] = array("Basque", "France");
+$lng_codes["be"] = array("Belarusian", "Belarus");
+$lng_codes["bn"] = array("Bengali", "Bangladesh");
+$lng_codes["bh"] = array("Bihari", "India");
+$lng_codes["bi"] = array("Bislama", "Vanuatu");
+$lng_codes["bs"] = array("Bosnian", "Bosnia");
+$lng_codes["br"] = array("Breton", "France");
+$lng_codes["bg"] = array("Bulgarian", "Bulgaria");
+$lng_codes["my"] = array("Burmese", "Myanmar");
+$lng_codes["ca"] = array("Catalan (Valencian)", "Spain");
+$lng_codes["ch"] = array("Chamorro", "Guam");
+$lng_codes["ce"] = array("Chechen", "Russia");
+$lng_codes["ny"] = array("Chichewa", "Malawi");
+$lng_codes["zh"] = array("Chinese", "China");
+$lng_codes["cv"] = array("Chuvash", "Russia");
+$lng_codes["kw"] = array("Cornish", "United Kingdom");
+$lng_codes["co"] = array("Corsican", "France");
+$lng_codes["cr"] = array("Cree", "Canada");
+$lng_codes["hr"] = array("Croatian", "Croatia");
+$lng_codes["cs"] = array("Czech", "Czech Republic");
+$lng_codes["da"] = array("Danish", "Denmark");
+$lng_codes["dv"] = array("Divehi", "Maldives");
+$lng_codes["nl"] = array("Dutch", "Netherlands");
+$lng_codes["dz"] = array("Dzongkha", "Bhutan");
+$lng_codes["en"] = array("English", "USA");
+$lng_codes["eo"] = array("Esperanto", "United Nations");
+$lng_codes["et"] = array("Estonian", "Estonia");
+$lng_codes["ee"] = array("Ewe", "Ghana");
+$lng_codes["fo"] = array("Faeroese", "Faeroe Islands");
+$lng_codes["fa"] = array("Persian (Farsi)", "Iran");
+$lng_codes["fj"] = array("Fijian", "Fiji");
+$lng_codes["fi"] = array("Finnish", "Finland");
+$lng_codes["fr"] = array("French", "France");
+$lng_codes["fy"] = array("Frisian", "Friesland");
+$lng_codes["ff"] = array("Fulah", "Sierra Leone");
+$lng_codes["gd"] = array("Gaelic", "Royal Lion Rampant"); // Alternate: Scotland
+$lng_codes["gl"] = array("Gallegan", "Portugal");
+$lng_codes["lg"] = array("Ganda", "Uganda");
+$lng_codes["ka"] = array("Georgian", "Georgia");
+$lng_codes["de"] = array("German", "Germany");
+$lng_codes["el"] = array("Greek", "Greece");
+$lng_codes["gn"] = array("Guarani", "Paraguay");
+$lng_codes["gu"] = array("Gujarati", "India");
+$lng_codes["ht"] = array("Haitian", "Haiti");
+$lng_codes["ha"] = array("Hausa", "Nigeria");
+$lng_codes["he"] = array("Hebrew", "Israel");
+$lng_codes["hz"] = array("Herero", "Botswana");
+$lng_codes["hi"] = array("Hindi", "India");
+$lng_codes["ho"] = array("Hiri Motu", "Papua New Guinea");
+$lng_codes["hu"] = array("Hungarian", "Hungary");
+$lng_codes["is"] = array("Icelandic", "Iceland");
+$lng_codes["io"] = array("Ido", "United Nations");
+$lng_codes["ig"] = array("Igbo", "Nigeria");
+$lng_codes["id"] = array("Indonesian", "Indonesia");
+$lng_codes["ia"] = array("Interlingua (IALA)", "United Nations");
+$lng_codes["ie"] = array("Interlingue", "United Nations");
+$lng_codes["iu"] = array("Inuktitut", "Canada");
+$lng_codes["ik"] = array("Inupiaq", "USA");
+$lng_codes["ga"] = array("Irish", "Eire");
+$lng_codes["it"] = array("Italian", "Italy");
+$lng_codes["ja"] = array("Japanese", "Japan");
+$lng_codes["jv"] = array("Javanese", "Indonesia");
+$lng_codes["kl"] = array("Kalaallisut", "Greenland");
+$lng_codes["kn"] = array("Kannada", "India");
+$lng_codes["kr"] = array("Kanuri", "Nigeria");
+$lng_codes["ks"] = array("Kashmiri", "India");
+$lng_codes["kk"] = array("Kazakh", "Kazakhstan");
+$lng_codes["km"] = array("Khmer", "Cambodia");
+$lng_codes["ki"] = array("Kikuyu", "Kenya");
+$lng_codes["rw"] = array("Kinyarwanda", "Rwanda");
+$lng_codes["ky"] = array("Kirghiz", "Kyrgyzstan");
+$lng_codes["kv"] = array("Komi", "Russia");
+$lng_codes["kg"] = array("Kongo", "Zaire");
+$lng_codes["ko"] = array("Korean", "Korea");
+$lng_codes["kj"] = array("Kuanyama", "Angola");
+$lng_codes["ku"] = array("Kurdish", "Iraq");
+$lng_codes["lo"] = array("Lao", "Laos");
+$lng_codes["la"] = array("Latin", "Vatican");
+$lng_codes["lv"] = array("Latvian", "Latvia");
+$lng_codes["li"] = array("Limburgish", "Netherlands");
+$lng_codes["ln"] = array("Lingala", "Zaire");
+$lng_codes["lt"] = array("Lithuanian", "Lithuania");
+$lng_codes["lu"] = array("Luba-Katanga", "Zaire");
+$lng_codes["lb"] = array("Luxembourgish", "Luxembourg");
+$lng_codes["mk"] = array("Macedonian", "Macedonia");
+$lng_codes["mg"] = array("Malagasy", "Madagascar");
+$lng_codes["ml"] = array("Malayalam", "India");
+$lng_codes["ms"] = array("Malay", "Malaysia");
+$lng_codes["mt"] = array("Maltese", "Malta");
+$lng_codes["mi"] = array("Maori", "New Zealand");
+$lng_codes["mr"] = array("Marathi", "India");
+$lng_codes["mh"] = array("Marshallese", "Marshall Islands");
+$lng_codes["mo"] = array("Moldavian", "Moldova");
+$lng_codes["mn"] = array("Mongolian", "Mongolia");
+$lng_codes["na"] = array("Nauru", "Nauru");
+$lng_codes["nv"] = array("Navajo", "USA");
+$lng_codes["nr"] = array("Ndebele (South dialect)", "South Africa");
+$lng_codes["nd"] = array("Ndebele (North dialect)", "South Africa");
+$lng_codes["ng"] = array("Ndonga", "Namibia");
+$lng_codes["ne"] = array("Nepali", "Nepal");
+$lng_codes["no"] = array("Norwegian", "Norway");
+$lng_codes["oj"] = array("Ojibwa", "Canada");
+$lng_codes["or"] = array("Oriya", "India");
+$lng_codes["om"] = array("Oromo", "Ethiopia");
+$lng_codes["os"] = array("Ossetian", "Iran");
+$lng_codes["pi"] = array("Pali", "India");
+$lng_codes["pa"] = array("Panjabi", "Pakistan");
+$lng_codes["pl"] = array("Polish", "Poland");
+$lng_codes["pt"] = array("Portuguese", "Portugal");
+$lng_codes["oc"] = array("Provençal", "France");
+$lng_codes["ps"] = array("Pushto", "Afghanistan");
+$lng_codes["qu"] = array("Quechua", "Peru");
+$lng_codes["rm"] = array("Raeto-Romance", "Switzerland");
+$lng_codes["ro"] = array("Romanian", "Romania");
+$lng_codes["rn"] = array("Rundi", "Burundi");
+$lng_codes["ru"] = array("Russian", "Russia");
+$lng_codes["sz"] = array("Sami (Lappish dialect)", "Finland");
+$lng_codes["se"] = array("Sami (Northern dialect)", "Finland");
+$lng_codes["sm"] = array("Samoan", "Samoa");
+$lng_codes["sg"] = array("Sango", "Central African Republic");
+$lng_codes["sa"] = array("Sanskrit", "India");
+$lng_codes["sc"] = array("Sardinian", "Italy");
+$lng_codes["sr"] = array("Serbian", "Serbia and Montenegro");
+$lng_codes["sn"] = array("Shona", "Zimbabwe");
+$lng_codes["sd"] = array("Sindhi", "Pakistan");
+$lng_codes["si"] = array("Sinhala", "Sri lanka");
+$lng_codes["cu"] = array("Slavic (Church Slavic)", "Bulgaria");
+$lng_codes["sk"] = array("Slovak", "Slovakia");
+$lng_codes["sl"] = array("Slovenian", "Slovenia");
+$lng_codes["so"] = array("Somali", "Somalia");
+$lng_codes["sb"] = array("Sorbian", "Czech Republic");
+$lng_codes["st"] = array("Sotho (Southern dialect)", "Lesotho");
+$lng_codes["es"] = array("Spanish", "Spain");
+$lng_codes["su"] = array("Sundanese", "Indonesia");
+$lng_codes["sx"] = array("Sutu", "Lesotho");
+$lng_codes["sw"] = array("Swahili", "Zaire");
+$lng_codes["ss"] = array("Swati", "Swaziland");
+$lng_codes["sv"] = array("Swedish", "Sweden");
+$lng_codes["tl"] = array("Tagalog", "Philippines");
+$lng_codes["ty"] = array("Tahitian", "Tahiti");
+$lng_codes["tg"] = array("Tajik", "Tajikistan");
+$lng_codes["ta"] = array("Tamil", "India");
+$lng_codes["tt"] = array("Tatar", "Ukraine");
+$lng_codes["te"] = array("Telugu", "India");
+$lng_codes["th"] = array("Thai", "Thailand");
+$lng_codes["bo"] = array("Tibetan", "Tibet");
+$lng_codes["ti"] = array("Tigrinya", "Ethiopia");
+$lng_codes["to"] = array("Tonga", "Tonga");
+$lng_codes["ts"] = array("Tsonga", "Mozambique");
+$lng_codes["tn"] = array("Tswana", "Botswana");
+$lng_codes["tr"] = array("Turkish", "Turkey");
+$lng_codes["tk"] = array("Turkmen", "Turkmenistan");
+$lng_codes["tw"] = array("Twi", "Cote d'Ivoire");
+$lng_codes["ug"] = array("Uighur", "China");
+$lng_codes["uk"] = array("Ukrainian", "Ukraine");
+$lng_codes["ur"] = array("Urdu", "Pakistan");
+$lng_codes["uz"] = array("Uzbek", "Uzbekistan");
+$lng_codes["ve"] = array("Venda", "South Africa");
+$lng_codes["vi"] = array("Vietnamese", "Vietnam");
+$lng_codes["wa"] = array("Walloon", "Wallonia");
+$lng_codes["cy"] = array("Welsh", "Wales");
+$lng_codes["wo"] = array("Wolof", "Senegal");
+$lng_codes["xh"] = array("Xhosa", "South Africa");
+$lng_codes["ii"] = array("Yi (Sichuan dialect)", "China");
+$lng_codes["yi"] = array("Yiddish", "USA");
+$lng_codes["yo"] = array("Yoruba", "Nigeria");
+$lng_codes["za"] = array("Zhuang", "China");
+$lng_codes["zu"] = array("Zulu", "South Africa");
+
+/**
+ * This table provides the list of browser languages that are handled by the same
+ * basic language code. Essentially, it's a list of code synonyms.
+ *
+ * For example, language code "de" (German) also applies to language code "de-at"
+ * (German, Austria), "de-ch" (German, Switzerland), "de-de" (German, Germany) "de-li"
+ * (German, Liechtenstein), and "de-lu" (German, Luxemburg).
+ *
+ * If a given language code isn't in the list, that language doesn't have any
+ * synonym codes. For example, code "cy" (Welsh) isn't in the list, so there aren't
+ * any synonym codes for Welsh.
+ *
+ */
+
+$lng_synonyms["ar"] = "ar-ae;ar-bh;ar-dz;ar-eg;ar-iq;ar-jo;ar-kw;ar-lb;ar-ly;ar-ma;ar-om;ar-qa;ar-sa;ar-sy;ar-tn;ar-ye;";
+$lng_synonyms["zh"] = "zh-cn;zh-hk;zh-mo;zh-sg;zh-tw;";
+$lng_synonyms["nl"] = "nl-be;";
+$lng_synonyms["cs"] = "cz;";
+$lng_synonyms["en"] = "en-au;en-bz;en-ca;en-gb;en-ie;en-jm;en-nz;en-tt;en-us;en-za;";
+$lng_synonyms["fr"] = "fr-be;fr-ca;fr-ch;fr-lu;fr-mc;";
+$lng_synonyms["de"] = "de-at;de-ch;de-de;de-li;de-lu;";
+$lng_synonyms["it"] = "it-ch;";
+$lng_synonyms["no"] = "nb;nn;";
+$lng_synonyms["pt"] = "pt-br;";
+$lng_synonyms["ro"] = "ro-mo;";
+$lng_synonyms["ru"] = "ru-mo;";
+$lng_synonyms["es"] = "es-ar;es-bo;es-cl;es-co;es-cr;es-do;es-ec;es-gt;es-hn;es-mx;es-ni;es-pa;es-pe;es-pr;es-py;es-sv;es-uy;es-ve;";
+$lng_synonyms["sv"] = "sv-fi;";
+// The following codes were changed in ISO-639. The synonym codes should not be used.
+// See Library of Congress: http://www.loc.gov/standards/iso639-2/codechanges.html
+$lng_synonyms["yi"] = "ji;";
+$lng_synonyms["he"] = "iw;";
+$lng_synonyms["id"] = "in;";
+$lng_synonyms["jv"] = "jw;";
+$lng_synonyms["hr"] = "sh;";
+
+?>
Index: .htaccess
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/.htaccess,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- .htaccess 7 Jul 2008 17:30:15 -0000 1.3
+++ .htaccess 30 Apr 2009 18:32:43 -0000 1.4
@@ -1,3 +1,3 @@
-# $Id$
-order allow,deny
-deny from all
+# $Id$
+order allow,deny
+deny from all
Index: authentication.php
===================================================================
RCS file: /cvsroot/bitweaver/_bit_phpgedview/includes/authentication.php,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- authentication.php 11 Aug 2008 14:18:49 -0000 1.20
+++ authentication.php 30 Apr 2009 18:32:43 -0000 1.21
@@ -1,455 +1,1232 @@
-<?php
-/**
- * MySQL User and Authentication functions
- *
- * This file contains the MySQL specific functions for working with users and authenticating them.
- * It also handles the internal mail messages, favorites, news/journal, and storage of MyGedView
- * customizations. Assumes that a database connection has already been established.
- *
- * You can extend PhpGedView to work with other systems by implementing the functions in this file.
- * Other possible options are to use LDAP for authentication.
- *
[...1656 lines suppressed...]
+
+ $news = array();
+ $sql = "SELECT * FROM {$TBLPREFIX}news WHERE n_id='$news_id'";
+ $res = dbquery($sql);
+
+ while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)){
+ $row = db_cleanup($row);
+ $n = array();
+ $n["id"] = $row["n_id"];
+ $n["username"] = $row["n_username"];
+ $n["date"] = $row["n_date"];
+ $n["title"] = stripslashes($row["n_title"]);
+ $n["text"] = stripslashes($row["n_text"]);
+ $n["anchor"] = "article".$row["n_id"];
+ $res->free();
+ return $n;
+ }
+}
+
+?>
--- functions_date.php DELETED ---
--- functions_rtl.php DELETED ---
--- NEW FILE: session_spider.php ---
<?php
/**
* Startup and session logic for handling Bots and Spiders
*
* phpGedView: Genealogy Viewer
* Copyright (C) 2008 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 PhpGedView
* @subpackage admin
* @version $Id: session_spider.php,v 1.1 2009/04/30 18:32:43 lsces Exp $
*/
if (!defined('PGV_PHPGEDVIEW')) {
header('HTTP/1.0 403 Forbidden');
exit;
}
define('PGV_SESSION_SPIDER_PHP', '');
/**
* Changes the session same for known spiders
* session names are limited to alphanum upper and lower only.
* $outname = '__Spider-name-:/alphanum_only__';
* Example = sess_xxGOOGLEBOTfsHTTPcffWWWdGOOGLxx
* Matchable by "ls sess_xx??????????????????????????xx"
*
* @param string $bot_name
* @param string $bot_language
* @return string
*/
function gen_spider_session_name($bot_name, $bot_language) {
$outname = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$bot_limit = strlen($bot_name);
if($bot_limit > 27)
$bot_limit = 27;
for($x=0; $x < $bot_limit; $x++) {
if(preg_match('/^[a-zA-Z0-9]+$/', $bot_name{$x}))
$outname{$x+2} = strtoupper($bot_name{$x});
else if ($bot_name{$x} == '.')
$outname{$x+2} = 'd';
else if ($bot_name{$x} == ':')
$outname{$x+2} = 'c';
else if ($bot_name{$x} == '/')
$outname{$x+2} = 'f';
else if ($bot_name{$x} == ' ')
$outname{$x+2} = 's';
else if ($bot_name{$x} == '-')
$outname{$x+2} = 't';
else if ($bot_name{$x} == '_')
$outname{$x+2} = 'u';
else
$outname{$x+2} = 'o';
}
return($outname);
}
/**
* Remote IP Address Banning
*/
if (file_exists($INDEX_DIRECTORY."banned.php")) {
require($INDEX_DIRECTORY."banned.php");
//loops through each ip in banned.php
foreach($banned as $key=>$value) {
//creates a regex foreach ip
$ipRegEx = '';
$arrayIP = explode('*', $value);
$ipRegEx .= $arrayIP[0];
if (count($arrayIP) > 1) {
for($i=1; $i < count($arrayIP); $i++) {
if($i == (count($arrayIP)))
$ipRegEx .= "\d{0,3}";
else
$ipRegEx .= "\d{0,3}".$arrayIP[$i];
}
}
//checks the remote ip address against each ip regex
if (preg_match('/^'.$ipRegEx.'/', $_SERVER['REMOTE_ADDR'])) {
//adds a message to the log and exits with an Access Denied header
AddToLog("genservice.php blocked IP Address: ".$_SERVER['REMOTE_ADDR']." by regex: ".$ipRegEx);
header("HTTP/1.1 403 Access Denied");
exit;
}
}
}
// Search Engines are treated special, and receive only core data, without the
// pretty bells and whistles. Recursion is also going to be kept to a minimum.
// Max uncompressed page output has to be under 100k. Spiders do not index the
// rest of the file.
global $SEARCH_SPIDER;
$SEARCH_SPIDER = false; // set empty at start
$ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "";
$worms = array(
'XXX',
'Super_Ale',
'Wget',
'DataCha',
'libwww-perl',
'LWP::Simple',
'lwp-trivial',
'MJ.*bot',
'ru.*rv',
'DotBot',
'HTTrack',
'AISearchBot',
'panscient.com',
// 'Mozilla([^\/])|(\/[\D])', // legitimate Mozilla-based browsers have something like "Mozilla/5.0"
'(Microsoft)|(Internet)|(Explorer)' // Internet Explorer self-identifies with "MSIE"
);
$quitReason = "";
// check for attempt to redirect
if (preg_match("/=.*:\/\//i", rawurldecode($_SERVER["REQUEST_URI"]))) {
$quitReason = "Embedded URL detected";
}
// check for worms and bad bots
if ($quitReason == "") {
foreach ($worms as $worm) {
if (preg_match('/'.$worm.'/i', $ua)) {
$quitReason = "Blocked crawler detected";
break;
}
}
}
// Do we have a reason to quit now?
if ($quitReason != "") {
if ((!ini_get('register_globals'))||(strtolower(ini_get('register_globals'))=="off")) {
//-- load common functions
require_once("includes/functions/functions.php");
//-- load db specific functions
require_once("includes/functions/functions_db.php");
require_once("includes/authentication.php"); // -- load the authentication system
AddToLog("MSG>{$quitReason}; script terminated.");
AddToLog("UA>{$ua}<");
AddToLog("URI>{$_SERVER["REQUEST_URI"]}<");
}
header("HTTP/1.0 403 Forbidden");
print "Hackers are not welcome here.";
exit;
}
// The search list has been reversed. Whitelist all browsers, and
// mark everything else as a spider/bot.
// Java/ Axis/ and PEAR required for GDBI and our own cross site communication.
$real_browsers = array(
'PHP-SOAP',
'PGVAgent',
'MSIE ',
'Opera',
'Firefox',
'Konqueror',
'Gecko',
'Safari',
'http://www.avantbrowser.com',
'BlackBerry',
'Lynx',
'Java/',
'PEAR',
'Axis/',
'MSFrontPage',
'RssReader',
'Liferea/',
'W3C_Validator'
);
// Here we list the search engines whose accesses we don't need to log.
// This avoids cluttering the log files with useless entries
$known_spiders = array(
'Googlebot',
'Yahoo Slurp',
'msnbot',
'Ask Jeeves',
'Mediapartners-Google',
'Feedfetcher-Google',
'Twiceler'
);
// We overlay the following name with carefully selected characters.
// This is to avoid XSS problems. Alpha : . / - _ only. Yes, the following string is 72 chars.
$spider_name = ' ';
// If you want to disable spider detection, set real to true here.
$real = false;
if($ua != "") {
foreach($real_browsers as $browser_check) {
if (eregi($browser_check, $ua)!==false) {
$real = true;
break;
}
}
// check for old Netscapes.
if (eregi("Mozilla/", $ua)) {
if (eregi("compatible", $ua)===false) {
if (eregi("\[..\]", $ua)!==false) {
$real = true;
}
if (eregi("Macintosh", $ua)!==false) {
$real = true;
}
}
}
}
else {
// For the people who firewall identifying information
// Switch real to false if you wish to restrict these connections.
$ua = "Browser User Agent Empty";
$real = true;
}
if(!$real) {
$bot_name = $ua;
// strip out several common strings that clutter the User Agent.
$bot_name = eregi_replace("Mozilla\/... \(compatible;", "", $bot_name);
$bot_name = eregi_replace("Mozilla\/... ", "", $bot_name);
$bot_name = eregi_replace("Windows NT", "", $bot_name);
$bot_name = eregi_replace("Windows; U;", "", $bot_name);
$bot_name = eregi_replace("Windows", "", $bot_name);
// Copy in characters, stripping out unwanteds until we are full, stopping at 70.
$y = 0;
$valid_char = false;
$bot_limit = strlen($bot_name);
for($x=0; $x < $bot_limit; $x++) {
if(preg_match('/^[a-zA-Z]+$/', $bot_name{$x})) {
$spider_name{$y} = $bot_name{$x};
$valid_char = true;
$y++;
if ($y > 70) break;
}
else if ($bot_name{$x} == ' ') {
if($valid_char) {
$spider_name{$y} = ' ';
$valid_char = false;
$y++;
if ($y > 70) break;
}
}
else if ($bot_name{$x} == '.') {
if($valid_char) {
$spider_name{$y} = '.';
$valid_char = true;
$y++;
if ($y > 70) break;
}
}
else if ($bot_name{$x} == ':') {
$spider_name{$y} = ':';
$valid_char = true;
$y++;
if ($y > 70) break;
}
else if ($bot_name{$x} == '/') {
$spider_name{$y} = '/';
$valid_char = true;
$y++;
if ($y > 70) break;
}
else if ($bot_name{$x} == '-') {
$spider_name{$y} = '-';
$valid_char = true;
$y++;
if ($y > 70) break;
}
else if ($bot_name{$x} == '_') {
$spider_name{$y} = '_';
$valid_char = true;
$y++;
if ($y > 70) break;
}
else { // Compress consecutive invalids down to one space char.
if($valid_char) {
$spider_name{$y} = ' ';
$valid_char = false;
$y++;
if ($y > 70) break;
}
}
}
// The SEARCH_SPIDER is set to 70 vetted chars, the session to 26 chars.
$SEARCH_SPIDER = $spider_name;
$bot_session = gen_spider_session_name($spider_name, "");
session_id($bot_session);
}
// stop spiders from accessing certain parts of the site
$bots_not_allowed = array(
'/reports/',
'/includes/',
'config',
'clippings',
'gedrecord.php'
);
if (!empty($SEARCH_SPIDER)) {
foreach($bots_not_allowed as $place) {
if (eregi($place, $_SERVER['PHP_SELF'])) {
header("HTTP/1.0 403 Forbidden");
print "Sorry, this page is not available for search engine bots.";
exit;
}
}
}
/**
* Manual Search Engine IP Address tagging
* Allow an admin to mark IP addresses as known search engines even if
* they are not automatically detected above. Setting his own IP address
* in this file allows him to see exactly what the search engine receives.
* To return to normal, the admin MUST use a different IP to get to admin
* mode or edit search_engines.php by hand.
*/
if (file_exists($INDEX_DIRECTORY."search_engines.php")) {
require($INDEX_DIRECTORY."search_engines.php");
//loops through each ip in search_engines.php
foreach($search_engines as $key=>$value) {
//creates a regex foreach ip
$ipRegEx = '';
$arrayIP = explode('*', $value);
$ipRegEx .= $arrayIP[0];
if (count($arrayIP) > 1) {
for($i=1; $i < count($arrayIP); $i++) {
if($i == (count($arrayIP)))
$ipRegEx .= "\d{0,3}";
else
$ipRegEx .= "\d{0,3}".$arrayIP[$i];
}
}
//checks the remote ip address against each ip regex
if (preg_match('/^'.$ipRegEx.'/', $_SERVER['REMOTE_ADDR'])) {
if(empty($SEARCH_SPIDER))
$SEARCH_SPIDER = "Manual Search Engine entry of ".$_SERVER['REMOTE_ADDR'];
$bot_name = "MAN".$_SERVER['REMOTE_ADDR'];
$bot_session = gen_spider_session_name($bot_name, "");
session_id($bot_session);
break;
}
}
}
if((empty($SEARCH_SPIDER)) && (!empty($_SESSION['last_spider_name']))) // user following a search engine listing in,
session_regenerate_id();
if(!empty($SEARCH_SPIDER)) {
$spidertime = time();
$spiderdate = date("d.m.Y", $spidertime);
// Do we need to log this spider access?
$outstr = preg_replace('/\s+/', ' ', $SEARCH_SPIDER); // convert tabs etc. to blanks; trim extra blanks
$outstr = str_replace(' - ', ' ', $outstr); // Don't allow ' - ' because that is the log separator
$logSpider = true;
foreach ($known_spiders as $spider) {
if (strpos($outstr, $spider) !== false) {
$logSpider = false;
break;
}
}
if(isset($_SESSION['spider_count']))
$spidercount = $_SESSION['spider_count'] + 1;
else {
$spidercount = 1;
if ($logSpider) {
//adds a message to the log that a new spider session is starting
require_once("includes/authentication.php"); // -- Loaded early so AddToLog works
AddToLog("New search engine encountered: ->".$outstr."<-");
}
}
if(isset($_SESSION['last_spider_date'])) {
if($spiderdate != $_SESSION['last_spider_date']) {
//adds a message to the log that a new spider session is starting
if ($logSpider) {
require_once("includes/authentication.php"); // -- Loaded early so AddToLog works
AddToLog("Returning search engine last seen ".$_SESSION['spider_count']." times on ".$_SESSION['last_spider_date']." from ".$_SESSION['last_spider_ip']." ->".$outstr."<-");
}
$_SESSION['last_spider_date'] = $spiderdate;
$spidercount = 1;
}
}
$_SESSION['last_spider_date'] = $spiderdate;
$_SESSION['spider_count'] = $spidercount;
if(isset($_SERVER['REMOTE_ADDR']))
$_SESSION['last_spider_ip'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['last_spider_name'] = $SEARCH_SPIDER;
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
$_SESSION['last_spider_lang'] = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$_SESSION['pgv_user'] = ""; // Don't allow search engine into user/admin mode.
$_SESSION['CLANGUAGE'] = ""; // Force language to gedcom default language.
}
?>
--- functions_db.php DELETED ---
--- reportbase.php DELETED ---
|