xref: /webtrees/app/Schema/Migration30.php (revision 1507cbca5c15e62b02ef736eaed5995572581c5b)
1*1507cbcaSGreg Roach<?php
2*1507cbcaSGreg Roach/**
3*1507cbcaSGreg Roach * webtrees: online genealogy
4*1507cbcaSGreg Roach * Copyright (C) 2015 webtrees development team
5*1507cbcaSGreg Roach * This program is free software: you can redistribute it and/or modify
6*1507cbcaSGreg Roach * it under the terms of the GNU General Public License as published by
7*1507cbcaSGreg Roach * the Free Software Foundation, either version 3 of the License, or
8*1507cbcaSGreg Roach * (at your option) any later version.
9*1507cbcaSGreg Roach * This program is distributed in the hope that it will be useful,
10*1507cbcaSGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
11*1507cbcaSGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12*1507cbcaSGreg Roach * GNU General Public License for more details.
13*1507cbcaSGreg Roach * You should have received a copy of the GNU General Public License
14*1507cbcaSGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>.
15*1507cbcaSGreg Roach */
16*1507cbcaSGreg Roachnamespace Fisharebest\Webtrees\Schema;
17*1507cbcaSGreg Roach
18*1507cbcaSGreg Roachuse Fisharebest\Webtrees\Auth;
19*1507cbcaSGreg Roachuse Fisharebest\Webtrees\Database;
20*1507cbcaSGreg Roach
21*1507cbcaSGreg Roach/**
22*1507cbcaSGreg Roach * Upgrade the database schema from version 30 to version 31.
23*1507cbcaSGreg Roach */
24*1507cbcaSGreg Roachclass Migration30 implements MigrationInterface {
25*1507cbcaSGreg Roach	/**
26*1507cbcaSGreg Roach	 * Upgrade to to the next version
27*1507cbcaSGreg Roach	 */
28*1507cbcaSGreg Roach	public function upgrade() {
29*1507cbcaSGreg Roach		$WEBTREES_EMAIL = 'webtrees-noreply@' . preg_replace('/^www\./i', '', $_SERVER['SERVER_NAME']);
30*1507cbcaSGreg Roach
31*1507cbcaSGreg Roach		// Default settings for new trees.  No defaults for:
32*1507cbcaSGreg Roach		// imported, title, CONTACT_USER_ID, WEBMASTER_USER_ID
33*1507cbcaSGreg Roach		// The following settings have defaults, but may need overwriting:
34*1507cbcaSGreg Roach		// LANGUAGE, SURNAME_TRADITION
35*1507cbcaSGreg Roach		Database::prepare(
36*1507cbcaSGreg Roach			"INSERT IGNORE INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value) VALUES" .
37*1507cbcaSGreg Roach			"(-1, 'ADVANCED_NAME_FACTS', 'NICK,_AKA')," .
38*1507cbcaSGreg Roach			"(-1, 'ADVANCED_PLAC_FACTS', '')," .
39*1507cbcaSGreg Roach			"(-1, 'ALLOW_THEME_DROPDOWN', '1')," .
40*1507cbcaSGreg Roach			"(-1, 'CALENDAR_FORMAT', 'gregorian')," .
41*1507cbcaSGreg Roach			"(-1, 'CHART_BOX_TAGS', '')," .
42*1507cbcaSGreg Roach			"(-1, 'COMMON_NAMES_ADD', '')," .
43*1507cbcaSGreg Roach			"(-1, 'COMMON_NAMES_REMOVE', '')," .
44*1507cbcaSGreg Roach			"(-1, 'COMMON_NAMES_THRESHOLD', '40')," .
45*1507cbcaSGreg Roach			"(-1, 'DEFAULT_PEDIGREE_GENERATIONS', '4')," .
46*1507cbcaSGreg Roach			"(-1, 'EXPAND_RELATIVES_EVENTS', '0')," .
47*1507cbcaSGreg Roach			"(-1, 'EXPAND_SOURCES', '0')," .
48*1507cbcaSGreg Roach			"(-1, 'FAM_FACTS_ADD', 'CENS,MARR,RESI,SLGS,MARR_CIVIL,MARR_RELIGIOUS,MARR_PARTNERS,RESN')," .
49*1507cbcaSGreg Roach			"(-1, 'FAM_FACTS_QUICK', 'MARR,DIV,_NMR')," .
50*1507cbcaSGreg Roach			"(-1, 'FAM_FACTS_UNIQUE', 'NCHI,MARL,DIV,ANUL,DIVF,ENGA,MARB,MARC,MARS')," .
51*1507cbcaSGreg Roach			"(-1, 'FAM_ID_PREFIX', 'F')," .
52*1507cbcaSGreg Roach			"(-1, 'FORMAT_TEXT', 'markdown')," .
53*1507cbcaSGreg Roach			"(-1, 'FULL_SOURCES', '0')," .
54*1507cbcaSGreg Roach			"(-1, 'GEDCOM_ID_PREFIX', 'I')," .
55*1507cbcaSGreg Roach			"(-1, 'GEDCOM_MEDIA_PATH', '')," .
56*1507cbcaSGreg Roach			"(-1, 'GENERATE_UIDS', '0')," .
57*1507cbcaSGreg Roach			"(-1, 'HIDE_GEDCOM_ERRORS', '1')," .
58*1507cbcaSGreg Roach			"(-1, 'HIDE_LIVE_PEOPLE', '1')," .
59*1507cbcaSGreg Roach			"(-1, 'INDI_FACTS_ADD', 'AFN,BIRT,DEAT,BURI,CREM,ADOP,BAPM,BARM,BASM,BLES,CHRA,CONF,FCOM,ORDN,NATU,EMIG,IMMI,CENS,PROB,WILL,GRAD,RETI,DSCR,EDUC,IDNO,NATI,NCHI,NMR,OCCU,PROP,RELI,RESI,SSN,TITL,BAPL,CONL,ENDL,SLGC,_MILI,ASSO,RESN')," .
60*1507cbcaSGreg Roach			"(-1, 'INDI_FACTS_QUICK', 'BIRT,BURI,BAPM,CENS,DEAT,OCCU,RESI')," .
61*1507cbcaSGreg Roach			"(-1, 'INDI_FACTS_UNIQUE', '')," .
62*1507cbcaSGreg Roach			"(-1, 'KEEP_ALIVE_YEARS_BIRTH', '')," .
63*1507cbcaSGreg Roach			"(-1, 'KEEP_ALIVE_YEARS_DEATH', '')," .
64*1507cbcaSGreg Roach			"(-1, 'LANGUAGE', 'en-US')," .
65*1507cbcaSGreg Roach			"(-1, 'MAX_ALIVE_AGE', '120')," .
66*1507cbcaSGreg Roach			"(-1, 'MAX_DESCENDANCY_GENERATIONS', '15')," .
67*1507cbcaSGreg Roach			"(-1, 'MAX_PEDIGREE_GENERATIONS', '10')," .
68*1507cbcaSGreg Roach			"(-1, 'MEDIA_DIRECTORY', 'media/')," .
69*1507cbcaSGreg Roach			"(-1, 'MEDIA_ID_PREFIX', 'M')," .
70*1507cbcaSGreg Roach			"(-1, 'MEDIA_UPLOAD', :MEDIA_UPLOAD)," .
71*1507cbcaSGreg Roach			"(-1, 'META_DESCRIPTION', '')," .
72*1507cbcaSGreg Roach			"(-1, 'META_TITLE', :META_TITLE)," .
73*1507cbcaSGreg Roach			"(-1, 'NOTE_FACTS_ADD', 'SOUR,RESN')," .
74*1507cbcaSGreg Roach			"(-1, 'NOTE_FACTS_QUICK', '')," .
75*1507cbcaSGreg Roach			"(-1, 'NOTE_FACTS_UNIQUE', '')," .
76*1507cbcaSGreg Roach			"(-1, 'NOTE_ID_PREFIX', 'N')," .
77*1507cbcaSGreg Roach			"(-1, 'NO_UPDATE_CHAN', '0')," .
78*1507cbcaSGreg Roach			"(-1, 'PEDIGREE_FULL_DETAILS', '1')," .
79*1507cbcaSGreg Roach			"(-1, 'PEDIGREE_LAYOUT', '1')," .
80*1507cbcaSGreg Roach			"(-1, 'PEDIGREE_ROOT_ID', '')," .
81*1507cbcaSGreg Roach			"(-1, 'PEDIGREE_SHOW_GENDER', '0')," .
82*1507cbcaSGreg Roach			"(-1, 'PREFER_LEVEL2_SOURCES', '1')," .
83*1507cbcaSGreg Roach			"(-1, 'QUICK_REQUIRED_FACTS', 'BIRT,DEAT')," .
84*1507cbcaSGreg Roach			"(-1, 'QUICK_REQUIRED_FAMFACTS', 'MARR')," .
85*1507cbcaSGreg Roach			"(-1, 'REPO_FACTS_ADD', 'PHON,EMAIL,FAX,WWW,RESN')," .
86*1507cbcaSGreg Roach			"(-1, 'REPO_FACTS_QUICK', '')," .
87*1507cbcaSGreg Roach			"(-1, 'REPO_FACTS_UNIQUE', 'NAME,ADDR')," .
88*1507cbcaSGreg Roach			"(-1, 'REPO_ID_PREFIX', 'R')," .
89*1507cbcaSGreg Roach			"(-1, 'REQUIRE_AUTHENTICATION', '0')," .
90*1507cbcaSGreg Roach			"(-1, 'SAVE_WATERMARK_IMAGE', '0')," .
91*1507cbcaSGreg Roach			"(-1, 'SAVE_WATERMARK_THUMB', '0')," .
92*1507cbcaSGreg Roach			"(-1, 'SHOW_AGE_DIFF', '0')," .
93*1507cbcaSGreg Roach			"(-1, 'SHOW_COUNTER', '1')," .
94*1507cbcaSGreg Roach			"(-1, 'SHOW_DEAD_PEOPLE', :SHOW_DEAD_PEOPLE)," .
95*1507cbcaSGreg Roach			"(-1, 'SHOW_EST_LIST_DATES', '0')," .
96*1507cbcaSGreg Roach			"(-1, 'SHOW_FACT_ICONS', '1')," .
97*1507cbcaSGreg Roach			"(-1, 'SHOW_GEDCOM_RECORD', '0')," .
98*1507cbcaSGreg Roach			"(-1, 'SHOW_HIGHLIGHT_IMAGES', '1')," .
99*1507cbcaSGreg Roach			"(-1, 'SHOW_LDS_AT_GLANCE', '0')," .
100*1507cbcaSGreg Roach			"(-1, 'SHOW_LEVEL2_NOTES', '1')," .
101*1507cbcaSGreg Roach			"(-1, 'SHOW_LIVING_NAMES', :SHOW_LIVING_NAMES)," .
102*1507cbcaSGreg Roach			"(-1, 'SHOW_MEDIA_DOWNLOAD', '0')," .
103*1507cbcaSGreg Roach			"(-1, 'SHOW_NO_WATERMARK', :SHOW_NO_WATERMARK)," .
104*1507cbcaSGreg Roach			"(-1, 'SHOW_PARENTS_AGE', '1')," .
105*1507cbcaSGreg Roach			"(-1, 'SHOW_PEDIGREE_PLACES', '9')," .
106*1507cbcaSGreg Roach			"(-1, 'SHOW_PEDIGREE_PLACES_SUFFIX', '0')," .
107*1507cbcaSGreg Roach			"(-1, 'SHOW_PRIVATE_RELATIONSHIPS', '1')," .
108*1507cbcaSGreg Roach			"(-1, 'SHOW_RELATIVES_EVENTS', '_BIRT_CHIL,_BIRT_SIBL,_MARR_CHIL,_MARR_PARE,_DEAT_CHIL,_DEAT_PARE,_DEAT_GPAR,_DEAT_SIBL,_DEAT_SPOU')," .
109*1507cbcaSGreg Roach			"(-1, 'SOURCE_ID_PREFIX', 'S')," .
110*1507cbcaSGreg Roach			"(-1, 'SOUR_FACTS_ADD', 'NOTE,REPO,SHARED_NOTE,RESN')," .
111*1507cbcaSGreg Roach			"(-1, 'SOUR_FACTS_QUICK', 'TEXT,NOTE,REPO')," .
112*1507cbcaSGreg Roach			"(-1, 'SOUR_FACTS_UNIQUE', 'AUTH,ABBR,TITL,PUBL,TEXT')," .
113*1507cbcaSGreg Roach			"(-1, 'SUBLIST_TRIGGER_I', '200')," .
114*1507cbcaSGreg Roach			"(-1, 'SURNAME_LIST_STYLE', 'style2')," .
115*1507cbcaSGreg Roach			"(-1, 'SURNAME_TRADITION', 'paternal')," .
116*1507cbcaSGreg Roach			"(-1, 'THUMBNAIL_WIDTH', '100')," .
117*1507cbcaSGreg Roach			"(-1, 'USE_RIN', '0')," .
118*1507cbcaSGreg Roach			"(-1, 'USE_SILHOUETTE', '1')," .
119*1507cbcaSGreg Roach			"(-1, 'WATERMARK_THUMB', '0')," .
120*1507cbcaSGreg Roach			"(-1, 'WEBTREES_EMAIL', :WEBTREES_EMAIL)," .
121*1507cbcaSGreg Roach			"(-1, 'WORD_WRAPPED_NOTES', '0')"
122*1507cbcaSGreg Roach		)->execute(array(
123*1507cbcaSGreg Roach			'MEDIA_UPLOAD'      => Auth::PRIV_USER,
124*1507cbcaSGreg Roach			'META_TITLE'        => WT_WEBTREES,
125*1507cbcaSGreg Roach			'SHOW_DEAD_PEOPLE'  => Auth::PRIV_PRIVATE,
126*1507cbcaSGreg Roach			'SHOW_LIVING_NAMES' => Auth::PRIV_USER,
127*1507cbcaSGreg Roach			'SHOW_NO_WATERMARK' => Auth::PRIV_USER,
128*1507cbcaSGreg Roach			'WEBTREES_EMAIL'    => $WEBTREES_EMAIL,
129*1507cbcaSGreg Roach		));
130*1507cbcaSGreg Roach
131*1507cbcaSGreg Roach		// Previous versions of webtrees allowed this setting to be empty.
132*1507cbcaSGreg Roach		Database::prepare(
133*1507cbcaSGreg Roach			"DELETE FROM `##gedcom_setting` WHERE setting_name  ='WEBTREES_EMAIL' AND setting_value = ''"
134*1507cbcaSGreg Roach		)->execute();
135*1507cbcaSGreg Roach
136*1507cbcaSGreg Roach		Database::prepare(
137*1507cbcaSGreg Roach			"INSERT IGNORE INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value)" .
138*1507cbcaSGreg Roach			" SELECT gedcom_id, 'WEBTREES_EMAIL', :WEBTREES_EMAIL" .
139*1507cbcaSGreg Roach			" FROM `##gedcom` WHERE gedcom_id > 0"
140*1507cbcaSGreg Roach		)->execute(array(
141*1507cbcaSGreg Roach			'WEBTREES_EMAIL' => $WEBTREES_EMAIL,
142*1507cbcaSGreg Roach		));
143*1507cbcaSGreg Roach
144*1507cbcaSGreg Roach		// Default restrictions
145*1507cbcaSGreg Roach		Database::prepare(
146*1507cbcaSGreg Roach			"INSERT IGNORE INTO `##default_resn` (gedcom_id, tag_type, resn) VALUES " .
147*1507cbcaSGreg Roach			"(-1, 'SSN', 'confidential')," .
148*1507cbcaSGreg Roach			"(-1, 'SOUR', 'privacy')," .
149*1507cbcaSGreg Roach			"(-1, 'REPO', 'privacy')," .
150*1507cbcaSGreg Roach			"(-1, 'SUBM', 'confidential')," .
151*1507cbcaSGreg Roach			"(-1, 'SUBN', 'confidential')"
152*1507cbcaSGreg Roach		)->execute();
153*1507cbcaSGreg Roach	}
154*1507cbcaSGreg Roach}
155