Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как правильно обьединить два модуля (вывод значения доп полей и кол-во публикаций с доп полем)?

Как правильно обьединить два модуля (вывод значения доп полей и кол-во публикаций с доп полем)?


     14.07.2020    dle, модули, хаки, вывести, кол-во    Общие вопросы по PHP, Хаки    1312

вопрос
Есть модуль который выводит количество публикаций в которых есть указанное доп поле:


И есть модуль который выводит значения определенного доп поля на любой странице:


Т.е, на странице всех новостей вот таким образом я вывожу значения доп поля:

<select name="rayon" multiple>
	{include file="engine/modules/znachenie.php?xfname=knigi"}
</select>

И получаю значение из доп поля: Книга 1; Книга 2 и тд.

А второй модуль вот таким образом можно вывести цифру(кол-во новостей в которых есть определенное значение)

{include file="engine/modules/xfnewsnum.php?xfield=knigi&value=Книга 1"}

И получаю вот такое: Книга 1 (2) Т.е 2 публикации со значением Книга 1.
Как обьеденить эти модули? Чтобы первый модуль выводил значение доп поля с количеством новостей в значениях?

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


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

web102
Юзер

web102 - 14 июля 2020 08:55 -

Попробуйте так:
<?php
if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); }

$xflist = dle_cache( $xfname, $config['skin'] );
if(!$xflist) {
	$sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post WHERE approve=1" );
	while ( $rows = $db->get_row( $sql_result ) ) {
		$xfields[] = $rows;
	}
	$stack = array();
	foreach($xfields as $value){
		if($value[xfields]){
			$row = xfieldsdataload($value[xfields]);
			if($row[$xfname]){
				$rowdata = explode( "~", $row[$xfname]);
				foreach($rowdata as $value){
					if($value){
						$value = trim($value);
						array_unshift($stack, $value);
					}
				}
			}
		}
	}
	sort ($stack);	
	$stack = array_count_values( $stack );
	foreach( $stack as $value => $count ){
		$xflist .= "<option value=" . $value . ">" . $value ." (" .$count . ")</option>";
	}
	create_cache( $xfname, $xflist, $config['skin'] );
}
echo $xflist;

Invokerlover
Юзер

Invokerlover - 14 июля 2020 14:26 -

Благодарю! всё работает!

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

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

наверх