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

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

Помогите, пожалуйста, с тегами


     хак, теги, профиль пользователя    Хаки, Ламерские вопросы    4052

вопрос
Добрый день. Помогите, пожалуйста, с реализацией небольшого хака. Суть такая: создание специальных тегов для вывода информации, если пользователь принадлежит к группе "ПОЛЬЗОВАТЕЛЬ", "АДМИНИСТРАТОР", "ЖУРНАЛИСТ". Понимаю, что звучит не очень ясно. Попробую объяснить)))

Тег [admin]ТЕКСТ[/admin] позволяет вывести текст - информацию, если пользователь перешел в профиль администратора.
Тег [users]ТЕКСТ[/users] выводит текст, если пользователь (любой) находится в профиле юзера группы "Пользователь".
Тег [jornalist]ТЕКСТ[/jornalist] выводит текст, если пользователь (любой) находится в профиле "Журналиста".

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

Заранее спасибо! Надеюсь, понятно обозначил просьбу))

Ответил: ychelovek33


Открыть файл engine/modules/profile.php
Найти с помощью CTRL+F строчку со словом {status}.
После этой строчки вставить (P.S. можно и в другое место мне тут удобнее)

$username = $db->query( "SELECT * FROM " . USERPREFIX . "_users where name = '$user'" );
    while ( $rowUser = $db->get_row( $username ) ) {
    
    $gr = $rowUser['user_group'];
    }
    
    
    $arrId = array('1' , '3');
    
    $arrRes = array('<div class="foradmin" title="Администратор">1</div>' , '<div class="forjournalist" title="Журналист">3</div>');
    
    for ($i=0; $i<count($arrId); $i++ )    
    if ($gr==$arrId[$i])
    {
    
        $Res =  $arrRes[$i];
    
    }
    $tpl->set( '{statuus}', $Res);


Выводим с помощью {statuus}

P.S.
а) Можно в самом начале файла маленько изменить и не делать лишний запрос.
б) Великие умы могут сделать тег как [group][/group], но это не я)

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

Gopr
Юзер

Gopr - -

Если хотим показывать то:
[group=1]ТЕКСТ[/group] - админ
[group=2]ТЕКСТ[/group] - модератор
[group=3]ТЕКСТ[/group] - журналист
[group=4]ТЕКСТ[/group] - пользователь
[group=5]ТЕКСТ[/group] - гость
Если не хотим показывать то:
[not-group=1]ТЕКСТ[/not-group] - админ
[not-group=2]ТЕКСТ[/not-group] - модератор
[not-group=3]ТЕКСТ[/not-group] - журналист
[not-group=4]ТЕКСТ[/not-group] - пользователь
[not-group=5]ТЕКСТ[/not-group] - гость
Теги работают в любом tpl шаблона

User_3218
Юзер

User_3218 - -

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

User_3218
Юзер

User_3218 - -

Надеюсь, сейчас более понятно )))

Gopr
Юзер

Gopr - -

Тег [admin]ТЕКСТ[/admin] позволяет вывести текст - информацию, если пользователь перешел в профиль администратора.
Тег [users]ТЕКСТ[/users] выводит текст, если пользователь (любой) находится в профиле юзера группы "Пользователь".
Тег [jornalist]ТЕКСТ[/jornalist] выводит текст, если пользователь (любой) находится в профиле "Журналиста".


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

А разница между?
[jornalist]ТЕКСТ[/jornalist]
и
[group=2]ТЕКСТ[/group]


в этих тегах заключается текст публичный (для любого юзера)

Есть еще такие конструкции
[group=1,2,3,4]ТЕКСТ[/group]

User_3218
Юзер

User_3218 - -

Я знаю про эти теги, они выводят только инфу, если пользователь находится в этой группе, но другим группам они текст не выводят, а мне нужно, чтобы текст был виден всем группам, но только выбор текста, заключенный в теги, зависит от того, профиль чей группы просматривает пользователь.
Т е, если пользователь просматривает профиль админа, выводится текст всем без исключения пользователям (даже журналистам и всем остальным группам), а также, если юзер или админ просматривает профиль журналиста, то также текст виден всем пользователям - всем группам без исключения, просматривающим профиль журналиста, точно также и про группу пользователей. Например, если я - админ, просматриваю профиль юзера, то мне виден текст или, например, если журналист зашел на профиль юзера - то он также сможет прочитать этот текст. Надеюсь, сейчас понятнее, простите за тавтологию

User_3218
Юзер

User_3218 - -

Gopr,
разница в том, что текст смогут прочитать только те пользователи, которые попадают под 2-ую группу, но другие группы не смогут видеть текст, заключенный в эти теги))

***[group=2]ТЕКСТ[/group]***

User_3218
Юзер

User_3218 - -

Вопрос остается актуальным!

ychelovek33
Юзер

ychelovek33 - -

Если честно совсем не понятно что вам нужно... Ужс...

Если я все таки чучуть вас понял, вы хотите выводить разный текст разным группам, но в одном и том же теге...

Пример:

<div>
[group=5]<a href="index.php?do=register">Регистрация</a> [/group]
[not-group=5]<a href="#">Оставить комментарий</a> [/not-group]
</div>


Если не то - напишите Прям пример в комментарии... Там Вася посмотрел получилось так....

User_3218
Юзер

User_3218 - -

Спасибо еще раз за помощь) очень здорово))

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

наверх