private function _prepare() { if (!AdminCore::auth()) { // Checking if the administrator is connected $this->_aErrors[] = t('You must be logged in as administrator to upgrade your site.'); } if (!$this->_displayIfIsErr()) { // If not found error if (!$this->_showAvailableUpgrades()) { $this->_sHtml .= '<h2>' . t('No upgrade path for %software_name%!') . '</h2>'; } else { $this->_sHtml .= '<h2>' . t('Upgrade available for %software_name%:') . '</h2>'; $this->_sHtml .= '<form method="post">'; foreach ($this->_showAvailableUpgrades() as $sFolder) { $this->_sUpgradesDirUpgradeFolder = $this->_oFile->checkExtDir($sFolder); $this->_readConfig(); $sVerName = $this->_oConfig->values['upgrade.version']['name']; $sVerNumber = $this->_oConfig->values['upgrade.version']['number']; $iVerBuild = $this->_oConfig->values['upgrade.version']['build']; $sDesc = $this->_oConfig->values['upgrade.information']['description']; if ($this->_checkUpgradeFolder($this->_sUpgradesDirUpgradeFolder)) { $this->_sHtml .= '<p class="underline italic">' . t('Version Name: %0%, Version Number: %1%, Version Build: %2%', $sVerName, $sVerNumber, $iVerBuild) . '</p>'; if ($this->_checkVersion($sVerName, $sVerNumber, $iVerBuild)) { $this->_sHtml .= '<button type="submit" class="success" name="submit_upgrade" value="' . $this->_sUpgradesDirUpgradeFolder . '" onclick="return confirm(\'' . t('Have you made a backup of your website files, folders and database?') . '\');">' . t('Upgrade <span class="bold italic">%software_version_name% %software_version% Build %software_build%</span> to version <span class="bold italic">%0%</span>', '<span class="bold italic">' . $sVerName . ' ' . $sVerNumber . ' Build ' . $iVerBuild . '</span>') . '</button>'; // Description upgrade path $this->_sHtml .= '<p class="underline">' . t('Description of the upgrade patch:') . '</p>'; $this->_sHtml .= $sDesc; // Introduction file $this->_sHtml .= '<p class="bold underline">' . t('Introductory instruction:') . '</p>'; $this->_sHtml .= $this->_readInstruction(static::INST_INTRO_FILE); } else { $this->_sHtml .= '<button type="submit" class="error" disabled="disabled">' . t('Bad "version name, version number or version build" of upgrade path!') . '</button>'; } } else { $this->_sHtml .= '<button type="submit" class="error" disabled="disabled">' . t('Upgrade path is not valid!') . '</button>'; } $this->_sHtml .= '<br /><hr /><br />'; unset($sVerName, $sVerNumber, $iVerBuild); } $this->_sHtml .= '</form>'; if ($this->_oHttpRequest->postExists('submit_upgrade')) { if ($this->_checkUpgradeFolder($this->_oHttpRequest->post('submit_upgrade'))) { $this->_sUpgradesDirUpgradeFolder = $this->_oHttpRequest->post('submit_upgrade'); // Upgrade Directory Path $this->_readConfig(); $this->_sVerName = $this->_oConfig->values['upgrade.version']['name']; // Version name upgrade $this->_sVerNumber = $this->_oConfig->values['upgrade.version']['number']; // Version number upgrade $this->_iVerBuild = $this->_oConfig->values['upgrade.version']['build']; // Version build upgrade DbConfig::setSiteMode(DbConfig::MAINTENANCE_SITE); $this->_oConfig->setDevelopmentMode(); usleep(100000); $this->_check(); // Checking // If not found error if (!$this->_displayIfIsErr()) { $this->_run(); // Run Upgrade! // If no error if (!$this->_displayIfIsErr()) { /** It resets the HTML variable ($this->_sHtml) to not display versions upgrade available. The user can refresh the page to réaficher the upgrade available. */ $this->_sHtml = '<h3 class="success">' . t('Your update ran successfully!') . '</h3>'; if ($this->_bAutoRemoveUpgradeDir) { if ($this->_removeUpgradeDir()) { $this->_sHtml .= '<p class="success">' . t('The upgrade directory <em>(~%0%)</em> has been deleted!', PH7_PATH_REPOSITORY . static::DIR . PH7_DS . $this->_sUpgradesDirUpgradeFolder) . '</p>'; $this->_sHtml .= '<p class="success">' . t('Status... OK!') . '</p>'; } else { $this->_sHtml .= '<p class="error">' . t('The upgrade directory <em>(~%0%)</em> could not be deleted, please delete it manually using an FTP client or SSH.', PH7_PATH_REPOSITORY . static::DIR . PH7_DS . $this->_sUpgradesDirUpgradeFolder) . '</p>'; $this->_sHtml .= '<p class="error">' . t('Status... Failure!') . '</p>'; } } else { $this->_sHtml .= '<p>' . t('Please delete the upgrade file using an FTP client or SSH.') . '</p>'; } // Conclusion file $this->_sHtml .= '<p class="bold underline">' . t('Conclusion of Instruction:') . '</p>'; $this->_sHtml .= $this->_readInstruction(static::INST_CONCL_FILE); } } $this->_oConfig->setProductionMode(); DbConfig::setSiteMode(DbConfig::ENABLE_SITE); usleep(100000); } } } } }
public function __construct() { parent::__construct(); /********** General Settings **********/ if (!$this->str->equals($this->httpRequest->post('site_name'), DbConfig::getSetting('siteName'))) { DbConfig::setSetting($this->httpRequest->post('site_name'), 'siteName'); } if (!$this->str->equals($this->httpRequest->post('default_template'), DbConfig::getSetting('defaultTemplate'))) { DbConfig::setSetting($this->httpRequest->post('default_template'), 'defaultTemplate'); } if (!$this->str->equals($this->httpRequest->post('default_language'), DbConfig::getSetting('defaultLanguage'))) { DbConfig::setSetting($this->httpRequest->post('default_language'), 'defaultLanguage'); } if (!$this->str->equals($this->httpRequest->post('map_type'), DbConfig::getSetting('mapType'))) { DbConfig::setSetting($this->httpRequest->post('map_type'), 'mapType'); } if (!$this->str->equals($this->httpRequest->post('splash_page'), DbConfig::getSetting('splashPage'))) { DbConfig::setSetting($this->httpRequest->post('splash_page'), 'splashPage'); } if (!$this->str->equals($this->httpRequest->post('bg_splash_vid'), DbConfig::getSetting('bgSplashVideo'))) { DbConfig::setSetting($this->httpRequest->post('bg_splash_vid'), 'bgSplashVideo'); } if (!$this->str->equals($this->httpRequest->post('full_ajax_site'), DbConfig::getSetting('fullAjaxSite'))) { DbConfig::setSetting($this->httpRequest->post('full_ajax_site'), 'fullAjaxSite'); } if (!$this->str->equals($this->httpRequest->post('site_status'), DbConfig::getSetting('siteStatus'))) { DbConfig::setSiteMode($this->httpRequest->post('site_status')); } if (!$this->str->equals($this->httpRequest->post('disclaimer'), DbConfig::getSetting('disclaimer'))) { DbConfig::setSetting($this->httpRequest->post('disclaimer'), 'disclaimer'); } if (!$this->str->equals($this->httpRequest->post('cookie_consent_bar'), DbConfig::getSetting('cookieConsentBar'))) { DbConfig::setSetting($this->httpRequest->post('cookie_consent_bar'), 'cookieConsentBar'); } if (!$this->str->equals($this->httpRequest->post('is_software_news_feed'), DbConfig::getSetting('isSoftwareNewsFeed'))) { DbConfig::setSetting($this->httpRequest->post('is_software_news_feed'), 'isSoftwareNewsFeed'); } /********** Logo Settings **********/ if (!empty($_FILES['logo']['tmp_name'])) { $oLogo = new Framework\Image\Image($_FILES['logo']['tmp_name']); if (!$oLogo->validate()) { \PFBC\Form::setError('form_setting', Form::wrongImgFileTypeMsg()); $this->bIsErr = true; } else { /* * The method deleteFile first test if the file exists, if so it delete the file. */ $sPathName = PH7_PATH_TPL . PH7_TPL_NAME . PH7_DS . PH7_IMG . 'logo.png'; $this->file->deleteFile($sPathName); // It erases the old logo. $oLogo->dynamicResize(250, 60); $oLogo->save($sPathName); // Clear CSS cache, because the logo is storaged with data URI in the CSS cache file $this->file->deleteDir(PH7_PATH_CACHE . Framework\Layout\Gzip::CACHE_DIR); // Clear the Web browser cache (new Framework\Navigation\Browser())->noCache(); } } /********** Email **********/ if (!$this->str->equals($this->httpRequest->post('email_name'), DbConfig::getSetting('emailName'))) { DbConfig::setSetting($this->httpRequest->post('email_name'), 'emailName'); } if (!$this->str->equals($this->httpRequest->post('admin_email'), DbConfig::getSetting('adminEmail'))) { DbConfig::setSetting($this->httpRequest->post('admin_email'), 'adminEmail'); } if (!$this->str->equals($this->httpRequest->post('feedback_email'), DbConfig::getSetting('feedbackEmail'))) { DbConfig::setSetting($this->httpRequest->post('feedback_email'), 'feedbackEmail'); } if (!$this->str->equals($this->httpRequest->post('return_email'), DbConfig::getSetting('returnEmail'))) { DbConfig::setSetting($this->httpRequest->post('return_email'), 'returnEmail'); } /********** Registration **********/ if (!$this->str->equals($this->httpRequest->post('user_activation_type'), DbConfig::getSetting('userActivationType'))) { DbConfig::setSetting($this->httpRequest->post('user_activation_type'), 'userActivationType'); } if (!$this->str->equals($this->httpRequest->post('aff_activation_type'), DbConfig::getSetting('affActivationType'))) { DbConfig::setSetting($this->httpRequest->post('aff_activation_type'), 'affActivationType'); } if (!$this->str->equals($this->httpRequest->post('min_username_length'), DbConfig::getSetting('minUsernameLength'))) { $iMaxUsernameLength = DbConfig::getSetting('maxUsernameLength') - 1; if ($this->httpRequest->post('min_username_length') > $iMaxUsernameLength) { \PFBC\Form::setError('form_setting', t('The minimum length of the username cannot exceed %0% characters.', $iMaxUsernameLength)); $this->bIsErr = true; } else { DbConfig::setSetting($this->httpRequest->post('min_username_length'), 'minUsernameLength'); } } if (!$this->str->equals($this->httpRequest->post('max_username_length'), DbConfig::getSetting('maxUsernameLength'))) { if ($this->httpRequest->post('max_username_length') > PH7_MAX_USERNAME_LENGTH) { \PFBC\Form::setError('form_setting', t('The maximum length of the username cannot exceed %0% characters.', PH7_MAX_USERNAME_LENGTH)); $this->bIsErr = true; } else { DbConfig::setSetting($this->httpRequest->post('max_username_length'), 'maxUsernameLength'); } } if (!$this->str->equals($this->httpRequest->post('min_age_registration'), DbConfig::getSetting('minAgeRegistration'))) { if ($this->httpRequest->post('min_age_registration') >= DbConfig::getSetting('maxAgeRegistration')) { \PFBC\Form::setError('form_setting', t('You cannot specify a minimum age higher than the maximum age.')); $this->bIsErr = true; } else { DbConfig::setSetting($this->httpRequest->post('min_age_registration'), 'minAgeRegistration'); } } if (!$this->str->equals($this->httpRequest->post('max_age_registration'), DbConfig::getSetting('maxAgeRegistration'))) { DbConfig::setSetting($this->httpRequest->post('max_age_registration'), 'maxAgeRegistration'); } if (!$this->str->equals($this->httpRequest->post('default_membership_group_id'), DbConfig::getSetting('defaultMembershipGroupId'))) { DbConfig::setSetting($this->httpRequest->post('default_membership_group_id'), 'defaultMembershipGroupId'); } /********** Picture and Video **********/ // Image if (!$this->str->equals($this->httpRequest->post('watermark_text_image'), DbConfig::getSetting('watermarkTextImage'))) { DbConfig::setSetting($this->httpRequest->post('watermark_text_image'), 'watermarkTextImage'); } if (!$this->str->equals($this->httpRequest->post('size_watermark_text_image'), DbConfig::getSetting('sizeWatermarkTextImage')) && ($this->httpRequest->post('size_watermark_text_image') >= 0 && $this->httpRequest->post('size_watermark_text_image') <= 5)) { DbConfig::setSetting($this->httpRequest->post('size_watermark_text_image'), 'sizeWatermarkTextImage'); } // Video if (!$this->str->equals($this->httpRequest->post('default_video'), DbConfig::getSetting('defaultVideo'))) { DbConfig::setSetting($this->httpRequest->post('default_video'), 'defaultVideo'); } if (!$this->str->equals($this->httpRequest->post('autoplay_video'), DbConfig::getSetting('autoplayVideo'))) { DbConfig::setSetting($this->httpRequest->post('autoplay_video'), 'autoplayVideo'); } /********** Moderation **********/ if (!$this->str->equals($this->httpRequest->post('avatar_manual_approval'), DbConfig::getSetting('avatarManualApproval'))) { DbConfig::setSetting($this->httpRequest->post('avatar_manual_approval'), 'avatarManualApproval'); } if (!$this->str->equals($this->httpRequest->post('profile_background_manual_approval'), DbConfig::getSetting('profileBackgroundManualApproval'))) { DbConfig::setSetting($this->httpRequest->post('profile_background_manual_approval'), 'profileBackgroundManualApproval'); } if (!$this->str->equals($this->httpRequest->post('note_manual_approval'), DbConfig::getSetting('noteManualApproval'))) { DbConfig::setSetting($this->httpRequest->post('note_manual_approval'), 'noteManualApproval'); } if (!$this->str->equals($this->httpRequest->post('picture_manual_approval'), DbConfig::getSetting('pictureManualApproval'))) { DbConfig::setSetting($this->httpRequest->post('picture_manual_approval'), 'pictureManualApproval'); } if (!$this->str->equals($this->httpRequest->post('video_manual_approval'), DbConfig::getSetting('videoManualApproval'))) { DbConfig::setSetting($this->httpRequest->post('video_manual_approval'), 'videoManualApproval'); } if (!$this->str->equals($this->httpRequest->post('webcam_picture_manual_approval'), DbConfig::getSetting('webcamPictureManualApproval'))) { DbConfig::setSetting($this->httpRequest->post('webcam_picture_manual_approval'), 'webcamPictureManualApproval'); } /********** Security **********/ if (!$this->str->equals($this->httpRequest->post('min_password_length'), DbConfig::getSetting('minPasswordLength'))) { DbConfig::setSetting($this->httpRequest->post('min_password_length'), 'minPasswordLength'); } if (!$this->str->equals($this->httpRequest->post('max_password_length'), DbConfig::getSetting('maxPasswordLength'))) { DbConfig::setSetting($this->httpRequest->post('max_password_length'), 'maxPasswordLength'); } if (!$this->str->equals($this->httpRequest->post('is_user_login_attempt'), DbConfig::getSetting('isUserLoginAttempt'))) { DbConfig::setSetting($this->httpRequest->post('is_user_login_attempt'), 'isUserLoginAttempt'); } if (!$this->str->equals($this->httpRequest->post('is_affiliate_login_attempt'), DbConfig::getSetting('isAffiliateLoginAttempt'))) { DbConfig::setSetting($this->httpRequest->post('is_affiliate_login_attempt'), 'isAffiliateLoginAttempt'); } if (!$this->str->equals($this->httpRequest->post('is_admin_login_attempt'), DbConfig::getSetting('isAdminLoginAttempt'))) { DbConfig::setSetting($this->httpRequest->post('is_admin_login_attempt'), 'isAdminLoginAttempt'); } if (!$this->str->equals($this->httpRequest->post('max_user_login_attempts'), DbConfig::getSetting('maxUserLoginAttempts'))) { DbConfig::setSetting($this->httpRequest->post('max_user_login_attempts'), 'maxUserLoginAttempts'); } if (!$this->str->equals($this->httpRequest->post('max_affiliate_login_attempts'), DbConfig::getSetting('maxAffiliateLoginAttempts'))) { DbConfig::setSetting($this->httpRequest->post('max_affiliate_login_attempts'), 'maxAffiliateLoginAttempts'); } if (!$this->str->equals($this->httpRequest->post('max_admin_login_attempts'), DbConfig::getSetting('maxAdminLoginAttempts'))) { DbConfig::setSetting($this->httpRequest->post('max_admin_login_attempts'), 'maxAdminLoginAttempts'); } if (!$this->str->equals($this->httpRequest->post('login_user_attempt_time'), DbConfig::getSetting('loginUserAttemptTime'))) { DbConfig::setSetting($this->httpRequest->post('login_user_attempt_time'), 'loginUserAttemptTime'); } if (!$this->str->equals($this->httpRequest->post('login_affiliate_attempt_time'), DbConfig::getSetting('loginAffiliateAttemptTime'))) { DbConfig::setSetting($this->httpRequest->post('login_affiliate_attempt_time'), 'loginAffiliateAttemptTime'); } if (!$this->str->equals($this->httpRequest->post('login_admin_attempt_time'), DbConfig::getSetting('loginAdminAttemptTime'))) { DbConfig::setSetting($this->httpRequest->post('login_admin_attempt_time'), 'loginAdminAttemptTime'); } if (!$this->str->equals($this->httpRequest->post('send_report_mail'), DbConfig::getSetting('sendReportMail'))) { DbConfig::setSetting($this->httpRequest->post('send_report_mail'), 'sendReportMail'); } if (!$this->str->equals($this->httpRequest->post('ip_login'), DbConfig::getSetting('ipLogin'))) { DbConfig::setSetting($this->httpRequest->post('ip_login'), 'ipLogin'); } if (!$this->str->equals($this->httpRequest->post('ban_word_replace'), DbConfig::getSetting('banWordReplace'))) { DbConfig::setSetting($this->httpRequest->post('ban_word_replace'), 'banWordReplace'); } if (!$this->str->equals($this->httpRequest->post('security_token'), DbConfig::getSetting('securityToken'))) { DbConfig::setSetting($this->httpRequest->post('security_token'), 'securityToken'); } $iSecTokenLifetime = (int) $this->httpRequest->post('security_token_lifetime'); if (!$this->str->equals($iSecTokenLifetime, DbConfig::getSetting('securityTokenLifetime'))) { if ($iSecTokenLifetime < 10) { \PFBC\Form::setError('form_setting', t('The token lifetime cannot be below 10 seconds.')); $this->bIsErr = true; } else { DbConfig::setSetting($iSecTokenLifetime, 'securityTokenLifetime'); } } if (!$this->str->equals($this->httpRequest->post('stop_DDoS'), DbConfig::getSetting('DDoS'))) { DbConfig::setSetting($this->httpRequest->post('stop_DDoS'), 'DDoS'); } /********** Spam **********/ // Time Delay if (!$this->str->equals($this->httpRequest->post('time_delay_user_registration'), DbConfig::getSetting('timeDelayUserRegistration'))) { DbConfig::setSetting($this->httpRequest->post('time_delay_user_registration'), 'timeDelayUserRegistration'); } if (!$this->str->equals($this->httpRequest->post('time_delay_aff_registration'), DbConfig::getSetting('timeDelayAffRegistration'))) { DbConfig::setSetting($this->httpRequest->post('time_delay_aff_registration'), 'timeDelayAffRegistration'); } if (!$this->str->equals($this->httpRequest->post('time_delay_send_note'), DbConfig::getSetting('timeDelaySendNote'))) { DbConfig::setSetting($this->httpRequest->post('time_delay_send_note'), 'timeDelaySendNote'); } if (!$this->str->equals($this->httpRequest->post('time_delay_send_mail'), DbConfig::getSetting('timeDelaySendMail'))) { DbConfig::setSetting($this->httpRequest->post('time_delay_send_mail'), 'timeDelaySendMail'); } if (!$this->str->equals($this->httpRequest->post('time_delay_send_comment'), DbConfig::getSetting('timeDelaySendComment'))) { DbConfig::setSetting($this->httpRequest->post('time_delay_send_comment'), 'timeDelaySendComment'); } if (!$this->str->equals($this->httpRequest->post('time_delay_send_forum_topic'), DbConfig::getSetting('timeDelaySendForumTopic'))) { DbConfig::setSetting($this->httpRequest->post('time_delay_send_forum_topic'), 'timeDelaySendForumTopic'); } if (!$this->str->equals($this->httpRequest->post('time_delay_send_forum_msg'), DbConfig::getSetting('timeDelaySendForumMsg'))) { DbConfig::setSetting($this->httpRequest->post('time_delay_send_forum_msg'), 'timeDelaySendForumMsg'); } // Captcha if (!$this->str->equals($this->httpRequest->post('is_captcha_user_signup'), DbConfig::getSetting('isCaptchaUserSignup'))) { DbConfig::setSetting($this->httpRequest->post('is_captcha_user_signup'), 'isCaptchaUserSignup'); } if (!$this->str->equals($this->httpRequest->post('is_captcha_affiliate_signup'), DbConfig::getSetting('isCaptchaAffiliateSignup'))) { DbConfig::setSetting($this->httpRequest->post('is_captcha_affiliate_signup'), 'isCaptchaAffiliateSignup'); } if (!$this->str->equals($this->httpRequest->post('is_captcha_mail'), DbConfig::getSetting('isCaptchaMail'))) { DbConfig::setSetting($this->httpRequest->post('is_captcha_mail'), 'isCaptchaMail'); } if (!$this->str->equals($this->httpRequest->post('is_captcha_comment'), DbConfig::getSetting('isCaptchaComment'))) { DbConfig::setSetting($this->httpRequest->post('is_captcha_comment'), 'isCaptchaComment'); } if (!$this->str->equals($this->httpRequest->post('is_captcha_forum'), DbConfig::getSetting('isCaptchaForum'))) { DbConfig::setSetting($this->httpRequest->post('is_captcha_forum'), 'isCaptchaForum'); } if (!$this->str->equals($this->httpRequest->post('is_captcha_note'), DbConfig::getSetting('isCaptchaNote'))) { DbConfig::setSetting($this->httpRequest->post('is_captcha_note'), 'isCaptchaNote'); } if (!$this->str->equals($this->httpRequest->post('clean_msg'), DbConfig::getSetting('cleanMsg'))) { DbConfig::setSetting($this->httpRequest->post('clean_msg'), 'cleanMsg'); } if (!$this->str->equals($this->httpRequest->post('clean_comment'), DbConfig::getSetting('cleanComment'))) { DbConfig::setSetting($this->httpRequest->post('clean_comment'), 'cleanComment'); } /********** Api **********/ if (!$this->str->equals($this->httpRequest->post('ip_api'), DbConfig::getSetting('ipApi'))) { DbConfig::setSetting($this->httpRequest->post('ip_api'), 'ipApi'); } if (!$this->str->equals($this->httpRequest->post('chat_api'), DbConfig::getSetting('chatApi'))) { DbConfig::setSetting($this->httpRequest->post('chat_api'), 'chatApi'); } if (!$this->str->equals($this->httpRequest->post('chatroulette_api'), DbConfig::getSetting('chatrouletteApi'))) { DbConfig::setSetting($this->httpRequest->post('chatroulette_api'), 'chatrouletteApi'); } /********** Automation **********/ if (!$this->str->equals($this->httpRequest->post('cron_security_hash'), DbConfig::getSetting('cronSecurityHash'))) { DbConfig::setSetting($this->httpRequest->post('cron_security_hash'), 'cronSecurityHash'); } if (!$this->str->equals($this->httpRequest->post('user_timeout'), DbConfig::getSetting('userTimeout'))) { DbConfig::setSetting($this->httpRequest->post('user_timeout'), 'userTimeout'); } /* Clean DbConfig Cache */ (new Framework\Cache\Cache())->start(DbConfig::CACHE_GROUP, null, null)->clear(); if (!$this->bIsErr) { \PFBC\Form::setSuccess('form_setting', t('The configuration was saved successfully!')); } }