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

Как добавить проверку есть ли новости в custom выборке и вывести надпись?


     30.12.2019    Общие вопросы, Общие вопросы по PHP    1006

вопрос
Здравствуйте, подскажите пожалуйста как добавить проверку есть ли новости в custom выборке и вывести надпись?

Если новостей по {custom} нет, то чтобы выводилась надпись - Новостей в данной выборке нет, а если новости есть - то выводить новости как сейчас и есть...Пробовал в functions.php в функции custom_print добавлять if else, но не вышло. Помогите пожалуйста, заранее спасибо!

Ответил: manek


добавить после $sql_result = $db->query( $sql_select );


if( $sql_result->num_rows > 0 ) include (DLEPlugins::Check(ENGINE_DIR . '/modules/show.custom.php'));
else $tpl->result['content'] = 'нет новостей';

15 комментариев

ТeraМoune
Юзер

ТeraМoune - 30 декабря 2019 21:15 -

А где добавляли ?) И как ?
Там только одно место где нужно добавить там где подключение файла происходит и там нужно условие если в запросе что-то есть то подключить файл если нет то добавить в $tpl->result['content'] текст ошибки.

manek
Юзер

manek - 30 декабря 2019 21:20 -

в functions.php в функции custom_print вместо
 return $tpl->result['content'];
ставил так
if(count($sql_result) > 0){return $tpl->result['content'];} else {return "нет новостей";} 
но не работает, я так и не понял к чему зацепить проверку в этой функции, по этому прошу помощи.

ТeraМoune
Юзер

ТeraМoune - 30 декабря 2019 22:21 -

У query другой ответ не такой как у super_query

добавить после $sql_result = $db->query( $sql_select );

if( $sql_result->num_rows > 0 ) include (DLEPlugins::Check(ENGINE_DIR . '/modules/show.custom.php'));	
else $tpl->result['content'] = 'нет новостей';

manek
Юзер

manek - 30 декабря 2019 22:27 -

спасибо большое, то что нужно!

Mau
Юзер

Mau - 18 марта 2020 23:17 -

А шаблонный тег таким способом не получится подключить? Чтобы скрыть текст при пустом custom?

TeraMoune
Эксперт

TeraMoune - 19 марта 2020 04:27 -

Ничего не понял

Тестовый репозиторий установки плагинов: teramoune

Mau
Юзер

Mau - 19 марта 2020 14:38 -

У меня в полной новости выводится custom в оформленном блоке, и когда новостей по выборке нет, блок получается пустой и зря занимает место. Через :empty не скрывается, удалось только вывести надпись, что новостей нет, как вы писали выше.
Пробовал таким же методом добавить стили, но, тогда скрываются оба блока и с новостями и пустой.

if( !$sql_result->num_rows > 0 ) {
$tpl->result['content'] = <<<HTML
<style>
.custom-box {display:none;}
</style>
HTML;
}

Если бы можно было подключить теги, что-то типа [not-custom][/not-custom], чтобы обернуть пустой блок и скрыть, но к чему привязаться ума не приложу.

TeraMoune
Эксперт

TeraMoune - 19 марта 2020 14:54 -

Оно везде работать должен при любом вызове функции. У себя проверил в новости засунуть кастом всё прекрасно выводит.

Тестовый репозиторий установки плагинов: teramoune

Mau
Юзер

Mau - 19 марта 2020 15:16 -

Сообщение выводит, да, но я не про это) Если вместо сообщения подключить стиль, он почему-то применяется ко всем элементам, независимо пустой кастом или нет.
Вот и думаю, почему из коробки нет таких тегов, как с доп полями, напр.
[not-custom]<div class="custom-box">{custom ...}</div>[not-custom]?

TeraMoune
Эксперт

TeraMoune - 19 марта 2020 15:46 -

Mau,
Ну так оно и будет применять, класс то один и тот же вот и применяет ко всем объектам.


Вот и думаю, почему из коробки нет таких тегов, как с доп полями, напр.

А вы пойдите напишите пожелание разработчику на сайте. Глядишь появиться.

Тестовый репозиторий установки плагинов: teramoune

Mau
Юзер

Mau - 19 марта 2020 16:06 -

Но, тут же стоит условие if( !$sql_result->num_rows > 0 ) {
Сообщение 'нет новостей' оно ведь не выводит, если в кастом есть новости, а тут стиль применяет ко всем... (

TeraMoune
Эксперт

TeraMoune - 19 марта 2020 16:38 -

Я же ещё раз объясняю стиль если он появился на странице то будет применён ко всем элементам имеющим указанный класс. В это логика css классов. Каждый кастом должен иметь уникальный класс или айди, а не общий.

Тестовый репозиторий установки плагинов: teramoune

Mau
Юзер

Mau - 19 марта 2020 17:12 -

Ну, это понятно, что у пустого кастома должен быть свой уникальный класс, я то планировал, что стиль при таком условии вообще не будет вылазить на странице, а он прописывается при любом раскладе. Отдельный класс все равно не назначить, мы же не знаем заранее у какой новости будет пустой кастом внутри...
Ладненько. Благодарю, что уделили время.

LazyDev
PHP-developer

LazyDev - 19 марта 2020 18:24 -


Мой блог: LazyDev.pro

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

Mau
Юзер

Mau - 19 марта 2020 19:01 -

Большое спасибо, то что нужно!

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

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

наверх