xref: /webtrees/app/Schema/Migration30.php (revision 362be83a34a1d0ba0292c4387f55a3b0ea10cb2f)
11507cbcaSGreg Roach<?php
21507cbcaSGreg Roach/**
31507cbcaSGreg Roach * webtrees: online genealogy
41062a142SGreg Roach * Copyright (C) 2018 webtrees development team
51507cbcaSGreg Roach * This program is free software: you can redistribute it and/or modify
61507cbcaSGreg Roach * it under the terms of the GNU General Public License as published by
71507cbcaSGreg Roach * the Free Software Foundation, either version 3 of the License, or
81507cbcaSGreg Roach * (at your option) any later version.
91507cbcaSGreg Roach * This program is distributed in the hope that it will be useful,
101507cbcaSGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
111507cbcaSGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
121507cbcaSGreg Roach * GNU General Public License for more details.
131507cbcaSGreg Roach * You should have received a copy of the GNU General Public License
141507cbcaSGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>.
151507cbcaSGreg Roach */
16e7f56f2aSGreg Roachdeclare(strict_types=1);
17e7f56f2aSGreg Roach
181507cbcaSGreg Roachnamespace Fisharebest\Webtrees\Schema;
191507cbcaSGreg Roach
201507cbcaSGreg Roachuse Fisharebest\Webtrees\Auth;
211507cbcaSGreg Roachuse Fisharebest\Webtrees\Database;
228d0ebef0SGreg Roachuse Fisharebest\Webtrees\Webtrees;
231507cbcaSGreg Roach
241507cbcaSGreg Roach/**
251507cbcaSGreg Roach * Upgrade the database schema from version 30 to version 31.
261507cbcaSGreg Roach */
27c1010edaSGreg Roachclass Migration30 implements MigrationInterface
28c1010edaSGreg Roach{
291507cbcaSGreg Roach    /**
301507cbcaSGreg Roach     * Upgrade to to the next version
3119d91378SGreg Roach     *
3219d91378SGreg Roach     * @return void
331507cbcaSGreg Roach     */
34*362be83aSGreg Roach    public function upgrade(): void
35c1010edaSGreg Roach    {
36a45f9889SGreg Roach        $WEBTREES_EMAIL = 'webtrees-noreply@' . preg_replace('/^www\./i', '', $_SERVER['SERVER_NAME'] ?? '');
371507cbcaSGreg Roach
381507cbcaSGreg Roach        // Default settings for new trees. No defaults for:
391507cbcaSGreg Roach        // imported, title, CONTACT_USER_ID, WEBMASTER_USER_ID
401507cbcaSGreg Roach        // The following settings have defaults, but may need overwriting:
411507cbcaSGreg Roach        // LANGUAGE, SURNAME_TRADITION
421507cbcaSGreg Roach        Database::prepare(
431507cbcaSGreg Roach            "INSERT IGNORE INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value) VALUES" .
441507cbcaSGreg Roach            "(-1, 'ADVANCED_NAME_FACTS', 'NICK,_AKA')," .
451507cbcaSGreg Roach            "(-1, 'ADVANCED_PLAC_FACTS', '')," .
461507cbcaSGreg Roach            "(-1, 'ALLOW_THEME_DROPDOWN', '1')," .
471507cbcaSGreg Roach            "(-1, 'CALENDAR_FORMAT', 'gregorian')," .
481507cbcaSGreg Roach            "(-1, 'CHART_BOX_TAGS', '')," .
491507cbcaSGreg Roach            "(-1, 'COMMON_NAMES_ADD', '')," .
501507cbcaSGreg Roach            "(-1, 'COMMON_NAMES_REMOVE', '')," .
511507cbcaSGreg Roach            "(-1, 'COMMON_NAMES_THRESHOLD', '40')," .
521507cbcaSGreg Roach            "(-1, 'DEFAULT_PEDIGREE_GENERATIONS', '4')," .
531507cbcaSGreg Roach            "(-1, 'EXPAND_RELATIVES_EVENTS', '0')," .
541507cbcaSGreg Roach            "(-1, 'EXPAND_SOURCES', '0')," .
551507cbcaSGreg Roach            "(-1, 'FAM_FACTS_ADD', 'CENS,MARR,RESI,SLGS,MARR_CIVIL,MARR_RELIGIOUS,MARR_PARTNERS,RESN')," .
561507cbcaSGreg Roach            "(-1, 'FAM_FACTS_QUICK', 'MARR,DIV,_NMR')," .
5733f87ac6SGreg Roach            "(-1, 'FAM_FACTS_UNIQUE', 'NCHI,MARL,DIV,ANUL,DIVF,ENGA,MARB,MARC,MARS,_NMR')," .
581507cbcaSGreg Roach            "(-1, 'FAM_ID_PREFIX', 'F')," .
591507cbcaSGreg Roach            "(-1, 'FORMAT_TEXT', 'markdown')," .
601507cbcaSGreg Roach            "(-1, 'FULL_SOURCES', '0')," .
611507cbcaSGreg Roach            "(-1, 'GEDCOM_ID_PREFIX', 'I')," .
621507cbcaSGreg Roach            "(-1, 'GEDCOM_MEDIA_PATH', '')," .
631507cbcaSGreg Roach            "(-1, 'GENERATE_UIDS', '0')," .
641507cbcaSGreg Roach            "(-1, 'HIDE_GEDCOM_ERRORS', '1')," .
651507cbcaSGreg Roach            "(-1, 'HIDE_LIVE_PEOPLE', '1')," .
661507cbcaSGreg 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')," .
671507cbcaSGreg Roach            "(-1, 'INDI_FACTS_QUICK', 'BIRT,BURI,BAPM,CENS,DEAT,OCCU,RESI')," .
681507cbcaSGreg Roach            "(-1, 'INDI_FACTS_UNIQUE', '')," .
691507cbcaSGreg Roach            "(-1, 'KEEP_ALIVE_YEARS_BIRTH', '')," .
701507cbcaSGreg Roach            "(-1, 'KEEP_ALIVE_YEARS_DEATH', '')," .
711507cbcaSGreg Roach            "(-1, 'LANGUAGE', 'en-US')," .
721507cbcaSGreg Roach            "(-1, 'MAX_ALIVE_AGE', '120')," .
731507cbcaSGreg Roach            "(-1, 'MAX_DESCENDANCY_GENERATIONS', '15')," .
741507cbcaSGreg Roach            "(-1, 'MAX_PEDIGREE_GENERATIONS', '10')," .
751507cbcaSGreg Roach            "(-1, 'MEDIA_DIRECTORY', 'media/')," .
761507cbcaSGreg Roach            "(-1, 'MEDIA_ID_PREFIX', 'M')," .
771507cbcaSGreg Roach            "(-1, 'MEDIA_UPLOAD', :MEDIA_UPLOAD)," .
781507cbcaSGreg Roach            "(-1, 'META_DESCRIPTION', '')," .
791507cbcaSGreg Roach            "(-1, 'META_TITLE', :META_TITLE)," .
801507cbcaSGreg Roach            "(-1, 'NOTE_FACTS_ADD', 'SOUR,RESN')," .
811507cbcaSGreg Roach            "(-1, 'NOTE_FACTS_QUICK', '')," .
821507cbcaSGreg Roach            "(-1, 'NOTE_FACTS_UNIQUE', '')," .
831507cbcaSGreg Roach            "(-1, 'NOTE_ID_PREFIX', 'N')," .
841507cbcaSGreg Roach            "(-1, 'NO_UPDATE_CHAN', '0')," .
851507cbcaSGreg Roach            "(-1, 'PEDIGREE_LAYOUT', '1')," .
861507cbcaSGreg Roach            "(-1, 'PEDIGREE_ROOT_ID', '')," .
871507cbcaSGreg Roach            "(-1, 'PEDIGREE_SHOW_GENDER', '0')," .
881507cbcaSGreg Roach            "(-1, 'PREFER_LEVEL2_SOURCES', '1')," .
891507cbcaSGreg Roach            "(-1, 'QUICK_REQUIRED_FACTS', 'BIRT,DEAT')," .
901507cbcaSGreg Roach            "(-1, 'QUICK_REQUIRED_FAMFACTS', 'MARR')," .
911507cbcaSGreg Roach            "(-1, 'REPO_FACTS_ADD', 'PHON,EMAIL,FAX,WWW,RESN')," .
921507cbcaSGreg Roach            "(-1, 'REPO_FACTS_QUICK', '')," .
931507cbcaSGreg Roach            "(-1, 'REPO_FACTS_UNIQUE', 'NAME,ADDR')," .
941507cbcaSGreg Roach            "(-1, 'REPO_ID_PREFIX', 'R')," .
951507cbcaSGreg Roach            "(-1, 'REQUIRE_AUTHENTICATION', '0')," .
961507cbcaSGreg Roach            "(-1, 'SAVE_WATERMARK_IMAGE', '0')," .
971507cbcaSGreg Roach            "(-1, 'SHOW_AGE_DIFF', '0')," .
981507cbcaSGreg Roach            "(-1, 'SHOW_COUNTER', '1')," .
991507cbcaSGreg Roach            "(-1, 'SHOW_DEAD_PEOPLE', :SHOW_DEAD_PEOPLE)," .
1001507cbcaSGreg Roach            "(-1, 'SHOW_EST_LIST_DATES', '0')," .
1011507cbcaSGreg Roach            "(-1, 'SHOW_FACT_ICONS', '1')," .
1021507cbcaSGreg Roach            "(-1, 'SHOW_GEDCOM_RECORD', '0')," .
1031507cbcaSGreg Roach            "(-1, 'SHOW_HIGHLIGHT_IMAGES', '1')," .
1041507cbcaSGreg Roach            "(-1, 'SHOW_LEVEL2_NOTES', '1')," .
1051507cbcaSGreg Roach            "(-1, 'SHOW_LIVING_NAMES', :SHOW_LIVING_NAMES)," .
1061507cbcaSGreg Roach            "(-1, 'SHOW_MEDIA_DOWNLOAD', '0')," .
1071507cbcaSGreg Roach            "(-1, 'SHOW_NO_WATERMARK', :SHOW_NO_WATERMARK)," .
1081507cbcaSGreg Roach            "(-1, 'SHOW_PARENTS_AGE', '1')," .
1091507cbcaSGreg Roach            "(-1, 'SHOW_PEDIGREE_PLACES', '9')," .
1101507cbcaSGreg Roach            "(-1, 'SHOW_PEDIGREE_PLACES_SUFFIX', '0')," .
1111507cbcaSGreg Roach            "(-1, 'SHOW_PRIVATE_RELATIONSHIPS', '1')," .
1121507cbcaSGreg Roach            "(-1, 'SHOW_RELATIVES_EVENTS', '_BIRT_CHIL,_BIRT_SIBL,_MARR_CHIL,_MARR_PARE,_DEAT_CHIL,_DEAT_PARE,_DEAT_GPAR,_DEAT_SIBL,_DEAT_SPOU')," .
1131507cbcaSGreg Roach            "(-1, 'SOURCE_ID_PREFIX', 'S')," .
1141507cbcaSGreg Roach            "(-1, 'SOUR_FACTS_ADD', 'NOTE,REPO,SHARED_NOTE,RESN')," .
1151507cbcaSGreg Roach            "(-1, 'SOUR_FACTS_QUICK', 'TEXT,NOTE,REPO')," .
1161507cbcaSGreg Roach            "(-1, 'SOUR_FACTS_UNIQUE', 'AUTH,ABBR,TITL,PUBL,TEXT')," .
1171507cbcaSGreg Roach            "(-1, 'SUBLIST_TRIGGER_I', '200')," .
1181507cbcaSGreg Roach            "(-1, 'SURNAME_LIST_STYLE', 'style2')," .
1191507cbcaSGreg Roach            "(-1, 'SURNAME_TRADITION', 'paternal')," .
1201507cbcaSGreg Roach            "(-1, 'THUMBNAIL_WIDTH', '100')," .
1211507cbcaSGreg Roach            "(-1, 'USE_RIN', '0')," .
1221507cbcaSGreg Roach            "(-1, 'USE_SILHOUETTE', '1')," .
1231507cbcaSGreg Roach            "(-1, 'WEBTREES_EMAIL', :WEBTREES_EMAIL)," .
1241507cbcaSGreg Roach            "(-1, 'WORD_WRAPPED_NOTES', '0')"
12513abd6f3SGreg Roach        )->execute([
1261507cbcaSGreg Roach            'MEDIA_UPLOAD'      => Auth::PRIV_USER,
1278d0ebef0SGreg Roach            'META_TITLE'        => Webtrees::NAME,
1281507cbcaSGreg Roach            'SHOW_DEAD_PEOPLE'  => Auth::PRIV_PRIVATE,
1291507cbcaSGreg Roach            'SHOW_LIVING_NAMES' => Auth::PRIV_USER,
1301507cbcaSGreg Roach            'SHOW_NO_WATERMARK' => Auth::PRIV_USER,
1311507cbcaSGreg Roach            'WEBTREES_EMAIL'    => $WEBTREES_EMAIL,
13213abd6f3SGreg Roach        ]);
1331507cbcaSGreg Roach
1341507cbcaSGreg Roach        // Previous versions of webtrees allowed this setting to be empty.
1351507cbcaSGreg Roach        Database::prepare(
1361507cbcaSGreg Roach            "DELETE FROM `##gedcom_setting` WHERE setting_name  ='WEBTREES_EMAIL' AND setting_value = ''"
1371507cbcaSGreg Roach        )->execute();
1381507cbcaSGreg Roach
1391507cbcaSGreg Roach        Database::prepare(
1401507cbcaSGreg Roach            "INSERT IGNORE INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value)" .
1411507cbcaSGreg Roach            " SELECT gedcom_id, 'WEBTREES_EMAIL', :WEBTREES_EMAIL" .
1421507cbcaSGreg Roach            " FROM `##gedcom` WHERE gedcom_id > 0"
14313abd6f3SGreg Roach        )->execute([
1441507cbcaSGreg Roach            'WEBTREES_EMAIL' => $WEBTREES_EMAIL,
14513abd6f3SGreg Roach        ]);
1461507cbcaSGreg Roach
1471507cbcaSGreg Roach        // Default restrictions
1481507cbcaSGreg Roach        Database::prepare(
1491507cbcaSGreg Roach            "INSERT IGNORE INTO `##default_resn` (gedcom_id, tag_type, resn) VALUES " .
1501507cbcaSGreg Roach            "(-1, 'SSN', 'confidential')," .
1511507cbcaSGreg Roach            "(-1, 'SOUR', 'privacy')," .
1521507cbcaSGreg Roach            "(-1, 'REPO', 'privacy')," .
1531507cbcaSGreg Roach            "(-1, 'SUBM', 'confidential')," .
1541507cbcaSGreg Roach            "(-1, 'SUBN', 'confidential')"
1551507cbcaSGreg Roach        )->execute();
1561507cbcaSGreg Roach    }
1571507cbcaSGreg Roach}
158