Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как сделать часовой хеширование для файла модуля?

Как сделать часовой хеширование для файла модуля?


     21.11.2012    Общие вопросы по PHP, Модули    3028

вопрос
Имеется файл модуля, при каждом просмотре любого материала сайта он делает запрос на БД. Мне нужно сделать часовой хеширование модуля либо сделать похожим "Кешировать счетчик просмотров новостей (как в стандартном настройке скрипта)" для каждого материала.
Заранее спасибо за помощь!

Ответа пока нет


6 комментариев

ПафНутиЙ
Админ

ПафНутиЙ - 21 ноября 2012 22:29 -

посмотрите как реализовано кеширование в любом стороннем модуле, сделайте так же.

Каков вопрос - таков и ответ. Просто помните об этом.

BR0kEN
Эксперт

BR0kEN - 22 ноября 2012 03:02 -

Подключаете functions.php:
require_once ENGINE_DIR . '/modules/functions.php';


и по такой схеме создаете кэширование:
$tpl->result['модуль'] = dle_cache( "имя файла кэша", $config['skin'], true );

if( $tpl->result['модуль'] === false ) {

тело кэша (код модуля)

    create_cache( "имя файла кэша", $tpl->result['модуль'], $config['skin'], true );

}


В index.php добавляете:
$tpl->set ( '{тег модуля}', $tpl->result['модуль'] );


Данная конструкция будет работать для модулей с шаблоном.

Nurdaulet
Юзер

Nurdaulet - 23 ноября 2012 21:50 -

1. А, куда подключить functions.php?

2. Проверьте пожалуйста этот код если не составит труда, я его раньше сделал правильно ли это я не знаю.
<?php

$id = $xfieldsdata['id'];
$newsid = $row['id'];

$cache = dle_cache($id,$config['skin']);
if(!$cache){

тело кэша (код модуля)

$tpl->set( '{id-posts}', $m_idposts );
$tpl->set( '{id-number}', $m_idnumber );

create_cache($newsid,$cache,$config['skin'], true);
}
echo $cache;
?>

nowheremany
Эксперт

nowheremany - 22 ноября 2012 11:24 -

Чтобы делать кэш на час, нужно записывать кудато время в которое кэш удалиться и делать это надо самому, т.к. в дле это не поддерживается.

Благодарность принимаю тут Связь

Sander
PHP-developer

Sander - 22 ноября 2012 14:36 -

Для этого можно приспособить set_vars(), get_vars()...
Как вариант еще filemtime()...

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

ПафНутиЙ
Админ

ПафНутиЙ - 22 ноября 2012 17:27 -

Я через filetime() сделал в blockpro.

Каков вопрос - таков и ответ. Просто помните об этом.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх