* @package TYPO3 * @subpackage wizard_sortpages */ class SortPagesWizardModuleFunction extends \TYPO3\CMS\Backend\Module\AbstractFunctionModule { /** * Adds menu items... but I think this is not used at all. Looks very much like some testing code. If anyone cares to check it we can remove it some day... * * @return array * @ignore * @todo Define visibility */ public function modMenu() { global $LANG; $modMenuAdd = array(); return $modMenuAdd; } /** * Main function creating the content for the module. * * @return string HTML content for the module, actually a "section" made through the parent object in $this->pObj * @todo Define visibility */ public function main() { global $SOBE, $LANG; $out = $this->pObj->doc->header($LANG->getLL('wiz_sort')); if ($GLOBALS['BE_USER']->workspace === 0) { $theCode = ''; // Check if user has modify permissions to $sys_pages = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Frontend\\Page\\PageRepository'); $sortByField = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('sortByField'); if ($sortByField) { $menuItems = array(); if (\TYPO3\CMS\Core\Utility\GeneralUtility::inList('title,subtitle,crdate,tstamp', $sortByField)) { $menuItems = $sys_pages->getMenu($this->pObj->id, 'uid,pid,title', $sortByField, '', 0); } elseif ($sortByField == 'REV') { $menuItems = $sys_pages->getMenu($this->pObj->id, 'uid,pid,title', 'sorting', '', 0); $menuItems = array_reverse($menuItems); } if (count($menuItems)) { $tce = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\DataHandler\\DataHandler'); $tce->stripslashes_values = 0; $menuItems = array_reverse($menuItems); $cmd = array(); foreach ($menuItems as $r) { $cmd['pages'][$r['uid']]['move'] = $this->pObj->id; } $tce->start(array(), $cmd); $tce->process_cmdmap(); \TYPO3\CMS\Backend\Utility\BackendUtility::setUpdateSignal('updatePageTree'); } } $menuItems = $sys_pages->getMenu($this->pObj->id, '*', 'sorting', '', 0); $lines = array(); $lines[] = (((((((' ' . $this->wiz_linkOrder($LANG->getLL('wiz_changeOrder_title'), 'title')) . ' ') . (\TYPO3\CMS\Core\Extension\ExtensionManager::isLoaded('cms') ? (' ' . $this->wiz_linkOrder($LANG->getLL('wiz_changeOrder_subtitle'), 'subtitle')) . '' : '')) . ' ') . $this->wiz_linkOrder($LANG->getLL('wiz_changeOrder_tChange'), 'tstamp')) . ' ') . $this->wiz_linkOrder($LANG->getLL('wiz_changeOrder_tCreate'), 'crdate')) . ' '; foreach ($menuItems as $rec) { $m_perms_clause = $GLOBALS['BE_USER']->getPagePermsClause(2); // edit permissions for that page! $pRec = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord('pages', $rec['uid'], 'uid', ' AND ' . $m_perms_clause); $lines[] = ((((((((('' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIconForRecord('pages', $rec)) . (!is_array($pRec) ? $GLOBALS['TBE_TEMPLATE']->rfw(('' . $LANG->getLL('wiz_W', 1)) . ' ') : '')) . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($rec['title'], $GLOBALS['BE_USER']->uc['titleLen']))) . '  ') . (\TYPO3\CMS\Core\Extension\ExtensionManager::isLoaded('cms') ? ('' . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($rec['subtitle'], $GLOBALS['BE_USER']->uc['titleLen']))) . ' ' : '')) . ' ') . \t3lib_Befunc::datetime($rec['tstamp'])) . '   ') . \t3lib_Befunc::datetime($rec['crdate'])) . '   '; } $theCode .= ((('

' . $LANG->getLL('wiz_currentPageOrder', TRUE)) . '

') . implode('', $lines)) . '

'; if (count($menuItems)) { // Menu: $lines = array(); $lines[] = $this->wiz_linkOrder($LANG->getLL('wiz_changeOrder_title'), 'title'); if (\TYPO3\CMS\Core\Extension\ExtensionManager::isLoaded('cms')) { $lines[] = $this->wiz_linkOrder($LANG->getLL('wiz_changeOrder_subtitle'), 'subtitle'); } $lines[] = $this->wiz_linkOrder($LANG->getLL('wiz_changeOrder_tChange'), 'tstamp'); $lines[] = $this->wiz_linkOrder($LANG->getLL('wiz_changeOrder_tCreate'), 'crdate'); $lines[] = ''; $lines[] = $this->wiz_linkOrder($LANG->getLL('wiz_changeOrder_REVERSE'), 'REV'); $theCode .= (('

' . $LANG->getLL('wiz_changeOrder')) . '

') . implode('
', $lines); } // CSH: $theCode .= \TYPO3\CMS\Backend\Utility\BackendUtility::cshItem('_MOD_web_func', 'tx_wizardsortpages', $GLOBALS['BACK_PATH'], '
|'); $out .= $this->pObj->doc->section('', $theCode, 0, 1); } else { $out .= $this->pObj->doc->section('', 'Sorry, this function is not available in the current draft workspace!', 0, 1, 1); } return $out; } /** * Creates a link for the sorting order * * @param string $title Title of the link * @param string $order Field to sort by * @return string HTML string * @todo Define visibility */ public function wiz_linkOrder($title, $order) { return ((((('   ') . htmlspecialchars($title)) . ''; } } ?>