Редактор темы

Реклама
Реклама

Хаки для datalife engine

  • Автор темы Автор темы PunPun
  • Дата начала Дата начала
А что там в 15 версии сделали, что почти все модули перестали работать? У меня ещё руки до 15 не дошли посмотреть.
Не могу сказать что изменили - но данный хак - не работает.

Нашел решение.

Создать файл engine/mods/categories.php
<?php
if( !defined('DATALIFEENGINE')) {
die( "Hacking attempt!" );
}
global $row;
$list = explode(',', $row['category']);
$list = array_slice($list, 0, 3);
$echo = array();
foreach ($list as $element ) {
$echo[] = "<a href=\"" . $config['http_home_url'] . get_url( $element ) . "/\">{$cat_info[$element]['name']}</a>";
}
echo join(', ', $echo);

В шаблоне подключать:

{include file="engine/mods/categories.php"}


$list = array_slice($list, 0, 3);
В этой строке указываем количество последовательного вывода категорий (количество)
 
Тема с хаками для DataLife Engine 10.2 и выше.
Вы можете написать мне в лс с запросом на создание хака и он появится здесь. (Не гарантирую что он будет создан, он может быть мне не интересен).

Первый хак сделан для вывода количества новостей с категории за сегодня и за общее время.
Открываем /engine/modules/main.php находим:
PHP:
$tpl->compile ( 'main' );
Выше вставляем:
PHP:
$tpl->copy_template = preg_replace_callback( "#{cat_all\:(.+?)}#is", function($data) use ($db, $config)
{
    return catCountFunction($data, $config, $db);
}, $tpl->copy_template );
$tpl->copy_template = preg_replace_callback( "#{cat_today\:(.+?)}#is", function($data) use ($db, $config)
{
    return catCountFunction($data, $config, $db, true);
}, $tpl->copy_template );
Открываем /engine/modules/functions.php находим:
PHP:
function get_url($id) {
Выше вставляем:
PHP:
function catCountFunction($cat_id, $config, $db, $curdate = false)
{
    $cat_ids = array();
    if(substr_count($cat_id[1], ","))
        $cat_ids = explode(",", $db->safesql(trim(strip_tags(stripslashes($cat_id[1])))));
    else
        $cat_ids[] = is_numeric($cat_id[1]) ? intval($cat_id[1]) : false;
    if(!count($cat_ids)) return;

    $cache_cat_news = false;
    $cache_cat_news = dle_cache("news_acn" . intval($curdate), $config['skin'] . implode($cat_ids), false);
 
    if ($config['allow_multi_category'])
        $cat_query = "category regexp '[[:<:]](" . implode ( '|', $cat_ids ) . ")[[:>:]]'";
    else
        $cat_query = "category IN ('" . implode ( "','", $cat_ids ) . "')";
    if (!$cache_cat_news)
    {
        if($curdate == false)
            $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$cat_query}");
        else
            $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$cat_query} AND date LIKE '".date("Y-m-d")."%'");
        $newscount = ($row['count'] > 0) ? intval($row['count']) : false;
        if($newscount)
            $cache_cat_news = $newscount;
        create_cache("news_acn" . intval($curdate), $cache_cat_news, $config['skin'] . implode($cat_ids), false);
    }

    return ($cache_cat_news > 0 ? (($curdate == true) ? "+" : "") . $cache_cat_news : "");
}
Использование:
В нужном месте доступны теги:
{cat_all:1} или {cat_all:1,2,3,4} - выведет количество новостей за все время с этих категорий.
{cat_today:1} или {cat_today:1,2,3,4} - выведет количество новостей за сегодня с этих категорий.
Под dle 15.2 сможете подправить? пробовал по инструкции тупо вывод сам тег а не его значение
 
Автор темы
PunPun честно сказать я охерел ) как привидение увидел😀
 
О, какие люди! Адаптируй List под актуальное DLE, когда будет время. 🙄
 

Похожие темы Последние темы Популярные темы

Назад
Сверху