Файловый менеджер - Редактировать - /var/www/portal.bdu.ac.bd/public_html/wp-content/plugins/hide-my-wp/models/Cache.php
Назад
<?php /** * Cache Model * * @file The Cache file * @package HMWP/CacheModel * @since 5.0.0 */ defined('ABSPATH') || die('Cheatin\' uh?'); class HMWP_Models_Cache { protected $_replace = array(); protected $_cachepath = ''; protected $chmod = 644; public function __construct() { $this->setCachePath(WP_CONTENT_DIR . '/cache/'); } /** * Set the Cache Path * * @param $path */ public function setCachePath( $path ) { $this->_cachepath = $path; } /** * Get the cache path * * @return string */ public function getCachePath() { //Initialize WordPress Filesystem $wp_filesystem = HMWP_Classes_ObjController::initFilesystem(); //Get the website cache path $path = $this->_cachepath; if (HMWP_Classes_Tools::isMultisites() ) { if ($wp_filesystem->is_dir($path . get_current_blog_id() . '/') ) { $path .= get_current_blog_id() . '/'; } } if (!$wp_filesystem->is_dir($path) ) { return false; } return $path; } /** * Build the redirects array * * @throws Exception */ public function buildRedirect() { //If the replacement was not already set if(empty($this->_replace)) { /** * The Rewrite Model * * @var HMWP_Models_Rewrite $rewriteModel */ $rewriteModel = HMWP_Classes_ObjController::getClass('HMWP_Models_Rewrite'); //build the rules paths to change back the hidden paths if (!isset($rewriteModel->_replace['from']) && !isset($rewriteModel->_replace['to'])) { $rewriteModel->buildRedirect(); //add the domain to rewrites if not multisite if (HMWP_Classes_Tools::getOption('hmwp_fix_relative') && !HMWP_Classes_Tools::isMultisites()) { $rewriteModel->prepareFindReplace(); } } //Verify only the rewrites if (isset($rewriteModel->_replace['from']) && isset($rewriteModel->_replace['to']) && !empty($rewriteModel->_replace['from']) && !empty($rewriteModel->_replace['to'])) { if (!empty($rewriteModel->_replace['rewrite'])) { foreach ($rewriteModel->_replace['rewrite'] as $index => $value) { //add only the paths or the design path if ((isset($rewriteModel->_replace['to'][$index]) && substr($rewriteModel->_replace['to'][$index], -1) == '/') || strpos($rewriteModel->_replace['to'][$index], '/' . HMWP_Classes_Tools::getOption('hmwp_themes_style')) ) { $this->_replace['from'][] = $rewriteModel->_replace['from'][$index]; $this->_replace['to'][] = $rewriteModel->_replace['to'][$index]; } } } //add the domain to rewrites if (HMWP_Classes_Tools::getOption('hmwp_fix_relative')) { $this->_replace['from'] = array_map(array($rewriteModel, 'addDomainUrl'), (array)$this->_replace['from']); $this->_replace['to'] = array_map(array($rewriteModel, 'addDomainUrl'), (array)$this->_replace['to']); } } } } /** * Replace the paths in CSS files * * @throws Exception */ public function changePathsInCss() { if (HMWP_Classes_Tools::getOption('error') ) { return; } try { if ($this->getCachePath() ) { $cssfiles = $this->rsearch($this->getCachePath() . '*.css'); if (!empty($cssfiles) ) { //load the redirects into array $this->buildRedirect(); foreach ( $cssfiles as $file ) { //only if the file is writable if (!$content = $this->readFile($file) ) { continue; } //find replace the content $newcontent = $this->findReplace($content); if($newcontent <> $content){ //echo $newcontent;exit(); //write into file $this->writeFile($file, $newcontent); } } } } } catch ( Exception $e ) { } } /** * Replace the paths inHTML files * * @return void */ public function changePathsInJs() { if (HMWP_Classes_Tools::getOption('error') ) { return; } try { if ($this->getCachePath() ) { $jsfiles = $this->rsearch($this->getCachePath() . '*.js'); if (!empty($jsfiles) ) { //load the redirects into array $this->buildRedirect(); foreach ( $jsfiles as $file ) { //only if the file is writable if (!$content = $this->readFile($file) ) { continue; } //find replace the content $newcontent = $this->findReplace($content); if($newcontent <> $content){ //echo $newcontent;exit(); //write into file $this->writeFile($file, $newcontent); } } } } } catch ( Exception $e ) { //echo $e->getMessage();exit(); } } /** * Replace the paths inHTML files * * @return void */ public function changePathsInHTML() { //Initialize WordPress Filesystem $wp_filesystem = HMWP_Classes_ObjController::initFilesystem(); if (HMWP_Classes_Tools::getOption('error') ) { return; } try { if ($this->getCachePath() ) { $htmlfiles = $this->rsearch($this->getCachePath() . '*.html'); if (!empty($htmlfiles) ) { //load the redirects into array $this->buildRedirect(); /** * The Rewrite Model * * @var HMWP_Models_Rewrite $rewriteModel */ $rewriteModel = HMWP_Classes_ObjController::getClass('HMWP_Models_Rewrite'); foreach ( $htmlfiles as $file ) { //only if the file is writable if (!$wp_filesystem->is_writable($file) ) { continue; } //get the file content $content = $wp_filesystem->get_contents($file); //find replace the content $newcontent = $this->findReplace($content); if($newcontent <> $content){ //echo $newcontent;exit(); //write into file $this->writeFile($file, $newcontent); } } } } } catch ( Exception $e ) { } } /** * Find and replace the old paths into files * * @param string $content * @return string|string[]|null * @throws Exception */ public function findReplace( $content ) { //If there are replaced paths if(!empty($this->_replace) && isset($this->_replace['from']) && isset($this->_replace['to'])) { //if there is content in the file if ($content <> '') { //if the file has unchanged paths if (strpos($content, HMWP_Classes_Tools::$default['hmwp_admin_url']) !== false || strpos($content, HMWP_Classes_Tools::$default['hmwp_wp-content_url']) !== false || strpos($content, HMWP_Classes_Tools::$default['hmwp_wp-includes_url']) !== false ) { //fix the relative links before if (HMWP_Classes_Tools::getOption('hmwp_fix_relative')) { $content = HMWP_Classes_ObjController::getClass('HMWP_Models_Rewrite')->fixRelativeLinks($content); } $content = str_ireplace($this->_replace['from'], $this->_replace['to'], $content); } //Text Mapping for all css files - Experimental if (HMWP_Classes_Tools::getOption('hmwp_mapping_file')) { $hmwp_text_mapping = json_decode(HMWP_Classes_Tools::getOption('hmwp_text_mapping'), true); if (isset($hmwp_text_mapping['from']) && !empty($hmwp_text_mapping['from']) && isset($hmwp_text_mapping['to']) && !empty($hmwp_text_mapping['to']) ) { //only classes & ids if (HMWP_Classes_Tools::getOption('hmwp_mapping_classes')) { foreach ($hmwp_text_mapping['from'] as $index => $from) { if (strpos($content, $from) !== false) { $content = preg_replace("'(?:([^/])" . addslashes($from) . "([^/]))'is", '$1' . $hmwp_text_mapping['to'][$index] . '$2', $content); } } } else { $content = str_ireplace($hmwp_text_mapping['from'], $hmwp_text_mapping['to'], $content); } } } } } return $content; } /** * Get the files paths by extension * * @param string $pattern * @param int $flags * * @return array */ public function rsearch( $pattern, $flags = 0 ) { $files = array(); if (function_exists('glob') ) { $files = glob($pattern, $flags); foreach ( glob(dirname($pattern) . '/*', GLOB_ONLYDIR | GLOB_NOSORT) as $dir ) { $files = array_merge($files, $this->rsearch($dir . '/' . basename($pattern), $flags)); } } return $files; } /** * Read the file content * * @param string $file * * @return bool */ public function readFile( $file ) { //Initialize WordPress Filesystem $wp_filesystem = HMWP_Classes_ObjController::initFilesystem(); if ($wp_filesystem->is_writable($file) ) { return $wp_filesystem->get_contents($file); } return false; } /** * Write the file content * * @param string $file * @param string $content * @return void */ public function writeFile( $file, $content ) { //Initialize WordPress Filesystem $wp_filesystem = HMWP_Classes_ObjController::initFilesystem(); if ($wp_filesystem->is_writable($file) ) { $wp_filesystem->put_contents($file, $content); } } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.28 | Генерация страницы: 0.01 |
proxy
|
phpinfo
|
Настройка