first commit
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
class WPML_TM_Log implements WPML_TP_API_Log_Interface {
|
||||
const LOG_WP_OPTION = '_wpml_tp_api_Logger';
|
||||
const LOG_MAX_SIZE = 500;
|
||||
|
||||
/** @var WPML_WP_API */
|
||||
private $wpml_wp_api;
|
||||
|
||||
/**
|
||||
* WPML_TM_Log constructor.
|
||||
*
|
||||
* @param WPML_WP_API $wpml_wp_api
|
||||
*/
|
||||
public function __construct( WPML_WP_API $wpml_wp_api = null ) {
|
||||
if ( null === $wpml_wp_api ) {
|
||||
$wpml_wp_api = new WPML_WP_API();
|
||||
}
|
||||
$this->wpml_wp_api = $wpml_wp_api;
|
||||
}
|
||||
|
||||
public function log( $action, $data = array() ) {
|
||||
$log_base_data = array(
|
||||
'timestamp' => false,
|
||||
'action' => false,
|
||||
);
|
||||
|
||||
$log_item = array_merge( $log_base_data, $data );
|
||||
|
||||
$log_item['timestamp'] = date( 'Y-m-d H:i:s' );
|
||||
$log_item['action'] = $action;
|
||||
|
||||
$log = $this->get_log_data();
|
||||
|
||||
if ( ! is_array( $log ) ) {
|
||||
$log = array();
|
||||
}
|
||||
|
||||
$log = array_slice( $log, - ( self::LOG_MAX_SIZE - 1 ) );
|
||||
|
||||
$log[] = $log_item;
|
||||
|
||||
$this->update_log( $log );
|
||||
}
|
||||
|
||||
private function update_log( $log ) {
|
||||
return $this->wpml_wp_api->update_option( self::LOG_WP_OPTION, $log );
|
||||
}
|
||||
|
||||
public function flush_log() {
|
||||
return $this->wpml_wp_api->update_option( self::LOG_WP_OPTION, array() );
|
||||
}
|
||||
|
||||
public function get_log_data() {
|
||||
return $this->wpml_wp_api->get_option( self::LOG_WP_OPTION, array() );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user