XFSearchAdmin Поиск новостей по значению доп-поля в админ-панели DLE Данный хак реализовывает возможность поиска по значению дополнительного поля в админ-панели сайта DLE. Хак производит поиск фразы в значении доп-поля. К примеру, если вы задали в значении слово «moscow», а значение доп-поля в новости будет «the moscow calling», то это будет считаться совпадением. Если выбрать доп-поле, но значение оставить пустым, то будет идти поиск новостей, где данное доп-поле не заполнено. Спойлер: Установка В файле engine/inc/editnews.php Найти: PHP: if( count( $where ) ) { Выше вставить: PHP: $xf_search_name = $db->safesql( trim( strip_tags( stripslashes( $_REQUEST['xf_search_name'] ) ) ) );$xf_search_value = $db->safesql( trim( strip_tags( stripslashes( $_REQUEST['xf_search_value'] ) ) ) );$xf_search_list = "";foreach ( xfieldsload() as $xfield ) $xf_search_list .= '<option value="' . $xfield[0] . '" ' . ( $_REQUEST['xf_search_name'] == $xfield[0] ? "selected" : "" ) . '>' . $xfield[1] . '</option>';if ( $xf_search_name ) { if ( $xf_search_value ) $where[] = "IF( POSITION('" . addslashes( $xf_search_name ) . "|' IN `xfields`) > 0, SUBSTRING_INDEX( SUBSTRING_INDEX( xfields, '" . addslashes( $xf_search_name ) . "|', -1 ), '||', 1 ), 0 ) LIKE '%" . addslashes( $xf_search_value ) . "%'"; else $where[] = "NOT xfields LIKE '%" . addslashes( $xf_search_name ) . "|%'";} Найти: PHP: <button onclick="search_submit(0); return(false);" class="btn Выше вставить: PHP: <div class="pb-10">Поиск по значению дополнительного поля:</div><div class="form-group"> <div class="row"> <div class="col-sm-6"> <label>Дополнительное поле</label> <select class="uniform" data-width="100%" name="xf_search_name" id="xf_search_name"> <option value="0">--- не выбрано ---</option> {$xf_search_list} </select> </div> <div class="col-sm-6"> <label>Поиск по значению</label> <input name="xf_search_value" value="{$xf_search_value}" type="text" class="form-control"> </div> </div></div> P.S: Для DLE 13 прикрепил файл плагина для установки в разделе «Управление плагинами»
Хороший вопрос)) Оно выполняет проверку на наличие доп-поля в xfields. Ты спросишь: «Нафига!?». А я отвечу: Если мы пытаемся получить значение доп-поля, которого нет в xfields, то возвращается первое доп-поле и его значение. Особо не вникал, может можно сделать лучше, но «зачем трогать то, что и так работает» _)
Есть какая то возможность поиска по доп полю "Да или Нет" ? К примеру выводить все новости когда включено доп поле.