Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Шаблоны (TPL) » как скрыть часть текста от пользователя в userinfo?

как скрыть часть текста от пользователя в userinfo?


     01.07.2017    userinfo    Все вопросы » Шаблоны (TPL)    1493

вопрос
День добрый. Столкнулся с такой вот проблемой. Необходимо скрыть один блок в userinfo , при условии что просматриваемый профиль пользователя принадлежит самому пользователю. Вроде дело плевое, но как ни странно такого тега в DLE я не нашел, учитывая что противоположный ему тег присутствует
[not-logged][/not-logged]

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

Ответа пока нет


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

kolumb
Юзер

kolumb - 1 июля 2017 08:55 -

За основу можете взять.

Ellie Castro
Юзер

Ellie Castro - 1 июля 2017 10:47 -

В php я вообще полный ноль, даже операторы не знаю :( Попытался сам разобраться, но к сожалению безуспешно, может найдется добрый человек который предоставит уже готовы вариант.
Собственно в /engine/modules/profile.php выше вставил код из примера выше:

if ($is_logged AND $member_id['name'] == stripslashes($row['name']) OR $member_id['user_group'] == 1) {
        $tpl->set('[member_name]', "");
        $tpl->set('[/member_name]', "");
    } else {
        if ($is_logged) {
            $tpl->set_block("'\\[member_name\\](.*?)\\[/member_name\\]'si", "");
            msgbox($lang['all_info'], "Вы можете просматривать только свой профиль!");
        }
        if (!$is_logged) {            
            $tpl->set_block("'\\[member_name\\](.*?)\\[/member_name\\]'si", "");
            msgbox($lang['all_info'], "У вас нет прав просматривать профиль!");
        }
    }

затем удалил не нужное мне разрешение просматривать первой группе, то есть администраторам:
OR $member_id['user_group'] == 1

как я понял необходимо в этих 2 строчках кода где показывается в зависимости от того авторизирован пользователь или нет заменить значения на свои :

 msgbox($lang['all_info'], "Вы можете просматривать только свой профиль!");
 msgbox($lang['all_info'], "У вас нет прав просматривать профиль!");

Вот только что туда необходимо вставлять? Мне нужно вывести весь код который находится между [member_name] , учитывая что всем авторизированым пользователям и всем гостям можно просматривать его и запрещено только самому владельцу профиля.

SX2
Эксперт

SX2 - 1 июля 2017 11:35 -

if ($member_id['name'] != stripslashes($row['name'])) {
        $tpl->set('[member_name]', "");
        $tpl->set('[/member_name]', "");
    } else {        
        $tpl->set_block("'\\[member_name\\](.*?)\\[/member_name\\]'si", "");            
        }

Самая сложная часть работы – решиться приступить к ней.

Pringles
Юзер

Pringles - 1 июля 2017 18:10 -

Цитата: SX2
stripslashes

Зачем? оба поля достаются из базы, (member_id и row) вы где-то разницу нашли?

SX2
Эксперт

SX2 - 1 июля 2017 20:32 -

Можно и без него! Не принципиально!

Самая сложная часть работы – решиться приступить к ней.

Ellie Castro
Юзер

Ellie Castro - 2 июля 2017 05:24 -

Благодарю, все работает, всем спасибо :)

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

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

наверх