вопрос
Доброго дня!
Есть модуль по выводу значений из доп полей, который сохраняет эти значения в кэш.
Но у меня идёт сортировка еще и по id-категории новости, а кэш сохраняется один, т.е. какой первый файл был загружен, тот кэш и сохранился.
Как заставить их сохранять для себя разный кэш?
Первый файл модуля
Второй файл модуля
Разница у них только в строчке
Есть модуль по выводу значений из доп полей, который сохраняет эти значения в кэш.
Но у меня идёт сортировка еще и по id-категории новости, а кэш сохраняется один, т.е. какой первый файл был загружен, тот кэш и сохранился.
Как заставить их сохранять для себя разный кэш?
Первый файл модуля
<?php
include ('engine/api/api.class.php'); // подключаем api
$table = 'dle_post'; // название таблицы
$fields = 'xfields'; // нужные поля, * - все поля
$where = 'approve="1" AND category IN (10)'; // условия выборки
$multirow = 1; // забирать ли один ряд или несколько
$start = 0; // начальное значение выборки
$limit = 0; // количество записей для выборки, 0 - выбрать все
$xfield = 'info'; ///ИМЯ ДОП ПОЛЯ ДЛЯ ВЫВОДА
$time = '0'; //время жизни кеша
$xfields = $dle_api->load_from_cache ($fields, $time, $xfields); //берем наш кеш, если есть конечно ))
if( !$xfields ) { //проверяем взяли ли мы кеш и если не взяли, то делаем запрос
$xfields = $dle_api->load_table ($table,$fields,$where,$multirow,$start,$limit); //делаем запрос к бд
$dle_api->save_to_cache ( xfields, $xfields); //сохраняем в кеш
}
$stack = array(); //создаем пустой массив
foreach($xfields as $value){ // перебор значений массива
if($value[xfields]){ //проверяем есть ли элемент в массиве
$row = xfieldsdataload($value[xfields]); //получаем нужное нам доп поле
if($row[$xfield]){ //проверяем есть ли значение
$rowdata = explode( ",", $row[$xfield]); //разбиваем наше значение на массив
foreach($rowdata as $value){ //перебираем значения массива
if($value){ //проверяем есть ли значение
$value = trim($value); //убираем пробелы
array_push($stack, $value); //добавляем в конец массива полученное значение
}
}
}
}
}
//$stack = array_unique($stack); //убираем повторы
asort($stack);
//foreach($stack as $value){ //выводим окончательный вариант
//rsort($stack);
$stack = array_count_values($stack); //считаем повторы и избавляемся от повторных значений
foreach($stack as $key => $count){ //выводим окончательный вариант
//$keyurl = translit($key);
echo "<option value=\"$key\">$key</option>"; //открываем ссылку
}
?>
Второй файл модуля
<?php
include ('engine/api/api.class.php'); // подключаем api
$table = 'dle_post'; // название таблицы
$fields = 'xfields'; // нужные поля, * - все поля
$where = 'approve="1" AND category IN (11)'; // условия выборки
$multirow = 1; // забирать ли один ряд или несколько
$start = 0; // начальное значение выборки
$limit = 0; // количество записей для выборки, 0 - выбрать все
$xfield = 'info'; ///ИМЯ ДОП ПОЛЯ ДЛЯ ВЫВОДА
$time = '0'; //время жизни кеша
$xfields = $dle_api->load_from_cache ($fields, $time, $xfields); //берем наш кеш, если есть конечно ))
if( !$xfields ) { //проверяем взяли ли мы кеш и если не взяли, то делаем запрос
$xfields = $dle_api->load_table ($table,$fields,$where,$multirow,$start,$limit); //делаем запрос к бд
$dle_api->save_to_cache ( xfields, $xfields); //сохраняем в кеш
}
$stack = array(); //создаем пустой массив
foreach($xfields as $value){ // перебор значений массива
if($value[xfields]){ //проверяем есть ли элемент в массиве
$row = xfieldsdataload($value[xfields]); //получаем нужное нам доп поле
if($row[$xfield]){ //проверяем есть ли значение
$rowdata = explode( ",", $row[$xfield]); //разбиваем наше значение на массив
foreach($rowdata as $value){ //перебираем значения массива
if($value){ //проверяем есть ли значение
$value = trim($value); //убираем пробелы
array_push($stack, $value); //добавляем в конец массива полученное значение
}
}
}
}
}
//$stack = array_unique($stack); //убираем повторы
asort($stack);
//foreach($stack as $value){ //выводим окончательный вариант
//rsort($stack);
$stack = array_count_values($stack); //считаем повторы и избавляемся от повторных значений
foreach($stack as $key => $count){ //выводим окончательный вариант
//$keyurl = translit($key);
echo "<option value=\"$key\">$key</option>"; //открываем ссылку
}
?>
Разница у них только в строчке
$where = 'approve="1" AND category IN (11)'; // условия выборки