Помощь Как добавить в модуль "Кэширование"

Тема в разделе "DLE", создана пользователем Цербер, 23 июн 2009.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. Цербер

    Цербер Читатель

    Заблокирован
    Регистр.:
    16 май 2008
    Сообщения:
    132
    Симпатии:
    23
    Во общим есть несколько модулей которым нужно добавить Кэширование.
    На примере покажите как это сделать.
     
    iZLoY нравится это.
  2. Martinez

    Martinez Создатель

    Регистр.:
    6 июн 2008
    Сообщения:
    15
    Симпатии:
    4
    Открываем любой модуль где есть кеширование и смотрим. Все элементарно. Пример на топньюс

    Заталкиваем в переменную то имеется ли файлик с кешированием

    Код:
    $topnews = dle_cache("topnews", $config['skin']);
    
    Если файла не существует создаем. Вот и все

    Код:
    if (!$topnews) {
    код блока
    create_cache ("topnews", $topnews, $config['skin']);
    }
     
    iZLoY и acelotuse нравится это.
  3. Цербер

    Цербер Читатель

    Заблокирован
    Регистр.:
    16 май 2008
    Сообщения:
    132
    Симпатии:
    23
    Заместь "$topnews" вести данные модуля я все верно понял?
     
  4. Dark Angell

    Dark Angell Читатель

    Заблокирован
    Регистр.:
    29 фев 2008
    Сообщения:
    1.036
    Симпатии:
    690
    ты правильно понял,для модуля куда хочеш его подключить менчяеш переменную
    на ту что хочеш подключить
     
    iZLoY нравится это.
  5. Ernest

    Ernest

    Регистр.:
    26 сен 2006
    Сообщения:
    239
    Симпатии:
    58
    А можете подробнее разжевать, вот код простого парсера погоды который у меня стоит:
    PHP:
    <?php
    if(!defined('DATALIFEENGINE'))
    {
      die(
    "Hacking attempt!");
    }
    $meteo dle_cache("meteo"$config['skin']); - добавляю эту строку
        $open 
    = @file_get_contents("http://pogoda.mail.ru/?city=1991&extended=1/""r");
        
    $news = ('#<td><table border=0 cellpadding=0 cellspacing=0 class="t70">(.*?)</tr></table></td>#is');
        
    preg_match_all($news,$open,$out);
        for(
    $i 0$i count($out[1]); $i++)
        {
        
    $meteo "".$out[1][$i]."";
    create_cache ("meteo"$meteo$config['skin']); - добавляю эту строку
        
    }
    ?>
    Так будет работать?
     
  6. Dark Angell

    Dark Angell Читатель

    Заблокирован
    Регистр.:
    29 фев 2008
    Сообщения:
    1.036
    Симпатии:
    690
    открываеш файл модуля в папке модулей:
    после:
    PHP:
    if(!defined('DATALIFEENGINE')) {
        die(
    "Hacking attempt!");
    }
    вставляеш:
    PHP:
    $modul_moimod dle_cache"modul_moimod "$config['skin'] );
    if( ! 
    $modul_moimod  ) {
    и в самый конец после:
    PHP:
    $tpl->clear();
    добаляеш строку которая будет чистить кеш:
    PHP:
    clear_cache'moimod' );
     
  7. Trial

    Trial

    Регистр.:
    27 май 2008
    Сообщения:
    175
    Симпатии:
    8
    а вот эта скобка где должна закрываться? сразу после создания кеша?
    А при каких событиях она чистит кеш (время там или что?)?
     
  8. Dark Angell

    Dark Angell Читатель

    Заблокирован
    Регистр.:
    29 фев 2008
    Сообщения:
    1.036
    Симпатии:
    690
    он кеширует при обращении и исполнение модуля,если нет запроса к нему,то и нет кеша как такового
     
  9. Trial

    Trial

    Регистр.:
    27 май 2008
    Сообщения:
    175
    Симпатии:
    8
    Вот небольшой листинг структуры мода, подскажите все так понял?
    PHP:
    // Проверка на взлом
    if(!defined('DATALIFEENGINE'))
    {
      die(
    "Hacking attempt!");
    }

    // Проверяем есть ли кеш
    $mod dle_cache("mod"$config['skin']);

    // если есть то весь кусок пропускаем...
    if (!$business) {
      
    // ...если нет то здесь идет код мода
      
      // Первым делом подключаем шаблон
      
    $tpl->load_template('mod.tpl');
      
      
    // Здесь кусок мода
      
    .................
      ....................
      ........ 
      
    // заносим его в переменнную которая будет использоватся в .tpl
      
    $tpl->set('{.....}', $......);
      
      
    // Завершаем сборку
      
    $tpl->compile('content');
      
    $tpl->clear();
      
      
    // и создаем кеш
      
    create_cache ("mod"$mod$config['skin']);
    }
    Все так или последовательность где-то не та (где)?

    и где здесь нужно использовать clear_cache ('mod')
     
  10. Dark Angell

    Dark Angell Читатель

    Заблокирован
    Регистр.:
    29 фев 2008
    Сообщения:
    1.036
    Симпатии:
    690
    второй вывод:
    PHP:
     create_cache ("business"$business$config['skin']);
    }
     
Статус темы:
Закрыта.