Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Как сделать часовой хеширование для файла модуля?

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


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

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

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


Комментарии пользователей (6)

ПафНутиЙ
1065

3396 | 2434

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

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

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

BR0kEN
163

235 | 275

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

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
193

1660 | 1292

nowheremany - 22 ноября 2012 11:24 - Эксперт

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

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

Sander
1126

1638 | 1204

Sander - 22 ноября 2012 14:36 - Эксперт

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

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

ICQ: 404-037-556
Skype: Sander8804

ПафНутиЙ
1065

3396 | 2434

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

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

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

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

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