Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Шаблоны (TPL) Как сделать условие показа кол-ва новых сообщений в шаблоне?

Как сделать условие показа кол-ва новых сообщений в шаблоне?


     30.12.2014    Шаблоны (TPL), jQuery, Общие вопросы по PHP    1291

вопрос
Здравствуйте.
Так выглядит окошко логина на моем сайте:
Как сделать условие показа кол-ва новых сообщений в шаблоне?

Хочу сделать, чтобы при нуле новых сообщений число ноль вообще не писалось, а выводился другой текст, например "Сообщений нет".
Вот строка в шаблоне:
<li>[url={pm-link}]Сообщения (<span>+{new-pm}</span>)[/url]</li>

Подскажите, пожалуйста, как можно более простым способом написать условие вида "если {new-pm}=0, то выводится "Сообщений нет", else (в другом случае) "Сообщения (+{new-pm})".
Вроде всё перерыл в интернете, но нормального ответа так и не нашел. Жалко, что стандартного dle-тега такого нет... Пробовал ставить хак такого рода, но он оказался не рабочим.(код так и выводился, хоть и сделал всё по инструкции) Скорее всего лучший вариант - это делать с помощью js. Но дело в том, что я в программировании не силён. Общее представление, конечно, имею, но, как сами понимаете, этого не достаточно. Может кто-нибудь хоть ссылочку на похожий скрипт подсказать может? Или показать как примерно будет выглядеть этот скрипт?
Заранее спасибо.

Ответил: FastFud


Открыть engine/init.php, найти и удалить/закомментировать строку
$tpl->set( '{new-pm}', $member_id['pm_unread'] );
ниже поставить
if( $member_id['pm_unread'] ) {
    $tpl->set( '[new-pm]', "" );
    $tpl->set( '[/new-pm]', "" );
    $tpl->set( '{new-pm}', $member_id['pm_unread'] );
    $tpl->set_block( "'\\[not-new-pm\\](.*?)\\[/not-new-pm\\]'si", "" );    
} else {
    $tpl->set_block( "'\\[new-pm\\](.*?)\\[/new-pm\\]'si", "" );
    $tpl->set( '{new-pm}', "" );
    $tpl->set( '[not-new-pm]', "" );
    $tpl->set( '[/not-new-pm]', "" );
}
в login.tpl использовать теги
[new-pm]{new-pm}[/new-pm][/not-new-pm]Сообщений нет[/not-new-pm]

Вроде бы должно работать )

Комментарии пользователей (6)

NikitoS3000
15

NikitoS3000 - 30 декабря 2014 16:33 - Юзер

***Комментарий удален***

FastFud
50

1599 | 588

FastFud - 30 декабря 2014 16:49 - Юзер

***Комментарий удален***

NikitoS3000
15

NikitoS3000 - 30 декабря 2014 18:27 - Юзер

Спасибо! Всё работает отлично )
И спасибо за быстрый ответ )

follor
1

243 | 10

follor - 22 февраля 2015 18:50 - Юзер

В main.tpl это не работает
[new-pm]{new-pm}[/new-pm]

FastFud
50

1599 | 588

FastFud - 22 февраля 2015 18:56 - Юзер

Чтобы работало в main.tpl нужно открыть index.php и добавить код после
$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );

follor
1

243 | 10

follor - 22 февраля 2015 19:04 - Юзер

Цитата: FastFud
Чтобы работало в main.tpl нужно открыть index.php и добавить код после

Спасибо сделал, работает.

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

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

 13.10.2014 cowsdby  Шаблоны (TPL)