вопрос
Здравствуйте.
Нашел на просторах сети хак под названием PrettyDate ЧПД (человеко-понятные даты).
Состоит из 2х файлов:
prettydate.php
и prettydate-fun.php
Подключается в шаблоне строкой:
На выходе:
Насколько я понял, этот хак никак не кэшируется...
Подскажите, несет ли он какую-нибудь серьезную нагрузку и стоит ли его вообще использовать, т.к. он используется в шортстори, а новостей на сайте много?
DLE 13.2
Нашел на просторах сети хак под названием PrettyDate ЧПД (человеко-понятные даты).
Состоит из 2х файлов:
prettydate.php
<?php
if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); }
include_once ( ENGINE_DIR.'/modules/prettydate-fun.php' );
echo relativeTime($thetime) . " назад";
?>
и prettydate-fun.php
<?php
if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); }
function plural($n, $plurals) {
$plural =
($n % 10 == 1 && $n % 100 != 11 ? 0 :
($n % 10 >= 2 && $n % 10 <= 4 &&
($n % 100 < 10 or $n % 100 >= 20) ? 1 : 2));
return $plurals[$plural];
}
function relativeTime($dt, $precision = 2) {
$times = array(
365*24*60*60 => array("год", "года", "лет"),
30*24*60*60 => array("месяц", "месяца", "месяцев"),
7*24*60*60 => array("неделю", "недели", "недель"),
24*60*60 => array("день", "дня", "дней"),
60*60 => array("час", "часа", "часов"),
60 => array("минуту", "минуты", "минут"),
);
$diff = time() - $dt;
if($diff < 60) $output='меньше минуты';
else {
$output = array();
$exit = 0;
foreach($times as $period => $name) {
if($exit >= $precision || ($exit > 0 && $period < 60)) break;
$result = floor($diff / $period);
if ($result > 0) {
if($result == 1) $output[] = plural($result, $name);
else $output[] = $result . ' ' . plural($result, $name);
$diff -= $result * $period;
$exit++;
} else if ($exit > 0) $exit++;
}
if ($precision < 3) $sep = " и "; else $sep = ", ";
$output = implode($sep, $output);
}
return $output;
}
?>
Подключается в шаблоне строкой:
{include file="engine/modules/prettydate.php?thetime={date=U}"}
На выходе:
новость опубликована: 9 минут назад... и т.д.
Насколько я понял, этот хак никак не кэшируется...
Подскажите, несет ли он какую-нибудь серьезную нагрузку и стоит ли его вообще использовать, т.к. он используется в шортстори, а новостей на сайте много?
DLE 13.2
Использовать можно. Нагрузкой можно пренебречь. Вы же не считаете что 0.0001 сек - это нагрузка?
Работает на любой версии DLE.
Подключать только нужно с правильно заданным форматом даты.
Работает на любой версии DLE.
Подключать только нужно с правильно заданным форматом даты.
{include file="engine/modules/prettydate.php?thetime={date=U}"}