You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.0 KiB
79 lines
2.0 KiB
<?php
|
|
|
|
/**
|
|
* Updates for altering the table used to store statistics data.
|
|
* Adds new columns and renames existing ones in order to add support for the new social buttons.
|
|
*/
|
|
class WIOUpdate010501 extends Wbcr_Factory474_Update {
|
|
|
|
/**
|
|
* {inherit}
|
|
*
|
|
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
|
* @since 1.3.9
|
|
*/
|
|
public function install() {
|
|
$old_dir = $this->get_old_dir();
|
|
$new_dir = WRIO_Plugin::app()->logger->get_base_dir();
|
|
|
|
$files = array_diff( scandir( $old_dir ), array( '..', '.' ) );
|
|
foreach ( $files as $file ) {
|
|
@copy( $old_dir . $file, $new_dir . $file );
|
|
}
|
|
WRIO_Plugin::app()->logger->info( 'Plugin migration to 1.5.1 was successful!' );
|
|
}
|
|
|
|
/**
|
|
* Get base directory, location of logs.
|
|
*
|
|
* @return null|string NULL in case of failure, string on success.
|
|
*/
|
|
public function get_old_dir() {
|
|
$wp_upload_dir = wp_upload_dir();
|
|
|
|
if ( isset( $wp_upload_dir['error'] ) && $wp_upload_dir['error'] !== false ) {
|
|
return null;
|
|
}
|
|
|
|
$base_path = wp_normalize_path( trailingslashit( $wp_upload_dir['basedir'] ) . 'wrio/' );
|
|
|
|
$folders = glob( $base_path . 'logs-*' );
|
|
|
|
if ( ! empty( $folders ) ) {
|
|
$exploded_path = explode( '/', trim( $folders[0] ) );
|
|
$selected_logs_folder = array_pop( $exploded_path );
|
|
} else {
|
|
if ( function_exists( 'wp_salt' ) ) {
|
|
$hash = md5( wp_salt() );
|
|
} else {
|
|
$hash = md5( AUTH_KEY );
|
|
}
|
|
|
|
$selected_logs_folder = 'logs-' . $hash;
|
|
}
|
|
|
|
$path = $base_path . $selected_logs_folder . '/';
|
|
|
|
if ( ! file_exists( $path ) ) {
|
|
@mkdir( $path, 0755, true );
|
|
}
|
|
|
|
// Create .htaccess file to protect log files
|
|
$htaccess_path = $path . '.htaccess';
|
|
|
|
if ( ! file_exists( $htaccess_path ) ) {
|
|
$htaccess_content = 'deny from all';
|
|
@file_put_contents( $htaccess_path, $htaccess_content );
|
|
}
|
|
|
|
// Create index.htm file in case .htaccess is not support as a fallback
|
|
$index_path = $path . 'index.html';
|
|
|
|
if ( ! file_exists( $index_path ) ) {
|
|
@file_put_contents( $index_path, '' );
|
|
}
|
|
|
|
return $path;
|
|
}
|
|
|
|
}
|
|
|