Что нового

Подскажите как вывести количество найденных новостей в custom (1 Viewer)

  • Автор темы stillmaster
  • Дата начала
stillmaster

stillmaster

Участник
Регистрация
18 Авг 2022
Сообщения
234
Реакции
105
Всем привет есть такая конструкция {custom xfields="гайд по {title}" template="cust9"} подскажите кто знает как вывести количество найденных новостей исходя из данной конструкции.
 
вроде как в глобальных тегах ничего такого нету.

{custom id="1,2,5-8" category="2,3,5-8" author="x" days="x" template="custom" available="global" navigation="no" from="0" limit="10" fixed="yes" order="date" sort="desc" cache="yes"}

вот что максимум что доступно
 
вроде как в глобальных тегах ничего такого нету.

{custom id="1,2,5-8" category="2,3,5-8" author="x" days="x" template="custom" available="global" navigation="no" from="0" limit="10" fixed="yes" order="date" sort="desc" cache="yes"}

вот что максимум что доступно
xfields тоже доступно не писал бы если бы не работало, новости выводит, а вот как вывести отдельно их количество не знаю
 
Тему можно закрывать нашел решение.
 
Поделись
 
В общем нужно создать файл xf_count.php
PHP:
<?PHP
defined("DATALIFEENGINE") || die("Не пытайся взломать");

$xfield = $db->safesql(strip_tags(stripslashes(trim($xfield))));
$value = $value ? $db->safesql(strip_tags(stripslashes(trim($value)))) : false;
if (!$value) {
    return;
}

$is_change = false;
if (!$config['allow_cache']) {
    $config['allow_cache'] = 1;
    $is_change = true;
}


$cache_count_xfield = dle_cache("news_count_xfield", $config['skin'] . $xfield . $value);
if ($cache_count_xfield) {
    echo $cache_count_xfield;
} else {
    $thisdate = date("Y-m-d H:i:s", time());
    if ($config['no_date'] AND !$config['news_future']) {
        $where_date = " AND date < '" . $thisdate . "'";
    } else {
        $where_date = '';
    }
    
    $xf_sql = "SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$xfield}|', -1), '||', 1) LIKE '%{$value}%'";

    $count = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$xf_sql} AND SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$xfield}|', -1), '||', 1) NOT LIKE '%|%' AND approve='1'" . $where_date);
    echo $count['count'];
    create_cache("news_count_xfield", $count['count'], $config['skin'] . $xfield . $value);
}
if ($is_change) {
    $config['allow_cache'] = false;   
}
В нужном месте подключить
{include file="engine/modules/xf_count.php?xfield=название_доп_поля&value=значение"}
 
В общем нужно создать файл xf_count.php
PHP:
<?PHP
defined("DATALIFEENGINE") || die("Не пытайся взломать");

$xfield = $db->safesql(strip_tags(stripslashes(trim($xfield))));
$value = $value ? $db->safesql(strip_tags(stripslashes(trim($value)))) : false;
if (!$value) {
    return;
}

$is_change = false;
if (!$config['allow_cache']) {
    $config['allow_cache'] = 1;
    $is_change = true;
}


$cache_count_xfield = dle_cache("news_count_xfield", $config['skin'] . $xfield . $value);
if ($cache_count_xfield) {
    echo $cache_count_xfield;
} else {
    $thisdate = date("Y-m-d H:i:s", time());
    if ($config['no_date'] AND !$config['news_future']) {
        $where_date = " AND date < '" . $thisdate . "'";
    } else {
        $where_date = '';
    }
   
    $xf_sql = "SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$xfield}|', -1), '||', 1) LIKE '%{$value}%'";

    $count = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$xf_sql} AND SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$xfield}|', -1), '||', 1) NOT LIKE '%|%' AND approve='1'" . $where_date);
    echo $count['count'];
    create_cache("news_count_xfield", $count['count'], $config['skin'] . $xfield . $value);
}
if ($is_change) {
    $config['allow_cache'] = false;  
}
В нужном месте подключить
{include file="engine/modules/xf_count.php?xfield=название_доп_поля&value=значение"}
Вам же нужно количество новостей в выборке custom, а это подсчет новостей по значению доп. поля, совсем разные вещи.)
 
Вам же нужно количество новостей в выборке custom, а это подсчет новостей по значению доп. поля, совсем разные вещи.)
Так у меня новости как раз и выводятся в custom в зависимости от значения в доп поле.
 

Пользователи, просматривающие данную тему

Верх