diff --git a/functions-options.php b/functions-options.php deleted file mode 100644 index f2728f4..0000000 --- a/functions-options.php +++ /dev/null @@ -1,195 +0,0 @@ -get($option_name, $default); - - return yourls_apply_filter( 'get_option_'.$option_name, $value ); -} - -/** - * Read all options from DB at once - * - * The goal is to read all options at once and then populate array $ydb->option, to prevent further - * SQL queries if we need to read an option value later. - * It's also a simple check whether YOURLS is installed or not (no option = assuming not installed) after - * a check for DB server reachability has been performed - * - * @since 1.4 - * @return void - */ -function yourls_get_all_options() { - // Allow plugins to short-circuit all options. (Note: regular plugins are loaded after all options) - $pre = yourls_apply_filter( 'shunt_all_options', false ); - if ( false !== $pre ) { - return $pre; - } - - $options = new \YOURLS\Database\Options(yourls_get_db()); - - if ($options->get_all_options() === false) { - // Zero option found but no unexpected error so far: YOURLS isn't installed - yourls_set_installed(false); - return; - } - - yourls_set_installed(true); -} - -/** - * Update (add if doesn't exist) an option to DB - * - * Pretty much stolen from WordPress - * - * @since 1.4 - * @param string $option_name Option name. Expected to not be SQL-escaped. - * @param mixed $newvalue Option value. Must be serializable if non-scalar. Expected to not be SQL-escaped. - * @return bool False if value was not updated, true otherwise. - */ -function yourls_update_option( $option_name, $newvalue ) { - $option = new \YOURLS\Database\Options(yourls_get_db()); - $update = $option->update($option_name, $newvalue); - - return $update; -} - -/** - * Add an option to the DB - * - * Pretty much stolen from WordPress - * - * @since 1.4 - * @param string $name Name of option to add. Expected to not be SQL-escaped. - * @param mixed $value Optional option value. Must be serializable if non-scalar. Expected to not be SQL-escaped. - * @return bool False if option was not added and true otherwise. - */ -function yourls_add_option( $name, $value = '' ) { - $option = new \YOURLS\Database\Options(yourls_get_db()); - $add = $option->add($name, $value); - - return $add; -} - -/** - * Delete an option from the DB - * - * Pretty much stolen from WordPress - * - * @since 1.4 - * @param string $name Option name to delete. Expected to not be SQL-escaped. - * @return bool True, if option is successfully deleted. False on failure. - */ -function yourls_delete_option( $name ) { - $option = new \YOURLS\Database\Options(yourls_get_db()); - $delete = $option->delete($name); - - return $delete; -} - -/** - * Serialize data if needed. Stolen from WordPress - * - * @since 1.4 - * @param mixed $data Data that might be serialized. - * @return mixed A scalar data - */ -function yourls_maybe_serialize( $data ) { - if ( is_array( $data ) || is_object( $data ) ) - return serialize( $data ); - - if ( yourls_is_serialized( $data, false ) ) - return serialize( $data ); - - return $data; -} - -/** - * Unserialize value only if it was serialized. Stolen from WP - * - * @since 1.4 - * @param string $original Maybe unserialized original, if is needed. - * @return mixed Unserialized data can be any type. - */ -function yourls_maybe_unserialize( $original ) { - if ( yourls_is_serialized( $original ) ) // don't attempt to unserialize data that wasn't serialized going in - return @unserialize( $original ); - return $original; -} - -/** - * Check value to find if it was serialized. Stolen from WordPress - * - * @since 1.4 - * @param mixed $data Value to check to see if was serialized. - * @param bool $strict Optional. Whether to be strict about the end of the string. Defaults true. - * @return bool False if not serialized and true if it was. - */ -function yourls_is_serialized( $data, $strict = true ) { - // if it isn't a string, it isn't serialized - if ( ! is_string( $data ) ) - return false; - $data = trim( $data ); - if ( 'N;' == $data ) - return true; - $length = strlen( $data ); - if ( $length < 4 ) - return false; - if ( ':' !== $data[1] ) - return false; - if ( $strict ) { - $lastc = $data[ $length - 1 ]; - if ( ';' !== $lastc && '}' !== $lastc ) - return false; - } else { - $semicolon = strpos( $data, ';' ); - $brace = strpos( $data, '}' ); - // Either ; or } must exist. - if ( false === $semicolon && false === $brace ) - return false; - // But neither must be in the first X characters. - if ( false !== $semicolon && $semicolon < 3 ) - return false; - if ( false !== $brace && $brace < 4 ) - return false; - } - $token = $data[0]; - switch ( $token ) { - case 's' : - if ( $strict ) { - if ( '"' !== $data[ $length - 2 ] ) - return false; - } elseif ( false === strpos( $data, '"' ) ) { - return false; - } - // or else fall through - case 'a' : - case 'O' : - return (bool) preg_match( "/^{$token}:[0-9]+:/s", $data ); - case 'b' : - case 'i' : - case 'd' : - $end = $strict ? '$' : ''; - return (bool) preg_match( "/^{$token}:[0-9.E-]+;$end/", $data ); - } - return false; -}