/**
  * Get whole list of sitemap entries
  *
  * @param   string $rootPageId Site root page id or domain
  * @return  string
  */
 public function sitemapCommand($rootPageId)
 {
     $rootPageId = $this->_getRootPageIdFromId($rootPageId);
     if ($rootPageId !== NULL) {
         $domain = RootPageUtility::getDomain($rootPageId);
         $query = 'SELECT page_url
                     FROM tx_metaseo_sitemap
                    WHERE page_rootpid = ' . DatabaseUtility::quote($rootPageId, 'tx_metaseo_sitemap') . '
                      AND is_blacklisted = 0';
         $urlList = DatabaseUtility::getCol($query);
         foreach ($urlList as $url) {
             if ($domain) {
                 $url = \Metaseo\Metaseo\Utility\GeneralUtility::fullUrl($url, $domain);
             }
             ConsoleUtility::writeLine($url);
         }
     } else {
         ConsoleUtility::writeErrorLine('No such root page found');
         ConsoleUtility::teminate(1);
     }
 }
 /**
  * Main action
  */
 public function mainAction()
 {
     // #################
     // Root page list
     // #################
     $rootPageList = \Metaseo\Metaseo\Utility\BackendUtility::getRootPageList();
     $rootIdList = array_keys($rootPageList);
     $rootPidCondition = NULL;
     if (!empty($rootIdList)) {
         $rootPidCondition = 'p.uid IN (' . implode(',', $rootIdList) . ')';
     } else {
         $rootPidCondition = '1=0';
     }
     // #################
     // Root setting list (w/ automatic creation)
     // #################
     // check which root lages have no root settings
     $query = 'SELECT p.uid
                 FROM pages p
                      LEFT JOIN tx_metaseo_setting_root seosr
                         ON   seosr.pid = p.uid
                          AND seosr.deleted = 0
                 WHERE ' . $rootPidCondition . '
                   AND seosr.uid IS NULL';
     $uidList = DatabaseUtility::getCol($query);
     foreach ($uidList as $tmpUid) {
         $query = 'INSERT INTO tx_metaseo_setting_root (pid, tstamp, crdate, cruser_id)
                         VALUES (' . (int) $tmpUid . ',
                                 ' . (int) time() . ',
                                 ' . (int) time() . ',
                                 ' . (int) $GLOBALS['BE_USER']->user['uid'] . ')';
         DatabaseUtility::execInsert($query);
     }
     $rootSettingList = \Metaseo\Metaseo\Utility\BackendUtility::getRootPageSettingList();
     // #################
     // Domain list
     // ##################
     // Fetch domain name
     $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid, pid, domainName, forced', 'sys_domain', 'hidden = 0', '', 'forced DESC, sorting');
     $domainList = array();
     while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
         $domainList[$row['pid']][$row['uid']] = $row;
     }
     // #################
     // Build root page list
     // #################
     unset($page);
     foreach ($rootPageList as $pageId => &$page) {
         // Domain list
         $page['domainList'] = '';
         if (!empty($domainList[$pageId])) {
             $page['domainList'] = $domainList[$pageId];
         }
         // Settings
         $page['rootSettings'] = array();
         if (!empty($rootSettingList[$pageId])) {
             $page['rootSettings'] = $rootSettingList[$pageId];
         }
         // Settings available
         $page['settingsLink'] = \TYPO3\CMS\Backend\Utility\BackendUtility::editOnClick('&edit[tx_metaseo_setting_root][' . $rootSettingList[$pageId]['uid'] . ']=edit', $this->doc->backPath);
     }
     unset($page);
     // check if there is any root page
     if (empty($rootPageList)) {
         $message = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', $this->_translate('message.warning.noRootPage.message'), $this->_translate('message.warning.noRootPage.title'), \TYPO3\CMS\Core\Messaging\FlashMessage::WARNING);
         \TYPO3\CMS\Core\Messaging\FlashMessageQueue::addMessage($message);
     }
     // ############################
     // Page/JS
     // ############################
     // FIXME: do we really need a template engine here?
     $this->template = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
     $pageRenderer = $this->template->getPageRenderer();
     $basePathJs = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('metaseo') . 'Resources/Public/Backend/JavaScript';
     $basePathCss = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('metaseo') . 'Resources/Public/Backend/Css';
     $pageRenderer->addCssFile($basePathCss . '/Default.css');
     $this->view->assign('RootPageList', $rootPageList);
 }
示例#3
0
 /**
  * Return simulated page title
  *
  * @param   array   $page         Root page
  * @param   integer $depth        Depth
  * @param   integer $sysLanguage  Sys language
  * @return  array
  */
 protected function _listPageTitleSim($page, $depth, $sysLanguage)
 {
     // Init
     $list = array();
     $pid = $page['uid'];
     $fieldList = array('title', 'tx_metaseo_pagetitle', 'tx_metaseo_pagetitle_rel', 'tx_metaseo_pagetitle_prefix', 'tx_metaseo_pagetitle_suffix');
     $list = $this->_listDefaultTree($page, $depth, $sysLanguage, $fieldList);
     $uidList = array_keys($list);
     if (!empty($uidList)) {
         // Check which pages have templates (for caching and faster building)
         $this->_templatePidList = array();
         $query = 'SELECT pid
                     FROM sys_template
                    WHERE pid IN (' . implode(',', $uidList) . ')
                      AND deleted = 0
                      AND hidden = 0';
         $pidList = DatabaseUtility::getCol($query);
         foreach ($pidList as $pid) {
             $this->_templatePidList[$pid] = $pid;
         }
         // Build simulated title
         foreach ($list as &$row) {
             $row['title_simulated'] = $this->_simulateTitle($row, $sysLanguage);
         }
     }
     return $list;
 }