File manager - Edit - /home/antilam/web/antilam.ru/public_html/wp-content/plugins/wp-recipe-maker/includes/public/class-wprm-changelog-database.php
Back
<?php /** * Responsible for the changelog database. * * @link https://bootstrapped.ventures * @since 9.2.0 * * @package WP_Recipe_Maker * @subpackage WP_Recipe_Maker/includes/public */ /** * Responsible for the changelog database. * * @since 9.2.0 * @package WP_Recipe_Maker * @subpackage WP_Recipe_Maker/includes/public * @author Brecht Vandersmissen <brecht@bootstrapped.ventures> */ class WPRM_Changelog_Database { /** * Current version of the database structure. * * @since 9.2.0 * @access private * @var mixed $database_version Current version of the database structure. */ private static $database_version = '1.0'; /** * Register actions and filters. * * @since 9.2.0 */ public static function init() { add_action( 'plugins_loaded', array( __CLASS__, 'check_database_version' ), 1 ); } /** * Check if the correct database version is present. * * @since 9.2.0 */ public static function check_database_version() { $current_version = get_option( 'wprm_changelog_db_version', '0.0' ); if ( version_compare( $current_version, self::$database_version ) < 0 ) { self::update_database( $current_version ); } } /** * Create or update the rating database. * * @since 9.2.0 * @param mixed $from Database version to update from. */ public static function update_database( $from ) { global $wpdb; $table_name = self::get_table_name(); $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_name ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, type varchar(64) NOT NULL, meta longtext NULL, object_id bigint(20) unsigned NOT NULL, object_meta longtext NULL, user_id bigint(20) unsigned NOT NULL DEFAULT '0', user_meta longtext NULL, created_at datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, PRIMARY KEY (id), KEY created_at (created_at) ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); $result = dbDelta( $sql ); update_option( 'wprm_changelog_db_version', self::$database_version ); } /** * Get the name of an analytics database table. * * @since 9.2.0 */ public static function get_table_name() { global $wpdb; return $wpdb->prefix . 'wprm_changelog' ; } /** * Sanitize a change. * * @since 9.2.0 * @param mixed $unsanitized_change Change to sanitize. */ public static function sanitize( $unsanitized_change ) { // Date. $change['created_at'] = current_time( 'mysql' ); // Keys. $change['type'] = isset( $unsanitized_change['type'] ) ? sanitize_key( $unsanitized_change['type'] ) : ''; // Integers. $change['object_id'] = isset( $unsanitized_change['object_id'] ) ? intval( $unsanitized_change['object_id'] ) : 0; $change['user_id'] = isset( $unsanitized_change['user_id'] ) ? intval( $unsanitized_change['user_id'] ) : get_current_user_id(); // Arrays. $change['meta'] = isset( $unsanitized_change['meta'] ) ? $unsanitized_change['meta'] : array(); $change['meta'] = maybe_serialize( $change['meta'] ); $change['object_meta'] = isset( $unsanitized_change['object_meta'] ) ? $unsanitized_change['object_meta'] : array(); $change['object_meta'] = maybe_serialize( $change['object_meta'] ); $change['user_meta'] = isset( $unsanitized_change['user_meta'] ) ? $unsanitized_change['user_meta'] : array(); $change['user_meta'] = maybe_serialize( $change['user_meta'] ); return $change; } /** * Add a change to the database. * * @since 9.2.0 * @param mixed $unsanitized_change Change to add to the database. */ public static function add( $unsanitized_change ) { global $wpdb; $table_name = self::get_table_name(); $change = self::sanitize( $unsanitized_change ); return $wpdb->insert( $table_name, $change ); } /** * Purge old changes. * * @since 9.2.0 * @param int $days Number of days to keep. */ public static function purge( $days ) { global $wpdb; $table_name = self::get_table_name(); $days = intval( $days ); $datetime = new DateTime( $days . ' days ago' ); $created_at = $datetime->format( 'Y-m-d H:i:s' ); $wpdb->query( 'DELETE FROM ' . $table_name . ' WHERE created_at < "' . $created_at . '"' ); return true; } /** * Delete a single or array of changes. * * @since 9.2.0 * @param mixed $id_or_ids Change IDs to delete. */ public static function delete( $id_or_ids ) { global $wpdb; $table_name = self::get_table_name(); $ids = is_array( $id_or_ids ) ? $id_or_ids : array( $id_or_ids ); $ids = implode( ',', array_map( 'intval', $ids ) ); $wpdb->query( 'DELETE FROM ' . $table_name . ' WHERE ID IN (' . $ids . ')' ); return true; } /** * Query actions. * * @since 9.2.0 * @param mixed $args Arguments for the query. */ public static function get( $args ) { global $wpdb; $table_name = self::get_table_name(); // Sanitize arguments. $order = isset( $args['order'] ) ? strtoupper( $args['order'] ) : ''; $order = in_array( $order, array( 'ASC', 'DESC' ), true ) ? $order : 'DESC'; $orderby = isset( $args['orderby'] ) ? sanitize_key( $args['orderby'] ) : 'created_at'; $offset = isset( $args['offset'] ) ? intval( $args['offset'] ) : 0; $limit = isset( $args['limit'] ) ? intval( $args['limit'] ) : 0; $where = isset( $args['where'] ) ? trim( $args['where'] ) : ''; // Query ratings. $query_where = $where ? ' WHERE ' . $where : ''; $query_order = ' ORDER BY ' . $orderby . ' ' . $order; $query_limit = $limit ? ' LIMIT ' . $offset . ',' . $limit : ''; // Count without limit. $query_count = 'SELECT count(*) FROM ' . $table_name . $query_where; $count = $wpdb->get_var( $query_count ); // Query ratings. $query_actions = 'SELECT * FROM ' . $table_name . $query_where . $query_order . $query_limit; $changes = $wpdb->get_results( $query_actions ); // Unserialize fields. foreach ( $changes as $change ) { $change->meta = maybe_unserialize( $change->meta ); $change->object_meta = maybe_unserialize( $change->object_meta ); $change->user_meta = maybe_unserialize( $change->user_meta ); } return array( 'total' => intval( $count ), 'rows' => $changes, ); } /** * Count all actions. * * @since 9.2.0 */ public static function count() { global $wpdb; $table_name = self::get_table_name(); $query = 'SELECT count(*) FROM ' . $table_name; $count = $wpdb->get_var( $query ); return intval( $count ); } } WPRM_Changelog_Database::init();
| ver. 1.4 |
Github
|
.
| PHP 8.4.22 | Generation time: 0.1 |
proxy
|
phpinfo
|
Settings