Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по вёрстке » Как вставить include file внутри custom?

Как вставить include file внутри custom?


     06.06.2024    include, custom    Общие вопросы по вёрстке, Общие вопросы по PHP    268

вопрос
Есть код который ищет все id новостей в указанном дополе с указанными параметрами.

<?php
/**
* Получение ID новостей по дополнительным полям
*
* @link https://lazydev.pro/
* @author LazyDev <email@lazydev.pro>
**/

defined('DATALIFEENGINE') || die('go your way stalker');

$action = strip_tags(stripslashes(trim($action)));

$xfield = $db->safesql(strip_tags(stripslashes(trim($xfield))));
$value = $value ? $db->safesql(strip_tags(stripslashes(trim($value)))) : false;

if ($action == 'news') {
    if (!$value) {
        return;
    }

    $xfArray = xfieldsload();
    $ourXf = array_filter($xfArray, function($item) use ($xfield) {
        return $item[0] == $xfield && $item[6] == 1;
    });
    
    $news_ids = '';
    
    if ($ourXf) {
    $result = $db->super_query("SELECT GROUP_CONCAT(" . PREFIX . "_post.id SEPARATOR ',') as news_ids FROM " . PREFIX . "_xfsearch LEFT JOIN " . PREFIX . "_post ON(" . PREFIX . "_xfsearch.news_id=" . PREFIX . "_post.id) WHERE tagname='{$xfield}' AND tagvalue='{$value}' AND approve='1'" . $where_date);
    $news_ids = $result['news_ids']; // Получаем список ID новостей через запятую
} else {
    $result = $db->super_query("SELECT GROUP_CONCAT(id SEPARATOR ',') as news_ids FROM " . PREFIX . "_post WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$xfield}|', -1), '||', 1) LIKE '%{$value}%' AND SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$xfield}|', -1), '||', 1) <> '' AND approve='1'" . $where_date);
    $news_ids = $result['news_ids']; // Получаем список ID новостей через запятую
}

// Выводим список ID новостей через запятую
echo $news_ids;

// Кэшируем данные
dle_cache('news_count_xfield', $config['skin'] . $xfield . $value, $news_ids);
}
 elseif ($action == 'galery' || $action == 'text') {
	global $row;
  	if ($dle_module == 'showfull') {
		if (!is_array($row) && intval($_GET['newsid']) > 0) {
			$id = intval($_GET['newsid']);
			$xf = $db->super_query("SELECT xfields FROM " . PREFIX . "_post WHERE id='{$id}'");
			$xf = $xf['xfields'];
		} else {
			$xf = $row['xfields'];
			$xf = xfieldsdataload($xf);
			$xf = stripslashes($xf[$xfield]);
		}
    } else {
		$xf = stripslashes($xf);
	}
	
	$count = 0;
	
	if ($xf != '') {
		if ($action == 'galery') {
			$count = explode(',', $xf);
			$count = count($count);
		} elseif ($action == 'text') {
			$count = dle_strlen($xf, $config['charset']);
		}
	}
	
	echo $count;
}


Но при вставке в fullstory.tpl

{custom id="{include file='engine/modules/countXfield.php?action=news&xfield=cikl&value=[xfvalue_cikl]'}" template="shortstory3" order="title" sort="asc" limit="200" cache="yes"}

выдает просто

" template="shortstory3" order="title" sort="asc" limit="200" cache="yes"}

Как вставить include file внутри custom? Подскажите хотя бы в какой стороне искать ПОЖАЛУЙСТА!

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


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

LazyDev
PHP-developer

LazyDev - 7 июня 2024 08:36 -

А использовать {custom xfields="cikl|"} что мешает?

Мой блог: LazyDev.pro

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

chelovek42
Юзер

chelovek42 - 7 июня 2024 11:22 -

спасибо за ответ. база большая, {custom xfields="cikl|"} дает большую нагрузку и выполняется долго, около 3 с.

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

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

наверх