Технический сбой

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

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


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

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

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


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

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

ПафНутиЙ - -

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

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

BR0kEN
Эксперт

BR0kEN - -

Подключаете 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 - -

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 - -

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

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

Sander
PHP-developer

Sander - -

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

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

Telegram: @sandev
Skype: Sander8804

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

ПафНутиЙ - -

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

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

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

наверх