Всем привет ребят выкладываю свой хак, как выводить новости по ID, в порядке проставленного, установка очень простая. Установка хака 1 Шаг - Редактирование файла functions.php Файл лежит в директории /engine/modules/functions.php Ищем данный код if( preg_match( "#aviable=['\"](.+?)['\"]#i", $param_str, $match ) ) { И выше вставляем Код: # Хак вывод в порядке по ID if( preg_match( "#okloc=['\"](.+?)['\"]#i", $param_str, $match ) ) { if( $match[1] == 'yes' ) { if( preg_match( "#od=['\"](.+?)['\"]#i", $param_str, $match ) ) { $temp_array = array(); $where_id = array(); $match[1] = explode (',', trim($match[1])); $set_numbe_im = implode(',', $match[1]); $sort_oklock = 'FIELD (id, '.$set_numbe_im.'), '; $where[] = 'id IN ('.$set_numbe_im.') '; } } } 2 Шаг - Добавление #2 (в том же файле functions.php) Ищем данный код $fixed . $news_sort И заменяем на этот код Код: .$sort_oklock.$fixed.$news_sort Вы успешно установили данный хак! Пример Вы хотите вывести новости к примеру в слайдер, в том порядке который необходим вам. Первые шаги сделать конструкцию custom, пример приведу свой {custom od="1,56,498,789,1021" okloc="yes" template="topnews" limit="14"} - В данном примере у нас появились новые методы, это oid и okloc, первый метод выводит новости в том порядке который вы проставили, второй метод включает данную функцию. Не путать с метод id - это совсем разные методы, и работают они совсем по разному! Порядок подключения прост: {custom od="1,56,498,789,1021" okloc="yes" template="topnews" limit="14"} Что получиться Мы взяли новости с такими id - 1,56,498,789,1021, всего 5 шт., как вы вставите в вашу конструкцию id, так и будут выведены в вашем блоке. Выражать спасибки сюда: RUR - R712571423881 $ - Z155930089248
Спасибо, но это не по порядку, задай к примеру Id 1,1021,789,56,498 выведет ли он в таком порядке? нет, ты создал однотипный тег что есть в кустоме, зачем?
дубль кода Потому что oid нельзя называть, ибо есть регулярка PHP: if( preg_match( "#id=['\"](.+?)['\"]#i", $param_str, $match ) ) { Можно так сделать: В /engine/modules/functions.php найти PHP: $where_id[] = "id IN ('" . implode("','", $temp_array) . "')"; Выше вставить: PHP: $id_main = $temp_array; Далее найти: PHP: if ( $allowed_sort[$match[1]] ) $news_sort = $allowed_sort[$match[1]]; Ниже вставить: PHP: elseif ($match[1] == "id" ) { $fixed = ""; $news_msort = ""; $news_sort = "FIND_IN_SET(p.id,'".implode(',',$id_main)."')"; } В custom использовать id и order="id". Пример: PHP: {custom id="3,55,124,2,1" order="id" template="shortstory" limit="3"}
Геймер некепяшуй поменял метод с oid на od, теперь все норм, кароче ребят оба способа работают, какой проще такой и устанавливайте!