本文整理汇总了PHP中TYPO3\CMS\Backend\Utility\BackendUtility::getUserNames方法的典型用法代码示例。如果您正苦于以下问题:PHP BackendUtility::getUserNames方法的具体用法?PHP BackendUtility::getUserNames怎么用?PHP BackendUtility::getUserNames使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TYPO3\CMS\Backend\Utility\BackendUtility
的用法示例。
在下文中一共展示了BackendUtility::getUserNames方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: initializeObject
/**
* Initialize some local variables to be used during creation of objects
*
* @return void
*/
public function initializeObject()
{
$this->beUserList = \TYPO3\CMS\Backend\Utility\BackendUtility::getUserNames();
/** @var $defaultQuerySettings \TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface */
$defaultQuerySettings = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface::class);
$defaultQuerySettings->setRespectStoragePage(false);
$this->setDefaultQuerySettings($defaultQuerySettings);
}
示例2: main
/**
* Main Task center module
*
* @return string HTML content.
* @todo Define visibility
*/
public function main()
{
if ($id = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('display')) {
return $this->urlInIframe($this->backPath . \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('impexp') . 'app/index.php?tx_impexp[action]=export&preset[load]=1&preset[select]=' . $id, 1);
} else {
// Thumbnail folder and files:
$tempDir = $this->userTempFolder();
if ($tempDir) {
$thumbnails = \TYPO3\CMS\Core\Utility\GeneralUtility::getFilesInDir($tempDir, 'png,gif,jpg', 1);
}
$clause = $GLOBALS['BE_USER']->getPagePermsClause(1);
$usernames = \TYPO3\CMS\Backend\Utility\BackendUtility::getUserNames();
// Create preset links:
$presets = $this->getPresets();
$opt = array();
$opt[] = '
<tr class="bgColor5 tableheader">
<td>Icon:</td>
<td>Preset Title:</td>
<td>Public</td>
<td>Owner:</td>
<td>Page:</td>
<td>Path:</td>
<td>Meta data:</td>
</tr>';
if (is_array($presets)) {
foreach ($presets as $presetCfg) {
$configuration = unserialize($presetCfg['preset_data']);
$thumbnailFile = $thumbnails[$configuration['meta']['thumbnail']];
$title = strlen($presetCfg['title']) ? $presetCfg['title'] : '[' . $presetCfg['uid'] . ']';
$opt[] = '
<tr class="bgColor4">
<td>' . ($thumbnailFile ? '<img src="' . $this->backPath . '../' . substr($tempDir, strlen(PATH_site)) . basename($thumbnailFile) . '" hspace="2" width="70" style="border: solid black 1px;" alt="" /><br />' : ' ') . '</td>
<td nowrap="nowrap"><a href="index.php?SET[function]=tx_impexp&display=' . $presetCfg['uid'] . '">' . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($title, 30)) . '</a> </td>
<td>' . ($presetCfg['public'] ? 'Yes' : ' ') . '</td>
<td>' . ($presetCfg['user_uid'] === $GLOBALS['BE_USER']->user['uid'] ? 'Own' : '[' . $usernames[$presetCfg['user_uid']]['username'] . ']') . '</td>
<td>' . ($configuration['pagetree']['id'] ? $configuration['pagetree']['id'] : ' ') . '</td>
<td>' . htmlspecialchars($configuration['pagetree']['id'] ? \TYPO3\CMS\Backend\Utility\BackendUtility::getRecordPath($configuration['pagetree']['id'], $clause, 20) : '[Single Records]') . '</td>
<td>
<strong>' . htmlspecialchars($configuration['meta']['title']) . '</strong><br />' . htmlspecialchars($configuration['meta']['description']) . ($configuration['meta']['notes'] ? '<br /><br /><strong>Notes:</strong> <em>' . htmlspecialchars($configuration['meta']['notes']) . '</em>' : '') . '
</td>
</tr>';
}
$content = '<table border="0" cellpadding="0" cellspacing="1" class="lrPadding">' . implode('', $opt) . '</table>';
}
}
// Output:
$theOutput .= $this->pObj->doc->spacer(5);
$theOutput .= $this->pObj->doc->section('Export presets', $content, 0, 1);
return $theOutput;
}
示例3: select
/**
* Populates the "object_id" field of a "tx_beacl_acl" record depending on
* whether the field "type" is set to "User" or "Group"
*
* @param array field configuration
* @param object
* @return void
*/
function select(&$PA, $fobj)
{
global $BE_USER;
if (!array_key_exists('row', $PA)) {
return;
}
if (!array_key_exists('type', $PA['row'])) {
return;
}
// Resetting the SELECT field items
$PA['items'] = array(0 => array(0 => '', 1 => ''));
// Get users or groups - The function copies functionality of the method acl_objectSelector()
// of ux_SC_mod_web_perm_index class as for non-admins it returns only:
// 1) Users which are members of the groups of the current user.
// 2) Groups that the current user is a member of.
switch ($PA['row']['type'][0]) {
// In case users shall be returned
case '0':
$items = BackendUtility::getUserNames();
if (!$GLOBALS['BE_USER']->isAdmin()) {
$items = BackendUtility::blindUserNames($items, $BE_USER->userGroupsUID, 1);
}
foreach ($items as $row) {
$PA['items'][] = array(0 => $row['username'], 1 => $row['uid']);
}
break;
// In case groups shall be returned
// In case groups shall be returned
case '1':
$items = BackendUtility::getGroupNames();
if (!$GLOBALS['BE_USER']->isAdmin()) {
$items = BackendUtility::blindGroupNames($items, $BE_USER->userGroupsUID, 1);
}
foreach ($items as $row) {
$PA['items'][] = array(0 => $row['title'], 1 => $row['uid']);
}
break;
default:
return;
}
return;
}
示例4: renderUserSelector
/**
* Generate the user selector element
*
* @param int $page The page id to change the user for
* @param int $ownerUid The page owner uid
* @param string $username The username to display
* @return string The html select element
*/
protected function renderUserSelector($page, $ownerUid, $username = '')
{
$page = (int) $page;
$ownerUid = (int) $ownerUid;
// Get usernames
$beUsers = BackendUtility::getUserNames();
// Owner selector:
$options = '';
// Loop through the users
foreach ($beUsers as $uid => $row) {
$uid = (int) $uid;
$selected = $uid === $ownerUid ? ' selected="selected"' : '';
$options .= '<option value="' . $uid . '"' . $selected . '>' . htmlspecialchars($row['username']) . '</option>';
}
$elementId = 'o_' . $page;
$options = '<option value="0"></option>' . $options;
$selector = '<select name="new_page_owner" id="new_page_owner">' . $options . '</select>';
$saveButton = '<a class="saveowner btn btn-default" data-page="' . $page . '" data-owner="' . $ownerUid . '" data-element-id="' . $elementId . '" title="Change owner">' . $this->iconFactory->getIcon('actions-document-save', Icon::SIZE_SMALL)->render() . '</a>';
$cancelButton = '<a class="restoreowner btn btn-default" data-page="' . $page . '" data-owner="' . $ownerUid . '" data-element-id="' . $elementId . '"' . (!empty($username) ? ' data-username="' . htmlspecialchars($username) . '"' : '') . ' title="Cancel">' . $this->iconFactory->getIcon('actions-document-close', Icon::SIZE_SMALL)->render() . '</a>';
return '<span id="' . $elementId . '">' . $selector . '<span class="btn-group">' . $saveButton . $cancelButton . '</span>' . '</span>';
}
示例5: displayHistory
/**
* Shows the full change log
*
* @return string HTML for list, wrapped in a table.
*/
public function displayHistory()
{
if (empty($this->changeLog)) {
return '';
}
$languageService = $this->getLanguageService();
$lines = array();
$beUserArray = BackendUtility::getUserNames();
$i = 0;
// Traverse changeLog array:
foreach ($this->changeLog as $sysLogUid => $entry) {
// stop after maxSteps
if ($this->maxSteps && $i > $this->maxSteps) {
break;
}
// Show only marked states
if (!$entry['snapshot'] && $this->showMarked) {
continue;
}
$i++;
// Build up single line
$singleLine = array();
// Get user names
$userName = $entry['user'] ? $beUserArray[$entry['user']]['username'] : $languageService->getLL('externalChange');
// Executed by switch-user
if (!empty($entry['originalUser'])) {
$userName .= ' (' . $languageService->getLL('viaUser') . ' ' . $beUserArray[$entry['originalUser']]['username'] . ')';
}
$singleLine['backendUserName'] = htmlspecialchars($userName);
$singleLine['backendUserUid'] = $entry['user'];
// add user name
// Diff link
$image = $this->iconFactory->getIcon('actions-document-history-open', Icon::SIZE_SMALL)->render();
$singleLine['rollbackLink'] = $this->linkPage($image, array('diff' => $sysLogUid));
// remove first link
$singleLine['time'] = htmlspecialchars(BackendUtility::datetime($entry['tstamp']));
// add time
$singleLine['age'] = htmlspecialchars(BackendUtility::calcAge($GLOBALS['EXEC_TIME'] - $entry['tstamp'], $languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.minutesHoursDaysYears')));
// add age
$singleLine['tableUid'] = $this->linkPage($this->generateTitle($entry['tablename'], $entry['recuid']), array('element' => $entry['tablename'] . ':' . $entry['recuid']), '', $languageService->getLL('linkRecordHistory', true));
// add record UID
// Show insert/delete/diff/changed field names
if ($entry['action']) {
// insert or delete of element
$singleLine['action'] = htmlspecialchars($languageService->getLL($entry['action'], true));
} else {
// Display field names instead of full diff
if (!$this->showDiff) {
// Re-write field names with labels
$tmpFieldList = explode(',', $entry['fieldlist']);
foreach ($tmpFieldList as $key => $value) {
$tmp = str_replace(':', '', $languageService->sL(BackendUtility::getItemLabel($entry['tablename'], $value), true));
if ($tmp) {
$tmpFieldList[$key] = $tmp;
} else {
// remove fields if no label available
unset($tmpFieldList[$key]);
}
}
$singleLine['fieldNames'] = htmlspecialchars(implode(',', $tmpFieldList));
} else {
// Display diff
$diff = $this->renderDiff($entry, $entry['tablename']);
$singleLine['differences'] = $diff;
}
}
// Show link to mark/unmark state
if (!$entry['action']) {
if ($entry['snapshot']) {
$title = $languageService->getLL('unmarkState', true);
$image = $this->iconFactory->getIcon('actions-unmarkstate', Icon::SIZE_SMALL)->render();
} else {
$title = $languageService->getLL('markState', true);
$image = $this->iconFactory->getIcon('actions-markstate', Icon::SIZE_SMALL)->render();
}
$singleLine['markState'] = $this->linkPage($image, array('highlight' => $entry['uid']), '', $title);
} else {
$singleLine['markState'] = '';
}
// put line together
$lines[] = $singleLine;
}
$this->view->assign('history', $lines);
if ($this->lastSyslogId) {
$this->view->assign('fullViewLink', $this->linkPage($languageService->getLL('fullView', true), array('diff' => '')));
}
}
示例6: getResponsibleUser
/**
* Get uids of all responsilbe persons for a stage
*
* @param string $stageRespValue Responsible_person value from stage record
* @return string Uid list of responsible be_users
*/
public function getResponsibleUser($stageRespValue)
{
$stageValuesArray = GeneralUtility::trimExplode(',', $stageRespValue, TRUE);
$beuserUidArray = array();
$begroupUidArray = array();
foreach ($stageValuesArray as $uidvalue) {
if (strstr($uidvalue, 'be_users') !== FALSE) {
// Current value is a uid of a be_user record
$beuserUidArray[] = str_replace('be_users_', '', $uidvalue);
} elseif (strstr($uidvalue, 'be_groups') !== FALSE) {
$begroupUidArray[] = str_replace('be_groups_', '', $uidvalue);
} elseif ((int) $uidvalue) {
$beuserUidArray[] = (int) $uidvalue;
}
}
if (!empty($begroupUidArray)) {
$allBeUserArray = BackendUtility::getUserNames();
$begroupUidList = implode(',', $begroupUidArray);
$this->userGroups = array();
$begroupUidArray = $this->fetchGroups($begroupUidList);
foreach ($begroupUidArray as $groupkey => $groupData) {
foreach ($allBeUserArray as $useruid => $userdata) {
if (GeneralUtility::inList($userdata['usergroup_cached_list'], $groupData['uid'])) {
$beuserUidArray[] = $useruid;
}
}
}
}
array_unique($beuserUidArray);
return implode(',', $beuserUidArray);
}
示例7: displayHistory
/**
* Shows the full change log
*
* @return string HTML for list, wrapped in a table.
*/
public function displayHistory()
{
if (empty($this->changeLog)) {
return '';
}
$languageService = $this->getLanguageService();
$lines = array();
// Initialize:
$lines[] = '<thead><tr>
<th>' . $languageService->getLL('rollback', true) . '</th>
<th>' . $languageService->getLL('time', true) . '</th>
<th>' . $languageService->getLL('age', true) . '</th>
<th>' . $languageService->getLL('user', true) . '</th>
<th>' . $languageService->getLL('tableUid', true) . '</th>
<th>' . $languageService->getLL('differences', true) . '</th>
<th> </th>
</tr></thead>';
$beUserArray = BackendUtility::getUserNames();
$i = 0;
/** @var Avatar $avatar */
$avatar = GeneralUtility::makeInstance(Avatar::class);
// Traverse changeLog array:
foreach ($this->changeLog as $sysLogUid => $entry) {
// stop after maxSteps
if ($this->maxSteps && $i > $this->maxSteps) {
break;
}
// Show only marked states
if (!$entry['snapshot'] && $this->showMarked) {
continue;
}
$i++;
// Get user names
$userName = $entry['user'] ? $beUserArray[$entry['user']]['username'] : $languageService->getLL('externalChange', true);
// Build up single line
$singleLine = array();
// Diff link
$image = '<span title="' . $languageService->getLL('sumUpChanges', true) . '">' . $this->iconFactory->getIcon('actions-document-history-open', Icon::SIZE_SMALL)->render() . '</span>';
$singleLine[] = '<span>' . $this->linkPage($image, array('diff' => $sysLogUid)) . '</span>';
// remove first link
$singleLine[] = htmlspecialchars(BackendUtility::datetime($entry['tstamp']));
// add time
$singleLine[] = htmlspecialchars(BackendUtility::calcAge($GLOBALS['EXEC_TIME'] - $entry['tstamp'], $languageService->sL('LLL:EXT:lang/locallang_core.xlf:labels.minutesHoursDaysYears')));
// add age
$userEntry = is_array($beUserArray[$entry['user']]) ? $beUserArray[$entry['user']] : null;
$singleLine[] = $avatar->render($userEntry) . ' ' . htmlspecialchars($userName);
// add user name
$singleLine[] = $this->linkPage($this->generateTitle($entry['tablename'], $entry['recuid']), array('element' => $entry['tablename'] . ':' . $entry['recuid']), '', $languageService->getLL('linkRecordHistory', true));
// add record UID
// Show insert/delete/diff/changed field names
if ($entry['action']) {
// insert or delete of element
$singleLine[] = '<strong>' . htmlspecialchars($languageService->getLL($entry['action'], true)) . '</strong>';
} else {
// Display field names instead of full diff
if (!$this->showDiff) {
// Re-write field names with labels
$tmpFieldList = explode(',', $entry['fieldlist']);
foreach ($tmpFieldList as $key => $value) {
$tmp = str_replace(':', '', $languageService->sl(BackendUtility::getItemLabel($entry['tablename'], $value), true));
if ($tmp) {
$tmpFieldList[$key] = $tmp;
} else {
// remove fields if no label available
unset($tmpFieldList[$key]);
}
}
$singleLine[] = htmlspecialchars(implode(',', $tmpFieldList));
} else {
// Display diff
$diff = $this->renderDiff($entry, $entry['tablename']);
$singleLine[] = $diff;
}
}
// Show link to mark/unmark state
if (!$entry['action']) {
if ($entry['snapshot']) {
$title = $languageService->getLL('unmarkState', true);
$image = $this->iconFactory->getIcon('actions-unmarkstate', Icon::SIZE_SMALL)->render();
} else {
$title = $languageService->getLL('markState', true);
$image = $this->iconFactory->getIcon('actions-markstate', Icon::SIZE_SMALL)->render();
}
$singleLine[] = $this->linkPage($image, array('highlight' => $entry['uid']), '', $title);
} else {
$singleLine[] = '';
}
// put line together
$lines[] = '
<tr>
<td>' . implode('</td><td>', $singleLine) . '</td>
</tr>';
}
// @TODO: introduce Fluid Standalone view and use callout viewHelper
$theCode = '<div class="callout callout-info">' . '<div class="media"><div class="media-left"><span class="fa-stack fa-lg callout-icon"><i class="fa fa-circle fa-stack-2x"></i><i class="fa fa-info fa-stack-1x"></i></span></div>' . '<div class="media-body">' . '<p>' . $languageService->getLL('differenceMsg') . '</p>' . ' <div class="callout-body">' . ' </div></div></div></div>';
//.........这里部分代码省略.........
示例8: simulateUser
/**
* Will make the simulate-user selector if the logged in user is administrator.
* It will also set the GLOBAL(!) BE_USER to the simulated user selected if any (and set $this->OLD_BE_USER to logged in user)
*
* @return void
*/
public function simulateUser()
{
// If admin, allow simulation of another user
$this->simUser = 0;
$this->simulateSelector = '';
unset($this->OLD_BE_USER);
if ($GLOBALS['BE_USER']->isAdmin()) {
$this->simUser = intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('simUser'));
// Make user-selector:
$users = \TYPO3\CMS\Backend\Utility\BackendUtility::getUserNames('username,usergroup,usergroup_cached_list,uid,realName', \TYPO3\CMS\Backend\Utility\BackendUtility::BEenableFields('be_users'));
$opt = array();
foreach ($users as $rr) {
if ($rr['uid'] != $GLOBALS['BE_USER']->user['uid']) {
$opt[] = '<option value="' . $rr['uid'] . '"' . ($this->simUser == $rr['uid'] ? ' selected="selected"' : '') . '>' . htmlspecialchars($rr['username'] . ' (' . $rr['realName'] . ')') . '</option>';
}
}
if (count($opt)) {
$this->simulateSelector = '<select ' . $GLOBALS['TBE_TEMPLATE']->formWidth(20) . ' id="field_simulate" name="simulateUser" onchange="window.location.href=\'' . \TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('user_setup') . '&simUser=\'+this.options[this.selectedIndex].value;"><option></option>' . implode('', $opt) . '</select>';
}
}
// This can only be set if the previous code was executed.
if ($this->simUser > 0) {
// Save old user...
$this->OLD_BE_USER = $GLOBALS['BE_USER'];
unset($GLOBALS['BE_USER']);
// Unset current
// New backend user object
$BE_USER = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Authentication\\BackendUserAuthentication');
$BE_USER->OS = TYPO3_OS;
$BE_USER->setBeUserByUid($this->simUser);
$BE_USER->fetchGroupData();
$BE_USER->backendSetUC();
// Must do this, because unsetting $BE_USER before apparently unsets the reference to the global variable by this name!
$GLOBALS['BE_USER'] = $BE_USER;
}
}
示例9: renderUserSelector
/**
* Generate the user selector element
*
* @param integer $page The page id to change the user for
* @param integer $ownerUid The page owner uid
* @param string $username The username to display
* @return string The html select element
*/
protected function renderUserSelector($page, $ownerUid, $username = '')
{
// Get usernames
$beUsers = BackendUtility::getUserNames();
// Init groupArray
$groups = array();
if (!$GLOBALS['BE_USER']->isAdmin()) {
$beUsers = BackendUtility::blindUserNames($beUsers, $groups, 1);
}
// Owner selector:
$options = '';
// Loop through the users
foreach ($beUsers as $uid => $row) {
$selected = $uid == $ownerUid ? ' selected="selected"' : '';
$options .= '<option value="' . $uid . '"' . $selected . '>' . htmlspecialchars($row['username']) . '</option>';
}
$elementId = 'o_' . $page;
$options = '<option value="0"></option>' . $options;
$selector = '<select name="new_page_owner" id="new_page_owner">' . $options . '</select>';
$saveButton = '<a onclick="WebPermissions.changeOwner(' . $page . ', ' . $ownerUid . ', \'' . $elementId . '\');" title="Change owner">' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('actions-document-save') . '</a>';
$cancelButton = '<a onclick="WebPermissions.restoreOwner(' . $page . ', ' . $ownerUid . ', \'' . ($username == '' ? '<span class=not_set>[not set]</span>' : htmlspecialchars($username)) . '\', \'' . $elementId . '\');" title="Cancel">' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('actions-document-close') . '</a>';
$ret = $selector . $saveButton . $cancelButton;
return $ret;
}
示例10: displayHistory
/**
* Shows the full change log
*
* @return string HTML for list, wrapped in a table.
* @todo Define visibility
*/
public function displayHistory()
{
$lines = array();
// Initialize:
$lines[] = '<thead><tr>
<th> </th>
<th>' . $GLOBALS['LANG']->getLL('time', 1) . '</th>
<th>' . $GLOBALS['LANG']->getLL('age', 1) . '</th>
<th>' . $GLOBALS['LANG']->getLL('user', 1) . '</th>
<th>' . $GLOBALS['LANG']->getLL('tableUid', 1) . '</th>
<th>' . $GLOBALS['LANG']->getLL('differences', 1) . '</th>
<th> </th>
</tr></thead>';
$be_user_array = BackendUtility::getUserNames();
// Traverse changelog array:
if (!$this->changeLog) {
return 0;
}
$i = 0;
foreach ($this->changeLog as $sysLogUid => $entry) {
// stop after maxSteps
if ($i > $this->maxSteps && $this->maxSteps) {
break;
}
// Show only marked states
if (!$entry['snapshot'] && $this->showMarked) {
continue;
}
$i++;
// Get user names
$userName = $entry['user'] ? $be_user_array[$entry['user']]['username'] : $GLOBALS['LANG']->getLL('externalChange', 1);
// Build up single line
$singleLine = array();
// Diff link
$image = IconUtility::getSpriteIcon('actions-view-go-forward', array('title' => $GLOBALS['LANG']->getLL('sumUpChanges', TRUE)));
$singleLine[] = '<span>' . $this->linkPage($image, array('diff' => $sysLogUid)) . '</span>';
// remove first link
$singleLine[] = htmlspecialchars(BackendUtility::datetime($entry['tstamp']));
// add time
$singleLine[] = htmlspecialchars(BackendUtility::calcAge($GLOBALS['EXEC_TIME'] - $entry['tstamp'], $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.minutesHoursDaysYears')));
// add age
$singleLine[] = htmlspecialchars($userName);
// add user name
$singleLine[] = $this->linkPage($this->generateTitle($entry['tablename'], $entry['recuid']), array('element' => $entry['tablename'] . ':' . $entry['recuid']), '', $GLOBALS['LANG']->getLL('linkRecordHistory', 1));
// add record UID
// Show insert/delete/diff/changed field names
if ($entry['action']) {
// insert or delete of element
$singleLine[] = '<strong>' . htmlspecialchars($GLOBALS['LANG']->getLL($entry['action'], 1)) . '</strong>';
} else {
// Display field names instead of full diff
if (!$this->showDiff) {
// Re-write field names with labels
$tmpFieldList = explode(',', $entry['fieldlist']);
foreach ($tmpFieldList as $key => $value) {
$tmp = str_replace(':', '', $GLOBALS['LANG']->sl(BackendUtility::getItemLabel($entry['tablename'], $value), 1));
if ($tmp) {
$tmpFieldList[$key] = $tmp;
} else {
// remove fields if no label available
unset($tmpFieldList[$key]);
}
}
$singleLine[] = htmlspecialchars(implode(',', $tmpFieldList));
} else {
// Display diff
$diff = $this->renderDiff($entry, $entry['tablename']);
$singleLine[] = $diff;
}
}
// Show link to mark/unmark state
if (!$entry['action']) {
if ($entry['snapshot']) {
$image = IconUtility::getSpriteIcon('actions-unmarkstate', array('title' => $GLOBALS['LANG']->getLL('unmarkState', TRUE)), array());
} else {
$image = IconUtility::getSpriteIcon('actions-markstate', array('title' => $GLOBALS['LANG']->getLL('markState', TRUE)), array());
}
$singleLine[] = $this->linkPage($image, array('highlight' => $entry['uid']));
} else {
$singleLine[] = '';
}
// put line together
$lines[] = '
<tr>
<td>' . implode('</td><td>', $singleLine) . '</td>
</tr>';
}
// Finally, put it all together:
$theCode = '
<!--
History (list):
-->
<table class="t3-table" id="typo3-history">
' . implode('', $lines) . '
//.........这里部分代码省略.........
示例11: notEdit
/**
* Showing the permissions in a tree ($this->edit = FALSE)
* (Adding content to internal content variable)
*
* @return void
*/
public function notEdit()
{
// Get usernames and groupnames: The arrays we get in return contains only 1) users which are members of the groups of the current user, 2) groups that the current user is member of
$beGroupKeys = $GLOBALS['BE_USER']->userGroupsUID;
$beUserArray = \TYPO3\CMS\Backend\Utility\BackendUtility::getUserNames();
if (!$GLOBALS['BE_USER']->isAdmin()) {
$beUserArray = \TYPO3\CMS\Backend\Utility\BackendUtility::blindUserNames($beUserArray, $beGroupKeys, 0);
}
$beGroupArray = \TYPO3\CMS\Backend\Utility\BackendUtility::getGroupNames();
if (!$GLOBALS['BE_USER']->isAdmin()) {
$beGroupArray = \TYPO3\CMS\Backend\Utility\BackendUtility::blindGroupNames($beGroupArray, $beGroupKeys, 0);
}
// Length of strings:
$tLen = $this->MOD_SETTINGS['mode'] == 'perms' ? 20 : 30;
// Selector for depth:
$code = $GLOBALS['LANG']->getLL('Depth') . ': ';
$code .= \TYPO3\CMS\Backend\Utility\BackendUtility::getFuncMenu($this->id, 'SET[depth]', $this->MOD_SETTINGS['depth'], $this->MOD_MENU['depth']);
$this->content .= $this->doc->section('', $code);
$this->content .= $this->doc->spacer(5);
// Initialize tree object:
$tree = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Tree\\View\\PageTreeView');
$tree->init('AND ' . $this->perms_clause);
$tree->addField('perms_user', 1);
$tree->addField('perms_group', 1);
$tree->addField('perms_everybody', 1);
$tree->addField('perms_userid', 1);
$tree->addField('perms_groupid', 1);
$tree->addField('hidden');
$tree->addField('fe_group');
$tree->addField('starttime');
$tree->addField('endtime');
$tree->addField('editlock');
// Creating top icon; the current page
$HTML = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForRecord('pages', $this->pageinfo);
$tree->tree[] = array('row' => $this->pageinfo, 'HTML' => $HTML);
// Create the tree from $this->id:
$tree->getTree($this->id, $this->MOD_SETTINGS['depth'], '');
// Make header of table:
$code = '';
if ($this->MOD_SETTINGS['mode'] == 'perms') {
$code .= '
<tr class="t3-row-header">
<td colspan="2"> </td>
<td><img' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg($GLOBALS['BACK_PATH'], 'gfx/line.gif', 'width="5" height="16"') . ' alt="" /></td>
<td>' . $GLOBALS['LANG']->getLL('Owner', TRUE) . '</td>
<td><img' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg($GLOBALS['BACK_PATH'], 'gfx/line.gif', 'width="5" height="16"') . ' alt="" /></td>
<td align="center">' . $GLOBALS['LANG']->getLL('Group', TRUE) . '</td>
<td><img' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg($GLOBALS['BACK_PATH'], 'gfx/line.gif', 'width="5" height="16"') . ' alt="" /></td>
<td align="center">' . $GLOBALS['LANG']->getLL('Everybody', TRUE) . '</td>
<td><img' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg($GLOBALS['BACK_PATH'], 'gfx/line.gif', 'width="5" height="16"') . ' alt="" /></td>
<td align="center">' . $GLOBALS['LANG']->getLL('EditLock', TRUE) . '</td>
</tr>
';
} else {
$code .= '
<tr class="t3-row-header">
<td colspan="2"> </td>
<td><img' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg($GLOBALS['BACK_PATH'], 'gfx/line.gif', 'width="5" height="16"') . ' alt="" /></td>
<td align="center" nowrap="nowrap">' . $GLOBALS['LANG']->getLL('User', TRUE) . ': ' . htmlspecialchars($GLOBALS['BE_USER']->user['username']) . '</td>
' . (!$GLOBALS['BE_USER']->isAdmin() ? '<td><img' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg($GLOBALS['BACK_PATH'], 'gfx/line.gif', 'width="5" height="16"') . ' alt="" /></td>
<td align="center">' . $GLOBALS['LANG']->getLL('EditLock', TRUE) . '</td>' : '') . '
</tr>';
}
// Traverse tree:
foreach ($tree->tree as $data) {
$cells = array();
$pageId = $data['row']['uid'];
// Background colors:
$bgCol = $this->lastEdited == $pageId ? ' class="bgColor-20"' : '';
$lE_bgCol = $bgCol;
// User/Group names:
$userName = $beUserArray[$data['row']['perms_userid']] ? $beUserArray[$data['row']['perms_userid']]['username'] : ($data['row']['perms_userid'] ? $data['row']['perms_userid'] : '');
if ($data['row']['perms_userid'] && !$beUserArray[$data['row']['perms_userid']]) {
$userName = \TYPO3\CMS\Perm\Controller\PermissionAjaxController::renderOwnername($pageId, $data['row']['perms_userid'], htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($userName, 20)), FALSE);
} else {
$userName = \TYPO3\CMS\Perm\Controller\PermissionAjaxController::renderOwnername($pageId, $data['row']['perms_userid'], htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($userName, 20)));
}
$groupName = $beGroupArray[$data['row']['perms_groupid']] ? $beGroupArray[$data['row']['perms_groupid']]['title'] : ($data['row']['perms_groupid'] ? $data['row']['perms_groupid'] : '');
if ($data['row']['perms_groupid'] && !$beGroupArray[$data['row']['perms_groupid']]) {
$groupName = \TYPO3\CMS\Perm\Controller\PermissionAjaxController::renderGroupname($pageId, $data['row']['perms_groupid'], htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($groupName, 20)), FALSE);
} else {
$groupName = \TYPO3\CMS\Perm\Controller\PermissionAjaxController::renderGroupname($pageId, $data['row']['perms_groupid'], htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($groupName, 20)));
}
// Seeing if editing of permissions are allowed for that page:
$editPermsAllowed = $data['row']['perms_userid'] == $GLOBALS['BE_USER']->user['uid'] || $GLOBALS['BE_USER']->isAdmin();
// First column:
$cellAttrib = $data['row']['_CSSCLASS'] ? ' class="' . $data['row']['_CSSCLASS'] . '"' : '';
$cells[] = '
<td align="left" nowrap="nowrap"' . ($cellAttrib ? $cellAttrib : $bgCol) . '>' . $data['HTML'] . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($data['row']['title'], $tLen)) . ' </td>';
// "Edit permissions" -icon
if ($editPermsAllowed && $pageId) {
$aHref = \TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('web_perm') . '&mode=' . $this->MOD_SETTINGS['mode'] . '&depth=' . $this->MOD_SETTINGS['depth'] . '&id=' . ($data['row']['_ORIG_uid'] ? $data['row']['_ORIG_uid'] : $pageId) . '&return_id=' . $this->id . '&edit=1';
$cells[] = '
<td' . $bgCol . '><a href="' . htmlspecialchars($aHref) . '" title="' . $GLOBALS['LANG']->getLL('ch_permissions', 1) . '">' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('actions-document-open') . '</a></td>';
//.........这里部分代码省略.........
示例12: getBackendUsers
/**
* Gets backend user records from a given list of ids.
*
* @param string $backendUserList
* @return array
*/
public function getBackendUsers($backendUserList)
{
if (empty($backendUserList)) {
return array();
}
$backendUserList = $this->getDatabaseConnection()->cleanIntList($backendUserList);
$backendUsers = BackendUtility::getUserNames('username, uid, email, realName', 'AND uid IN (' . $backendUserList . ')' . BackendUtility::BEenableFields('be_users'));
if (empty($backendUsers)) {
$backendUsers = array();
}
return $backendUsers;
}
示例13: getPageInfoBox
/**
* Creates an info-box for the current page (identified by input record).
*
* @param array $rec Page record
* @param boolean $edit If set, there will be shown an edit icon, linking to editing of the page properties.
* @return string HTML for the box.
* @deprecated and unused since 6.0, will be removed two versions later
* @todo Define visibility
*/
public function getPageInfoBox($rec, $edit = 0)
{
\TYPO3\CMS\Core\Utility\GeneralUtility::logDeprecatedFunction();
// If editing of the page properties is allowed:
if ($edit) {
$params = '&edit[pages][' . $rec['uid'] . ']=edit';
$editIcon = '<a href="#" onclick="' . htmlspecialchars(\TYPO3\CMS\Backend\Utility\BackendUtility::editOnClick($params, $this->backPath)) . '" title="' . $GLOBALS['LANG']->getLL('edit', TRUE) . '">' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('actions-document-open') . '</a>';
} else {
$editIcon = $this->noEditIcon('noEditPage');
}
// Setting page icon, link, title:
$outPutContent = \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForRecord('pages', $rec, array('title' => \TYPO3\CMS\Backend\Utility\BackendUtility::titleAttribForPages($rec))) . $editIcon . ' ' . htmlspecialchars($rec['title']);
// Init array where infomation is accumulated as label/value pairs.
$lines = array();
// Owner user/group:
if ($this->pI_showUser) {
// User:
$users = \TYPO3\CMS\Backend\Utility\BackendUtility::getUserNames('username,usergroup,usergroup_cached_list,uid,realName');
$groupArray = explode(',', $GLOBALS['BE_USER']->user['usergroup_cached_list']);
$users = \TYPO3\CMS\Backend\Utility\BackendUtility::blindUserNames($users, $groupArray);
$lines[] = array($GLOBALS['LANG']->getLL('pI_crUser') . ':', htmlspecialchars($users[$rec['cruser_id']]['username']) . ' (' . $users[$rec['cruser_id']]['realName'] . ')');
}
// Created:
$lines[] = array($GLOBALS['LANG']->getLL('pI_crDate') . ':', \TYPO3\CMS\Backend\Utility\BackendUtility::datetime($rec['crdate']) . ' (' . \TYPO3\CMS\Backend\Utility\BackendUtility::calcAge($GLOBALS['EXEC_TIME'] - $rec['crdate'], $this->agePrefixes) . ')');
// Last change:
$lines[] = array($GLOBALS['LANG']->getLL('pI_lastChange') . ':', \TYPO3\CMS\Backend\Utility\BackendUtility::datetime($rec['tstamp']) . ' (' . \TYPO3\CMS\Backend\Utility\BackendUtility::calcAge($GLOBALS['EXEC_TIME'] - $rec['tstamp'], $this->agePrefixes) . ')');
// Last change of content:
if ($rec['SYS_LASTCHANGED']) {
$lines[] = array($GLOBALS['LANG']->getLL('pI_lastChangeContent') . ':', \TYPO3\CMS\Backend\Utility\BackendUtility::datetime($rec['SYS_LASTCHANGED']) . ' (' . \TYPO3\CMS\Backend\Utility\BackendUtility::calcAge($GLOBALS['EXEC_TIME'] - $rec['SYS_LASTCHANGED'], $this->agePrefixes) . ')');
}
// Spacer:
$lines[] = '';
// Display contents of certain page fields, if any value:
$dfields = explode(',', 'alias,target,hidden,starttime,endtime,fe_group,no_cache,cache_timeout,newUntil,lastUpdated,subtitle,keywords,description,abstract,author,author_email');
foreach ($dfields as $fV) {
if ($rec[$fV]) {
$lines[] = array($GLOBALS['LANG']->sL(\TYPO3\CMS\Backend\Utility\BackendUtility::getItemLabel('pages', $fV)), \TYPO3\CMS\Backend\Utility\BackendUtility::getProcessedValue('pages', $fV, $rec[$fV]));
}
}
// Finally, wrap the elements in the $lines array in table cells/rows
foreach ($lines as $fV) {
if (is_array($fV)) {
if (!$fV[2]) {
$fV[1] = htmlspecialchars($fV[1]);
}
$out .= '
<tr>
<td class="bgColor4" nowrap="nowrap"><strong>' . htmlspecialchars($fV[0]) . ' </strong></td>
<td class="bgColor4">' . $fV[1] . '</td>
</tr>';
} else {
$out .= '
<tr>
<td colspan="2"><img src="clear.gif" width="1" height="3" alt="" /></td>
</tr>';
}
}
// Wrap table tags around...
$outPutContent .= '
<!--
Page info box:
-->
<table border="0" cellpadding="0" cellspacing="1" id="typo3-page-info">
' . $out . '
</table>';
// ... and return it.
return $outPutContent;
}
示例14: simulateUser
/**
* Will make the simulate-user selector if the logged in user is administrator.
* It will also set the GLOBAL(!) BE_USER to the simulated user selected if any (and set $this->OLD_BE_USER to logged in user)
*
* @return void
*/
public function simulateUser()
{
// If admin, allow simulation of another user
$this->simUser = 0;
$this->simulateSelector = '';
unset($this->OLD_BE_USER);
if ($this->getBackendUser()->isAdmin()) {
$this->simUser = (int) GeneralUtility::_GP('simUser');
// Make user-selector:
$db = $this->getDatabaseConnection();
$where = 'AND username NOT LIKE ' . $db->fullQuoteStr($db->escapeStrForLike('_cli_', 'be_users') . '%', 'be_users');
$where .= ' AND uid <> ' . (int) $this->getBackendUser()->user['uid'] . BackendUtility::BEenableFields('be_users');
$users = BackendUtility::getUserNames('username,usergroup,usergroup_cached_list,uid,realName', $where);
$opt = array();
foreach ($users as $rr) {
$label = htmlspecialchars($rr['username'] . ($rr['realName'] ? ' (' . $rr['realName'] . ')' : ''));
$opt[] = '<option value="' . $rr['uid'] . '"' . ($this->simUser == $rr['uid'] ? ' selected="selected"' : '') . '>' . $label . '</option>';
}
if (!empty($opt)) {
$this->simulateSelector = '<select id="field_simulate" name="simulateUser" onchange="window.location.href=' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('user_setup') . '&simUser=') . '+this.options[this.selectedIndex].value;"><option></option>' . implode('', $opt) . '</select>';
}
}
// This can only be set if the previous code was executed.
if ($this->simUser > 0) {
// Save old user...
$this->OLD_BE_USER = $this->getBackendUser();
unset($GLOBALS['BE_USER']);
// Unset current
// New backend user object
$BE_USER = GeneralUtility::makeInstance(BackendUserAuthentication::class);
$BE_USER->setBeUserByUid($this->simUser);
$BE_USER->fetchGroupData();
$BE_USER->backendSetUC();
// Must do this, because unsetting $BE_USER before apparently unsets the reference to the global variable by this name!
$GLOBALS['BE_USER'] = $BE_USER;
}
}
示例15: createUserAndGroupListForSelectOptions
/**
* Create options for the user / group drop down.
* This is not moved to a repository by intention to not mix up this 'meta' data
* with real repository work
*
* @return array Key is the option name, value its label
*/
protected function createUserAndGroupListForSelectOptions()
{
$userGroupArray = array();
// Two meta entries: 'all' and 'self'
$userGroupArray[0] = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('allUsers', 'Belog');
$userGroupArray[-1] = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('self', 'Belog');
// List of groups, key is gr-'uid'
$groups = \TYPO3\CMS\Backend\Utility\BackendUtility::getGroupNames();
foreach ($groups as $group) {
$userGroupArray['gr-' . $group['uid']] = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('group', 'Belog') . ' ' . $group['title'];
}
// List of users, key is us-'uid'
$users = \TYPO3\CMS\Backend\Utility\BackendUtility::getUserNames();
foreach ($users as $user) {
$userGroupArray['us-' . $user['uid']] = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('user', 'Belog') . ' ' . $user['username'];
}
return $userGroupArray;
}