restrictAccess(Auth::isManager()) ->setPageTitle(WT_I18N::translate('Family tree configuration')); $PRIVACY_CONSTANTS = array( 'none' => WT_I18N::translate('Show to visitors'), 'privacy' => WT_I18N::translate('Show to members'), 'confidential' => WT_I18N::translate('Show to managers'), 'hidden' => WT_I18N::translate('Hide from everyone') ); switch (WT_Filter::post('action')) { case 'delete': if (!WT_Filter::checkCsrf()) { break; } WT_DB::prepare( "DELETE FROM `##default_resn` WHERE default_resn_id=?" )->execute(array(WT_Filter::post('default_resn_id'))); // Reload the page, so that the new privacy restrictions are reflected in the header header('Location: '.WT_SERVER_NAME.WT_SCRIPT_PATH.WT_SCRIPT_NAME.'#privacy'); exit; case 'add': if (!WT_Filter::checkCsrf()) { break; } if ((WT_Filter::post('xref') || WT_Filter::post('tag_type')) && WT_Filter::post('resn')) { if (WT_Filter::post('xref')=='') { WT_DB::prepare( "DELETE FROM `##default_resn` WHERE gedcom_id=? AND tag_type=? AND xref IS NULL" )->execute(array(WT_GED_ID, WT_Filter::post('tag_type'))); } if (WT_Filter::post('tag_type')=='') { WT_DB::prepare( "DELETE FROM `##default_resn` WHERE gedcom_id=? AND xref=? AND tag_type IS NULL" )->execute(array(WT_GED_ID, WT_Filter::post('xref'))); } WT_DB::prepare( "REPLACE INTO `##default_resn` (gedcom_id, xref, tag_type, resn) VALUES (?, NULLIF(?, ''), NULLIF(?, ''), ?)" )->execute(array(WT_GED_ID, WT_Filter::post('xref', WT_REGEX_XREF), WT_Filter::post('tag_type'), WT_Filter::post('resn'))); } // Reload the page, so that the new privacy restrictions are reflected in the header header('Location: '.WT_SERVER_NAME.WT_SCRIPT_PATH.WT_SCRIPT_NAME.'#privacy'); exit; case 'update': if (!WT_Filter::checkCsrf()) { break; } $WT_TREE->setPreference('ADVANCED_NAME_FACTS', WT_Filter::post('NEW_ADVANCED_NAME_FACTS')); $WT_TREE->setPreference('ADVANCED_PLAC_FACTS', WT_Filter::post('NEW_ADVANCED_PLAC_FACTS')); $WT_TREE->setPreference('ALLOW_THEME_DROPDOWN', WT_Filter::postBool('NEW_ALLOW_THEME_DROPDOWN')); // For backwards compatibility with webtrees 1.x we store the two calendar formats in one variable // e.g. "gregorian_and_jewish" $WT_TREE->setPreference('CALENDAR_FORMAT', implode('_and_', array_unique(array( WT_Filter::post('NEW_CALENDAR_FORMAT0', 'gregorian|julian|french|jewish|hijri|jalali', 'none'), WT_Filter::post('NEW_CALENDAR_FORMAT1', 'gregorian|julian|french|jewish|hijri|jalali', 'none') )))); $WT_TREE->setPreference('CHART_BOX_TAGS', WT_Filter::post('NEW_CHART_BOX_TAGS')); $WT_TREE->setPreference('COMMON_NAMES_ADD', str_replace(' ', '', WT_Filter::post('NEW_COMMON_NAMES_ADD'))); $WT_TREE->setPreference('COMMON_NAMES_REMOVE', str_replace(' ', '', WT_Filter::post('NEW_COMMON_NAMES_REMOVE'))); $WT_TREE->setPreference('COMMON_NAMES_THRESHOLD', WT_Filter::post('NEW_COMMON_NAMES_THRESHOLD', WT_REGEX_INTEGER, 40)); $WT_TREE->setPreference('CONTACT_USER_ID', WT_Filter::post('NEW_CONTACT_USER_ID')); $WT_TREE->setPreference('DEFAULT_PEDIGREE_GENERATIONS', WT_Filter::post('NEW_DEFAULT_PEDIGREE_GENERATIONS')); $WT_TREE->setPreference('EXPAND_NOTES', WT_Filter::postBool('NEW_EXPAND_NOTES')); $WT_TREE->setPreference('EXPAND_RELATIVES_EVENTS', WT_Filter::postBool('NEW_EXPAND_RELATIVES_EVENTS')); $WT_TREE->setPreference('EXPAND_SOURCES', WT_Filter::postBool('NEW_EXPAND_SOURCES')); $WT_TREE->setPreference('FAM_FACTS_ADD', str_replace(' ', '', WT_Filter::post('NEW_FAM_FACTS_ADD'))); $WT_TREE->setPreference('FAM_FACTS_QUICK', str_replace(' ', '', WT_Filter::post('NEW_FAM_FACTS_QUICK'))); $WT_TREE->setPreference('FAM_FACTS_UNIQUE', str_replace(' ', '', WT_Filter::post('NEW_FAM_FACTS_UNIQUE'))); $WT_TREE->setPreference('FAM_ID_PREFIX', WT_Filter::post('NEW_FAM_ID_PREFIX')); $WT_TREE->setPreference('FULL_SOURCES', WT_Filter::postBool('NEW_FULL_SOURCES')); $WT_TREE->setPreference('FORMAT_TEXT', WT_Filter::post('NEW_FORMAT_TEXT')); $WT_TREE->setPreference('GEDCOM_ID_PREFIX', WT_Filter::post('NEW_GEDCOM_ID_PREFIX')); $WT_TREE->setPreference('GEDCOM_MEDIA_PATH', WT_Filter::post('NEW_GEDCOM_MEDIA_PATH')); $WT_TREE->setPreference('GENERATE_UIDS', WT_Filter::postBool('NEW_GENERATE_UIDS')); $WT_TREE->setPreference('GEONAMES_ACCOUNT', WT_Filter::post('NEW_GEONAMES_ACCOUNT')); $WT_TREE->setPreference('HIDE_GEDCOM_ERRORS', WT_Filter::postBool('NEW_HIDE_GEDCOM_ERRORS')); $WT_TREE->setPreference('HIDE_LIVE_PEOPLE', WT_Filter::postBool('NEW_HIDE_LIVE_PEOPLE')); $WT_TREE->setPreference('INDI_FACTS_ADD', str_replace(' ', '', WT_Filter::post('NEW_INDI_FACTS_ADD'))); $WT_TREE->setPreference('INDI_FACTS_QUICK', str_replace(' ', '', WT_Filter::post('NEW_INDI_FACTS_QUICK'))); $WT_TREE->setPreference('INDI_FACTS_UNIQUE', str_replace(' ', '', WT_Filter::post('NEW_INDI_FACTS_UNIQUE'))); $WT_TREE->setPreference('KEEP_ALIVE_YEARS_BIRTH', WT_Filter::post('KEEP_ALIVE_YEARS_BIRTH', WT_REGEX_INTEGER, 0)); $WT_TREE->setPreference('KEEP_ALIVE_YEARS_DEATH', WT_Filter::post('KEEP_ALIVE_YEARS_DEATH', WT_REGEX_INTEGER, 0)); $WT_TREE->setPreference('LANGUAGE', WT_Filter::post('GEDCOMLANG')); $WT_TREE->setPreference('MAX_ALIVE_AGE', WT_Filter::post('MAX_ALIVE_AGE', WT_REGEX_INTEGER, 100)); $WT_TREE->setPreference('MAX_DESCENDANCY_GENERATIONS', WT_Filter::post('NEW_MAX_DESCENDANCY_GENERATIONS')); $WT_TREE->setPreference('MAX_PEDIGREE_GENERATIONS', WT_Filter::post('NEW_MAX_PEDIGREE_GENERATIONS')); $WT_TREE->setPreference('MEDIA_ID_PREFIX', WT_Filter::post('NEW_MEDIA_ID_PREFIX')); $WT_TREE->setPreference('MEDIA_UPLOAD', WT_Filter::post('NEW_MEDIA_UPLOAD')); $WT_TREE->setPreference('META_DESCRIPTION', WT_Filter::post('NEW_META_DESCRIPTION')); $WT_TREE->setPreference('META_TITLE', WT_Filter::post('NEW_META_TITLE')); $WT_TREE->setPreference('NOTE_ID_PREFIX', WT_Filter::post('NEW_NOTE_ID_PREFIX')); $WT_TREE->setPreference('NO_UPDATE_CHAN', WT_Filter::postBool('NEW_NO_UPDATE_CHAN')); $WT_TREE->setPreference('PEDIGREE_FULL_DETAILS', WT_Filter::postBool('NEW_PEDIGREE_FULL_DETAILS')); $WT_TREE->setPreference('PEDIGREE_LAYOUT', WT_Filter::postBool('NEW_PEDIGREE_LAYOUT')); $WT_TREE->setPreference('PEDIGREE_ROOT_ID', WT_Filter::post('NEW_PEDIGREE_ROOT_ID', WT_REGEX_XREF)); $WT_TREE->setPreference('PEDIGREE_SHOW_GENDER', WT_Filter::postBool('NEW_PEDIGREE_SHOW_GENDER')); $WT_TREE->setPreference('PREFER_LEVEL2_SOURCES', WT_Filter::post('NEW_PREFER_LEVEL2_SOURCES')); $WT_TREE->setPreference('QUICK_REQUIRED_FACTS', WT_Filter::post('NEW_QUICK_REQUIRED_FACTS')); $WT_TREE->setPreference('QUICK_REQUIRED_FAMFACTS', WT_Filter::post('NEW_QUICK_REQUIRED_FAMFACTS')); $WT_TREE->setPreference('REPO_FACTS_ADD', str_replace(' ', '', WT_Filter::post('NEW_REPO_FACTS_ADD'))); $WT_TREE->setPreference('REPO_FACTS_QUICK', str_replace(' ', '', WT_Filter::post('NEW_REPO_FACTS_QUICK'))); $WT_TREE->setPreference('REPO_FACTS_UNIQUE', str_replace(' ', '', WT_Filter::post('NEW_REPO_FACTS_UNIQUE'))); $WT_TREE->setPreference('REPO_ID_PREFIX', WT_Filter::post('NEW_REPO_ID_PREFIX')); $WT_TREE->setPreference('REQUIRE_AUTHENTICATION', WT_Filter::postBool('NEW_REQUIRE_AUTHENTICATION')); $WT_TREE->setPreference('SAVE_WATERMARK_IMAGE', WT_Filter::postBool('NEW_SAVE_WATERMARK_IMAGE')); $WT_TREE->setPreference('SAVE_WATERMARK_THUMB', WT_Filter::postBool('NEW_SAVE_WATERMARK_THUMB')); $WT_TREE->setPreference('SHOW_AGE_DIFF', WT_Filter::postBool('NEW_SHOW_AGE_DIFF')); $WT_TREE->setPreference('SHOW_COUNTER', WT_Filter::postBool('NEW_SHOW_COUNTER')); $WT_TREE->setPreference('SHOW_DEAD_PEOPLE', WT_Filter::post('SHOW_DEAD_PEOPLE')); $WT_TREE->setPreference('SHOW_EST_LIST_DATES', WT_Filter::postBool('NEW_SHOW_EST_LIST_DATES')); $WT_TREE->setPreference('SHOW_FACT_ICONS', WT_Filter::postBool('NEW_SHOW_FACT_ICONS')); $WT_TREE->setPreference('SHOW_GEDCOM_RECORD', WT_Filter::postBool('NEW_SHOW_GEDCOM_RECORD')); $WT_TREE->setPreference('SHOW_HIGHLIGHT_IMAGES', WT_Filter::postBool('NEW_SHOW_HIGHLIGHT_IMAGES')); $WT_TREE->setPreference('SHOW_LAST_CHANGE', WT_Filter::postBool('NEW_SHOW_LAST_CHANGE')); $WT_TREE->setPreference('SHOW_LDS_AT_GLANCE', WT_Filter::postBool('NEW_SHOW_LDS_AT_GLANCE')); $WT_TREE->setPreference('SHOW_LEVEL2_NOTES', WT_Filter::postBool('NEW_SHOW_LEVEL2_NOTES')); $WT_TREE->setPreference('SHOW_LIVING_NAMES', WT_Filter::post('SHOW_LIVING_NAMES')); $WT_TREE->setPreference('SHOW_MEDIA_DOWNLOAD', WT_Filter::postBool('NEW_SHOW_MEDIA_DOWNLOAD')); $WT_TREE->setPreference('SHOW_NO_WATERMARK', WT_Filter::post('NEW_SHOW_NO_WATERMARK')); $WT_TREE->setPreference('SHOW_PARENTS_AGE', WT_Filter::postBool('NEW_SHOW_PARENTS_AGE')); $WT_TREE->setPreference('SHOW_PEDIGREE_PLACES', WT_Filter::post('NEW_SHOW_PEDIGREE_PLACES')); $WT_TREE->setPreference('SHOW_PEDIGREE_PLACES_SUFFIX', WT_Filter::postBool('NEW_SHOW_PEDIGREE_PLACES_SUFFIX')); $WT_TREE->setPreference('SHOW_PRIVATE_RELATIONSHIPS', WT_Filter::post('SHOW_PRIVATE_RELATIONSHIPS')); $WT_TREE->setPreference('SHOW_RELATIVES_EVENTS', WT_Filter::post('NEW_SHOW_RELATIVES_EVENTS')); $WT_TREE->setPreference('SHOW_STATS', WT_Filter::postBool('NEW_SHOW_STATS')); $WT_TREE->setPreference('SOURCE_ID_PREFIX', WT_Filter::post('NEW_SOURCE_ID_PREFIX')); $WT_TREE->setPreference('SOUR_FACTS_ADD', str_replace(' ', '', WT_Filter::post('NEW_SOUR_FACTS_ADD'))); $WT_TREE->setPreference('SOUR_FACTS_QUICK', str_replace(' ', '', WT_Filter::post('NEW_SOUR_FACTS_QUICK'))); $WT_TREE->setPreference('SOUR_FACTS_UNIQUE', str_replace(' ', '', WT_Filter::post('NEW_SOUR_FACTS_UNIQUE'))); $WT_TREE->setPreference('SUBLIST_TRIGGER_I', WT_Filter::post('NEW_SUBLIST_TRIGGER_I', WT_REGEX_INTEGER, 200)); $WT_TREE->setPreference('SURNAME_LIST_STYLE', WT_Filter::post('NEW_SURNAME_LIST_STYLE')); $WT_TREE->setPreference('SURNAME_TRADITION', WT_Filter::post('NEW_SURNAME_TRADITION')); $WT_TREE->setPreference('THEME_DIR', WT_Filter::post('NEW_THEME_DIR')); $WT_TREE->setPreference('THUMBNAIL_WIDTH', WT_Filter::post('NEW_THUMBNAIL_WIDTH')); $WT_TREE->setPreference('USE_RIN', WT_Filter::postBool('NEW_USE_RIN')); $WT_TREE->setPreference('USE_SILHOUETTE', WT_Filter::postBool('NEW_USE_SILHOUETTE')); $WT_TREE->setPreference('WATERMARK_THUMB', WT_Filter::postBool('NEW_WATERMARK_THUMB')); $WT_TREE->setPreference('WEBMASTER_USER_ID', WT_Filter::post('NEW_WEBMASTER_USER_ID')); $WT_TREE->setPreference('WEBTREES_EMAIL', WT_Filter::post('NEW_WEBTREES_EMAIL')); $WT_TREE->setPreference('WORD_WRAPPED_NOTES', WT_Filter::postBool('NEW_WORD_WRAPPED_NOTES')); if (WT_Filter::post('gedcom_title')) { $WT_TREE->setPreference('title', WT_Filter::post('gedcom_title')); } // Only accept valid folders for NEW_MEDIA_DIRECTORY $NEW_MEDIA_DIRECTORY = preg_replace('/[\/\\\\]+/', '/', WT_Filter::post('NEW_MEDIA_DIRECTORY') . '/'); if (substr($NEW_MEDIA_DIRECTORY, 0, 1) == '/') { $NEW_MEDIA_DIRECTORY = substr($NEW_MEDIA_DIRECTORY, 1); } if ($NEW_MEDIA_DIRECTORY) { if (is_dir(WT_DATA_DIR . $NEW_MEDIA_DIRECTORY)) { $WT_TREE->setPreference('MEDIA_DIRECTORY', $NEW_MEDIA_DIRECTORY); } elseif (WT_File::mkdir(WT_DATA_DIR . $NEW_MEDIA_DIRECTORY)) { $WT_TREE->setPreference('MEDIA_DIRECTORY', $NEW_MEDIA_DIRECTORY); WT_FlashMessages::addMessage(WT_I18N::translate('The folder %s was created.', WT_DATA_DIR . $NEW_MEDIA_DIRECTORY)); } else { WT_FlashMessages::addMessage(WT_I18N::translate('The folder %s does not exist, and it could not be created.', WT_DATA_DIR . $NEW_MEDIA_DIRECTORY)); } } $gedcom = WT_Filter::post('gedcom'); if ($gedcom && $gedcom != WT_GEDCOM) { try { WT_DB::prepare("UPDATE `##gedcom` SET gedcom_name = ? WHERE gedcom_id = ?")->execute(array($gedcom, WT_GED_ID)); WT_DB::prepare("UPDATE `##site_setting` SET setting_value = ? WHERE setting_name='DEFAULT_GEDCOM' AND setting_value = ?")->execute(array($gedcom, WT_GEDCOM)); } catch (Exception $ex) { // Probably a duplicate name. $gedcom = WT_GEDCOM; } } // Reload the page, so that the settings take effect immediately. Zend_Session::writeClose(); header('Location: ' . WT_SERVER_NAME . WT_SCRIPT_PATH . WT_SCRIPT_NAME . '?ged=' . $gedcom); exit; } $controller ->pageHeader() ->addInlineJavascript('jQuery("#tabs").tabs(); jQuery("#tabs").css("display", "inline");') ->addExternalJavascript(WT_STATIC_URL . 'js/autocomplete.js') ->addInlineJavascript('autocomplete();'); ?>