Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как сделать оберточный тег [moitag]{moitag}[/moitag] для хака?

Как сделать оберточный тег [moitag]{moitag}[/moitag] для хака?


     01.01.2019    dle, тег, вывод, новости    Общие вопросы по PHP, Хаки, Ламерские вопросы    1059

вопрос
В dle есть такой вот тег который формирует ссылку на непрочитанные новости с последнего посещения: {newposts-link}
Нашел я во такие строки тут на сайте, которые выводят кол-во этих самых непрочитанных новостей: {last-count}
Но хорошо бы сделать ещё вот такой вот 'оберточный' тег: [last-count] {last-count} [/last-count]
Ну суть проста, чтобы он выводил цифру только тогда когда эти самые непрочитанные новости есть. А если нет то не выводил.

Сам хак:

$last_count = dle_cache("lastcount_" . $member_id['user_id']);
if( $is_logged AND $last_count === false ) {
    $thistime = date( "Y-m-d H:i:s", $_TIME );
    if( isset ( $_SESSION['member_lasttime'] ) ) {
        $lasttime = date( "Y-m-d H:i:s", $_SESSION['member_lasttime'] );
    } else {
        $lasttime = date( "Y-m-d H:i:s", (time () + ($config['date_adjust'] * 60) - (3600 * 4)) );
    }
    $sql_count = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE approve=1 AND date between '$lasttime' AND '$thistime'" );
    $last_count = $sql_count['count'];
    create_cache( "lastcount_" . $member_id['user_id'], $last_count);
}
$tpl->set( '{last-count}', $last_count );

Ответил: PunPun


if ($is_logged) {
    $last_count = dle_cache('lastcount_' . $member_id['user_id']);
    if ($last_count === false) {
        $thistime = date('Y-m-d H:i:s', $_TIME);
        $lasttime = isset($_SESSION['member_lasttime']) ? date('Y-m-d H:i:s', $_SESSION['member_lasttime']) : date('Y-m-d H:i:s', (time() + ($config['date_adjust'] * 60) - (3600 * 4)));
        
        $last_count = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE approve AND date between '{$lasttime}' AND '{$thistime}'")['count'];
        create_cache('lastcount_' . $member_id['user_id'], $last_count);
    }
    $tpl->set('{last-count}', $last_count);
    $tpl->set_block("'\\[lastcount\\](.*?)\\[/lastcount\\]'si", $last_count ? '\\1' : '');
} else {
    $tpl->set_block("'\\[lastcount\\](.*?)\\[/lastcount\\]'si", '');
}

4 комментария

pavel31
Юзер

pavel31 - 3 января 2019 12:03 -


$tpl->set('[moitag]', '');
$tpl->set('[/moitag]', '');

pahuchiy
Юзер

pahuchiy - 4 января 2019 08:19 -

pavel31,
Ии?

pahuchiy
Юзер

pahuchiy - 4 января 2019 19:36 -

PUNPUN, Не работает

LazyDev
PHP-developer

LazyDev - 4 января 2019 19:53 -

pahuchiy, обновил ответ

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

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

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

наверх