Помощь Как вывести количество новых ПС в userinfo.tpl ?

Тема в разделе "DLE", создана пользователем stanislavsss, 19 апр 2014.

Информация :
Актуальная версия DataLife Engine 11.1
( Final Release v.11.1 | Скачать DataLife Engine | Скачать 11.1 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. stanislavsss

    stanislavsss Постоялец

    Регистр.:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    2
    Уважаемые мастера! Смысл в том, что нужно вывести кликабельную ссылку в профиле пользователя на его входящие сообщения, то есть количество новых ПМ в userinfo.tpl (но чтобы другие пользователи не смогли их просматривать), что-то не могу найти нигде информацию на эту тему. Кто знает какой код нужно прописать? Пытался мудрить с кодом из этого совета: http://core32.ru/threads/1138/ , но что-то всё "не о чём"...

    Версия Dle 10.1 (Денвер)
     
    Последнее редактирование: 19 апр 2014
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.035
    Симпатии:
    2.036
    stanislavsss нравится это.
  3. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.015
    Симпатии:
    679
  4. stanislavsss

    stanislavsss Постоялец

    Регистр.:
    28 ноя 2012
    Сообщения:
    87
    Симпатии:
    2
    Этот модуль недоработан, пробовал его уже, да и не в этом дело, мне не нужны всплывающие окна и прочие фишки, нужно просто сделать дополнительный пункт количество новых сообщений в профиле пользователя как к примеру сделано вконтакте или в одноклассниках...

    Ну да о ЛС там ни слова, так это что получается нет вариантов?

    Как то целсофтом недоработан профиль, по идее это вообще должна быть стандартная функция в dle, что бы человек (как и во всех соцсетях) войдя в свой профиль увидел количество новых сообщений с момента его отсутствия на сайте.

    Посмотрите пожалуйста это правильный вариант? http://dle.in.ua/hacks/uvedomlenie-o-novom-ls-vklotkl.html
     
    Последнее редактирование модератором: 20 апр 2014
  5. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.035
    Симпатии:
    2.036
    Нет, конечно... Там же написано "отключать уведомление"...
     
    stanislavsss нравится это.
  6. murlo

    murlo Создатель

    Регистр.:
    8 июн 2006
    Сообщения:
    34
    Симпатии:
    33
    Написал на скорую руку. Но всё должно работать нормально. Для версии 10.2
    В файле engine/modules/profile.php
    после или до))) кода
    PHP:
        if( $row['icq'] ) {
            
    $tpl->set'[icq]'"" );
            
    $tpl->set'[/icq]'"" );
            
    $tpl->set'{icq}'stripslashes$row['icq'] ) );
            
    $tpl->set_block"'\\[not-icq\\](.*?)\\[/not-icq\\]'si""" );
        } else {
            
    $tpl->set_block"'\\[icq\\](.*?)\\[/icq\\]'si""" );
            
    $tpl->set'{icq}'"" );
            
    $tpl->set'[not-icq]'"" );
            
    $tpl->set'[/not-icq]'"" );
        }
    Вставить
    PHP:
        if($member_id['name'] == $user and $member_id['pm_unread']){
            
    $tpl->set'[pm_unread]'"" );
            
    $tpl->set'[/pm_unread]'"" );
            
    $tpl->set'{pm_unread}'intval$member_id['pm_unread'] ) );
            
    $tpl->set'[inbox]'"<a href=\"$PHP_SELF?do=pm\">" );
            
    $tpl->set'[/inbox]'"</a>" );
        } else {
            
    $tpl->set_block"'\\[pm_unread\\](.*?)\\[/pm_unread\\]'si""" );
            
    $tpl->set'{pm_unread}'"" );
        }
    В в шаблоне по дефолту userinfo.tpl
    Вставляем перед
    <li><span class="grey">ICQ:</span> <b>{icq}</b></li>
    или в другом месте, но соответственно отредактировав
    [pm_unread]<li><span class="grey">Новых персональных сообщений:</span> <b>[inbox]{pm_unread}[/inbox]</b></li>[/pm_unread]

    Есть ещё вариант. Тоже для 10.2
    Как следует не проверял, но на первый взгляд всё работает как надо.
    В конце файла engine/engine.php добавить строчку

    PHP:
    if($subaction == 'userinfo' and $member_id['name'] == $user){
        include 
    ENGINE_DIR '/modules/pm.php';
    }
    Зашедший на свой профиль, в самом низу увидит все входящие сообщения.
     
    Последнее редактирование: 20 апр 2014
    iHits, E-body, stanislavsss и ещё 1-му нравится это.