Page 1 of 2

Доступ к контенту в модуле CompanyDirectory (Решено!)

Posted: Fri Aug 14, 2015 4:23 pm
by alex-b
Подскажите как сделать доступ к контенту только тем пользователям, которые его добавили.
Речь идет о модуле CompanyDirectory + FEU, там есть функция добавления контента пользователем и вот от остальных пользователей нужно скрыть некоторые поля, видеть их может только админ и добавляющий.

Re: Доступ к контенту

Posted: Fri Aug 14, 2015 4:26 pm
by guro
Попробуйте использовать модуль CustomContent

Re: Доступ к контенту

Posted: Fri Aug 14, 2015 4:47 pm
by alex-b
А можно поподробнее :)
Я сейчас скрываю некоторые поля, но для группы, а как для конкретного пользователя? В админке есть поле owner, где отображаются те кто добавил.

Code: Select all

{if $ccuser->loggedin() && $ccuser->memberof('MCeditor')}
 ...              
 {/if}

Re: Доступ к контенту

Posted: Fri Aug 14, 2015 5:08 pm
by guro
После авторизации будет существовать smarty переменная {$userid}.

PS
Кстати, я тут подумал что она может существовать и без CustomContent, возможно она создается модулем FEU))

PSS
А в вашем поле owner что хранится? ID или Name пользователя?

Re: Доступ к контенту

Posted: Fri Aug 14, 2015 5:12 pm
by alex-b
Имя пользователя - Name

Re: Доступ к контенту

Posted: Fri Aug 14, 2015 5:44 pm
by guro
Возможно вам подойдёт переменная {$ccuser->username()} или {$ccuser->property('name')}

Re: Доступ к контенту

Posted: Fri Aug 14, 2015 5:53 pm
by alex-b
Спасибо, только как это обернуть ))

Code: Select all

{if isset($entry->fields.strana_prozhivaniya) && $entry->fields.strana_prozhivaniya->value != ''}
  Гражданство: {$entry->fields.strana_prozhivaniya->dropdown_value}
{/if}

Re: Доступ к контенту

Posted: Mon Aug 17, 2015 9:54 am
by guro
Не понял вопроса. И что за пример?

Re: Доступ к контенту

Posted: Mon Aug 17, 2015 3:08 pm
by iturbay
Попробуйте использовать модуль CustomContent
Возможно вам подойдёт переменная

Code: Select all

{$ccuser->username()}
или

Code: Select all

{$ccuser->property('name')}
guro, ты мне уже несколько раз открыл глаза!! спасибо, я такие костыли придумывал, чтобы вывести дополнительные поля пользователя, что прям вообще сам в шоке как оно работало ;D сейчас сюда заглянул и был удивлен!

Re: Доступ к контенту

Posted: Mon Aug 17, 2015 5:37 pm
by guro
to iturbay, :)

Re: Доступ к контенту

Posted: Fri Aug 21, 2015 7:16 am
by iturbay
Кстати когда добавляешь пользовательское поле, там есть галочка
"If enabled, all users can view this field for each entry. If disabled only the owner and administrators can view the field"
возможно она тебе поможет)

Re: Доступ к контенту

Posted: Fri Aug 21, 2015 2:59 pm
by alex-b
Спасибо всем откликнувшимся!
Чебоксы пробовал, кроме как на админа, больше ни на кого не срабатывают. Добавившие контент, все-равно своего не видят, показывается только если поставить галку для поля "Общее".

А имя пользователя добавившего контент все-равно не могу выцепить, в шаблоне админки он так выводится

Code: Select all

{if isset($entry->owner)}{$entry->owner}{/if}
а во фронтенде этот вывод молчит.

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

Достиг вот такого прогресса (спасибо iturbay), код

Code: Select all

{if $entry->owner_id ne ''}
  {$entry->owner_id}
 {/if}
выводит id пользователя, теперь как-бы в условие запихать ???

Re: Доступ к контенту

Posted: Sun Aug 23, 2015 4:08 pm
by iturbay

Code: Select all

{if $entry->owner_id ne '-1'} <--! если владелец не администратор -->
{$username=$feu_smarty->get_username({$entry->owner_id})} 
 <--! {$username} достаем имя владельца-->
{/if} 
{if $ccuser->loggedin() && $ccuser->username() eq '{$username}' }
 скрытый контент  <--! доступ только {$username} -->
{else}
нет доступа <--! видят все остальные -->
 {/if}

Так тебе нужно?

Re: Доступ к контенту

Posted: Mon Aug 24, 2015 11:31 am
by alex-b
Я пробовал твою конструкцию, что та - что эта, рушит все, страница полностью не обрабатывается и на месте вставки все заканичивается ошибкой
Fatal error: Call to a member function get_username() on a non-object in Z:\home\localhost\www\cmsms\lib\smarty\libs\sysplugins\smarty_internal_templatebase.php(165) : eval()'d code on line 145

Re: Доступ к контенту

Posted: Mon Aug 24, 2015 1:05 pm
by iturbay
Очень странно! у меня все отлично работает!
________________________________________________
27.08
только что обновил все модули и cms, перестало работать :)

исправил на

{if $entry->owner_id ne '-1'}
{$username=feu_smarty::get_username({$entry->owner_id})}
{$username}

{/if}