本文整理汇总了PHP中TYPO3\CMS\Backend\Template\DocumentTemplate::getContextMenuCode方法的典型用法代码示例。如果您正苦于以下问题:PHP DocumentTemplate::getContextMenuCode方法的具体用法?PHP DocumentTemplate::getContextMenuCode怎么用?PHP DocumentTemplate::getContextMenuCode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TYPO3\CMS\Backend\Template\DocumentTemplate
的用法示例。
在下文中一共展示了DocumentTemplate::getContextMenuCode方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: init
/**
* Constructor, initializing internal variables.
*
* @return void
*/
public function init()
{
$lang = $this->getLanguageService();
$lang->includeLLFile('EXT:lang/locallang_misc.xlf');
$LOCAL_LANG_orig = $GLOBALS['LOCAL_LANG'];
$lang->includeLLFile('EXT:cms/layout/locallang_db_new_content_el.xlf');
\TYPO3\CMS\Core\Utility\ArrayUtility::mergeRecursiveWithOverrule($LOCAL_LANG_orig, $GLOBALS['LOCAL_LANG']);
$GLOBALS['LOCAL_LANG'] = $LOCAL_LANG_orig;
// Setting internal vars:
$this->id = (int) GeneralUtility::_GP('id');
$this->sys_language = (int) GeneralUtility::_GP('sys_language_uid');
$this->R_URI = GeneralUtility::sanitizeLocalUrl(GeneralUtility::_GP('returnUrl'));
$this->colPos = GeneralUtility::_GP('colPos') === NULL ? NULL : (int) GeneralUtility::_GP('colPos');
$this->uid_pid = (int) GeneralUtility::_GP('uid_pid');
$this->MCONF['name'] = 'xMOD_db_new_content_el';
$this->modTSconfig = BackendUtility::getModTSconfig($this->id, 'mod.wizards.newContentElement');
$config = BackendUtility::getPagesTSconfig($this->id);
$this->config = $config['mod.']['wizards.']['newContentElement.'];
// Starting the document template object:
$this->doc = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class);
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->doc->setModuleTemplate('EXT:backend/Resources/Private/Templates/db_new_content_el.html');
$this->doc->JScode = '';
$this->doc->form = '<form action="" name="editForm"><input type="hidden" name="defValues" value="" />';
// Setting up the context sensitive menu:
$this->doc->getContextMenuCode();
// Getting the current page and receiving access information (used in main())
$perms_clause = $this->getBackendUser()->getPagePermsClause(1);
$this->pageInfo = BackendUtility::readPageAccess($this->id, $perms_clause);
$this->access = is_array($this->pageInfo) ? 1 : 0;
}
示例2: initPage
/**
* initialization for the visual parts of the class
* Use template rendering only if this is a non-AJAX call
*
* @return void
*/
public function initPage()
{
// Setting highlight mode:
$this->doHighlight = !$GLOBALS['BE_USER']->getTSConfigVal('options.pageTree.disableTitleHighlight');
// Create template object:
$this->doc = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->doc->setModuleTemplate('EXT:backend/Resources/Private/Templates/alt_file_navframe.html');
$this->doc->showFlashMessages = FALSE;
// Adding javascript code for AJAX (prototype), drag&drop and the filetree as well as the click menu code
$this->doc->getDragDropCode('folders');
$this->doc->getContextMenuCode();
// Setting JavaScript for menu.
$this->doc->JScode .= $this->doc->wrapScriptTags(($this->currentSubScript ? 'top.currentSubScript=unescape("' . rawurlencode($this->currentSubScript) . '");' : '') . '
// setting prefs for foldertree
Tree.ajaxID = "SC_alt_file_navframe::expandCollapse";
// Function, loading the list frame from navigation tree:
function jumpTo(id, linkObj, highlightID, bank) {
var theUrl = top.TS.PATH_typo3 + top.currentSubScript ;
if (theUrl.indexOf("?") != -1) {
theUrl += "&id=" + id
} else {
theUrl += "?id=" + id
}
top.fsMod.currentBank = bank;
top.TYPO3.Backend.ContentContainer.setUrl(theUrl);
' . ($this->doHighlight ? 'Tree.highlightActiveItem("file", highlightID + "_" + bank);' : '') . '
if (linkObj) { linkObj.blur(); }
return false;
}
' . ($this->cMR ? ' jumpTo(top.fsMod.recentIds[\'file\'],\'\');' : ''));
}
示例3: init
/**
* Constructor, initializing internal variables.
*
* @return void
* @todo Define visibility
*/
public function init()
{
// Setting class files to include:
if (is_array($GLOBALS['TBE_MODULES_EXT']['xMOD_db_new_content_el']['addElClasses'])) {
$this->include_once = array_merge($this->include_once, $GLOBALS['TBE_MODULES_EXT']['xMOD_db_new_content_el']['addElClasses']);
}
// Setting internal vars:
$this->id = (int) GeneralUtility::_GP('id');
$this->sys_language = (int) GeneralUtility::_GP('sys_language_uid');
$this->R_URI = GeneralUtility::sanitizeLocalUrl(GeneralUtility::_GP('returnUrl'));
$this->colPos = GeneralUtility::_GP('colPos') === NULL ? NULL : (int) GeneralUtility::_GP('colPos');
$this->uid_pid = (int) GeneralUtility::_GP('uid_pid');
$this->MCONF['name'] = 'xMOD_db_new_content_el';
$this->modTSconfig = BackendUtility::getModTSconfig($this->id, 'mod.wizards.newContentElement');
$config = BackendUtility::getPagesTSconfig($this->id);
$this->config = $config['mod.']['wizards.']['newContentElement.'];
// Starting the document template object:
$this->doc = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->doc->setModuleTemplate('EXT:backend/Resources/Private/Templates/db_new_content_el.html');
$this->doc->JScode = '';
$this->doc->form = '<form action="" name="editForm"><input type="hidden" name="defValues" value="" />';
// Setting up the context sensitive menu:
$this->doc->getContextMenuCode();
// Getting the current page and receiving access information (used in main())
$perms_clause = $GLOBALS['BE_USER']->getPagePermsClause(1);
$this->pageinfo = BackendUtility::readPageAccess($this->id, $perms_clause);
$this->access = is_array($this->pageinfo) ? 1 : 0;
}
示例4: main
/**
* Initialize module header etc and call extObjContent function
*
* @return void
*/
public function main()
{
// Access check...
// The page will show only if there is a valid page and if this page may be viewed by the user
$this->pageinfo = BackendUtility::readPageAccess($this->id, $this->perms_clause);
$access = is_array($this->pageinfo);
// Template markers
$markers = array('CSH' => '', 'FUNC_MENU' => '', 'CONTENT' => '');
$this->doc = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class);
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->doc->setModuleTemplate('EXT:func/Resources/Private/Templates/func.html');
// Main
if ($this->id && $access) {
// JavaScript
$this->doc->postCode = $this->doc->wrapScriptTags('if (top.fsMod) top.fsMod.recentIds["web"] = ' . (int) $this->id . ';');
// Setting up the context sensitive menu:
$this->doc->getContextMenuCode();
$this->doc->form = '<form action="' . htmlspecialchars(BackendUtility::getModuleUrl('web_func')) . '" method="post"><input type="hidden" name="id" value="' . htmlspecialchars($this->id) . '" />';
$vContent = $this->doc->getVersionSelector($this->id, TRUE);
if ($vContent) {
$this->content .= $this->doc->section('', $vContent);
}
$this->extObjContent();
// Setting up the buttons and markers for docheader
$docHeaderButtons = $this->getButtons();
$markers['CSH'] = $docHeaderButtons['csh'];
$markers['FUNC_MENU'] = BackendUtility::getFuncMenu($this->id, 'SET[function]', $this->MOD_SETTINGS['function'], $this->MOD_MENU['function']);
$markers['CONTENT'] = $this->content;
} else {
// If no access or if ID == zero
$title = $this->getLanguageService()->getLL('title');
$message = $this->getLanguageService()->getLL('clickAPage_content');
$view = GeneralUtility::makeInstance(StandaloneView::class);
$view->setTemplatePathAndFilename(GeneralUtility::getFileAbsFileName('EXT:func/Resources/Private/Templates/InfoBox.html'));
$view->assignMultiple(array('title' => $title, 'message' => $message, 'state' => InfoboxViewHelper::STATE_INFO));
$this->content = $view->render();
// Setting up the buttons and markers for docheader
$docHeaderButtons = $this->getButtons();
$markers['CSH'] = $docHeaderButtons['csh'];
$markers['CONTENT'] = $this->content;
}
// Build the <body> for the module
$this->content = $this->doc->moduleBody($this->pageinfo, $docHeaderButtons, $markers);
// Renders the module page
$this->content = $this->doc->render($this->getLanguageService()->getLL('title'), $this->content);
}
示例5: main
/**
* Initialize module header etc and call extObjContent function
*
* @return void
*/
public function main()
{
// Access check...
// The page will show only if there is a valid page and if this page may be viewed by the user
$this->pageinfo = BackendUtility::readPageAccess($this->id, $this->perms_clause);
$access = is_array($this->pageinfo);
if ($this->id && $access || $GLOBALS['BE_USER']->user['admin'] && !$this->id) {
$this->CALC_PERMS = $GLOBALS['BE_USER']->calcPerms($this->pageinfo);
if ($GLOBALS['BE_USER']->user['admin'] && !$this->id) {
$this->pageinfo = array('title' => '[root-level]', 'uid' => 0, 'pid' => 0);
}
$this->doc = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->doc->setModuleTemplate('EXT:info/Resources/Private/Templates/info.html');
$this->doc->tableLayout = array('0' => array('0' => array('<td valign="top"><strong>', '</strong></td>'), 'defCol' => array('<td><img src="' . $this->doc->backPath . 'clear.gif" width="10" height="1" alt="" /></td><td valign="top"><strong>', '</strong></td>')), 'defRow' => array('0' => array('<td valign="top">', '</td>'), 'defCol' => array('<td><img src="' . $this->doc->backPath . 'clear.gif" width="10" height="1" alt="" /></td><td valign="top">', '</td>')));
// JavaScript
$this->doc->postCode = $this->doc->wrapScriptTags('if (top.fsMod) top.fsMod.recentIds["web"] = ' . (int) $this->id . ';');
// Setting up the context sensitive menu:
$this->doc->getContextMenuCode();
$this->doc->form = '<form action="' . htmlspecialchars(BackendUtility::getModuleUrl('web_info')) . '" method="post" name="webinfoForm">';
$vContent = $this->doc->getVersionSelector($this->id, 1);
if ($vContent) {
$this->content .= $this->doc->section('', $vContent);
}
$this->extObjContent();
// Setting up the buttons and markers for docheader
$docHeaderButtons = $this->getButtons();
$markers = array('CSH' => $docHeaderButtons['csh'], 'FUNC_MENU' => BackendUtility::getFuncMenu($this->id, 'SET[function]', $this->MOD_SETTINGS['function'], $this->MOD_MENU['function']), 'CONTENT' => $this->content);
// Build the <body> for the module
$this->content = $this->doc->moduleBody($this->pageinfo, $docHeaderButtons, $markers);
} else {
// If no access or if ID == zero
$this->doc = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->content = $this->doc->header($GLOBALS['LANG']->getLL('title'));
$this->content .= $this->doc->spacer(5);
$this->content .= $this->doc->spacer(10);
}
// Renders the module page
$this->content = $this->doc->render($GLOBALS['LANG']->getLL('title'), $this->content);
}
示例6: initPage
/**
* Initialization for the visual parts of the class
* Use template rendering only if this is a non-AJAX call
*
* @return void
*/
public function initPage()
{
// Setting highlight mode:
$this->doHighlight = !$GLOBALS['BE_USER']->getTSConfigVal('options.pageTree.disableTitleHighlight');
// If highlighting is active, define the CSS class for the active item depending on the workspace
if ($this->doHighlight) {
$hlClass = $GLOBALS['BE_USER']->workspace === 0 ? 'active' : 'active active-ws wsver' . $GLOBALS['BE_USER']->workspace;
}
// Create template object:
$this->doc = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->doc->setModuleTemplate('EXT:backend/Resources/Private/Templates/alt_db_navframe.html');
$this->doc->showFlashMessages = FALSE;
// Get HTML-Template
// Adding javascript code for AJAX (prototype), drag&drop and the pagetree as well as the click menu code
$this->doc->getDragDropCode('pages');
$this->doc->getContextMenuCode();
/** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */
$pageRenderer = $this->doc->getPageRenderer();
$pageRenderer->loadScriptaculous('effects');
$pageRenderer->loadExtJS();
if ($this->hasFilterBox) {
$pageRenderer->addJsFile('sysext/backend/Resources/Public/JavaScript/pagetreefiltermenu.js');
}
$this->doc->JScode .= $this->doc->wrapScriptTags(($this->currentSubScript ? 'top.currentSubScript=unescape("' . rawurlencode($this->currentSubScript) . '");' : '') . '
// setting prefs for pagetree and drag & drop
' . ($this->doHighlight ? 'Tree.highlightClass = "' . $hlClass . '";' : '') . '
// Function, loading the list frame from navigation tree:
function jumpTo(id, linkObj, highlightID, bank) { //
var theUrl = top.TS.PATH_typo3 + top.currentSubScript ;
if (theUrl.indexOf("?") != -1) {
theUrl += "&id=" + id
} else {
theUrl += "?id=" + id
}
top.fsMod.currentBank = bank;
top.TYPO3.Backend.ContentContainer.setUrl(theUrl);
' . ($this->doHighlight ? 'Tree.highlightActiveItem("web", highlightID + "_" + bank);' : '') . '
if (linkObj) { linkObj.blur(); }
return false;
}
' . ($this->cMR ? 'jumpTo(top.fsMod.recentIds[\'web\'],\'\');' : '') . ($this->hasFilterBox ? 'var TYPO3PageTreeFilter = new PageTreeFilter();' : '') . '
');
$this->doc->bodyTagId = 'typo3-pagetree';
}
示例7: initPage
/**
* Initialization for the visual parts of the class
* Use template rendering only if this is a non-AJAX call
*
* @return void
*/
public function initPage()
{
// Setting highlight mode:
$doHighlight = !$this->getBackendUser()->getTSConfigVal('options.pageTree.disableTitleHighlight');
// Create template object:
$this->doc = GeneralUtility::makeInstance(DocumentTemplate::class);
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->doc->setModuleTemplate('EXT:backend/Resources/Private/Templates/alt_db_navframe.html');
$this->doc->showFlashMessages = FALSE;
// Get HTML-Template
// Adding javascript for drag & drop activation and highlighting
$dragDropCode = 'Tree.registerDragDropHandlers();';
// If highlighting is active, define the CSS class for the active item depending on the workspace
if ($doHighlight) {
$hlClass = $this->getBackendUser()->workspace === 0 ? 'active' : 'active active-ws wsver' . $this->getBackendUser()->workspace;
$dragDropCode .= '
Tree.highlightClass = "' . $hlClass . '";
Tree.highlightActiveItem("",top.fsMod.navFrameHighlightedID["web"]);';
}
// Adding javascript code for drag&drop and the pagetree as well as the click menu code
$this->doc->getDragDropCode('pages', $dragDropCode);
$this->doc->getContextMenuCode();
/** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */
$pageRenderer = $this->doc->getPageRenderer();
$pageRenderer->loadExtJS();
$this->doc->JScode .= $this->doc->wrapScriptTags(($this->currentSubScript ? 'top.currentSubScript=unescape("' . rawurlencode($this->currentSubScript) . '");' : '') . '
// Function, loading the list frame from navigation tree:
function jumpTo(id, linkObj, highlightID, bank) { //
var theUrl = top.currentSubScript ;
if (theUrl.indexOf("?") != -1) {
theUrl += "&id=" + id
} else {
theUrl += "?id=" + id
}
top.fsMod.currentBank = bank;
top.TYPO3.Backend.ContentContainer.setUrl(theUrl);
' . ($doHighlight ? 'Tree.highlightActiveItem("web", highlightID + "_" + bank);' : '') . '
if (linkObj) { linkObj.blur(); }
return false;
}
' . ($this->cMR ? 'jumpTo(top.fsMod.recentIds[\'web\'],\'\');' : '') . '
');
$this->doc->bodyTagId = 'typo3-pagetree';
}
示例8: initPage
/**
* initialization for the visual parts of the class
* Use template rendering only if this is a non-AJAX call
*
* @return void
*/
public function initPage()
{
// Setting highlight mode:
$this->doHighlight = !$this->getBackendUser()->getTSConfigVal('options.pageTree.disableTitleHighlight');
// Create template object:
$this->doc = GeneralUtility::makeInstance(DocumentTemplate::class);
$this->doc->bodyTagId = 'ext-backend-Modules-FileSystemNavigationFrame-index-php';
$this->doc->setModuleTemplate('EXT:backend/Resources/Private/Templates/alt_file_navframe.html');
$this->doc->showFlashMessages = false;
// Adding javascript code for drag&drop and the filetree as well as the click menu code
$dragDropCode = '
Tree.ajaxID = "sc_alt_file_navframe_expandtoggle";
Tree.registerDragDropHandlers()';
if ($this->doHighlight) {
$hlClass = $this->getBackendUser()->workspace === 0 ? 'active' : 'active active-ws wsver' . $GLOBALS['BE_USER']->workspace;
$dragDropCode .= '
Tree.highlightClass = "' . $hlClass . '";
Tree.highlightActiveItem("", top.fsMod.navFrameHighlightedID["file"]);
';
}
// Adding javascript for drag & drop activation and highlighting
$this->doc->getDragDropCode('folders', $dragDropCode);
$this->doc->getContextMenuCode();
// Setting JavaScript for menu.
$this->doc->JScode .= $this->doc->wrapScriptTags(($this->currentSubScript ? 'top.currentSubScript=unescape("' . rawurlencode($this->currentSubScript) . '");' : '') . '
// Function, loading the list frame from navigation tree:
function jumpTo(id, linkObj, highlightID, bank) {
var theUrl = top.currentSubScript;
if (theUrl.indexOf("?") != -1) {
theUrl += "&id=" + id
} else {
theUrl += "?id=" + id
}
top.fsMod.currentBank = bank;
top.TYPO3.Backend.ContentContainer.setUrl(theUrl);
' . ($this->doHighlight ? 'Tree.highlightActiveItem("file", highlightID + "_" + bank);' : '') . '
if (linkObj) { linkObj.blur(); }
return false;
}
' . ($this->cMR ? ' jumpTo(top.fsMod.recentIds[\'file\'],\'\');' : ''));
}
示例9: init
/**
* Initialization of the class
*
* @return void
*/
public function init()
{
// Setting GPvars:
$this->id = intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('id'));
$this->edit = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('edit');
$this->return_id = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('return_id');
$this->lastEdited = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('lastEdited');
// Module name;
$this->MCONF = $GLOBALS['MCONF'];
// Page select clause:
$this->perms_clause = $GLOBALS['BE_USER']->getPagePermsClause(1);
// Initializing document template object:
$this->doc = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->doc->setModuleTemplate('templates/perm.html');
$this->doc->form = '<form action="' . $GLOBALS['BACK_PATH'] . 'tce_db.php" method="post" name="editform">';
$this->doc->loadJavascriptLib('../t3lib/jsfunc.updateform.js');
$this->doc->getPageRenderer()->loadPrototype();
$this->doc->loadJavascriptLib(\TYPO3\CMS\Core\Extension\ExtensionManager::extRelPath('perm') . 'mod1/perm.js');
// Setting up the context sensitive menu:
$this->doc->getContextMenuCode();
// Set up menus:
$this->menuConfig();
}
示例10: renderListContent
//.........这里部分代码省略.........
if ($this->MOD_SETTINGS['function'] == 4) {
// Grid view
$dblist->tt_contentConfig['showAsGrid'] = 1;
}
// Setting up the tt_content columns to show:
if (is_array($GLOBALS['TCA']['tt_content']['columns']['colPos']['config']['items'])) {
$colList = array();
$tcaItems = GeneralUtility::callUserFunction('TYPO3\\CMS\\Backend\\View\\BackendLayoutView->getColPosListItemsParsed', $this->id, $this);
foreach ($tcaItems as $temp) {
$colList[] = $temp[1];
}
} else {
// ... should be impossible that colPos has no array. But this is the fallback should it make any sense:
$colList = array('1', '0', '2', '3');
}
if ($this->colPosList !== '') {
$colList = array_intersect(GeneralUtility::intExplode(',', $this->colPosList), $colList);
}
// If only one column found, display the single-column view.
if (count($colList) === 1 && !$this->MOD_SETTINGS['function'] === 4) {
// Boolean: If set, the content of column(s) $this->tt_contentConfig['showSingleCol']
// is shown in the total width of the page
$dblist->tt_contentConfig['single'] = 1;
// The column(s) to show if single mode (under each other)
$dblist->tt_contentConfig['showSingleCol'] = current($colList);
}
// The order of the rows: Default is left(1), Normal(0), right(2), margin(3)
$dblist->tt_contentConfig['cols'] = implode(',', $colList);
$dblist->tt_contentConfig['activeCols'] = $this->activeColPosList;
$dblist->tt_contentConfig['showHidden'] = $this->MOD_SETTINGS['tt_content_showHidden'];
$dblist->tt_contentConfig['sys_language_uid'] = (int) $this->current_sys_language;
// If the function menu is set to "Language":
if ($this->MOD_SETTINGS['function'] == 2) {
$dblist->tt_contentConfig['single'] = 0;
$dblist->tt_contentConfig['languageMode'] = 1;
$dblist->tt_contentConfig['languageCols'] = $this->MOD_MENU['language'];
$dblist->tt_contentConfig['languageColsPointer'] = $this->current_sys_language;
}
} else {
if (isset($this->MOD_SETTINGS) && isset($this->MOD_MENU)) {
$h_func = BackendUtility::getFuncMenu($this->id, 'SET[' . $table . ']', $this->MOD_SETTINGS[$table], $this->MOD_MENU[$table], 'db_layout.php', '');
} else {
$h_func = '';
}
}
// Start the dblist object:
$dblist->itemsLimitSingleTable = 1000;
$dblist->start($this->id, $table, $this->pointer, $this->search_field, $this->search_levels, $this->showLimit);
$dblist->counter = $CMcounter;
$dblist->ext_function = $this->MOD_SETTINGS['function'];
// Render versioning selector:
$dblist->HTMLcode .= $this->doc->getVersionSelector($this->id);
// Generate the list of elements here:
$dblist->generateList();
// Adding the list content to the tableOutput variable:
$tableOutput[$table] = ($h_func ? $h_func . '<br /><img src="clear.gif" width="1" height="4" alt="" /><br />' : '') . $dblist->HTMLcode . ($h_func_b ? '<img src="clear.gif" width="1" height="10" alt="" /><br />' . $h_func_b : '');
// ... and any accumulated JavaScript goes the same way!
$tableJSOutput[$table] = $dblist->JScode;
// Increase global counter:
$CMcounter += $dblist->counter;
// Reset variables after operation:
$dblist->HTMLcode = '';
$dblist->JScode = '';
$h_func = '';
$h_func_b = '';
}
// END: traverse tables
// For Context Sensitive Menus:
$this->doc->getContextMenuCode();
// Init the content
$content = '';
// Additional header content
$headerContentHook = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/db_layout.php']['drawHeaderHook'];
if (is_array($headerContentHook)) {
foreach ($headerContentHook as $hook) {
$params = array();
$content .= GeneralUtility::callUserFunction($hook, $params, $this);
}
}
// Add the content for each table we have rendered (traversing $tableOutput variable)
foreach ($tableOutput as $table => $output) {
$content .= $this->doc->section('', $output, TRUE, TRUE, 0, TRUE);
$content .= $this->doc->spacer(15);
$content .= $this->doc->sectionEnd();
}
// Making search form:
if (!$this->modTSconfig['properties']['disableSearchBox'] && count($tableOutput)) {
$sectionTitle = BackendUtility::wrapInHelp('xMOD_csh_corebe', 'list_searchbox', $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.search', TRUE));
$content .= $this->doc->section($sectionTitle, $dblist->getSearchBox(0), FALSE, TRUE, FALSE, TRUE);
}
// Additional footer content
$footerContentHook = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/db_layout.php']['drawFooterHook'];
if (is_array($footerContentHook)) {
foreach ($footerContentHook as $hook) {
$params = array();
$content .= GeneralUtility::callUserFunction($hook, $params, $this);
}
}
return $content;
}
示例11: main
//.........这里部分代码省略.........
if (top.content && top.content.nav_frame && top.content.nav_frame.refresh_nav) {
top.content.nav_frame.refresh_nav();
}
}
' . $this->doc->redirectUrls($listUrl) . '
' . $dblist->CBfunctions() . '
function editRecords(table,idList,addParams,CBflag) { //
window.location.href="' . $GLOBALS['BACK_PATH'] . 'alt_doc.php?returnUrl=' . rawurlencode(GeneralUtility::getIndpEnv('REQUEST_URI')) . '&edit["+table+"]["+idList+"]=edit"+addParams;
}
function editList(table,idList) { //
var list="";
// Checking how many is checked, how many is not
var pointer=0;
var pos = idList.indexOf(",");
while (pos!=-1) {
if (cbValue(table+"|"+idList.substr(pointer,pos-pointer))) {
list+=idList.substr(pointer,pos-pointer)+",";
}
pointer=pos+1;
pos = idList.indexOf(",",pointer);
}
if (cbValue(table+"|"+idList.substr(pointer))) {
list+=idList.substr(pointer)+",";
}
return list ? list : idList;
}
if (top.fsMod) top.fsMod.recentIds["web"] = ' . (int) $this->id . ';
');
// Setting up the context sensitive menu:
$this->doc->getContextMenuCode();
}
// access
// Begin to compile the whole page, starting out with page header:
$this->body = $this->doc->header($this->pageinfo['title']);
$this->body .= '<form action="' . htmlspecialchars($dblist->listURL()) . '" method="post" name="dblistForm">';
$this->body .= $dblist->HTMLcode;
$this->body .= '<input type="hidden" name="cmd_table" /><input type="hidden" name="cmd" /></form>';
// If a listing was produced, create the page footer with search form etc:
if ($dblist->HTMLcode) {
// Making field select box (when extended view for a single table is enabled):
if ($dblist->table) {
$this->body .= $dblist->fieldSelectBox($dblist->table);
}
// Adding checkbox options for extended listing and clipboard display:
$this->body .= '
<!--
Listing options for extended view, clipboard and localization view
-->
<div id="typo3-listOptions">
<form action="" method="post">';
// Add "display bigControlPanel" checkbox:
if ($this->modTSconfig['properties']['enableDisplayBigControlPanel'] === 'selectable') {
$this->body .= BackendUtility::getFuncCheck($this->id, 'SET[bigControlPanel]', $this->MOD_SETTINGS['bigControlPanel'], '', $this->table ? '&table=' . $this->table : '', 'id="checkLargeControl"');
$this->body .= '<label for="checkLargeControl">' . BackendUtility::wrapInHelp('xMOD_csh_corebe', 'list_options', $GLOBALS['LANG']->getLL('largeControl', TRUE)) . '</label><br />';
}
// Add "clipboard" checkbox:
if ($this->modTSconfig['properties']['enableClipBoard'] === 'selectable') {
if ($dblist->showClipboard) {
$this->body .= BackendUtility::getFuncCheck($this->id, 'SET[clipBoard]', $this->MOD_SETTINGS['clipBoard'], '', $this->table ? '&table=' . $this->table : '', 'id="checkShowClipBoard"');
$this->body .= '<label for="checkShowClipBoard">' . BackendUtility::wrapInHelp('xMOD_csh_corebe', 'list_options', $GLOBALS['LANG']->getLL('showClipBoard', TRUE)) . '</label><br />';
}
示例12: initDocumentTemplate
/**
* Initialize document template object
*
* @return void
*/
protected function initDocumentTemplate()
{
// Creating backend template object:
$this->doc = GeneralUtility::makeInstance(DocumentTemplate::class);
$this->doc->bodyTagId = 'typo3-browse-links-php';
$this->doc->getContextMenuCode();
$pageRenderer = $this->getPageRenderer();
$pageRenderer->loadJquery();
$pageRenderer->loadRequireJsModule('TYPO3/CMS/Recordlist/BrowseFiles');
}
示例13: main
/**
* Main function, creating the listing
*
* @return void
*/
public function main()
{
// Initialize the template object
$this->doc = GeneralUtility::makeInstance(DocumentTemplate::class);
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->doc->setModuleTemplate('EXT:filelist/Resources/Private/Templates/file_list.html');
/** @var $pageRenderer \TYPO3\CMS\Core\Page\PageRenderer */
$pageRenderer = $this->doc->getPageRenderer();
$pageRenderer->loadJQuery();
$pageRenderer->loadRequireJsModule('TYPO3/CMS/Filelist/FileListLocalisation');
// There there was access to this file path, continue, make the list
if ($this->folderObject) {
// Create filelisting object
$this->filelist = GeneralUtility::makeInstance(FileList::class);
$this->filelist->backPath = $GLOBALS['BACK_PATH'];
// Apply predefined values for hidden checkboxes
// Set predefined value for DisplayBigControlPanel:
$backendUser = $this->getBackendUser();
if ($backendUser->getTSConfigVal('options.file_list.enableDisplayBigControlPanel') === 'activated') {
$this->MOD_SETTINGS['bigControlPanel'] = TRUE;
} elseif ($backendUser->getTSConfigVal('options.file_list.enableDisplayBigControlPanel') === 'deactivated') {
$this->MOD_SETTINGS['bigControlPanel'] = FALSE;
}
// Set predefined value for DisplayThumbnails:
if ($backendUser->getTSConfigVal('options.file_list.enableDisplayThumbnails') === 'activated') {
$this->MOD_SETTINGS['displayThumbs'] = TRUE;
} elseif ($backendUser->getTSConfigVal('options.file_list.enableDisplayThumbnails') === 'deactivated') {
$this->MOD_SETTINGS['displayThumbs'] = FALSE;
}
// Set predefined value for Clipboard:
if ($backendUser->getTSConfigVal('options.file_list.enableClipBoard') === 'activated') {
$this->MOD_SETTINGS['clipBoard'] = TRUE;
} elseif ($backendUser->getTSConfigVal('options.file_list.enableClipBoard') === 'deactivated') {
$this->MOD_SETTINGS['clipBoard'] = FALSE;
}
// If user never opened the list module, set the value for displayThumbs
if (!isset($this->MOD_SETTINGS['displayThumbs'])) {
$this->MOD_SETTINGS['displayThumbs'] = $backendUser->uc['thumbnailsByDefault'];
}
$this->filelist->thumbs = $this->MOD_SETTINGS['displayThumbs'];
// Create clipboard object and initialize that
$this->filelist->clipObj = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Clipboard\Clipboard::class);
$this->filelist->clipObj->fileMode = 1;
$this->filelist->clipObj->initializeClipboard();
$CB = GeneralUtility::_GET('CB');
if ($this->cmd == 'setCB') {
$CB['el'] = $this->filelist->clipObj->cleanUpCBC(array_merge(GeneralUtility::_POST('CBH'), (array) GeneralUtility::_POST('CBC')), '_FILE');
}
if (!$this->MOD_SETTINGS['clipBoard']) {
$CB['setP'] = 'normal';
}
$this->filelist->clipObj->setCmd($CB);
$this->filelist->clipObj->cleanCurrent();
// Saves
$this->filelist->clipObj->endClipboard();
// If the "cmd" was to delete files from the list (clipboard thing), do that:
if ($this->cmd == 'delete') {
$items = $this->filelist->clipObj->cleanUpCBC(GeneralUtility::_POST('CBC'), '_FILE', 1);
if (!empty($items)) {
// Make command array:
$FILE = array();
foreach ($items as $v) {
$FILE['delete'][] = array('data' => $v);
}
// Init file processing object for deleting and pass the cmd array.
$fileProcessor = GeneralUtility::makeInstance(ExtendedFileUtility::class);
$fileProcessor->init(array(), $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
$fileProcessor->setActionPermissions();
$fileProcessor->dontCheckForUnique = $this->overwriteExistingFiles ? 1 : 0;
$fileProcessor->start($FILE);
$fileProcessor->processData();
$fileProcessor->pushErrorMessagesToFlashMessageQueue();
}
}
if (!isset($this->MOD_SETTINGS['sort'])) {
// Set default sorting
$this->MOD_SETTINGS['sort'] = 'file';
$this->MOD_SETTINGS['reverse'] = 0;
}
// Start up filelisting object, include settings.
$this->pointer = MathUtility::forceIntegerInRange($this->pointer, 0, 100000);
$this->filelist->start($this->folderObject, $this->pointer, $this->MOD_SETTINGS['sort'], $this->MOD_SETTINGS['reverse'], $this->MOD_SETTINGS['clipBoard'], $this->MOD_SETTINGS['bigControlPanel']);
// Generate the list
$this->filelist->generateList();
// Set top JavaScript:
$this->doc->JScode = $this->doc->wrapScriptTags('if (top.fsMod) top.fsMod.recentIds["file"] = "' . rawurlencode($this->id) . '";' . $this->filelist->CBfunctions());
// This will return content necessary for the context sensitive clickmenus to work: bodytag events, JavaScript functions and DIV-layers.
$this->doc->getContextMenuCode();
// Setting up the buttons and markers for docheader
list($buttons, $otherMarkers) = $this->filelist->getButtonsAndOtherMarkers($this->folderObject);
// add the folder info to the marker array
$otherMarkers['FOLDER_INFO'] = $this->filelist->getFolderInfo();
$docHeaderButtons = array_merge($this->getButtons(), $buttons);
// Include DragUploader only if we have write access
if ($this->folderObject->getStorage()->checkUserActionPermission('add', 'File') && $this->folderObject->checkActionPermission('write')) {
//.........这里部分代码省略.........
示例14: renderListContent
//.........这里部分代码省略.........
$CMcounter = 0;
// Traverse the list of table names which has records on this page (that array is populated
// by the $dblist object during the function getTableMenu()):
foreach ($dbList->activeTables as $table => $value) {
$h_func_b = '';
if (!isset($dbList->externalTables[$table])) {
$q_count = $this->getNumberOfHiddenElements();
if ($q_count > 0) {
$h_func_b = '<div class="checkbox">' . '<label for="checkTt_content_showHidden">' . '<input type="checkbox" id="checkTt_content_showHidden" class="checkbox" name="SET[tt_content_showHidden]" value="1" ' . ($this->MOD_SETTINGS['tt_content_showHidden'] ? 'checked="checked"' : '') . ' />' . $this->getLanguageService()->getLL('hiddenCE', TRUE) . ' (<span class="t3js-hidden-counter">' . $q_count . '</span>)' . '</label>' . '</div>';
}
// Boolean: Display up/down arrows and edit icons for tt_content records
$dbList->tt_contentConfig['showCommands'] = 1;
// Boolean: Display info-marks or not
$dbList->tt_contentConfig['showInfo'] = 1;
// Setting up the tt_content columns to show:
if (is_array($GLOBALS['TCA']['tt_content']['columns']['colPos']['config']['items'])) {
$colList = array();
$tcaItems = GeneralUtility::callUserFunction(BackendLayoutView::class . '->getColPosListItemsParsed', $this->id, $this);
foreach ($tcaItems as $temp) {
$colList[] = $temp[1];
}
} else {
// ... should be impossible that colPos has no array. But this is the fallback should it make any sense:
$colList = array('1', '0', '2', '3');
}
if ($this->colPosList !== '') {
$colList = array_intersect(GeneralUtility::intExplode(',', $this->colPosList), $colList);
}
// The order of the rows: Default is left(1), Normal(0), right(2), margin(3)
$dbList->tt_contentConfig['cols'] = implode(',', $colList);
$dbList->tt_contentConfig['activeCols'] = $this->activeColPosList;
$dbList->tt_contentConfig['showHidden'] = $this->MOD_SETTINGS['tt_content_showHidden'];
$dbList->tt_contentConfig['sys_language_uid'] = (int) $this->current_sys_language;
// If the function menu is set to "Language":
if ($this->MOD_SETTINGS['function'] == 2) {
$dbList->tt_contentConfig['languageMode'] = 1;
$dbList->tt_contentConfig['languageCols'] = $this->MOD_MENU['language'];
$dbList->tt_contentConfig['languageColsPointer'] = $this->current_sys_language;
}
} else {
if (isset($this->MOD_SETTINGS) && isset($this->MOD_MENU)) {
$h_func = BackendUtility::getFuncMenu($this->id, 'SET[' . $table . ']', $this->MOD_SETTINGS[$table], $this->MOD_MENU[$table], '', '');
} else {
$h_func = '';
}
}
// Start the dblist object:
$dbList->itemsLimitSingleTable = 1000;
$dbList->start($this->id, $table, $this->pointer, $this->search_field, $this->search_levels, $this->showLimit);
$dbList->counter = $CMcounter;
$dbList->ext_function = $this->MOD_SETTINGS['function'];
// Render versioning selector:
$dbList->HTMLcode .= $this->doc->getVersionSelector($this->id);
// Generate the list of elements here:
$dbList->generateList();
// Adding the list content to the tableOutput variable:
$tableOutput[$table] = ($h_func ? $h_func . '<br /><img src="clear.gif" width="1" height="4" alt="" /><br />' : '') . $dbList->HTMLcode . ($h_func_b ? '<img src="clear.gif" width="1" height="10" alt="" /><br />' . $h_func_b : '');
// ... and any accumulated JavaScript goes the same way!
$tableJSOutput[$table] = $dbList->JScode;
// Increase global counter:
$CMcounter += $dbList->counter;
// Reset variables after operation:
$dbList->HTMLcode = '';
$dbList->JScode = '';
$h_func = '';
}
// END: traverse tables
// For Context Sensitive Menus:
$this->doc->getContextMenuCode();
// Init the content
$content = '';
// Additional header content
$headerContentHook = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/db_layout.php']['drawHeaderHook'];
if (is_array($headerContentHook)) {
foreach ($headerContentHook as $hook) {
$params = array();
$content .= GeneralUtility::callUserFunction($hook, $params, $this);
}
}
// Add the content for each table we have rendered (traversing $tableOutput variable)
foreach ($tableOutput as $table => $output) {
$content .= $this->doc->section('', $output, TRUE, TRUE, 0, TRUE);
$content .= $this->doc->spacer(15);
$content .= $this->doc->sectionEnd();
}
// Making search form:
if (!$this->modTSconfig['properties']['disableSearchBox'] && !empty($tableOutput)) {
$this->markers['BUTTONLIST_ADDITIONAL'] = '<a href="#" onclick="toggleSearchToolbox(); return false;" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:labels.title.searchIcon', TRUE) . '">' . IconUtility::getSpriteIcon('apps-toolbar-menu-search') . '</a>';
$this->markers['SEARCHBOX'] = $dbList->getSearchBox(0);
}
// Additional footer content
$footerContentHook = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/db_layout.php']['drawFooterHook'];
if (is_array($footerContentHook)) {
foreach ($footerContentHook as $hook) {
$params = array();
$content .= GeneralUtility::callUserFunction($hook, $params, $this);
}
}
return $content;
}
示例15: init
/**
* Constructor function for the class
*
* @return void
*/
protected function init()
{
// Page-selection permission clause (reading)
$this->perms_clause = $GLOBALS['BE_USER']->getPagePermsClause(1);
// This will hide records from display - it has nothing to do with user rights!!
if ($pidList = $GLOBALS['BE_USER']->getTSConfigVal('options.hideRecords.pages')) {
if ($pidList = $GLOBALS['TYPO3_DB']->cleanIntList($pidList)) {
$this->perms_clause .= ' AND pages.uid NOT IN (' . $pidList . ')';
}
}
// Setting GPvars:
// The page id to operate from
$this->id = (int) GeneralUtility::_GP('id');
$this->returnUrl = GeneralUtility::sanitizeLocalUrl(GeneralUtility::_GP('returnUrl'));
$this->pagesOnly = GeneralUtility::_GP('pagesOnly');
// Create instance of template class for output
$this->doc = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
$this->doc->backPath = $GLOBALS['BACK_PATH'];
$this->doc->setModuleTemplate('EXT:backend/Resources/Private/Templates/db_new.html');
$this->doc->JScode = '';
// Setting up the context sensitive menu:
$this->doc->getContextMenuCode();
// Creating content
$this->content = '';
$this->content .= $this->doc->header($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:db_new.php.pagetitle'));
// Id a positive id is supplied, ask for the page record with permission information contained:
if ($this->id > 0) {
$this->pageinfo = BackendUtility::readPageAccess($this->id, $this->perms_clause);
}
// If a page-record was returned, the user had read-access to the page.
if ($this->pageinfo['uid']) {
// Get record of parent page
$this->pidInfo = BackendUtility::getRecord('pages', $this->pageinfo['pid']);
// Checking the permissions for the user with regard to the parent page: Can he create new pages, new content record, new page after?
if ($GLOBALS['BE_USER']->doesUserHaveAccess($this->pageinfo, 8)) {
$this->newPagesInto = 1;
}
if ($GLOBALS['BE_USER']->doesUserHaveAccess($this->pageinfo, 16)) {
$this->newContentInto = 1;
}
if (($GLOBALS['BE_USER']->isAdmin() || is_array($this->pidInfo)) && $GLOBALS['BE_USER']->doesUserHaveAccess($this->pidInfo, 8)) {
$this->newPagesAfter = 1;
}
} elseif ($GLOBALS['BE_USER']->isAdmin()) {
// Admins can do it all
$this->newPagesInto = 1;
$this->newContentInto = 1;
$this->newPagesAfter = 0;
} else {
// People with no permission can do nothing
$this->newPagesInto = 0;
$this->newContentInto = 0;
$this->newPagesAfter = 0;
}
}