2016-10-03 5 views
0

Сейчас я получаю находятся группы (ы), вошедшего в данный момент пользователя в моем остросюжетного контроллер, как это:Как показать различные виды в зависимости от fe_usergroup в Typo3 6.2 Расширение Extbase эффективно?

$roles = $GLOBALS['TSFE']->fe_user->groupData['title']; 

я передать эту информацию на мой взгляд, а затем делать вещи, как это:

<f:if condition="{0:role} == {0:'management'}"> 
... 

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

<f:for each="{appointments}" as="appointment"> 
<f:render section="{0:role} arguments="{appointment:appointment}"/> 
... 

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

Так мои вопросы:

  1. Является ли мой подход наилучшей практики или как я мог бы сделать это еще проще и автоматизированы?
  2. Есть ли простой способ проверить те виды, которые я описал с помощью тестового пользователя, который принадлежит ко всем группам пользователей?

Я искал вокруг в Typo3 Basics, но не смог найти решение или передовую практику для моих проблем.

ответ

1

Вы хотите связать права, чтобы увидеть определенные поля для групп. Поскольку люди могут находиться в более чем одной группе, поля, которые человек может видеть, могут сильно различаться. Если вы делаете разделы/частичные для каждой группы, вам нужно повторить много полей в шаблонах. Более гибким способом было бы сначала собирать поля, которые пользователь может видеть, на основе различных групп, в которых они входят. Вы можете установить в settings вашего расширения, поля которого видны для каждой группы. В контроллере вы можете комбинировать поля для всех групп пользователей и, наконец, передать массив полей в представление. Представление может просто перебирать список и отображать каждое видимое поле.

+0

Звучит неплохо - но что/где эти «настройки»? И что именно вы подразумеваете под «полями»? Строки имен свойств, или я должен сделать раздел для каждого поля, и тогда это будут имена этих разделов? –

+1

Каждое расширение extbase имеет раздел «Настройки» в конфигурации TypoScript: 'plugin.tx_myextensionname.settings'. Ниже этого ключа вы можете поместить любую конфигурацию, которую хотите. В вашем контроллере вы можете получить доступ к нему с помощью '$ this-> settings' и в Fluid с' {settings} '. Под «полями» я имел в виду объекты, которые вы хотите показать. С 2-3 группами пользователей не будет проблемой иметь отдельный раздел для каждой группы, но вы также должны учитывать комбинации групп. Затем сначала можно увидеть, какие свойства должны быть показаны. –

+0

Спасибо, я еще не знал о разделе настроек - но если представление просто итерации по полям из 'settings', как я могу различать такие вещи, как'