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

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

alex-b
Forum Members
Forum Members
Posts: 69
Joined: Fri Jun 05, 2009 3:19 am

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

Post by alex-b »

Подскажите как сделать доступ к контенту только тем пользователям, которые его добавили.
Речь идет о модуле CompanyDirectory + FEU, там есть функция добавления контента пользователем и вот от остальных пользователей нужно скрыть некоторые поля, видеть их может только админ и добавляющий.
Last edited by alex-b on Tue Sep 15, 2015 1:27 pm, edited 2 times in total.
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

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

Post by guro »

Попробуйте использовать модуль CustomContent
alex-b
Forum Members
Forum Members
Posts: 69
Joined: Fri Jun 05, 2009 3:19 am

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

Post by alex-b »

А можно поподробнее :)
Я сейчас скрываю некоторые поля, но для группы, а как для конкретного пользователя? В админке есть поле owner, где отображаются те кто добавил.

Code: Select all

{if $ccuser->loggedin() && $ccuser->memberof('MCeditor')}
 ...              
 {/if}
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

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

Post by guro »

После авторизации будет существовать smarty переменная {$userid}.

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

PSS
А в вашем поле owner что хранится? ID или Name пользователя?
alex-b
Forum Members
Forum Members
Posts: 69
Joined: Fri Jun 05, 2009 3:19 am

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

Post by alex-b »

Имя пользователя - Name
Attachments
Буфер обмена-1.jpg
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

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

Post by guro »

Возможно вам подойдёт переменная {$ccuser->username()} или {$ccuser->property('name')}
alex-b
Forum Members
Forum Members
Posts: 69
Joined: Fri Jun 05, 2009 3:19 am

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

Post by alex-b »

Спасибо, только как это обернуть ))

Code: Select all

{if isset($entry->fields.strana_prozhivaniya) && $entry->fields.strana_prozhivaniya->value != ''}
  Гражданство: {$entry->fields.strana_prozhivaniya->dropdown_value}
{/if}
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

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

Post by guro »

Не понял вопроса. И что за пример?
User avatar
iturbay
Forum Members
Forum Members
Posts: 85
Joined: Mon Sep 29, 2014 5:38 am

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

Post by iturbay »

Попробуйте использовать модуль CustomContent
Возможно вам подойдёт переменная

Code: Select all

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

Code: Select all

{$ccuser->property('name')}
guro, ты мне уже несколько раз открыл глаза!! спасибо, я такие костыли придумывал, чтобы вывести дополнительные поля пользователя, что прям вообще сам в шоке как оно работало ;D сейчас сюда заглянул и был удивлен!
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

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

Post by guro »

to iturbay, :)
User avatar
iturbay
Forum Members
Forum Members
Posts: 85
Joined: Mon Sep 29, 2014 5:38 am

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

Post by iturbay »

Кстати когда добавляешь пользовательское поле, там есть галочка
"If enabled, all users can view this field for each entry. If disabled only the owner and administrators can view the field"
возможно она тебе поможет)
alex-b
Forum Members
Forum Members
Posts: 69
Joined: Fri Jun 05, 2009 3:19 am

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

Post 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 пользователя, теперь как-бы в условие запихать ???
User avatar
iturbay
Forum Members
Forum Members
Posts: 85
Joined: Mon Sep 29, 2014 5:38 am

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

Post 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}

Так тебе нужно?
alex-b
Forum Members
Forum Members
Posts: 69
Joined: Fri Jun 05, 2009 3:19 am

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

Post 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
User avatar
iturbay
Forum Members
Forum Members
Posts: 85
Joined: Mon Sep 29, 2014 5:38 am

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

Post by iturbay »

Очень странно! у меня все отлично работает!
________________________________________________
27.08
только что обновил все модули и cms, перестало работать :)

исправил на

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

{/if}
Post Reply

Return to “Russian - русский”