コード例 #1
0
 /**
  * Initialization
  *
  * @return void
  */
 public function init()
 {
     $this->MCONF['name'] = $this->moduleName;
     $this->menuConfig();
     $this->moduleTemplate = GeneralUtility::makeInstance(ModuleTemplate::class);
     $this->moduleTemplate->setForm('<form action="" method="post" name="' . $this->formName . '">');
 }
コード例 #2
0
 /**
  * Initialization
  *
  * @return void
  */
 public function init()
 {
     $this->MCONF['name'] = $this->moduleName;
     $this->menuConfig();
     $this->moduleTemplate = GeneralUtility::makeInstance(ModuleTemplate::class);
     $this->moduleTemplate->setForm('<form action="" method="post" name="' . $this->formName . '">');
     $this->moduleTemplate->addJavaScriptCode('jumpToUrl', '
         function jumpToUrl(URL) {
             window.location.href = URL;
             return false;
         }
         ');
 }
コード例 #3
0
ファイル: index.php プロジェクト: girardiv/image_autoresize
 /**
  * Renders a FlexForm configuration form.
  *
  * @return void
  */
 public function main()
 {
     $this->languageService->includeLLFile('EXT:image_autoresize/mod1/locallang.xlf');
     $this->processData();
     $formTag = '<form action="" method="post" name="editform">';
     if (version_compare(TYPO3_version, '7.5.99', '>')) {
         $this->moduleTemplate->setForm($formTag);
         $this->content .= sprintf('<h3>%s</h3>', $this->languageService->getLL('title', true));
         $this->addStatisticsAndSocialLink();
     } else {
         if (version_compare(TYPO3_version, '7.4.99', '<=')) {
             $this->initTCEForms();
         }
         $this->doc = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
         $this->doc->setModuleTemplate(ExtensionManagementUtility::extPath($this->extKey) . 'mod1/mod_template.html');
         $this->doc->backPath = $GLOBALS['BACK_PATH'];
         $this->doc->form = $formTag;
         $this->content .= $this->doc->header($this->languageService->getLL('title'));
         $this->addStatisticsAndSocialLink();
         $this->content .= $this->doc->spacer(5);
     }
     $row = $this->config;
     if (version_compare(TYPO3_version, '7.5.0', '>=')) {
         $this->fixRecordForFormEngine($row, array('file_types', 'usergroup'));
         $this->moduleContent($row);
     } else {
         if ($row['rulesets']) {
             /** @var $flexObj \TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools */
             $flexObj = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Configuration\\FlexForm\\FlexFormTools');
             $row['rulesets'] = $flexObj->flexArray2Xml($row['rulesets'], true);
         }
         $this->moduleContentLegacy($row);
     }
     // Compile document
     if (version_compare(TYPO3_version, '7.5.99', '>')) {
         $this->addToolbarButtons();
         $this->moduleTemplate->setContent($this->content);
         $content = $this->moduleTemplate->renderContent();
     } else {
         $markers = array('FUNC_MENU' => '', 'CONTENT' => $this->content);
         // Build the <body> for the module
         $docHeaderButtons = $this->getButtons();
         $content = $this->doc->startPage($this->languageService->getLL('title'));
         $content .= $this->doc->moduleBody(array(), $docHeaderButtons, $markers);
         $content .= $this->doc->endPage();
         // Wrap result appropriately
         $content = $this->doc->insertStylesAndJS($content);
     }
     // Replace module content with everything needed
     $this->content = $content;
 }
コード例 #4
0
 /**
  * Main function of the module. Write the content to $this->content
  *
  * @return void
  */
 public function main()
 {
     // Access check!
     // The page will show only if user has admin rights
     if ($this->getBackendUser()->isAdmin()) {
         // Set the form
         $this->moduleTemplate->setForm('<form name="tx_scheduler_form" id="tx_scheduler_form" method="post" action="">');
         // Prepare main content
         $this->content = '<h1>' . $this->getLanguageService()->getLL('function.' . $this->MOD_SETTINGS['function']) . '</h1>';
         $this->content .= $this->getModuleContent();
     } else {
         // If no access, only display the module's title
         $this->content = '<h1>' . $this->getLanguageService()->getLL('title.') . '</h1>';
         $this->content .= $this->moduleTemplate->spacer(5);
     }
     $this->getButtons();
     $this->getModuleMenu();
     $this->content = $this->getFlashMessages() . $this->content;
 }
コード例 #5
0
 /**
  * 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);
     $this->moduleTemplate->getDocHeaderComponent()->setMetaInformation($this->pageinfo);
     $access = is_array($this->pageinfo);
     // We keep this here, in case somebody relies on the old doc being here
     $this->doc = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class);
     // Main
     if ($this->id && $access) {
         // JavaScript
         $this->moduleTemplate->addJavaScriptCode('WebFuncInLineJS', 'if (top.fsMod) top.fsMod.recentIds["web"] = ' . (int) $this->id . ';');
         // Setting up the context sensitive menu:
         $this->moduleTemplate->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/ClickMenu');
         $this->moduleTemplate->setForm('<form action="' . htmlspecialchars(BackendUtility::getModuleUrl('web_func')) . '" method="post"><input type="hidden" name="id" value="' . htmlspecialchars($this->id) . '" />');
         $vContent = $this->moduleTemplate->getVersionSelector($this->id, true);
         if ($vContent) {
             $this->content .= $this->moduleTemplate->section('', $vContent);
         }
         $this->extObjContent();
         // Setting up the buttons and markers for docheader
         $this->getButtons();
         $this->generateMenu();
     } 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
         $this->getButtons();
     }
 }
コード例 #6
0
    /**
     * Initialize module header etc and call extObjContent function
     *
     * @return void
     */
    public function main()
    {
        // We leave this here because of dependencies to submodules
        $this->doc = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Template\DocumentTemplate::class);
        // 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);
        $this->moduleTemplate->getDocHeaderComponent()->setMetaInformation($this->pageinfo);
        $access = is_array($this->pageinfo);
        if ($this->id && $access || $this->backendUser->user['admin'] && !$this->id) {
            if ($this->backendUser->user['admin'] && !$this->id) {
                $this->pageinfo = array('title' => '[root-level]', 'uid' => 0, 'pid' => 0);
            }
            // JavaScript
            $this->moduleTemplate->addJavaScriptCode('WebFuncInLineJS', 'if (top.fsMod) top.fsMod.recentIds["web"] = ' . (int) $this->id . ';
				function jumpToUrl(URL) {
					window.location.href = URL;
					return false;
				}
				');
            // Setting up the context sensitive menu:
            $this->moduleTemplate->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/ClickMenu');
            $this->moduleTemplate->setForm('<form action="' . htmlspecialchars(BackendUtility::getModuleUrl($this->moduleName)) . '" method="post" name="webinfoForm" class="form-inline form-inline-spaced">');
            $vContent = $this->moduleTemplate->getVersionSelector($this->id, 1);
            if ($vContent) {
                $this->content .= $this->moduleTemplate->section('', $vContent);
            }
            $this->extObjContent();
            // Setting up the buttons and markers for docheader
            $this->getButtons();
            $this->generateMenu();
        } else {
            // If no access or if ID == zero
            $this->content = $this->doc->header($this->languageService->getLL('title'));
        }
    }
コード例 #7
0
 /**
  * Main module function
  *
  * @throws \BadFunctionCallException
  * @throws \InvalidArgumentException
  * @return void
  */
 public function main()
 {
     $this->lang->includeLLFile('EXT:impexp/Resources/Private/Language/locallang.xlf');
     // Start document template object:
     // We keep this here, in case somebody relies on the old doc being here
     $this->doc = GeneralUtility::makeInstance(DocumentTemplate::class);
     $this->doc->bodyTagId = 'imp-exp-mod';
     $this->pageinfo = BackendUtility::readPageAccess($this->id, $this->perms_clause);
     $this->moduleTemplate->getDocHeaderComponent()->setMetaInformation($this->pageinfo);
     // Setting up the context sensitive menu:
     $this->moduleTemplate->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/ClickMenu');
     $this->moduleTemplate->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Impexp/ImportExport');
     $this->moduleTemplate->addJavaScriptCode('ImpexpInLineJS', 'if (top.fsMod) top.fsMod.recentIds["web"] = ' . (int) $this->id . ';');
     $this->moduleTemplate->setForm('<form action="' . htmlspecialchars(BackendUtility::getModuleUrl('xMOD_tximpexp')) . '" method="post" enctype="multipart/form-data">' . '<input type="hidden" name="id" value="' . $this->id . '" />');
     // Input data grabbed:
     $inData = GeneralUtility::_GP('tx_impexp');
     $this->content .= $this->moduleTemplate->sectionHeader($this->lang->getLL('title_' . (string) $inData['action']));
     $this->content .= '<div style="padding-top: 5px;"></div>';
     $this->checkUpload();
     switch ((string) $inData['action']) {
         case 'export':
             $this->shortcutName = $this->lang->getLL('title_export');
             // Finally: If upload went well, set the new file as the thumbnail in the $inData array:
             if (!empty($this->uploadedFiles[0])) {
                 $inData['meta']['thumbnail'] = $this->uploadedFiles[0]->getCombinedIdentifier();
             }
             // Call export interface
             $this->exportData($inData);
             break;
         case 'import':
             $this->shortcutName = $this->lang->getLL('title_import');
             // Finally: If upload went well, set the new file as the import file:
             if (!empty($this->uploadedFiles[0])) {
                 // Only allowed extensions....
                 if (GeneralUtility::inList('t3d,xml', $this->uploadedFiles[0]->getExtension())) {
                     $inData['file'] = $this->uploadedFiles[0]->getCombinedIdentifier();
                 }
             }
             // Call import interface:
             $this->importData($inData);
             break;
     }
     // Setting up the buttons and markers for docheader
     $this->getButtons();
 }
コード例 #8
0
 /**
  * Rendering the quick-edit view.
  *
  * @return string
  */
 public function renderQuickEdit()
 {
     $databaseConnection = $this->getDatabaseConnection();
     $beUser = $this->getBackendUser();
     $lang = $this->getLanguageService();
     // Alternative form tag; Quick Edit submits its content to tce_db.php.
     $this->moduleTemplate->setForm('<form action="' . htmlspecialchars(BackendUtility::getModuleUrl('tce_db', ['prErr' => 1, 'uPT' => 1])) . '" method="post" enctype="multipart/form-data" name="editform" onsubmit="return TBE_EDITOR.checkSubmit(1);">');
     // Set the edit_record value for internal use in this function:
     $edit_record = $this->edit_record;
     // If a command to edit all records in a column is issue, then select all those elements, and redirect to FormEngine
     if (substr($edit_record, 0, 9) == '_EDIT_COL') {
         $res = $databaseConnection->exec_SELECTquery('*', 'tt_content', 'pid=' . (int) $this->id . ' AND colPos=' . (int) substr($edit_record, 10) . ' AND sys_language_uid=' . (int) $this->current_sys_language . ($this->MOD_SETTINGS['tt_content_showHidden'] ? '' : BackendUtility::BEenableFields('tt_content')) . BackendUtility::deleteClause('tt_content') . BackendUtility::versioningPlaceholderClause('tt_content'), '', 'sorting');
         $idListA = array();
         while ($cRow = $databaseConnection->sql_fetch_assoc($res)) {
             $idListA[] = $cRow['uid'];
         }
         $url = BackendUtility::getModuleUrl('record_edit', array('edit[tt_content][' . implode(',', $idListA) . ']' => 'edit', 'returnUrl' => $this->local_linkThisScript(array('edit_record' => ''))));
         HttpUtility::redirect($url);
     }
     // If the former record edited was the creation of a NEW record, this will look up the created records uid:
     if ($this->new_unique_uid) {
         $res = $databaseConnection->exec_SELECTquery('*', 'sys_log', 'userid=' . (int) $beUser->user['uid'] . ' AND NEWid=' . $databaseConnection->fullQuoteStr($this->new_unique_uid, 'sys_log'));
         $sys_log_row = $databaseConnection->sql_fetch_assoc($res);
         if (is_array($sys_log_row)) {
             $edit_record = $sys_log_row['tablename'] . ':' . $sys_log_row['recuid'];
         }
     }
     $edit_record = $this->makeQuickEditMenu($edit_record);
     // Splitting the edit-record cmd value into table/uid:
     $this->eRParts = explode(':', $edit_record);
     $tableName = $this->eRParts[0];
     // Delete-button flag?
     $this->deleteButton = MathUtility::canBeInterpretedAsInteger($this->eRParts[1]) && $edit_record && ($tableName !== 'pages' && $this->EDIT_CONTENT || $tableName === 'pages' && $this->CALC_PERMS & Permission::PAGE_DELETE);
     // If undo-button should be rendered (depends on available items in sys_history)
     $this->undoButton = false;
     $undoRes = $databaseConnection->exec_SELECTquery('tstamp', 'sys_history', 'tablename=' . $databaseConnection->fullQuoteStr($tableName, 'sys_history') . ' AND recuid=' . (int) $this->eRParts[1], '', 'tstamp DESC', '1');
     if ($this->undoButtonR = $databaseConnection->sql_fetch_assoc($undoRes)) {
         $this->undoButton = true;
     }
     // Setting up the Return URL for coming back to THIS script (if links take the user to another script)
     $R_URL_parts = parse_url(GeneralUtility::getIndpEnv('REQUEST_URI'));
     $R_URL_getvars = GeneralUtility::_GET();
     unset($R_URL_getvars['popView']);
     unset($R_URL_getvars['new_unique_uid']);
     $R_URL_getvars['edit_record'] = $edit_record;
     $this->R_URI = $R_URL_parts['path'] . '?' . GeneralUtility::implodeArrayForUrl('', $R_URL_getvars);
     // Creating editing form:
     $content = '';
     if ($edit_record) {
         // Splitting uid parts for special features, if new:
         list($uidVal, $neighborRecordUid, $ex_colPos) = explode('/', $this->eRParts[1]);
         if ($uidVal === 'new') {
             $command = 'new';
             // Page id of this new record
             $theUid = $this->id;
             if ($neighborRecordUid) {
                 $theUid = $neighborRecordUid;
             }
         } else {
             $command = 'edit';
             $theUid = $uidVal;
             // Convert $uidVal to workspace version if any:
             $draftRecord = BackendUtility::getWorkspaceVersionOfRecord($beUser->workspace, $tableName, $theUid, 'uid');
             if ($draftRecord) {
                 $theUid = $draftRecord['uid'];
             }
         }
         // @todo: Hack because DatabaseInitializeNewRow reads from _GP directly
         $GLOBALS['_GET']['defVals'][$tableName] = array('colPos' => (int) $ex_colPos, 'sys_language_uid' => (int) $this->current_sys_language);
         /** @var TcaDatabaseRecord $formDataGroup */
         $formDataGroup = GeneralUtility::makeInstance(TcaDatabaseRecord::class);
         /** @var FormDataCompiler $formDataCompiler */
         $formDataCompiler = GeneralUtility::makeInstance(FormDataCompiler::class, $formDataGroup);
         /** @var NodeFactory $nodeFactory */
         $nodeFactory = GeneralUtility::makeInstance(NodeFactory::class);
         try {
             $formDataCompilerInput = ['tableName' => $tableName, 'vanillaUid' => (int) $theUid, 'command' => $command];
             $formData = $formDataCompiler->compile($formDataCompilerInput);
             if ($command !== 'new') {
                 BackendUtility::lockRecords($tableName, $formData['databaseRow']['uid'], $tableName === 'tt_content' ? $formData['databaseRow']['pid'] : 0);
             }
             $formData['renderType'] = 'outerWrapContainer';
             $formResult = $nodeFactory->create($formData)->render();
             $panel = $formResult['html'];
             $formResult['html'] = '';
             /** @var FormResultCompiler $formResultCompiler */
             $formResultCompiler = GeneralUtility::makeInstance(FormResultCompiler::class);
             $formResultCompiler->mergeResult($formResult);
             $row = $formData['databaseRow'];
             $new_unique_uid = '';
             if ($command === 'new') {
                 $new_unique_uid = $row['uid'];
             }
             // Add hidden fields:
             if ($uidVal == 'new') {
                 $panel .= '<input type="hidden" name="data[' . $tableName . '][' . $row['uid'] . '][pid]" value="' . $row['pid'] . '" />';
             }
             $redirect = $uidVal == 'new' ? BackendUtility::getModuleUrl($this->moduleName, ['id' => $this->id, 'new_unique_uid' => $new_unique_uid, 'returnUrl' => $this->returnUrl]) : $this->R_URI;
             $panel .= '
                 <input type="hidden" name="_serialNumber" value="' . md5(microtime()) . '" />
                 <input type="hidden" name="edit_record" value="' . $edit_record . '" />
                 <input type="hidden" name="redirect" value="' . htmlspecialchars($redirect) . '" />
                 ';
             // Add JavaScript as needed around the form:
             $content = $formResultCompiler->JStop() . $panel . $formResultCompiler->printNeededJSFunctions();
             // Display "is-locked" message:
             if ($command === 'edit') {
                 $lockInfo = BackendUtility::isRecordLocked($tableName, $formData['databaseRow']['uid']);
                 if ($lockInfo) {
                     /** @var \TYPO3\CMS\Core\Messaging\FlashMessage $flashMessage */
                     $flashMessage = GeneralUtility::makeInstance(FlashMessage::class, htmlspecialchars($lockInfo['msg']), '', FlashMessage::WARNING);
                     /** @var $flashMessageService \TYPO3\CMS\Core\Messaging\FlashMessageService */
                     $flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class);
                     /** @var $defaultFlashMessageQueue \TYPO3\CMS\Core\Messaging\FlashMessageQueue */
                     $defaultFlashMessageQueue = $flashMessageService->getMessageQueueByIdentifier();
                     $defaultFlashMessageQueue->enqueue($flashMessage);
                 }
             }
         } catch (AccessDeniedException $e) {
             // If no edit access, print error message:
             $content = $this->moduleTemplate->section($lang->getLL('noAccess'), $lang->getLL('noAccess_msg') . '<br /><br />' . ($beUser->errorMsg ? 'Reason: ' . $beUser->errorMsg . '<br /><br />' : ''), 0, 1);
         }
     } else {
         // If no edit access, print error message:
         $content = $this->moduleTemplate->section($lang->getLL('noAccess'), $lang->getLL('noAccess_msg'), 0, 1);
     }
     // Element selection matrix:
     if ($tableName === 'tt_content' && MathUtility::canBeInterpretedAsInteger($this->eRParts[1])) {
         $content .= '<h2>' . $lang->getLL('CEonThisPage') . '</h2>';
         // PositionMap
         $posMap = GeneralUtility::makeInstance(ContentLayoutPagePositionMap::class);
         $posMap->cur_sys_language = $this->current_sys_language;
         $content .= $posMap->printContentElementColumns($this->id, $this->eRParts[1], $this->colPosList, $this->MOD_SETTINGS['tt_content_showHidden'], $this->R_URI);
         // Toggle hidden ContentElements
         $numberOfHiddenElements = $this->getNumberOfHiddenElements();
         if ($numberOfHiddenElements) {
             $content .= '<div class="checkbox">';
             $content .= '<label for="checkTt_content_showHidden">';
             $content .= BackendUtility::getFuncCheck($this->id, 'SET[tt_content_showHidden]', $this->MOD_SETTINGS['tt_content_showHidden'], '', '', 'id="checkTt_content_showHidden"');
             $content .= !$numberOfHiddenElements ? '<span class="text-muted">' . $lang->getLL('hiddenCE', true) . '</span>' : $lang->getLL('hiddenCE', true) . ' (' . $numberOfHiddenElements . ')';
             $content .= '</label>';
             $content .= '</div>';
         }
         // CSH
         $content .= BackendUtility::cshItem($this->descrTable, 'quickEdit_selElement');
     }
     return $content;
 }
コード例 #9
0
 /**
  * Initialization
  *
  * @return void
  */
 public function init()
 {
     $this->menuConfig();
     $this->moduleTemplate = GeneralUtility::makeInstance(ModuleTemplate::class);
     $this->moduleTemplate->setForm('<form action="" method="post">');
 }
コード例 #10
0
 /**
  * Main
  *
  * @return void
  */
 public function main()
 {
     // Template markers
     $markers = array('CSH' => '', 'FUNC_MENU' => '', 'CONTENT' => '');
     // 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);
     $this->access = is_array($this->pageinfo);
     /** @var DocumentTemplate doc */
     $this->doc = GeneralUtility::makeInstance(DocumentTemplate::class);
     $this->moduleTemplate->getPageRenderer()->addCssFile(ExtensionManagementUtility::extRelPath('tstemplate') . 'Resources/Public/Css/styles.css');
     $lang = $this->getLanguageService();
     if ($this->id && $this->access) {
         $urlParameters = array('id' => $this->id, 'template' => 'all');
         $aHref = BackendUtility::getModuleUrl('web_ts', $urlParameters);
         $this->moduleTemplate->setForm('<form action="' . htmlspecialchars($aHref) . '" method="post" enctype="multipart/form-data" name="editForm" class="form">');
         // JavaScript
         $this->moduleTemplate->addJavaScriptCode('TSTemplateInlineJS', '
             function uFormUrl(aname) {
                 document.forms[0].action = ' . GeneralUtility::quoteJSvalue($aHref . '#') . '+aname;
             }
             function brPoint(lnumber,t) {
                 window.location.href = ' . GeneralUtility::quoteJSvalue($aHref . '&SET[function]=TYPO3\\CMS\\Tstemplate\\Controller\\TypoScriptTemplateObjectBrowserModuleFunctionController&SET[ts_browser_type]=') . '+(t?"setup":"const")+"&breakPointLN="+lnumber;
                 return false;
             }
             if (top.fsMod) top.fsMod.recentIds["web"] = ' . $this->id . ';
         ');
         $this->moduleTemplate->getPageRenderer()->addCssInlineBlock('TSTemplateInlineStyle', '
             TABLE#typo3-objectBrowser { width: 100%; margin-bottom: 24px; }
             TABLE#typo3-objectBrowser A { text-decoration: none; }
             TABLE#typo3-objectBrowser .comment { color: maroon; font-weight: bold; }
             .ts-typoscript { width: 100%; }
             .tsob-search-submit {margin-left: 3px; margin-right: 3px;}
             .tst-analyzer-options { margin:5px 0; }
         ');
         // Setting up the context sensitive menu:
         $this->moduleTemplate->getPageRenderer()->loadRequireJsModule('TYPO3/CMS/Backend/ClickMenu');
         // Build the module content
         $this->content = $this->doc->header($lang->getLL('moduleTitle'));
         $this->extObjContent();
         // Setting up the buttons and markers for docheader
         $this->getButtons();
         $this->generateMenu();
     } else {
         // Template pages:
         $records = $this->getDatabaseConnection()->exec_SELECTgetRows('pages.uid, count(*) AS count, max(sys_template.root) AS root_max_val, min(sys_template.root) AS root_min_val', 'pages,sys_template', 'pages.uid=sys_template.pid' . BackendUtility::deleteClause('pages') . BackendUtility::versioningPlaceholderClause('pages') . BackendUtility::deleteClause('sys_template') . BackendUtility::versioningPlaceholderClause('sys_template'), 'pages.uid', 'pages.pid, pages.sorting');
         $pArray = array();
         foreach ($records as $record) {
             $this->setInPageArray($pArray, BackendUtility::BEgetRootLine($record['uid'], 'AND 1=1'), $record);
         }
         $table = '<div class="table-fit"><table class="table table-striped table-hover" id="ts-overview">' . '<thead>' . '<tr>' . '<th>' . $lang->getLL('pageName') . '</th>' . '<th>' . $lang->getLL('templates') . '</th>' . '<th>' . $lang->getLL('isRoot') . '</th>' . '<th>' . $lang->getLL('isExt') . '</th>' . '</tr>' . '</thead>' . '<tbody>' . implode('', $this->renderList($pArray)) . '</tbody>' . '</table></div>';
         $this->content = $this->doc->header($lang->getLL('moduleTitle'));
         $this->content .= $this->moduleTemplate->section('', '<p class="lead">' . $lang->getLL('overview') . '</p>' . $table);
         // RENDER LIST of pages with templates, END
         // Setting up the buttons and markers for docheader
         $this->getButtons();
     }
 }