aboutsummaryrefslogtreecommitdiff
path: root/includes/Config/Init.php
diff options
context:
space:
mode:
authors1n <[email protected]>2020-03-28 10:36:41 -0700
committers1n <[email protected]>2020-03-28 10:36:41 -0700
commit25b7d2aab61ae6421398d3abae5da6ffe590333d (patch)
tree611985ec78bb2d94099c9fd5dd687f5c9cee6f3e /includes/Config/Init.php
parentInitial commit (diff)
downloadcrack.cf-backup-master.tar.xz
crack.cf-backup-master.zip
3/28/2020, 10:36HEADmaster
Diffstat (limited to 'includes/Config/Init.php')
-rw-r--r--includes/Config/Init.php193
1 files changed, 193 insertions, 0 deletions
diff --git a/includes/Config/Init.php b/includes/Config/Init.php
new file mode 100644
index 0000000..d2b154b
--- /dev/null
+++ b/includes/Config/Init.php
@@ -0,0 +1,193 @@
+<?php
+
+/**
+ * YOURLS actions upon instantiating
+ */
+
+namespace YOURLS\Config;
+
+class Init {
+
+ /**
+ * @param InitDefaults
+ */
+ protected $actions;
+
+ /**
+ * @since 1.7.3
+ *
+ * @param InitDefaults $actions
+ */
+ public function __construct(InitDefaults $actions) {
+
+ $this->actions = $actions;
+
+ // Include core files
+ if ($actions->include_core_funcs === true) {
+ $this->include_core_functions();
+ }
+
+ // Enforce UTC timezone to suppress PHP warnings -- correct date/time will be managed using the config time offset
+ if ($actions->default_timezone === true) {
+ date_default_timezone_set( 'UTC' );
+ }
+
+ // Load locale
+ if ($actions->load_default_textdomain === true) {
+ yourls_load_default_textdomain();
+ }
+
+ // Check if we are in maintenance mode - if yes, it will die here.
+ if ($actions->check_maintenance_mode === true) {
+ yourls_check_maintenance_mode();
+ }
+
+ // Fix REQUEST_URI for IIS
+ if ($actions->fix_request_uri === true) {
+ yourls_fix_request_uri();
+ }
+
+ // If request for an admin page is http:// and SSL is required, redirect
+ if ($actions->redirect_ssl === true) {
+ $this->redirect_ssl_if_needed();
+ }
+
+ // Create the YOURLS object $ydb that will contain everything we globally need
+ if ($actions->include_db === true) {
+ $this->include_db_files();
+ }
+
+ // Allow early inclusion of a cache layer
+ if ($actions->include_cache === true) {
+ $this->include_cache_files();
+ }
+
+ // Abort initialization here if fast init wanted (for tests/debug/do not use)
+ if ($actions->return_if_fast_init === true && defined('YOURLS_FAST_INIT') && YOURLS_FAST_INIT){
+ return;
+ }
+
+ // Read options right from start
+ if ($actions->get_all_options === true) {
+ yourls_get_all_options();
+ }
+
+ // Register shutdown function
+ if ($actions->register_shutdown === true) {
+ register_shutdown_function( 'yourls_shutdown' );
+ }
+
+ // Core now loaded
+ if ($actions->core_loaded === true) {
+ yourls_do_action( 'init' ); // plugins can't see this, not loaded yet
+ }
+
+ // Check if need to redirect to install procedure
+ if ($actions->redirect_to_install === true) {
+ if (!yourls_is_installed() && !yourls_is_installing()) {
+ yourls_redirect( yourls_admin_url('install.php'), 302 );
+ }
+ }
+
+ // Check if upgrade is needed (bypassed if upgrading or installing)
+ if ($actions->check_if_upgrade_needed === true) {
+ if (!yourls_is_upgrading() && !yourls_is_installing() && yourls_upgrade_is_needed()) {
+ yourls_redirect( yourls_admin_url('upgrade.php'), 302 );
+ }
+ }
+
+ // Load all plugins
+ if ($actions->load_plugins === true) {
+ yourls_load_plugins();
+ }
+
+ // Trigger plugin loaded action
+ if ($actions->plugins_loaded_action === true) {
+ yourls_do_action( 'plugins_loaded' );
+ }
+
+ // Is there a new version of YOURLS ?
+ if ($actions->check_new_version === true) {
+ if (yourls_is_installed() && !yourls_is_upgrading()) {
+ yourls_tell_if_new_version();
+ }
+ }
+
+ if ($actions->init_admin === true) {
+ if (yourls_is_admin()) {
+ yourls_do_action( 'admin_init' );
+ }
+ }
+
+ }
+
+ /**
+ * @since 1.7.3
+ * @return void
+ */
+ public function redirect_ssl_if_needed() {
+ if (yourls_is_admin() && yourls_needs_ssl() && !yourls_is_ssl()) {
+ if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
+ yourls_redirect( preg_replace( '|^http://|', 'https://', $_SERVER['REQUEST_URI'] ) );
+ } else {
+ yourls_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
+ }
+ exit();
+ }
+ }
+
+ /**
+ * @since 1.7.3
+ * @return void
+ */
+ public function include_db_files() {
+ // Allow drop-in replacement for the DB engine
+ if (file_exists(YOURLS_USERDIR.'/db.php')) {
+ require_once YOURLS_USERDIR.'/db.php';
+ } else {
+ require_once YOURLS_INC.'/class-mysql.php';
+ yourls_db_connect();
+ }
+ }
+
+ /**
+ * @since 1.7.3
+ * @return void
+ */
+ public function include_cache_files() {
+ if (file_exists(YOURLS_USERDIR.'/cache.php')) {
+ require_once YOURLS_USERDIR.'/cache.php';
+ }
+ }
+
+ /**
+ * @since 1.7.3
+ * @return void
+ */
+ public function include_core_functions() {
+ require_once YOURLS_INC.'/version.php';
+ require_once YOURLS_INC.'/functions.php';
+ require_once YOURLS_INC.'/functions-plugins.php';
+ require_once YOURLS_INC.'/functions-formatting.php';
+ require_once YOURLS_INC.'/functions-api.php';
+ require_once YOURLS_INC.'/functions-kses.php';
+ require_once YOURLS_INC.'/functions-l10n.php';
+ require_once YOURLS_INC.'/functions-compat.php';
+ require_once YOURLS_INC.'/functions-html.php';
+ require_once YOURLS_INC.'/functions-http.php';
+ require_once YOURLS_INC.'/functions-infos.php';
+ require_once YOURLS_INC.'/functions-deprecated.php';
+
+ // Load auth functions if needed
+ if (yourls_is_private() || $this->actions->include_auth_funcs === true) {
+ require_once YOURLS_INC.'/functions-auth.php';
+ }
+
+ // Load install & upgrade functions if needed
+ if ($this->actions->include_install_upgrade_funcs === true) {
+ require_once YOURLS_INC.'/functions-upgrade.php';
+ require_once YOURLS_INC.'/functions-install.php';
+ }
+ }
+
+}