summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@gmail.com>2015-01-20 19:22:26 +0000
committerGreg Roach <fisharebest@gmail.com>2015-01-20 23:41:00 +0000
commita110a713d5d95fccebcf4c78a798dbc9242a7e4f (patch)
treef8924b05aca68d5d9e96a5a4cc22cb19a7d78c1f
parent249d7db76fed67ee0061296a488df1f4f02e9b6e (diff)
downloadwebtrees-a110a713d5d95fccebcf4c78a798dbc9242a7e4f.tar.gz
webtrees-a110a713d5d95fccebcf4c78a798dbc9242a7e4f.tar.bz2
webtrees-a110a713d5d95fccebcf4c78a798dbc9242a7e4f.zip
phpGedView import wizard - remove some limitations, bug fixes, cleanup, etc.
-rw-r--r--admin_pgv_to_wt.php505
-rw-r--r--admin_trees_manage.php8
-rw-r--r--includes/db_schema/db_schema_29_30.php36
-rw-r--r--language/ar.po4
-rw-r--r--language/bg.po2
-rw-r--r--language/bs.po2
-rw-r--r--language/ca.po4
-rw-r--r--language/cs.po4
-rw-r--r--language/da.po4
-rw-r--r--language/de.po4
-rw-r--r--language/el.po2
-rw-r--r--language/en_GB.po2
-rw-r--r--language/en_US.po2
-rw-r--r--language/es.po4
-rw-r--r--language/et.po2
-rw-r--r--language/extra/af.po2
-rw-r--r--language/extra/dv.po2
-rw-r--r--language/extra/en_AU.po2
-rw-r--r--language/extra/fa.po2
-rw-r--r--language/extra/fo.po2
-rw-r--r--language/extra/fr_CA.po4
-rw-r--r--language/extra/gl.po2
-rw-r--r--language/extra/id.po2
-rw-r--r--language/extra/ja.po2
-rw-r--r--language/extra/ka.po2
-rw-r--r--language/extra/ko.po2
-rw-r--r--language/extra/lv.po2
-rw-r--r--language/extra/mi.po2
-rw-r--r--language/extra/ms.po2
-rw-r--r--language/extra/ne.po2
-rw-r--r--language/extra/oc.po2
-rw-r--r--language/extra/ro.po2
-rw-r--r--language/extra/sl.po2
-rw-r--r--language/extra/sr.po2
-rw-r--r--language/extra/sr@Latn.po2
-rw-r--r--language/extra/ta.po2
-rw-r--r--language/extra/tt.po2
-rw-r--r--language/extra/yi.po2
-rw-r--r--language/extra/zh_TW.po2
-rw-r--r--language/fi.po4
-rw-r--r--language/fr.po4
-rw-r--r--language/he.po4
-rw-r--r--language/hr.po4
-rw-r--r--language/hu.po2
-rw-r--r--language/is.po4
-rw-r--r--language/it.po4
-rw-r--r--language/lt.po4
-rw-r--r--language/mr.po2
-rw-r--r--language/nb.po4
-rw-r--r--language/nl.po4
-rw-r--r--language/nn.po4
-rw-r--r--language/pl.po4
-rw-r--r--language/pt.po2
-rw-r--r--language/pt_BR.po4
-rw-r--r--language/ru.po4
-rw-r--r--language/sk.po4
-rw-r--r--language/sv.po4
-rw-r--r--language/tr.po4
-rw-r--r--language/uk.po4
-rw-r--r--language/vi.po4
-rw-r--r--language/zh_CN.po2
-rw-r--r--library/WT/Theme/Administration.php4
-rw-r--r--setup.php8
63 files changed, 435 insertions, 292 deletions
diff --git a/admin_pgv_to_wt.php b/admin_pgv_to_wt.php
index bb1556bbb0..b5a4dc91e7 100644
--- a/admin_pgv_to_wt.php
+++ b/admin_pgv_to_wt.php
@@ -27,7 +27,8 @@ require './includes/session.php';
// We can only import into an empty system, so deny access if we have already created a gedcom or added users.
if (WT_GED_ID || count(User::all()) > 1) {
header('Location: ' . WT_SERVER_NAME . WT_SCRIPT_PATH);
- exit;
+
+ return;
}
$controller = new WT_Controller_Page;
@@ -39,6 +40,22 @@ $error = '';
$warning = '';
$PGV_PATH = WT_Filter::post('PGV_PATH');
+// We read these variables from PGV's config.php, and set them here in case any are missing.
+$USE_REGISTRATION_MODULE = '';
+$REQUIRE_ADMIN_AUTH_REGISTRATION = '';
+$ALLOW_USER_THEMES = '';
+$ALLOW_CHANGE_GEDCOM = '';
+$PGV_SESSION_TIME = '';
+$PGV_SMTP_ACTIVE = '';
+$PGV_SMTP_HOST = '';
+$PGV_SMTP_HELO = '';
+$PGV_SMTP_PORT = '';
+$PGV_SMTP_AUTH = '';
+$PGV_SMTP_AUTH_USER = '';
+$PGV_SMTP_AUTH_PASS = '';
+$PGV_SMTP_SSL = '';
+$PGV_SMTP_FROM_NAME = '';
+
if ($PGV_PATH) {
if (!is_dir($PGV_PATH) || !is_readable($PGV_PATH . '/config.php')) {
$error = WT_I18N::translate('The specified directory does not contain an installation of PhpGedView');
@@ -56,9 +73,9 @@ if ($PGV_PATH) {
eval($config_php);
// $INDEX_DIRECTORY can be either absolute or relative to the PhpGedView root.
if (preg_match('/^(\/|\\|[A-Z]:)/', $INDEX_DIRECTORY)) {
- $INDEX_DIRECTORY = realpath($INDEX_DIRECTORY);
+ $INDEX_DIRECTORY = realpath($INDEX_DIRECTORY) . DIRECTORY_SEPARATOR;
} else {
- $INDEX_DIRECTORY = realpath($PGV_PATH . '/' . $INDEX_DIRECTORY);
+ $INDEX_DIRECTORY = realpath($PGV_PATH . '/' . $INDEX_DIRECTORY) . DIRECTORY_SEPARATOR;
}
$wt_config = parse_ini_file(WT_ROOT . 'data/config.ini.php');
if ($DBHOST != $wt_config['dbhost']) {
@@ -111,18 +128,14 @@ echo
if ($error || !$PGV_PATH) {
// Prompt for location of PhpGedView installation
echo '<div id="container">';
- echo
- '<h2>',
- WT_I18N::translate('PhpGedView to webtrees transfer wizard'),
- help_link('PGV_WIZARD'),
- '</h2>';
+ echo '<h2>', WT_I18N::translate('PhpGedView to webtrees transfer wizard'), '</h2>';
if ($error) {
echo '<p class="bad">', $error, '</p>';
}
// Look for PGV in some nearby directories
$pgv_dirs = array();
- $dir = opendir(realpath('..'));
+ $dir = opendir(realpath('..'));
while (($subdir = readdir($dir)) !== false) {
if (is_dir('../' . $subdir) && file_exists('../' . $subdir . '/config.php')) {
$pgv_dirs[] = '../' . $subdir;
@@ -131,7 +144,7 @@ if ($error || !$PGV_PATH) {
closedir($dir);
echo
- '<form action="', WT_SCRIPT_NAME, '" method="post">',
+ '<form method="post">',
'<p>', WT_I18N::translate('Where is your PhpGedView installation?'), '</p>',
'<dl>',
'<dt>', WT_I18N::translate('Installation folder'), '</dt>';
@@ -157,7 +170,8 @@ if ($error || !$PGV_PATH) {
'<div class="center"><input type="submit" value="' . WT_I18N::translate('next') . '"></div>',
'</form>',
'</div>';
- exit;
+
+ return;
}
// Run in a transaction
@@ -174,27 +188,27 @@ WT_DB::exec("DELETE FROM `##user_setting` WHERE user_id>0");
WT_DB::exec("DELETE FROM `##user` WHERE user_id>0");
////////////////////////////////////////////////////////////////////////////////
-echo '<p>', $INDEX_DIRECTORY, DIRECTORY_SEPARATOR, 'config.php => wt_site_setting ...</p>';
-// TODO May need to set 'DATA_DIRECTORY' to $INDEX_DIRECTORY when dealing with media??
-@WT_Site::setPreference('USE_REGISTRATION_MODULE', $USE_REGISTRATION_MODULE);
-@WT_Site::setPreference('REQUIRE_ADMIN_AUTH_REGISTRATION', $REQUIRE_ADMIN_AUTH_REGISTRATION);
-@WT_Site::setPreference('ALLOW_USER_THEMES', $ALLOW_USER_THEMES);
-@WT_Site::setPreference('ALLOW_CHANGE_GEDCOM', $ALLOW_CHANGE_GEDCOM);
-@WT_Site::setPreference('SESSION_TIME', $PGV_SESSION_TIME);
-@WT_Site::setPreference('SMTP_ACTIVE', $PGV_SMTP_ACTIVE ? 'external' : 'internal');
-@WT_Site::setPreference('SMTP_HOST', $PGV_SMTP_HOST);
-@WT_Site::setPreference('SMTP_HELO', $PGV_SMTP_HELO);
-@WT_Site::setPreference('SMTP_PORT', $PGV_SMTP_PORT);
-@WT_Site::setPreference('SMTP_AUTH', $PGV_SMTP_AUTH);
-@WT_Site::setPreference('SMTP_AUTH_USER', $PGV_SMTP_AUTH_USER);
-@WT_Site::setPreference('SMTP_AUTH_PASS', $PGV_SMTP_AUTH_PASS);
-@WT_Site::setPreference('SMTP_SSL', $PGV_SMTP_SSL);
-@WT_Site::setPreference('SMTP_FROM_NAME', $PGV_SMTP_FROM_NAME);
+echo '<p>', $INDEX_DIRECTORY, 'config.php => wt_site_setting…</p>';
+
+WT_Site::setPreference('USE_REGISTRATION_MODULE', $USE_REGISTRATION_MODULE);
+WT_Site::setPreference('REQUIRE_ADMIN_AUTH_REGISTRATION', $REQUIRE_ADMIN_AUTH_REGISTRATION);
+WT_Site::setPreference('ALLOW_USER_THEMES', $ALLOW_USER_THEMES);
+WT_Site::setPreference('ALLOW_CHANGE_GEDCOM', $ALLOW_CHANGE_GEDCOM);
+WT_Site::setPreference('SESSION_TIME', $PGV_SESSION_TIME);
+WT_Site::setPreference('SMTP_ACTIVE', $PGV_SMTP_ACTIVE ? 'external' : 'internal');
+WT_Site::setPreference('SMTP_HOST', $PGV_SMTP_HOST);
+WT_Site::setPreference('SMTP_HELO', $PGV_SMTP_HELO);
+WT_Site::setPreference('SMTP_PORT', $PGV_SMTP_PORT);
+WT_Site::setPreference('SMTP_AUTH', $PGV_SMTP_AUTH);
+WT_Site::setPreference('SMTP_AUTH_USER', $PGV_SMTP_AUTH_USER);
+WT_Site::setPreference('SMTP_AUTH_PASS', $PGV_SMTP_AUTH_PASS);
+WT_Site::setPreference('SMTP_SSL', $PGV_SMTP_SSL);
+WT_Site::setPreference('SMTP_FROM_NAME', $PGV_SMTP_FROM_NAME);
////////////////////////////////////////////////////////////////////////////////
-echo '<p>pgv_site_setting => wt_site_setting ...</p>';
+echo '<p>pgv_site_setting => wt_site_setting…</p>';
WT_DB::prepare(
"REPLACE INTO `##site_setting` (setting_name, setting_value)" .
@@ -205,14 +219,14 @@ WT_DB::prepare(
////////////////////////////////////////////////////////////////////////////////
if ($PGV_SCHEMA_VERSION >= 12) {
- echo '<p>pgv_gedcom => wt_gedcom ...</p>';
+ echo '<p>pgv_gedcom => wt_gedcom…</p>';
WT_DB::prepare(
"INSERT INTO `##gedcom` (gedcom_id, gedcom_name)" .
" SELECT gedcom_id, gedcom_name FROM `{$DBNAME}`.`{$TBLPREFIX}gedcom`"
)->execute();
- echo '<p>pgv_gedcom_setting => wt_gedcom_setting ...</p>';
+ echo '<p>pgv_gedcom_setting => wt_gedcom_setting…</p>';
WT_DB::prepare(
"INSERT INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value)" .
@@ -231,28 +245,38 @@ if ($PGV_SCHEMA_VERSION >= 12) {
" END" .
" WHEN 'LANGUAGE' THEN" .
" CASE setting_value" .
+ " WHEN 'arabic' THEN 'ar'" .
" WHEN 'catalan' THEN 'ca'" .
+ " WHEN 'chinese' THEN 'zh_CN'" .
+ " WHEN 'croatian' THEN 'hr'" .
+ " WHEN 'danish' THEN 'da'" .
+ " WHEN 'dutch' THEN 'nl'" .
" WHEN 'english' THEN 'en_US'" .
- " WHEN 'english-uk' THEN 'en_GB'" . // PGV had the config for en_GB, but no language files
- " WHEN 'polish' THEN 'pl'" .
- " WHEN 'italian' THEN 'it'" .
- " WHEN 'spanish' THEN 'es'" .
+ " WHEN 'english-uk' THEN 'en_GB'" . // PGV once had the config for this, but no language files
+ " WHEN 'estonian' THEN 'et'" .
" WHEN 'finnish' THEN 'fi'" .
" WHEN 'french' THEN 'fr'" .
" WHEN 'german' THEN 'de'" .
- " WHEN 'danish' THEN 'da'" .
- " WHEN 'portuguese' THEN 'pt'" .
+ " WHEN 'greek' THEN 'el'" .
" WHEN 'hebrew' THEN 'he'" .
- " WHEN 'estonian' THEN 'et'" .
- " WHEN 'turkish' THEN 'tr'" .
- " WHEN 'dutch' THEN 'nl'" .
- " WHEN 'slovak' THEN 'sk'" .
+ " WHEN 'hungarian' THEN 'hu'" .
+ " WHEN 'indonesian' THEN 'id'" .
+ " WHEN 'italian' THEN 'it'" .
+ " WHEN 'lithuanian' THEN 'lt'" .
" WHEN 'norwegian' THEN 'nn'" .
+ " WHEN 'polish' THEN 'pl'" .
+ " WHEN 'portuguese' THEN 'pt'" .
+ " WHEN 'romainian' THEN 'ro'" .
+ " WHEN 'russian' THEN 'ru'" .
+ " WHEN 'serbian-la' THEN 'sr@Latn'" .
+ " WHEN 'slovak' THEN 'sk'" .
" WHEN 'slovenian' THEN 'sl'" .
- " WHEN 'hungarian' THEN 'hu'" .
+ " WHEN 'spanish' THEN 'es'" .
+ " WHEN 'spanish-ar' THEN 'es'" . // webtrees does not yet have this variant
" WHEN 'swedish' THEN 'sv'" .
- " WHEN 'russian' THEN 'ru'" .
- " ELSE 'en_US'" . // PGV supports other languages that webtrees does not (yet)
+ " WHEN 'turkish' THEN 'tr'" .
+ " WHEN 'vietnamese' THEN 'vi'" .
+ " ELSE 'en_US'" .
" END" .
" ELSE setting_value" .
" END" .
@@ -260,7 +284,7 @@ if ($PGV_SCHEMA_VERSION >= 12) {
" WHERE setting_name NOT IN ('HOME_SITE_TEXT', 'HOME_SITE_URL')"
)->execute();
- echo '<p>pgv_user => wt_user ...</p>';
+ echo '<p>pgv_user => wt_user…</p>';
try {
// "INSERT IGNORE" is needed to allow for PGV users with duplicate emails. Only the first will be imported.
@@ -278,7 +302,7 @@ if ($PGV_SCHEMA_VERSION >= 12) {
// Ignore duplicates
}
- echo '<p>pgv_user_setting => wt_user_setting ...</p>';
+ echo '<p>pgv_user_setting => wt_user_setting…</p>';
WT_DB::prepare(
"INSERT INTO `##user_setting` (user_id, setting_name, setting_value)" .
@@ -286,27 +310,37 @@ if ($PGV_SCHEMA_VERSION >= 12) {
" CASE setting_name" .
" WHEN 'language' THEN " .
" CASE setting_value" .
+ " WHEN 'arabic' THEN 'ar'" .
" WHEN 'catalan' THEN 'ca'" .
+ " WHEN 'chinese' THEN 'zh_CN'" .
+ " WHEN 'croatian' THEN 'hr'" .
+ " WHEN 'danish' THEN 'da'" .
+ " WHEN 'dutch' THEN 'nl'" .
" WHEN 'english' THEN 'en_US'" .
- " WHEN 'english-uk' THEN 'en_GB'" . // PGV had the config for en_GB, but no language files
- " WHEN 'polish' THEN 'pl'" .
- " WHEN 'italian' THEN 'it'" .
- " WHEN 'spanish' THEN 'es'" .
+ " WHEN 'english-uk' THEN 'en_GB'" . // PGV once had the config for this, but no language files
+ " WHEN 'estonian' THEN 'et'" .
" WHEN 'finnish' THEN 'fi'" .
" WHEN 'french' THEN 'fr'" .
" WHEN 'german' THEN 'de'" .
- " WHEN 'danish' THEN 'da'" .
- " WHEN 'portuguese' THEN 'pt'" .
+ " WHEN 'greek' THEN 'el'" .
" WHEN 'hebrew' THEN 'he'" .
- " WHEN 'estonian' THEN 'et'" .
- " WHEN 'turkish' THEN 'tr'" .
- " WHEN 'dutch' THEN 'nl'" .
- " WHEN 'slovak' THEN 'sk'" .
+ " WHEN 'hungarian' THEN 'hu'" .
+ " WHEN 'indonesian' THEN 'id'" .
+ " WHEN 'italian' THEN 'it'" .
+ " WHEN 'lithuanian' THEN 'lt'" .
" WHEN 'norwegian' THEN 'nn'" .
+ " WHEN 'polish' THEN 'pl'" .
+ " WHEN 'portuguese' THEN 'pt'" .
+ " WHEN 'romainian' THEN 'ro'" .
+ " WHEN 'russian' THEN 'ru'" .
+ " WHEN 'serbian-la' THEN 'sr@Latn'" .
+ " WHEN 'slovak' THEN 'sk'" .
" WHEN 'slovenian' THEN 'sl'" .
- " WHEN 'hungarian' THEN 'hu'" .
+ " WHEN 'spanish' THEN 'es'" .
+ " WHEN 'spanish-ar' THEN 'es'" . // webtrees does not yet have this variant
" WHEN 'swedish' THEN 'sv'" .
- " WHEN 'russian' THEN 'ru'" .
+ " WHEN 'turkish' THEN 'tr'" .
+ " WHEN 'vietnamese' THEN 'vi'" .
" ELSE 'en_US'" . // PGV supports other languages that webtrees does not (yet)
" END" .
" WHEN 'theme' THEN" .
@@ -329,7 +363,7 @@ if ($PGV_SCHEMA_VERSION >= 12) {
" WHERE setting_name NOT IN ('email', 'firstname', 'lastname', 'loggedin')"
)->execute();
- echo '<p>pgv_user_gedcom_setting => wt_user_gedcom_setting ...</p>';
+ echo '<p>pgv_user_gedcom_setting => wt_user_gedcom_setting…</p>';
WT_DB::prepare(
"INSERT INTO `##user_gedcom_setting` (user_id, gedcom_id, setting_name, setting_value)" .
@@ -339,10 +373,9 @@ if ($PGV_SCHEMA_VERSION >= 12) {
} else {
// Copied from PGV's db_schema_11_12
- if (file_exists("{$INDEX_DIRECTORY}/gedcoms.php")) {
- require_once "{$INDEX_DIRECTORY}/gedcoms.php";
- $file = $INDEX_DIRECTORY . '/gedcoms.php';
- echo '<p>', $file, ' => wt_gedcom ...</p>';
+ if (file_exists($INDEX_DIRECTORY . 'gedcoms.php')) {
+ require_once $INDEX_DIRECTORY . 'gedcoms.php';
+ echo '<p>', $INDEX_DIRECTORY . 'gedcoms.php', ' => wt_gedcom…</p>';
if (isset($GEDCOMS) && is_array($GEDCOMS)) {
foreach ($GEDCOMS as $array) {
@@ -353,7 +386,7 @@ if ($PGV_SCHEMA_VERSION >= 12) {
// Ignore duplicates
}
// insert gedcom
- foreach ($array as $key=>$value) {
+ foreach ($array as $key => $value) {
if ($key != 'id' && $key != 'gedcom' && $key != 'commonsurnames') {
try {
WT_DB::prepare("INSERT INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value) VALUES (?,?, ?)")
@@ -368,7 +401,7 @@ if ($PGV_SCHEMA_VERSION >= 12) {
}
// Migrate the data from pgv_users into pgv_user/pgv_user_setting/pgv_user_gedcom_setting
- echo '<p>pgv_users => wt_user ...</p>';
+ echo '<p>pgv_users => wt_user…</p>';
try {
// "INSERT IGNORE" is needed to allow for PGV users with duplicate emails. Only the first will be imported.
@@ -381,7 +414,7 @@ if ($PGV_SCHEMA_VERSION >= 12) {
// a) we've already done it (upgrade)
// b) it doesn't exist (new install)
}
- echo '<p>pgv_users => wt_user_setting ...</p>';
+ echo '<p>pgv_users => wt_user_setting…</p>';
try {
WT_DB::prepare(
@@ -404,26 +437,26 @@ if ($PGV_SCHEMA_VERSION >= 12) {
" SELECT user_id, 'language', " .
" CASE u_language" .
" WHEN 'catalan' THEN 'ca'" .
+ " WHEN 'danish' THEN 'da'" .
+ " WHEN 'dutch' THEN 'nl'" .
" WHEN 'english' THEN 'en_US'" .
" WHEN 'english-uk' THEN 'en_GB'" . // PGV had the config for en_GB, but no language files
- " WHEN 'polish' THEN 'pl'" .
- " WHEN 'italian' THEN 'it'" .
- " WHEN 'spanish' THEN 'es'" .
+ " WHEN 'estonian' THEN 'et'" .
" WHEN 'finnish' THEN 'fi'" .
" WHEN 'french' THEN 'fr'" .
" WHEN 'german' THEN 'de'" .
- " WHEN 'danish' THEN 'da'" .
- " WHEN 'portuguese' THEN 'pt'" .
" WHEN 'hebrew' THEN 'he'" .
- " WHEN 'estonian' THEN 'et'" .
- " WHEN 'turkish' THEN 'tr'" .
- " WHEN 'dutch' THEN 'nl'" .
- " WHEN 'slovak' THEN 'sk'" .
+ " WHEN 'hungarian' THEN 'hu'" .
+ " WHEN 'italian' THEN 'it'" .
" WHEN 'norwegian' THEN 'nn'" .
+ " WHEN 'polish' THEN 'pl'" .
+ " WHEN 'portuguese' THEN 'pt'" .
+ " WHEN 'russian' THEN 'ru'" .
+ " WHEN 'slovak' THEN 'sk'" .
" WHEN 'slovenian' THEN 'sl'" .
- " WHEN 'hungarian' THEN 'hu'" .
+ " WHEN 'spanish' THEN 'es'" .
" WHEN 'swedish' THEN 'sv'" .
- " WHEN 'russian' THEN 'ru'" .
+ " WHEN 'turkish' THEN 'tr'" .
" ELSE 'en_US'" . // PGV supports other languages that webtrees does not (yet)
" END" .
" FROM `{$DBNAME}`.`{$TBLPREFIX}users`" .
@@ -500,7 +533,7 @@ if ($PGV_SCHEMA_VERSION >= 12) {
WT_DB::prepare(
"UPDATE `##user_setting` SET setting_value=CAST(setting_value AS UNSIGNED) WHERE setting_name='reg_timestamp'"
)->execute();
- echo '<p>pgv_users => wt_user_gedcom_setting ...</p>';
+ echo '<p>pgv_users => wt_user_gedcom_setting…</p>';
$user_gedcom_settings =
WT_DB::prepare(
@@ -511,7 +544,7 @@ if ($PGV_SCHEMA_VERSION >= 12) {
foreach ($user_gedcom_settings as $setting) {
@$array = unserialize($setting->u_gedcomid);
if (is_array($array)) {
- foreach ($array as $gedcom=>$value) {
+ foreach ($array as $gedcom => $value) {
try {
WT_DB::prepare(
"INSERT IGNORE INTO `##user_gedcom_setting` (user_id, gedcom_id, setting_name, setting_value) VALUES (?, ?, ?, ?)"
@@ -523,7 +556,7 @@ if ($PGV_SCHEMA_VERSION >= 12) {
}
@$array = unserialize($setting->u_rootid);
if (is_array($array)) {
- foreach ($array as $gedcom=>$value) {
+ foreach ($array as $gedcom => $value) {
try {
WT_DB::prepare(
"INSERT IGNORE INTO `##user_gedcom_setting` (user_id, gedcom_id, setting_name, setting_value) VALUES (?, ?, ?, ?)"
@@ -535,7 +568,7 @@ if ($PGV_SCHEMA_VERSION >= 12) {
}
@$array = unserialize($setting->u_canedit);
if (is_array($array)) {
- foreach ($array as $gedcom=>$value) {
+ foreach ($array as $gedcom => $value) {
try {
WT_DB::prepare(
"INSERT IGNORE INTO `##user_gedcom_setting` (user_id, gedcom_id, setting_name, setting_value) VALUES (?, ?, ?, ?)"
@@ -574,20 +607,98 @@ $GEDCOMS = WT_DB::prepare(
" AND gs2.setting_name='privacy'"
)->fetchAll(PDO::FETCH_ASSOC);
-foreach ($GEDCOMS as $GEDCOM=>$GED_DATA) {
- $config = $GED_DATA['config'];
- if ($PGV_SCHEMA_VERSION >= 12) {
- $config = str_replace('${INDEX_DIRECTORY}', $INDEX_DIRECTORY . DIRECTORY_SEPARATOR, $config);
- } else {
- $config = str_replace($INDEX_DIRECTORY, $INDEX_DIRECTORY . DIRECTORY_SEPARATOR, $config);
- }
- if (substr($config, 0, 1) == '.') {
+foreach ($GEDCOMS as $GEDCOM => $GED_DATA) {
+ // We read these variables from PGV's index/*_conf.php, and set them here in case any are missing.
+ $ADVANCED_NAME_FACTS = '';
+ $ADVANCED_PLAC_FACTS = '';
+ $ALLOW_THEME_DROPDOWN = '';
+ $CALENDAR_FORMAT = '';
+ $CHART_BOX_TAGS = '';
+ $COMMON_NAMES_ADD = '';
+ $COMMON_NAMES_REMOVE = '';
+ $COMMON_NAMES_THRESHOLD = '';
+ $CONTACT_USER_ID = '';
+ $DEFAULT_PEDIGREE_GENERATIONS = '';
+ $EXPAND_NOTES = '';
+ $EXPAND_RELATIVES_EVENTS = '';
+ $EXPAND_SOURCES = '';
+ $FAM_FACTS_ADD = '';
+ $FAM_FACTS_QUICK = '';
+ $FAM_FACTS_UNIQUE = '';
+ $FAM_ID_PREFIX = '';
+ $FULL_SOURCES = '';
+ $GEDCOM_ID_PREFIX = '';
+ $GENERATE_UIDS = '';
+ $HIDE_GEDCOM_ERRORS = '';
+ $HIDE_LIVE_PEOPLE = '';
+ $INDI_FACTS_ADD = '';
+ $INDI_FACTS_QUICK = '';
+ $INDI_FACTS_UNIQUE = '';
+ $LANGUAGE = '';
+ $MAX_ALIVE_AGE = '';
+ $MAX_DESCENDANCY_GENERATIONS = '';
+ $MAX_PEDIGREE_GENERATIONS = '';
+ $MAX_RELATION_PATH_LENGTH = '';
+ $MEDIA_DIRECTORY = '';
+ $MEDIA_ID_PREFIX = '';
+ $META_DESCRIPTION = '';
+ $META_TITLE = '';
+ $MEDIA_UPLOAD = '';
+ $NOTE_FACTS_ADD = '';
+ $NOTE_FACTS_QUICK = '';
+ $NOTE_FACTS_UNIQUE = '';
+ $NOTE_ID_PREFIX = '';
+ $NO_UPDATE_CHAN = '';
+ $PEDIGREE_FULL_DETAILS = '';
+ $PEDIGREE_LAYOUT = '';
+ $PEDIGREE_ROOT_ID = '';
+ $PEDIGREE_SHOW_GENDER = '';
+ $PREFER_LEVEL2_SOURCES = '';
+ $QUICK_REQUIRED_FACTS = '';
+ $QUICK_REQUIRED_FAMFACTS = '';
+ $REPO_FACTS_ADD = '';
+ $REPO_FACTS_QUICK = '';
+ $REPO_FACTS_UNIQUE = '';
+ $REPO_ID_PREFIX = '';
+ $REQUIRE_AUTHENTICATION = '';
+ $SAVE_WATERMARK_IMAGE = '';
+ $SAVE_WATERMARK_THUMB = '';
+ $SHOW_AGE_DIFF = '';
+ $SHOW_COUNTER = '';
+ $SHOW_DEAD_PEOPLE = '';
+ $SHOW_EST_LIST_DATES = '';
+ $SHOW_FACT_ICONS = '';
+ $SHOW_GEDCOM_RECORD = '';
+ $SHOW_HIGHLIGHT_IMAGES = '';
+ $SHOW_LDS_AT_GLANCE = '';
+ $SHOW_LEVEL2_NOTES = '';
+ $SHOW_LIST_PLACES = '';
+ $SHOW_LIVING_NAMES = '';
+ $SHOW_MEDIA_DOWNLOAD = '';
+ $SHOW_PARENTS_AGE = '';
+ $SHOW_PEDIGREE_PLACES = '';
+ $SHOW_PRIVATE_RELATIONSHIPS = '';
+ $SHOW_RELATIVES_EVENTS = '';
+ $SHOW_STATS = '';
+ $SOURCE_ID_PREFIX = '';
+ $SOUR_FACTS_ADD = '';
+ $SOUR_FACTS_QUICK = '';
+ $SOUR_FACTS_UNIQUE = '';
+ $SUBLIST_TRIGGER_I = '';
+ $SURNAME_LIST_STYLE = '';
+ $SURNAME_TRADITION = '';
+ $THEME_DIR = '';
+ $THUMBNAIL_WIDTH = '';
+ $USE_RELATIONSHIP_PRIVACY = '';
+ $USE_RIN = '';
+ $WATERMARK_THUMB = '';
+ $WEBMASTER_USER_ID = '';
+ $WORD_WRAPPED_NOTES = '';
+
+ $config = str_replace(array('$INDEX_DIRECTORY', '${INDEX_DIRECTORY}'), $INDEX_DIRECTORY, $GED_DATA['config']);
+ if (substr($config, 0, 1) === '.') {
$config = $PGV_PATH . '/' . $config;
}
- // Some settings were added in later versions of PGV, and may not be set if the
- // user has not used the PGV admin pages since upgrading.
- $NOTE_FACTS_ADD = '';
- $FULL_SOURCES = '';
if (is_readable($config)) {
echo '<p>Reading configuration file ', $config, '</p>';
require $config;
@@ -595,24 +706,48 @@ foreach ($GEDCOMS as $GEDCOM=>$GED_DATA) {
echo '<p>Error - could not read configuration file ', $config, '</p>';
}
- $privacy = $GED_DATA['privacy'];
- if ($PGV_SCHEMA_VERSION >= 12) {
- $privacy = str_replace('${INDEX_DIRECTORY}', $INDEX_DIRECTORY . DIRECTORY_SEPARATOR, $privacy);
- } else {
- $privacy = str_replace($INDEX_DIRECTORY, $INDEX_DIRECTORY . DIRECTORY_SEPARATOR, $privacy);
- }
+ $stmt_default_resn = WT_DB::prepare("INSERT INTO `##default_resn` (gedcom_id, xref, tag_type, resn) VALUES (?, ?, ?, CASE ? WHEN -1 THEN 'hidden' WHEN 0 THEN 'confidential' WHEN 1 THEN 'privacy' ELSE 'none' END)");
+ $stmt_gedcom_setting = WT_DB::prepare("INSERT INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value) VALUES (?,?,?)");
+
+
+ $privacy = str_replace(array('$INDEX_DIRECTORY', '${INDEX_DIRECTORY}'), $INDEX_DIRECTORY, $GED_DATA['privacy']);
if (substr($config, 0, 1) == '.') {
$privacy = $PGV_PATH . '/' . $privacy;
}
if (is_readable($privacy)) {
+ // initialise this, in case it is missing from the file
+ $person_privacy = array();
+ $person_facts = array();
+ $global_facts = array();
+
echo '<p>Reading privacy file ', $privacy, '</p>';
require $privacy;
+
+ foreach ($global_facts as $key => $value) {
+ if (isset($value['details'])) {
+ $stmt_default_resn->execute(array($GED_DATA['id'], null, $key, $value['details']));
+ }
+ }
+
+ foreach ($person_privacy as $key => $value) {
+ if (isset($value['details'])) {
+ $stmt_default_resn->execute(array($GED_DATA['id'], $key, null, $value['details']));
+ }
+ }
+
+ foreach ($person_facts as $key1 => $array) {
+ foreach ($array as $key2 => $value) {
+ if (isset($value['details'])) {
+ $stmt_default_resn->execute(array($GED_DATA['id'], $key1, $key2, $value['details']));
+ }
+ }
+ }
+
+
} else {
echo '<p>Could not read privacy file ', $privacy, '</p>';
}
- $stmt_gedcom_setting = WT_DB::prepare("INSERT INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value) VALUES (?,?,?)");
-
$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'ADVANCED_NAME_FACTS', $ADVANCED_NAME_FACTS));
$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'ADVANCED_PLAC_FACTS', $ADVANCED_PLAC_FACTS));
$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'ALLOW_THEME_DROPDOWN', $ALLOW_THEME_DROPDOWN));
@@ -639,27 +774,69 @@ foreach ($GEDCOMS as $GEDCOM=>$GED_DATA) {
$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'INDI_FACTS_QUICK', $INDI_FACTS_QUICK));
$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'INDI_FACTS_UNIQUE', $INDI_FACTS_UNIQUE));
switch ($LANGUAGE) {
- case 'catalan': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'ca')); break;
- case 'english-uk': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'en_GB')); break;
- case 'polish': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'pl')); break;
- case 'italian': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'it')); break;
- case 'spanish': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'es')); break;
- case 'finnish': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'fi')); break;
- case 'french': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'fr')); break;
- case 'german': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'de')); break;
- case 'danish': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'da')); break;
- case 'portuguese': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'pt')); break;
- case 'hebrew': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'he')); break;
- case 'estonian': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'et')); break;
- case 'turkish': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'tr')); break;
- case 'dutch': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'nl')); break;
- case 'slovak': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sk')); break;
- case 'norwegian': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'nn')); break;
- case 'slovenian': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sl')); break;
- case 'hungarian': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'hu')); break;
- case 'swedish': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sv')); break;
- case 'russian': $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'ru')); break;
- default: $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'en_US')); break;
+ case 'catalan':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'ca'));
+ break;
+ case 'english-uk':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'en_GB'));
+ break;
+ case 'polish':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'pl'));
+ break;
+ case 'italian':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'it'));
+ break;
+ case 'spanish':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'es'));
+ break;
+ case 'finnish':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'fi'));
+ break;
+ case 'french':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'fr'));
+ break;
+ case 'german':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'de'));
+ break;
+ case 'danish':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'da'));
+ break;
+ case 'portuguese':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'pt'));
+ break;
+ case 'hebrew':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'he'));
+ break;
+ case 'estonian':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'et'));
+ break;
+ case 'turkish':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'tr'));
+ break;
+ case 'dutch':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'nl'));
+ break;
+ case 'slovak':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sk'));
+ break;
+ case 'norwegian':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'nn'));
+ break;
+ case 'slovenian':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sl'));
+ break;
+ case 'hungarian':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'hu'));
+ break;
+ case 'swedish':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'sv'));
+ break;
+ case 'russian':
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'ru'));
+ break;
+ default:
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'LANGUAGE', 'en_US'));
+ break;
}
$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'MAX_ALIVE_AGE', $MAX_ALIVE_AGE));
$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'MAX_DESCENDANCY_GENERATIONS', $MAX_DESCENDANCY_GENERATIONS));
@@ -747,10 +924,10 @@ foreach ($GEDCOMS as $GEDCOM=>$GED_DATA) {
$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'USE_RELATIONSHIP_PRIVACY', $USE_RELATIONSHIP_PRIVACY));
$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'USE_RIN', $USE_RIN));
$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'WATERMARK_THUMB', $WATERMARK_THUMB));
- @$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'WEBMASTER_USER_ID', User::findByIdentifier($WEBMASTER_EMAIL)->getUserId()));
+ $stmt_gedcom_setting->execute(array($GED_DATA['id'], 'WEBMASTER_USER_ID', User::findByIdentifier($WEBMASTER_EMAIL)->getUserId()));
$stmt_gedcom_setting->execute(array($GED_DATA['id'], 'WORD_WRAPPED_NOTES', $WORD_WRAPPED_NOTES));
}
-WT_DB::prepare("DELETE FROM `##gedcom_setting` WHERE setting_name in ('config', 'privacy', 'path', 'pgv_ver', 'imported')")->execute();
+WT_DB::prepare("DELETE FROM `##gedcom_setting` WHERE setting_name IN ('config', 'privacy', 'path', 'pgv_ver', 'imported')")->execute();
// webtrees 1.0.5 combines user and gedcom settings for relationship privacy
// into a combined user-gedcom setting, for more granular control
@@ -797,13 +974,12 @@ WT_DB::prepare(
" AND `##gedcom`.gedcom_id > 0"
)->execute();
-
////////////////////////////////////////////////////////////////////////////////
// Hit counter
////////////////////////////////////////////////////////////////////////////////
//
if ($PGV_SCHEMA_VERSION >= 13) {
- echo '<p>pgv_hit_counter => wt_hit_counter ...</p>';
+ echo '<p>pgv_hit_counter => wt_hit_counter…</p>';
WT_DB::prepare(
"REPLACE INTO `##hit_counter` (gedcom_id, page_name, page_parameter, page_count)" .
@@ -813,19 +989,18 @@ if ($PGV_SCHEMA_VERSION >= 13) {
// Copied from PGV's db_schema_12_13
$statement = WT_DB::prepare("INSERT IGNORE INTO `##hit_counter` (gedcom_id, page_name, page_parameter, page_count) VALUES (?, ?, ?, ?)");
- foreach ($GEDCOMS as $GEDCOM=>$GED_DATA) {
- // Caution these files might be quite large...
- $file = $INDEX_DIRECTORY . '/' . $GEDCOM . 'pgv_counters.txt';
- echo '<p>', $file, ' => wt_hit_counter ...</p>';
+ foreach ($GEDCOMS as $GEDCOM => $GED_DATA) {
+ $file = $INDEX_DIRECTORY . '/' . $GED_DATA['gedcom'] . 'pgv_counters.txt';
+ echo '<p>', $file, ' => wt_hit_counter…</p>';
if (file_exists($file)) {
foreach (file($file) as $line) {
if (preg_match('/(@([A-Za-z0-9:_-]+)@ )?(\d+)/', $line, $match)) {
if ($match[2]) {
- $page_name = 'individual.php';
+ $page_name = 'individual.php';
$page_parameter = $match[2];
} else {
- $page_name = 'index.php';
+ $page_name = 'index.php';
$page_parameter = 'gedcom:' . $GED_DATA['id'];
}
try {
@@ -841,65 +1016,11 @@ if ($PGV_SCHEMA_VERSION >= 13) {
////////////////////////////////////////////////////////////////////////////////
-if ($PGV_SCHEMA_VERSION >= 14) {
- echo '<p>pgv_ip_address => wt_ip_address ...</p>';
-
- WT_DB::prepare(
- "INSERT IGNORE INTO `##ip_address` (ip_address, category, comment)" .
- " SELECT ip_address, category, comment FROM `{$DBNAME}`.`{$TBLPREFIX}ip_address`"
- )->execute();
-} else {
- // Copied from PGV's db_schema_13_14
- $statement = WT_DB::prepare("REPLACE INTO `##ip_address` (ip_address, category, comment) VALUES (?, ?, ?)");
- echo '<p>', $INDEX_DIRECTORY, DIRECTORY_SEPARATOR, 'banned.php => wt_ip_address ...</p>';
-
- if (is_readable($INDEX_DIRECTORY . '/banned.php')) {
- @require $INDEX_DIRECTORY . '/banned.php';
- if (!empty($banned) && is_array($banned)) {
- foreach ($banned as $value) {
- try {
- if (is_array($value)) {
- // New format: array(ip, comment)
- $statement->execute(array($value[0], 'banned', $value[1]));
- } else {
- // Old format: string(ip)
- $statement->execute(array($value, 'banned', ''));
- }
- } catch (PDOException $ex) {
- echo $ex, '<br>';
- }
- }
- }
- }
- echo '<p>', $INDEX_DIRECTORY, DIRECTORY_SEPARATOR, 'search_engines.php => wt_ip_address ...</p>';
-
- if (is_readable($INDEX_DIRECTORY . '/search_engines.php')) {
- @require $INDEX_DIRECTORY . '/search_engines.php';
- if (!empty($search_engines) && is_array($search_engines)) {
- foreach ($search_engines as $value) {
- try {
- if (is_array($value)) {
- // New format: array(ip, comment)
- $statement->execute(array($value[0], 'search-engine', $value[1]));
- } else {
- // Old format: string(ip)
- $statement->execute(array($value, 'search-engine', ''));
- }
- } catch (PDOException $ex) {
- echo $ex, '<br>';
- }
- }
- }
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
foreach ($GEDCOMS as $GED_DATA) {
WT_Module::setDefaultAccess($GED_DATA['id']);
}
-echo '<p>pgv_site_setting => wt_module_setting ...</p>';
+echo '<p>pgv_site_setting => wt_module_setting…</p>';
WT_DB::prepare(
"REPLACE INTO `##module_setting` (module_name, setting_name, setting_value)" .
@@ -914,7 +1035,7 @@ WT_DB::prepare(
////////////////////////////////////////////////////////////////////////////////
-echo '<p>pgv_favorites => wt_favorite ...</p>';
+echo '<p>pgv_favorites => wt_favorite…</p>';
try {
WT_DB::prepare(
@@ -930,7 +1051,7 @@ try {
////////////////////////////////////////////////////////////////////////////////
-echo '<p>pgv_news => wt_news ...</p>';
+echo '<p>pgv_news => wt_news…</p>';
try {
WT_DB::prepare(
@@ -946,7 +1067,7 @@ try {
////////////////////////////////////////////////////////////////////////////////
-echo '<p>pgv_nextid => wt_next_id ...</p>';
+echo '<p>pgv_nextid => wt_next_id…</p>';
WT_DB::prepare(
"REPLACE INTO `##next_id` (gedcom_id, record_type, next_id)" .
@@ -958,7 +1079,7 @@ WT_DB::prepare(
////////////////////////////////////////////////////////////////////////////////
-echo '<p>pgv_messages => wt_message ...</p>';
+echo '<p>pgv_messages => wt_message…</p>';
WT_DB::prepare(
"REPLACE INTO `##message` (message_id, sender, ip_address, user_id, subject, body, created)" .
@@ -970,7 +1091,7 @@ WT_DB::prepare(
////////////////////////////////////////////////////////////////////////////////
try {
- echo '<p>pgv_placelocation => wt_placelocation ...</p>';
+ echo '<p>pgv_placelocation => wt_placelocation…</p>';
WT_DB::prepare(
"REPLACE INTO `##placelocation` (pl_id, pl_parent_id, pl_level, pl_place, pl_long, pl_lati, pl_zoom, pl_icon)" .
@@ -982,7 +1103,7 @@ try {
////////////////////////////////////////////////////////////////////////////////
-echo '<p>Genealogy records ...</p>';
+echo '<p>Genealogy records…</p>';
WT_DB::prepare(
"INSERT INTO `##gedcom_chunk` (gedcom_id, chunk_data, imported)" .
diff --git a/admin_trees_manage.php b/admin_trees_manage.php
index 4a6fd7a59f..8bb2428060 100644
--- a/admin_trees_manage.php
+++ b/admin_trees_manage.php
@@ -601,18 +601,12 @@ case 'importform':
<?php echo WT_I18N::translate('webtrees’ database must be on the same server as PGV’s'); ?>
</li>
<li>
- <?php echo WT_I18N::translate('PGV must be version 4.2.3, or any SVN up to #6973'); ?>
+ <?php echo /* I18N: %s is a number */ WT_I18N::translate('PGV must be version 4.2.3, or any SVN up to #%s', WT_I18N::digits(7101)); ?>
</li>
<li>
<?php echo WT_I18N::translate('All changes in PGV must be accepted'); ?>
</li>
<li>
- <?php echo WT_I18N::translate('You must export your latest GEDCOM data'); ?>
- </li>
- <li>
- <?php echo WT_I18N::translate('The current webtrees admin username must be the same as an existing PGV admin username'); ?>
- </li>
- <li>
<?php echo WT_I18N::translate('All existing PGV users must have distinct email addresses'); ?>
</li>
</ul>
diff --git a/includes/db_schema/db_schema_29_30.php b/includes/db_schema/db_schema_29_30.php
new file mode 100644
index 0000000000..554a38387f
--- /dev/null
+++ b/includes/db_schema/db_schema_29_30.php
@@ -0,0 +1,36 @@
+<?php
+// Update the database schema from version 29-30
+// - delete an old/unused table
+//
+// The script should assume that it can be interrupted at
+// any point, and be able to continue by re-running the script.
+// Fatal errors, however, should be allowed to throw exceptions,
+// which will be caught by the framework.
+// It shouldn't do anything that might take more than a few
+// seconds, for systems with low timeout values.
+//
+// webtrees: Web based Family History software
+// Copyright (C) 2014 Greg Roach
+//
+// 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+try {
+ WT_DB::exec("DROP TABLE `##ip_address`");
+} catch (PDOException $ex) {
+ // Already deleted?
+}
+
+// Update the version to indicate success
+WT_Site::setPreference($schema_name, $next_version);
diff --git a/language/ar.po b/language/ar.po
index 3a277b4ab0..ea8b9029f4 100644
--- a/language/ar.po
+++ b/language/ar.po
@@ -10424,8 +10424,8 @@ msgid "P.M."
msgstr "م."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "يجب أن تكون نسخة PGV 4.2.3 أو نسخة تطوير إلى 6973#"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "يجب أن تكون نسخة PGV 4.2.3 أو نسخة تطوير إلى %s#"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/bg.po b/language/bg.po
index 68cf3a9eb3..001ee6cdfd 100644
--- a/language/bg.po
+++ b/language/bg.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/bs.po b/language/bs.po
index f59c7badd2..969ec13665 100644
--- a/language/bs.po
+++ b/language/bs.po
@@ -10314,7 +10314,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/ca.po b/language/ca.po
index 1ed823e28b..123ce8909f 100644
--- a/language/ca.po
+++ b/language/ca.po
@@ -10291,8 +10291,8 @@ msgid "P.M."
msgstr "P.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV ha d’ésser versió 4.2.3, o qualsevol SVN fins el #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV ha d’ésser versió 4.2.3, o qualsevol SVN fins el #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/cs.po b/language/cs.po
index d2dc2941c8..ca50a41dd5 100644
--- a/language/cs.po
+++ b/language/cs.po
@@ -10321,8 +10321,8 @@ msgid "P.M."
msgstr "Odpoledne"
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV musí být ve verzi 4.2.3 nebo z SVN až po #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV musí být ve verzi 4.2.3 nebo z SVN až po #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/da.po b/language/da.po
index 0c49529c73..83652fa1ca 100644
--- a/language/da.po
+++ b/language/da.po
@@ -10291,8 +10291,8 @@ msgid "P.M."
msgstr "P.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV skal være version 4.2.3, eller en SVN op til #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV skal være version 4.2.3, eller en SVN op til #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/de.po b/language/de.po
index be63a95789..f713dc171d 100644
--- a/language/de.po
+++ b/language/de.po
@@ -10287,8 +10287,8 @@ msgid "P.M."
msgstr "Nachmittag"
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV muss Version 4.2.3 oder eine SVN-Version bis zu Build #6973 sein."
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV muss Version 4.2.3 oder eine SVN-Version bis zu Build #%s sein."
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/el.po b/language/el.po
index 74fe547a22..bed3a0b850 100644
--- a/language/el.po
+++ b/language/el.po
@@ -10291,7 +10291,7 @@ msgid "P.M."
msgstr "Μ.Μ."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/en_GB.po b/language/en_GB.po
index fd8259d496..ff2f8c0b66 100644
--- a/language/en_GB.po
+++ b/language/en_GB.po
@@ -10291,7 +10291,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/en_US.po b/language/en_US.po
index 2a1aa75889..0c13e36913 100644
--- a/language/en_US.po
+++ b/language/en_US.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/es.po b/language/es.po
index 86f7cd966f..6cfffbf176 100644
--- a/language/es.po
+++ b/language/es.po
@@ -10292,8 +10292,8 @@ msgid "P.M."
msgstr "P.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV debe ser de la versión 4.2.3, o cualquier SVN superior al #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV debe ser de la versión 4.2.3, o cualquier SVN superior al #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/et.po b/language/et.po
index 634b2529a1..a5efcd820a 100644
--- a/language/et.po
+++ b/language/et.po
@@ -10293,7 +10293,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/af.po b/language/extra/af.po
index ed1b2ef3ba..8e816c2c9e 100644
--- a/language/extra/af.po
+++ b/language/extra/af.po
@@ -10286,7 +10286,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/dv.po b/language/extra/dv.po
index b33453c0bd..c342f65857 100644
--- a/language/extra/dv.po
+++ b/language/extra/dv.po
@@ -10260,7 +10260,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/en_AU.po b/language/extra/en_AU.po
index a01209573b..d46334d451 100644
--- a/language/extra/en_AU.po
+++ b/language/extra/en_AU.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/fa.po b/language/extra/fa.po
index 0bed3a8ba3..89e43dcf59 100644
--- a/language/extra/fa.po
+++ b/language/extra/fa.po
@@ -10272,7 +10272,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/fo.po b/language/extra/fo.po
index 77dbef9694..45e6027342 100644
--- a/language/extra/fo.po
+++ b/language/extra/fo.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/fr_CA.po b/language/extra/fr_CA.po
index 7365e3c2ee..a52caf0f3c 100644
--- a/language/extra/fr_CA.po
+++ b/language/extra/fr_CA.po
@@ -10289,8 +10289,8 @@ msgid "P.M."
msgstr "P.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV doit être la version 4.2.3, ou tout SVN jusqu’à # 6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV doit être la version 4.2.3, ou tout SVN jusqu’à # %s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/extra/gl.po b/language/extra/gl.po
index 90d673c529..185a335320 100644
--- a/language/extra/gl.po
+++ b/language/extra/gl.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/id.po b/language/extra/id.po
index 669e7b4296..fc5c4728c9 100644
--- a/language/extra/id.po
+++ b/language/extra/id.po
@@ -10265,7 +10265,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/ja.po b/language/extra/ja.po
index 706fda554f..594233b745 100644
--- a/language/extra/ja.po
+++ b/language/extra/ja.po
@@ -10260,7 +10260,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/ka.po b/language/extra/ka.po
index e9fb5e4ec2..624f89c7bc 100644
--- a/language/extra/ka.po
+++ b/language/extra/ka.po
@@ -10260,7 +10260,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/ko.po b/language/extra/ko.po
index 1184c30347..b44357c956 100644
--- a/language/extra/ko.po
+++ b/language/extra/ko.po
@@ -10260,7 +10260,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/lv.po b/language/extra/lv.po
index 0bc7b5e971..7fb664a70d 100644
--- a/language/extra/lv.po
+++ b/language/extra/lv.po
@@ -10312,7 +10312,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/mi.po b/language/extra/mi.po
index a8131cd9c6..99e7d74870 100644
--- a/language/extra/mi.po
+++ b/language/extra/mi.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/ms.po b/language/extra/ms.po
index 25a54de77f..c33980daf9 100644
--- a/language/extra/ms.po
+++ b/language/extra/ms.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/ne.po b/language/extra/ne.po
index 6a2dc56bb4..95e9883ae1 100644
--- a/language/extra/ne.po
+++ b/language/extra/ne.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/oc.po b/language/extra/oc.po
index 631d310289..b3c48a2c82 100644
--- a/language/extra/oc.po
+++ b/language/extra/oc.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/ro.po b/language/extra/ro.po
index 7517d0398a..0dc6cdd747 100644
--- a/language/extra/ro.po
+++ b/language/extra/ro.po
@@ -10314,7 +10314,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/sl.po b/language/extra/sl.po
index fa2bcc2e90..98b54ca3c6 100644
--- a/language/extra/sl.po
+++ b/language/extra/sl.po
@@ -10346,7 +10346,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/sr.po b/language/extra/sr.po
index e53f7e3d63..521fd7c317 100644
--- a/language/extra/sr.po
+++ b/language/extra/sr.po
@@ -10319,7 +10319,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/sr@Latn.po b/language/extra/sr@Latn.po
index 347300d332..c8a3da05e7 100644
--- a/language/extra/sr@Latn.po
+++ b/language/extra/sr@Latn.po
@@ -10319,7 +10319,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/ta.po b/language/extra/ta.po
index c06ebcdf7b..17c980676e 100644
--- a/language/extra/ta.po
+++ b/language/extra/ta.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/tt.po b/language/extra/tt.po
index a188e43429..1e07ed04f4 100644
--- a/language/extra/tt.po
+++ b/language/extra/tt.po
@@ -10266,7 +10266,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/yi.po b/language/extra/yi.po
index dd78e16b9f..091e2d61e5 100644
--- a/language/extra/yi.po
+++ b/language/extra/yi.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/extra/zh_TW.po b/language/extra/zh_TW.po
index e6e61677c7..c488e8b015 100644
--- a/language/extra/zh_TW.po
+++ b/language/extra/zh_TW.po
@@ -10260,7 +10260,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/fi.po b/language/fi.po
index 4e7fef7c06..8e021bb968 100644
--- a/language/fi.po
+++ b/language/fi.po
@@ -10287,8 +10287,8 @@ msgid "P.M."
msgstr "iltapäivällä"
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV pitää olla versio 4.2.3 tai jokin sen SVN päivityksistä #6973 asti"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV pitää olla versio 4.2.3 tai jokin sen SVN päivityksistä #%s asti"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/fr.po b/language/fr.po
index 09447f3724..1187f093cc 100644
--- a/language/fr.po
+++ b/language/fr.po
@@ -10291,8 +10291,8 @@ msgid "P.M."
msgstr "P.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV doit être la version 4.2.3, ou tout SVN jusqu’à # 6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV doit être la version 4.2.3, ou tout SVN jusqu’à # %s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/he.po b/language/he.po
index c6cdecf290..9d2639ac80 100644
--- a/language/he.po
+++ b/language/he.po
@@ -10291,8 +10291,8 @@ msgid "P.M."
msgstr "אחה״צ"
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV חייבת להיות גירסה 4.2.3, או SVN עד ל-#6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV חייבת להיות גירסה 4.2.3, או SVN עד ל-#%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/hr.po b/language/hr.po
index e22517a5e9..3b887831c1 100644
--- a/language/hr.po
+++ b/language/hr.po
@@ -10318,8 +10318,8 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV mora viti verzija 4.2.3 ili bilo koji SVN do #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV mora viti verzija 4.2.3 ili bilo koji SVN do #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/hu.po b/language/hu.po
index e55272e816..03370852e7 100644
--- a/language/hu.po
+++ b/language/hu.po
@@ -10292,7 +10292,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/is.po b/language/is.po
index fdc1ae51c0..32528d2512 100644
--- a/language/is.po
+++ b/language/is.po
@@ -10287,8 +10287,8 @@ msgid "P.M."
msgstr "P.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV verður að vera útgáfa 4.2.3 eða hvaða SVN upp að #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV verður að vera útgáfa 4.2.3 eða hvaða SVN upp að #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/it.po b/language/it.po
index e788102e25..f713f1a90e 100644
--- a/language/it.po
+++ b/language/it.po
@@ -10293,8 +10293,8 @@ msgid "P.M."
msgstr "P.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "La versione di PGV deve essere la 4.2.3, o una versione qualsiasi di SVN fino alla 6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "La versione di PGV deve essere la 4.2.3, o una versione qualsiasi di SVN fino alla %s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/lt.po b/language/lt.po
index 2f9191b3a4..b809e8528e 100644
--- a/language/lt.po
+++ b/language/lt.po
@@ -10318,8 +10318,8 @@ msgid "P.M."
msgstr "po pietų"
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV versija privalo būti 4.2.3, arba bet kuri SVN iki #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV versija privalo būti 4.2.3, arba bet kuri SVN iki #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/mr.po b/language/mr.po
index d6f64130df..494c0385f1 100644
--- a/language/mr.po
+++ b/language/mr.po
@@ -10287,7 +10287,7 @@ msgid "P.M."
msgstr "दुपार (दुपारचे बारा वाजल्या) नंतर"
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/nb.po b/language/nb.po
index f485e30021..7f87a029d1 100644
--- a/language/nb.po
+++ b/language/nb.po
@@ -10287,8 +10287,8 @@ msgid "P.M."
msgstr "Ettermiddag"
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV må være versjon 4.2.3 eller en av SVN-versjonene opp til #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV må være versjon 4.2.3 eller en av SVN-versjonene opp til #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/nl.po b/language/nl.po
index af3e3e90bd..70a46aa410 100644
--- a/language/nl.po
+++ b/language/nl.po
@@ -10291,8 +10291,8 @@ msgid "P.M."
msgstr "P.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV moet versie 4.2.3, of willekeurige SVN tot aan #6973 zijn"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV moet versie 4.2.3, of willekeurige SVN tot aan #%s zijn"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/nn.po b/language/nn.po
index aaf4d5301d..111903e821 100644
--- a/language/nn.po
+++ b/language/nn.po
@@ -10291,8 +10291,8 @@ msgid "P.M."
msgstr "P.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV må vere versjon 4.2.3 eller ein av SVN-versjonane opp til #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV må vere versjon 4.2.3 eller ein av SVN-versjonane opp til #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/pl.po b/language/pl.po
index eee655444f..4cefb1ee0d 100644
--- a/language/pl.po
+++ b/language/pl.po
@@ -10319,8 +10319,8 @@ msgid "P.M."
msgstr "po południu"
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV musi być w wersji 4.2.3, lub SVN do wersji 6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV musi być w wersji 4.2.3, lub SVN do wersji %s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/pt.po b/language/pt.po
index a21b0bcbcb..24420efda7 100644
--- a/language/pt.po
+++ b/language/pt.po
@@ -10292,7 +10292,7 @@ msgid "P.M."
msgstr ""
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr ""
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/language/pt_BR.po b/language/pt_BR.po
index 4c7cd94f74..d1066bece8 100644
--- a/language/pt_BR.po
+++ b/language/pt_BR.po
@@ -10291,8 +10291,8 @@ msgid "P.M."
msgstr "P.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "O PGV deve estar na versão 4.2.3, ou qualquer SVN acima da #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "O PGV deve estar na versão 4.2.3, ou qualquer SVN acima da #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/ru.po b/language/ru.po
index 279ecf6038..56838c10e5 100644
--- a/language/ru.po
+++ b/language/ru.po
@@ -10321,8 +10321,8 @@ msgid "P.M."
msgstr "П. П."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV должен быть версией 4.2.3 или любой SVN вплоть до #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV должен быть версией 4.2.3 или любой SVN вплоть до #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/sk.po b/language/sk.po
index 7502837974..e472322a3f 100644
--- a/language/sk.po
+++ b/language/sk.po
@@ -10319,8 +10319,8 @@ msgid "P.M."
msgstr "P.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV musí byť verzie 4.2.3, alebo ktorákoľvek SVN vyššia než #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV musí byť verzie 4.2.3, alebo ktorákoľvek SVN vyššia než #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/sv.po b/language/sv.po
index 512d513bcc..20815c8726 100644
--- a/language/sv.po
+++ b/language/sv.po
@@ -10291,8 +10291,8 @@ msgid "P.M."
msgstr "E.M."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV måste vara version 4.2.3, eller någon av dess SVN uppdatering upp till #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV måste vara version 4.2.3, eller någon av dess SVN uppdatering upp till #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/tr.po b/language/tr.po
index 1dac115716..5ce48ac9f1 100644
--- a/language/tr.po
+++ b/language/tr.po
@@ -10308,8 +10308,8 @@ msgid "P.M."
msgstr "öğleden sonra"
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV versiyonu 4.2.3 yada #6973 kadar herhangi bir SVN olmalı"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV versiyonu 4.2.3 yada #%s kadar herhangi bir SVN olmalı"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/uk.po b/language/uk.po
index d0aa19b0cd..0e5860e7f5 100644
--- a/language/uk.po
+++ b/language/uk.po
@@ -10314,8 +10314,8 @@ msgid "P.M."
msgstr "П. П."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV повинен бути версією 4.2.3 або будь-який SVN аж до # 6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV повинен бути версією 4.2.3 або будь-який SVN аж до # %s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/vi.po b/language/vi.po
index 8a5a060123..3d2d3dfa4e 100644
--- a/language/vi.po
+++ b/language/vi.po
@@ -10264,8 +10264,8 @@ msgid "P.M."
msgstr "Chiều"
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
-msgstr "PGV phải có version 4.2.3, hoặc bất kỳ bản phát triển SVN nào đến #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
+msgstr "PGV phải có version 4.2.3, hoặc bất kỳ bản phát triển SVN nào đến #%s"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
#: includes/functions/functions.php:82
diff --git a/language/zh_CN.po b/language/zh_CN.po
index c09c55866b..0b793c725d 100644
--- a/language/zh_CN.po
+++ b/language/zh_CN.po
@@ -10265,7 +10265,7 @@ msgid "P.M."
msgstr "下午."
#: help_text.php:1308
-msgid "PGV must be version 4.2.3, or any SVN up to #6973"
+msgid "PGV must be version 4.2.3, or any SVN up to #%s"
msgstr "PGV必须版本4.2.3,或更高"
#. I18N: PHP internal error message - php.net/manual/en/features.file-upload.errors.php
diff --git a/library/WT/Theme/Administration.php b/library/WT/Theme/Administration.php
index 39b8d513f8..509a7b98b6 100644
--- a/library/WT/Theme/Administration.php
+++ b/library/WT/Theme/Administration.php
@@ -171,11 +171,11 @@ class Administration extends BaseTheme {
/** {@inheritdoc} */
protected function secondaryMenu() {
- return array(
+ return array_filter(array(
$this->menuMyPage(),
$this->menuLanguages(),
$this->menuLogout(),
- );
+ ));
}
/** {@inheritdoc} */
diff --git a/setup.php b/setup.php
index 576cead542..04be74849b 100644
--- a/setup.php
+++ b/setup.php
@@ -787,14 +787,6 @@ try {
") COLLATE utf8_unicode_ci ENGINE=InnoDB"
);
WT_DB::exec(
- "CREATE TABLE IF NOT EXISTS `##ip_address` (" .
- " ip_address VARCHAR(40) NOT NULL," . // long enough for IPv6
- " category ENUM('banned', 'search-engine', 'allowed') NOT NULL," .
- " comment VARCHAR(255) NOT NULL," .
- " PRIMARY KEY (ip_address)" .
- ") COLLATE utf8_unicode_ci ENGINE=InnoDB"
- );
- WT_DB::exec(
"CREATE TABLE IF NOT EXISTS `##session` (" .
" session_id CHAR(128) NOT NULL," .
" session_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP," .