Recommended Posts

Подскажите как в меню ЛК пользователей ограничить доступ к некоторым пунктам меню  в зависимости от групп пользователей?

например поставить такое условие, будет работать? 
{if $group_id==1}
    <li>XXXXX </li>
    {/if}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После последнего обновления в шаблоне доступны такие данные о текущем пользователе

{$smarty.session.user_id} = числовой идентификатор пользователя
{$smarty.session.current_user_name} = ФИО или то, что указано в поле fio профиля
{$smarty.session.current_user_group_name} = системное имя его группы (admin realtor owner etc)
{$smarty.session.current_user_login} = логин или то, что указано в поле login профиля
{$smarty.session.current_user_email} = почта или то, что указано в поле email профиля
{$smarty.session.current_user_group_id} = числовой идентификатор группы пользователя

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
19 минут назад, abushyk сказал:

После последнего обновления в шаблоне доступны такие данные о текущем пользователе


{$smarty.session.user_id} = числовой идентификатор пользователя
{$smarty.session.current_user_name} = ФИО или то, что указано в поле fio профиля
{$smarty.session.current_user_group_name} = системное имя его группы (admin realtor owner etc)
{$smarty.session.current_user_login} = логин или то, что указано в поле login профиля
{$smarty.session.current_user_email} = почта или то, что указано в поле email профиля
{$smarty.session.current_user_group_id} = числовой идентификатор группы пользователя

 

доступно/ а где и как красиво отображается ? или можно хоть куда вставлять? хм мы пока не обновились но вопрос будет актуален. теперь можно не вытягивать данные из 

core.listing

так как сейчас у нас достаточное кол-во информации вытягивается из данных профиля пользователя,
или же вышеприведенные данные доступны именно для текущего пользователя, то есть для того который как бы смотрит в экран -зарегистрировавшись?
мы так предполагаем эти данные как бы "сидят и вшиты" уже в #smarty.session  7 и фактически это не данные из юзер-дата и просто дата? 
то есть фактически можно сделать всыплывающее окно и сказать  привет $smarty.session.ccurrent_user_name  в итоге получим "привет Александр иванович"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, doma сказал:

или же вышеприведенные данные доступны именно для текущего пользователя, то есть для того который как бы смотрит в экран -зарегистрировавшись?

да. это именно текущий смотрящий в экран пользователь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, doma сказал:

или можно хоть куда вставлять?

да, только без фанатизма)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
14 часа назад, abushyk сказал:

После последнего обновления в шаблоне доступны такие данные о текущем пользователе


{$smarty.session.user_id} = числовой идентификатор пользователя
{$smarty.session.current_user_name} = ФИО или то, что указано в поле fio профиля
{$smarty.session.current_user_group_name} = системное имя его группы (admin realtor owner etc)
{$smarty.session.current_user_login} = логин или то, что указано в поле login профиля
{$smarty.session.current_user_email} = почта или то, что указано в поле email профиля
{$smarty.session.current_user_group_id} = числовой идентификатор группы пользователя

 

Может где-нибудь в Wiki выложить список этих операторов, а-то они раскиданы по всему форуму, что и не найти. Каждый раз задаются вопросы об одном и том-же. Желательно на видном месте, а-то там тоже черт ногу сломает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А попутно, там-же в Wiki и типы элементов форм пополнить расширенным описанием, куда включить возможность применения команд с конкретным элементом. Например, сколько раз говорилось про маску ввода номера мобильного телефона? Уже года три об одном и том-же и повсеместно. Не проще было эту маску в этом разделе Wiki типы элементов форм для элемента mobilephone указать? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

подскажите а как в файле реалти-грид-аккаунт вывести некоторые данные текущего пользователя ? то есть нас интересует как в этом файле вывести значения некоторые из таблицы USER, например у нас есть некое поле в данное таблице к примеру "адрес агентства" в нем мы например пишем почтовый адрес и факс агентства мы хотим чтобы это поле можно было вывести в ЛК пользователя причем 2 варианта, оно может быть редактируемое пользователем а может быть не редактируемое, подскажите как вывести?

сейчас доступны только данные из $grid_items  но там данные из DATA то есть как бы из самого объявления, а надо именно из пользователя, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если поле редактируемое пользователем, то оно есть в его Профиле. Зачем ему его же инфа из профиля в списке своих же объявок?

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, abushyk сказал:

Если поле редактируемое пользователем, то оно есть в его Профиле. Зачем ему его же инфа из профиля в списке своих же объявок?

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

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

нужно сделать напоминалку - пользователя чтобы не слашать, мы не нали, мы забыли, мы не поним и так далее, так как сейчас например у них нет информации о например окончании действия тарифа -а это крайне не правильно и не информативно, поэтому например админ на первом этапе мог бы просто проставлять вручную редактируемое поле, хоть как то понятно , ну и + куча другой  возможной информации, например пишем этому пользователю мол в таком то и таком объявлении у вас указан раздел продажа квартир а описание  вас стоит сдаем на сутки :))
в общем у нас свои идеи на улучшение сервиса -жаль что их не реализовывают :))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, abushyk сказал:

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

а как сделать и что именно?
какой код написать и где? не знакомы с этим поэтому помощь ваша была бы актуальна

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В main.php шаблона внутри блока

if ( !$has_result && preg_match('/^account/', $REQUESTURIPATH) ) {

сделать

$current_user_info=array();
$DBC=DBC::getInstance();
$qery='SELECT * FROM '.DB_PREFIX.'_user WHERE `user_id`=?';
$stmt=$DBC->query($query, array(intval($_SESSION['user_id'])));
if($stmt){
$current_user_info=$DBC->fetch($stmt);
}
$this->template->assert('current_user_info', $current_user_info);

После этого в шаблоне у вас есть {$current_user_info} содержащее все данные текущего пользователя в простом виде. Напр. {$current_user_info.login} - логин. Естественно select_by_query значения будут присутствовать только в виде ключа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, abushyk сказал:

В main.php шаблона внутри блока


if ( !$has_result && preg_match('/^account/', $REQUESTURIPATH) ) {

сделать


$current_user_info=array();
$DBC=DBC::getInstance();
$qery='SELECT * FROM '.DB_PREFIX.'_user WHERE `user_id`=?';
$stmt=$DBC->query($query, array(intval($_SESSION['user_id'])));
if($stmt){
$current_user_info=$DBC->fetch($stmt);
}
$this->template->assert('current_user_info', $current_user_info);

После этого в шаблоне у вас есть {$current_user_info} содержащее все данные текущего пользователя в простом виде. Напр. {$current_user_info.login} - логин. Естественно select_by_query значения будут присутствовать только в виде ключа.

хм попробовали что то ничего не выводится или что то сделали не правильно?

взяли код описанный вами поместили его в main.php расположенный в template/frontend/realia/main

вот часть кода 

            if ( !$has_result && preg_match('/^account/', $REQUESTURIPATH) ) {
                $this->template->assert('right_column', '');
                $this->template->assert('is_account', '1');
                $this->template->assert('search_form_template', '');
        
                $current_user_info=array();
                    $DBC=DBC::getInstance();
                    $qery='SELECT * FROM '.DB_PREFIX.'_user WHERE `user_id`=?';
                    $stmt=$DBC->query($query, array(intval($_SESSION['user_id'])));
                        if($stmt){
                            $current_user_info=$DBC->fetch($stmt);
                                }
                $this->template->assert('current_user_info', $current_user_info);
                    
                //return;
                require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/account.php');
                $Account = new Account;

 

но потом в файл realty_grid_account.tpl вставили

{include file="remember.tpl"}


-----------------------------
{$current_user_info.login}
{$current_user_info.fio}
------------------------------

<table class="content_main table" cellspacing="2" cellpadding="2">

 

но к сожалению ничего не выводится, что сделали не правильно?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, abushyk сказал:

В main.php шаблона внутри блока


if ( !$has_result && preg_match('/^account/', $REQUESTURIPATH) ) {

сделать


$current_user_info=array();
$DBC=DBC::getInstance();
$qery='SELECT * FROM '.DB_PREFIX.'_user WHERE `user_id`=?';
$stmt=$DBC->query($query, array(intval($_SESSION['user_id'])));
if($stmt){
$current_user_info=$DBC->fetch($stmt);
}
$this->template->assert('current_user_info', $current_user_info);

После этого в шаблоне у вас есть {$current_user_info} содержащее все данные текущего пользователя в простом виде. Напр. {$current_user_info.login} - логин. Естественно select_by_query значения будут присутствовать только в виде ключа.

а нет ли тут ошибки? возможно просто опечатались? 

$qery='SELECT * FROM '.DB_PREFIX.'_user WHERE `user_id`=?';

может 

$query=

букву пропустили? потому что изменили и все вроде работает :))

Доп вопросы
1) а для $current_user_info.tariff_id  не возможно вывести текстовое значение ? то есть описание тарифа?  тип поля select_by_query по типу value_string написав например  {$current_user_info.tariff_id.value_string}
2) вопрос а можно как то вывести еще и срок окончания тарифа? и как

Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, abushyk сказал:

После этого в шаблоне у вас есть {$current_user_info} содержащее все данные текущего пользователя в простом виде. Напр. {$current_user_info.login} - логин. Естественно select_by_query значения будут присутствовать только в виде ключа.

и еще вопросик, к примеру если у определенного поля видимость стоит только админу, а в шаблоне явно указать например {$current_user_info.sait}  то есть сайт, то если это поле доступно как для редактирования, так и для видимости только админу, будет ли видеть его обычный пользователь и будет ли оно вообще выводиться?  или выведеться -но как бы пустое?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в приведенном мной примере данные выбираются as is без учета видимостей по группам, и аналогий в модели user, и любых других условий. Это просто выборка из БД. Для использования других условий, в том числе извлечения текстовых значений для поле типа select_by_query, подгрузки дополнительных данных из связанных таблиц нужно использовать уже совершенно другой подход, с запросами по нескольким таблица, с выборкой не из БД а через функции Data_Model.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, abushyk сказал:

в приведенном мной примере данные выбираются as is без учета видимостей по группам, и аналогий в модели user, и любых других условий. Это просто выборка из БД. Для использования других условий, в том числе извлечения текстовых значений для поле типа select_by_query, подгрузки дополнительных данных из связанных таблиц нужно использовать уже совершенно другой подход, с запросами по нескольким таблица, с выборкой не из БД а через функции Data_Model.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
13 часа назад, abushyk сказал:

После этого в шаблоне у вас есть {$current_user_info} содержащее все данные текущего пользователя в простом виде. Напр. {$current_user_info.login} - логин. Естественно select_by_query значения будут присутствовать только в виде ключа.

сейчас "выводится" информация, но возможно ли ее сделать редактируемой?
например там будет замечание от админа мол в таком то объявлении не указана цена, и пользователь в ЛК будет это видеть, и потом когда он исправит это, он может данные в этом поле удалить например, так как сейчас "просто выводится инфа для обозрения"

PS есть конечно решение типа сделать в профиле доступное и редактируемое поле для пользователя, для этого достаточно перейти в "мой профиль" и там удалить, а в сетке объявлений просто выводить на обозрение,  но вопрос именно такой -чтобы сделать редактируемое поле именно и в профиле и в сетке объявлений, чтобы пользователю было удобнее + меньше действий и переходов.  

?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите еще, где и в каком файле и где именно внести правки в виде красных кнопок, сейчас в личном кабинете стоит только кнопка "ДОБАВИТЬ ОБЪЯВЛЕНИЕ" а нам хочется добавить еще 2 эти кнопки, для удобства пользователей, и экономии места, так как данные места не задействованы.

Насколько мы понимаем  можно использовать файл layout_account.tpl  и перед {$main} поставить эти 2 кнопки и все будет работать :)
но наверное правильнее и логичнее вставить ее после {$main}  . Тут задача такая чтобы эти кнопки были доступны только в ЛК зашедшему пользователю и выводились только там, так как скорее всего {$main} используется во многих местах и это будет возможно не корректно.

в данном файле сюда вставляем?

<div class="container">
    <div id="main">
            {if $is_account}
            <div class="account">
                {if $breadcrumbs != ''}
                    <div id="breadcrumbs">{$breadcrumbs}</div>
                {/if}   
                <div class="clear"></div>

кнопка 1, кнопка  2
                   {$main}
            </div>
            {else}            
            
                {if $breadcrumbs != ''}
                    <div id="breadcrumbs">{$breadcrumbs}</div>
                {/if}    
                {if $main_file_tpl != ''}
                     <div class="clear"></div>
                    {include file="$main_file_tpl"}
                {else}
                    {$main}
                {/if}
            
            {/if}
    </div>
</div>

 

ждемс ответа :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
19 часов назад, abushyk сказал:

После этого в шаблоне у вас есть {$current_user_info} содержащее все данные текущего пользователя в простом виде. Напр. {$current_user_info.login} - логин. Естественно select_by_query значения будут присутствовать только в виде ключа.

А как проверить значение на заполненность ? чтобы применить условие?
К примеру если {if $current_user_info.site.value !=''} поле сайт не пустое, то выводить что то
Попробовали применить value и value_string  ничего не получилось, то есть получается, что можно только вывести само значение $current_user_info.site   ??? и проверить его ни как нельзя?

пишет что 
Warning: Illegal string offset 'value' in/home/latgvtcg/public_html/cache/compile/63135b11e4708a58f2228f3db39cdbce1fbb9306.file.remember.tpl.php on line 263

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 3/6/2017 в 03:07, doma сказал:

А как проверить значение на заполненность ? чтобы применить условие?
К примеру если {if $current_user_info.site.value !=''} поле сайт не пустое, то выводить что то
Попробовали применить value и value_string  ничего не получилось, то есть получается, что можно только вывести само значение $current_user_info.site   ??? и проверить его ни как нельзя?

пишет что 
Warning: Illegal string offset 'value' in/home/latgvtcg/public_html/cache/compile/63135b11e4708a58f2228f3db39cdbce1fbb9306.file.remember.tpl.php on line 263

Покажите полный листинг участка кода, где вы сделали такое условие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в файле 
remember.tpl   шаблон реалия


сразу после 
{if $apps_billing=='on' && $apps_upper_enable}
поставили 

{if $apps_billing=='on' && $apps_upper_enable}

        {if $current_user_info.site.value !=''}
            <div class="property-detail">
                <H3>Уведомление</H3>
            </div>
        {/if}
{/if}
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас