Gistrec

UMI CMS Cache Test

Aug 8th, 2018
244
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.15 KB | None | 0 0
  1. <?php
  2.  
  3.     define("CURRENT_WORKING_DIR", str_replace("\\", "/", $dirname = dirname(__FILE__)));
  4.  
  5.     $pages = array(
  6.         '/',
  7.         '/shop/okrasochnoe_oborudovanie/',
  8.         '/shop/pnevmaticheskie_zabivnye_instrumenty/gvozdezabivnye_instrumenty/',
  9.         '/shop/skoba_shpilka_gvozd_katalog_krepezha/ocinkovannie_finishnye_gvozdi/',
  10.         '/shop/okrasochnoe_oborudovanie/kraskopulty/',
  11.         '/shop/skoba_shpilka_gvozd_katalog_krepezha/ocinkovannie_krovelnye_gvozdi/',
  12.         '/shop/skoba_shpilka_gvozd_katalog_krepezha/skoba_obivochnaya/',
  13.         '/shop/pnevmaticheskie_zabivnye_instrumenty/gvozdezabivnye_instrumenty/dlya_gvozdej_metallkonnektor/',
  14.         '/shop/pnevmaticheskie_zabivnye_instrumenty/shpil_kozabivnye_pistolety/',
  15.         '/shop/okrasochnoe_oborudovanie/baki_kraskonagnetatel_nye/',
  16.         '/shop/kompressory_komplektuyuwie_dlya_kompressorov/',
  17.         '/shop/remeza/',
  18.         '/shop/pnevmaticheskie_zabivnye_instrumenty/neylery/'
  19.     );
  20.  
  21.     if ($_SERVER['REQUEST_URI'] == '/update_cache') {
  22.         require CURRENT_WORKING_DIR . '/CacheManager/update.php';
  23.         die("ok");
  24.     }
  25.  
  26.     // Если нет GET параметра no-cache и страницу можно кешировать
  27.     if (empty($_GET['no_cache']) && in_array($_SERVER['REQUEST_URI'], $pages)) {
  28.         require CURRENT_WORKING_DIR . '/CacheManager/CacheManager.php';
  29.  
  30.         // Получаем UID страницы
  31.         $key = md5($_SERVER['REQUEST_URI']);
  32.         // Если страница уже закешированна
  33.         if ($page = CacheManager::getInstance()->get($key)) {
  34.             require CURRENT_WORKING_DIR . '/libs/config.php';
  35.  
  36.             // Выдаем кеш страницы, если нет товаров в корзине
  37.             $module = cmsController::getInstance()->getModule("emarket");
  38.             $count = count($module->cart()["items"]["item"]);
  39.             if ($count == 0) {
  40.                 die($page);
  41.             }
  42.         // Если страница не закеширована, то получаем кеш страницы
  43.         }else {
  44.             $page = file_get_contents('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '?no_cache=true');
  45.             CacheManager::getInstance()->set($key, $page, 60 * 60 * 12);
  46.             die($page);
  47.         }
  48.     }
  49.  
  50.     require CURRENT_WORKING_DIR . '/libs/root-src/index.php';
  51. ?>
Advertisement
Comments
  • User was banned
Add Comment
Please, Sign In to add comment