Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Хак вывода всей информации с профиля пользователя в краткую или полную новость [dle all]

Тема в разделе "Хаки DLE", создана пользователем DLEPlugins, 3 июн 2016.

03.06.16 в 11:12
03.06.16 в 11:12
0
1.291
0
  1. TopicStarter Overlay
    DLEPlugins

    Кодер

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.608
    Лучших ответов:
    8
    Рейтинги:
    +1.194 / 9 / -0
    Периодически натыкаюсь на вопрос о том, как вывести имя, аватарку, страну и значения из доп полей профиля в краткую или полную новость. Вот простое решение без модулей и лишних файлов на сервере.

    Для полной новости открываем /engine/modules/show.full.php и ищем код
    PHP:
    $tpl->compile'content' );

            if( 
    $user_group[$member_id['user_group']]['allow_hide'] ) $tpl->result['content'] = str_ireplace"[hide]"""str_ireplace"[/hide]"""$tpl->result['content']) );
    ВЫШЕ вставляем
    PHP:
    $_user $db->super_query"SELECT user_id, email, fullname, land, foto, xfields FROM " PREFIX "_users WHERE name = '{$row['autor']}'" );
            
    $tpl->set'{user-fullname}'$_user['fullname'] );
            
    $tpl->set'{user-land}'$_user['land'] );
            
    $tpl->set'{user-foto}'$_user['foto'] );
            
    $tpl->set'{user-email}'$_user['email'] );
            
    $_user_xf xfieldsdataload$_user['xfields'] );
            foreach( 
    $_user_xf as $_xf_key => $_xf_val ) {
                
    $tpl->set'{user-xf-' $_xf_key '}'stripslashes$_xf_val ) );
            }
    Для краткой новости открываем /engine/modules/show.short.php и ищем код
    PHP:
    $tpl->compile'content' );

        }

        if( 
    $user_group[$member_id['user_group']]['allow_hide'] ) $tpl->result['content'] = str_ireplace"[hide]"""str_ireplace"[/hide]"""$tpl->result['content']) );
    ВЫШЕ вставляем
    PHP:
    $_user $db->super_query"SELECT user_id, email, fullname, land, foto, xfields FROM " PREFIX "_users WHERE name = '{$row['autor']}'" );
            
    $tpl->set'{user-fullname}'$_user['fullname'] );
            
    $tpl->set'{user-land}'$_user['land'] );
            
    $tpl->set'{user-foto}'$_user['foto'] );
            
    $tpl->set'{user-email}'$_user['email'] );
            
    $_user_xf xfieldsdataload$_user['xfields'] );
            foreach( 
    $_user_xf as $_xf_key => $_xf_val ) {
                
    $tpl->set'{user-xf-' $_xf_key '}'stripslashes$_xf_val ) );
            }
    Как использовать? В fullstory.tpl или shortstory.tpl вашего шаблона в нужном месте вставить
    Само собой вы можете оформлять как вам угодно, после установки хака вам доступны новые теги, которые и выводят нужную вам инфу : {user-fullname}, {user-foto}, {user-land} и {user-xf-латинское_название_доп_поля_профиля}

    Вот скрины:

    Полная новость
    [​IMG]


    Краткая новость

    [​IMG]

    Если вдруг вам понадобилось выводить эту инфу в кастум шаблоне, то решение такое:
    открываем /engine/modules/show.custom.php и ищем код
    PHP:
    $tpl->compile'content' );

    }

    if( 
    $user_group[$member_id['user_group']]['allow_hide'] ) $tpl->result['content'] = str_ireplace"[hide]"""str_ireplace"[/hide]"""$tpl->result['content']) );
    ВЫШЕ вставляем
    PHP:
    $_user $db->super_query"SELECT user_id, email, fullname, land, foto, xfields FROM " PREFIX "_users WHERE name = '{$row['autor']}'" );
            
    $tpl->set'{user-fullname}'$_user['fullname'] );
            
    $tpl->set'{user-land}'$_user['land'] );
            
    $tpl->set'{user-foto}'$_user['foto'] );
            
    $tpl->set'{user-email}'$_user['email'] );
            
    $_user_xf xfieldsdataload$_user['xfields'] );
            foreach( 
    $_user_xf as $_xf_key => $_xf_val ) {
                
    $tpl->set'{user-xf-' $_xf_key '}'stripslashes$_xf_val ) );
            }
     
Яндекс.Метрика