Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы » Как добавить проверку есть ли новости в custom выборке и вывести надпись?

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


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

вопрос
Здравствуйте, подскажите пожалуйста как добавить проверку есть ли новости в 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 - -

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

manek
Юзер

manek - -

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

ТeraМoune
Юзер

ТeraМoune - -

У 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 - -

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

Mau
Юзер

Mau - -

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

TeraMoune
Эксперт

TeraMoune - -

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

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

Mau
Юзер

Mau - -

У меня в полной новости выводится 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 - -

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

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

Mau
Юзер

Mau - -

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

TeraMoune
Эксперт

TeraMoune - -

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


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

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

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

Mau
Юзер

Mau - -

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

TeraMoune
Эксперт

TeraMoune - -

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

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

Mau
Юзер

Mau - -

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

LazyDev
PHP-developer

LazyDev - -


Мой блог: LazyDev.pro

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

Mau
Юзер

Mau - -

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

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

наверх