‪TYPO3CMS  11.5
AdministrationController.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
18 use Psr\Http\Message\ResponseInterface;
19 use Psr\Http\Message\ServerRequestInterface;
22 use TYPO3\CMS\Backend\Utility\BackendUtility;
38 
44 {
49 
53  protected ‪$pageUid = 0;
54 
58  protected ‪$external_parsers = [];
59 
63  protected ‪$indexerConfig = [];
64 
68  protected ‪$enableMetaphoneSearch = false;
69 
70  public function ‪__construct(
75  ) {
76  $this->moduleTemplateFactory = ‪$moduleTemplateFactory;
77  $this->administrationRepository = ‪$administrationRepository;
78  $this->indexer = ‪$indexer;
79  $this->iconFactory = ‪$iconFactory;
80  }
81 
85  protected function ‪initializeModuleTemplate(ServerRequestInterface ‪$request): ‪ModuleTemplate
86  {
87  $menuItems = [
88  'index' => [
89  'controller' => 'Administration',
90  'action' => 'index',
91  'label' => $this->‪getLanguageService()->‪sL('LLL:EXT:indexed_search/Resources/Private/Language/locallang.xlf:administration.menu.general'),
92  ],
93  'pages' => [
94  'controller' => 'Administration',
95  'action' => 'pages',
96  'label' => $this->‪getLanguageService()->‪sL('LLL:EXT:indexed_search/Resources/Private/Language/locallang.xlf:administration.menu.pages'),
97  ],
98  'externalDocuments' => [
99  'controller' => 'Administration',
100  'action' => 'externalDocuments',
101  'label' => $this->‪getLanguageService()->‪sL('LLL:EXT:indexed_search/Resources/Private/Language/locallang.xlf:administration.menu.externalDocuments'),
102  ],
103  'statistic' => [
104  'controller' => 'Administration',
105  'action' => 'statistic',
106  'label' => $this->‪getLanguageService()->‪sL('LLL:EXT:indexed_search/Resources/Private/Language/locallang.xlf:administration.menu.statistic'),
107  ],
108  ];
109 
110  $moduleTemplate = $this->moduleTemplateFactory->create(‪$request);
111 
112  $menu = $moduleTemplate->‪getDocHeaderComponent()->‪getMenuRegistry()->‪makeMenu();
113  $menu->‪setIdentifier('IndexedSearchModuleMenu');
114 
115  $context = '';
116  foreach ($menuItems as $menuItemConfig) {
117  $isActive = $this->request->getControllerActionName() === $menuItemConfig['action'];
118  $menuItem = $menu->‪makeMenuItem()
119  ->‪setTitle($menuItemConfig['label'])
120  ->setHref($this->uriBuilder->reset()->uriFor($menuItemConfig['action'], [], $menuItemConfig['controller']))
121  ->setActive($isActive);
122  $menu->addMenuItem($menuItem);
123  if ($isActive) {
124  $context = $menuItemConfig['label'];
125  }
126  }
127 
128  $moduleTemplate->getDocHeaderComponent()->getMenuRegistry()->addMenu($menu);
129  $moduleTemplate->setTitle(
130  $this->‪getLanguageService()->sL('LLL:EXT:indexed_search/Resources/Private/Language/locallang_mod.xlf:mlang_tabs_tab'),
131  $context
132  );
133 
135  $pageRecord = BackendUtility::readPageAccess($this->pageUid, $permissionClause);
136  if ($pageRecord) {
137  $moduleTemplate->getDocHeaderComponent()->setMetaInformation($pageRecord);
138  }
139  $moduleTemplate->setFlashMessageQueue($this->‪getFlashMessageQueue());
140 
141  return $moduleTemplate;
142  }
143 
147  public function ‪initializeAction()
148  {
149  $this->pageUid = (int)($this->request->getQueryParams()['id'] ?? 0);
150  $this->indexerConfig = GeneralUtility::makeInstance(ExtensionConfiguration::class)->get('indexed_search');
151  $this->enableMetaphoneSearch = (bool)($this->indexerConfig['enableMetaphoneSearch'] ?? false);
152 
153  parent::initializeAction();
154  }
155 
162  public function ‪processRequest(‪RequestInterface ‪$request): ResponseInterface
163  {
165  $beUser = $this->‪getBackendUserAuthentication();
166 
167  if (is_array(‪$arguments) && isset(‪$arguments['action']) && method_exists($this, ‪$arguments['action'] . 'Action')) {
168  $action = ‪$arguments['action'];
169 
170  switch ($action) {
171  case 'saveStopwordsKeywords':
172  $action = 'statisticDetails';
173  break;
174  case 'deleteIndexedItem':
175  $action = 'statistic';
176  break;
177  }
178 
179  $beUser->uc['indexed_search']['action'] = $action;
180  $beUser->uc['indexed_search']['arguments'] = ‪$arguments;
181  $beUser->writeUC();
182  } elseif (isset($beUser->uc['indexed_search']['action'])) {
183  if (‪$request instanceof Request) {
184  ‪$request->‪setControllerActionName($beUser->uc['indexed_search']['action']);
185  }
186  if (isset($beUser->uc['indexed_search']['arguments'])) {
187  ‪$request->‪setArguments($beUser->uc['indexed_search']['arguments']);
188  }
189  }
190 
191  return parent::processRequest(‪$request);
192  }
193 
197  public function ‪indexAction(): ResponseInterface
198  {
199  $this->view->assignMultiple([
200  'records' => $this->administrationRepository->getRecordsNumbers(),
201  'phash' => $this->administrationRepository->getPageHashTypes(),
202  ]);
203 
204  if ($this->pageUid) {
205  $expressionBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
206  ->getQueryBuilderForTable('index_stat_word')
207  ->expr();
208 
209  $last24hours = $expressionBuilder->gt('tstamp', ‪$GLOBALS['EXEC_TIME'] - 86400);
210  $last30days = $expressionBuilder->gt('tstamp', ‪$GLOBALS['EXEC_TIME'] - 30 * 86400);
211 
212  $this->view->assignMultiple([
213  'extensionConfiguration', $this->indexerConfig,
214  'pageUid' => $this->pageUid,
215  'all' => $this->administrationRepository->getGeneralSearchStatistic('', $this->pageUid),
216  'last24hours' => $this->administrationRepository->getGeneralSearchStatistic($last24hours, $this->pageUid),
217  'last30days' => $this->administrationRepository->getGeneralSearchStatistic($last30days, $this->pageUid),
218  ]);
219  }
220 
221  $moduleTemplate = $this->‪initializeModuleTemplate($this->request);
222  $moduleTemplate->setContent($this->view->render());
223  return $this->‪htmlResponse($moduleTemplate->renderContent());
224  }
225 
229  public function ‪pagesAction(): ResponseInterface
230  {
231  $this->view->assignMultiple([
232  'extensionConfiguration' => $this->indexerConfig,
233  'records' => $this->administrationRepository->getPageStatistic(),
234  ]);
235  $moduleTemplate = $this->‪initializeModuleTemplate($this->request);
236  $moduleTemplate->setContent($this->view->render());
237  return $this->‪htmlResponse($moduleTemplate->renderContent());
238  }
239 
243  public function ‪externalDocumentsAction(): ResponseInterface
244  {
245  $this->view->assignMultiple([
246  'extensionConfiguration' => $this->indexerConfig,
247  'records' => $this->administrationRepository->getExternalDocumentsStatistic(),
248  ]);
249  $moduleTemplate = $this->‪initializeModuleTemplate($this->request);
250  $moduleTemplate->setContent($this->view->render());
251  return $this->‪htmlResponse($moduleTemplate->renderContent());
252  }
253 
259  public function ‪statisticDetailsAction($pageHash = 0): ResponseInterface
260  {
261  $moduleTemplate = $this->‪initializeModuleTemplate($this->request);
262  $buttonBar = $moduleTemplate->getDocHeaderComponent()->getButtonBar();
263  $pageHash = (int)$pageHash;
264 
265  // Set back button
266  $backButton = $buttonBar
267  ->makeLinkButton()
268  ->setTitle($this->‪getLanguageService()->‪sL('LLL:EXT:indexed_search/Resources/Private/Language/locallang.xlf:administration.back'))
269  ->setIcon($this->iconFactory->getIcon('actions-view-go-up', ‪Icon::SIZE_SMALL))
270  ->setHref($this->uriBuilder->reset()->uriFor('statistic', [], 'Administration'));
271  $buttonBar->addButton($backButton);
272 
273  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_phash');
274  $pageHashRow = $queryBuilder
275  ->select('*')
276  ->from('index_phash')
277  ->where(
278  $queryBuilder->expr()->eq(
279  'phash',
280  $queryBuilder->createNamedParameter($pageHash, ‪Connection::PARAM_INT)
281  )
282  )
283  ->executeQuery()
284  ->fetchAssociative();
285 
286  if (!is_array($pageHashRow)) {
287  $this->‪redirect('statistic');
288  }
289 
290  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_debug');
291  $debugRow = $queryBuilder
292  ->select('debuginfo')
293  ->from('index_debug')
294  ->where(
295  $queryBuilder->expr()->eq(
296  'phash',
297  $queryBuilder->createNamedParameter($pageHash, ‪Connection::PARAM_INT)
298  )
299  )
300  ->executeQuery()
301  ->fetchAssociative();
302  $debugInfo = [];
303  $lexer = '';
304  if (is_array($debugRow)) {
305  $debugInfo = json_decode($debugRow['debuginfo'], true);
306  $lexer = $debugInfo['lexer'];
307  unset($debugInfo['lexer']);
308  }
309  $pageRecord = BackendUtility::getRecord('pages', $pageHashRow['data_page_id']);
310  $keywords = is_array($pageRecord) ? array_flip(‪GeneralUtility::trimExplode(',', (string)$pageRecord['keywords'], true)) : [];
311 
312  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_words');
313  $wordRecords = $queryBuilder
314  ->select('index_words.*', 'index_rel.*')
315  ->from('index_words')
316  ->from('index_rel')
317  ->where(
318  $queryBuilder->expr()->eq(
319  'index_rel.phash',
320  $queryBuilder->createNamedParameter($pageHash, ‪Connection::PARAM_INT)
321  ),
322  $queryBuilder->expr()->eq(
323  'index_words.wid',
324  $queryBuilder->quoteIdentifier('index_rel.wid')
325  )
326  )
327  ->orderBy('index_words.baseword')
328  ->executeQuery()
329  ->fetchAllAssociative();
330  foreach ($wordRecords as $id => $row) {
331  if (isset($keywords[$row['baseword']])) {
332  $wordRecords[$id]['is_keyword'] = true;
333  }
334  }
335  $metaphoneRows = $metaphone = [];
336  if ($this->enableMetaphoneSearch && is_array($wordRecords)) {
337  // Group metaphone hash
338  foreach ($wordRecords as $row) {
339  $metaphoneRows[$row['metaphone']][] = $row['baseword'];
340  }
341 
342  foreach ($metaphoneRows as $hash => $words) {
343  if (count($words) > 1) {
344  $metaphone[] = [
345  'metaphone' => $this->indexer->metaphone($words[0], 1), $hash,
346  'words' => $words,
347  'hash' => $hash,
348  ];
349  }
350  }
351  }
352 
353  // sections
354  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_section');
355  $sections = $queryBuilder
356  ->select('*')
357  ->from('index_section')
358  ->where(
359  $queryBuilder->expr()->eq(
360  'phash',
361  $queryBuilder->createNamedParameter($pageHash, ‪Connection::PARAM_INT)
362  )
363  )
364  ->executeQuery()
365  ->fetchAllAssociative();
366 
367  // top words
368  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_words');
369  $topCountWords = $queryBuilder
370  ->select('index_words.baseword', 'index_words.metaphone', 'index_rel.*')
371  ->from('index_words')
372  ->from('index_rel')
373  ->setMaxResults(20)
374  ->where(
375  $queryBuilder->expr()->eq(
376  'index_rel.phash',
377  $queryBuilder->createNamedParameter($pageHash, ‪Connection::PARAM_INT)
378  ),
379  $queryBuilder->expr()->eq(
380  'index_words.is_stopword',
381  $queryBuilder->createNamedParameter(0, ‪Connection::PARAM_INT)
382  ),
383  $queryBuilder->expr()->eq(
384  'index_words.wid',
385  $queryBuilder->quoteIdentifier('index_rel.wid')
386  )
387  )
388  ->orderBy('index_rel.count', 'DESC')
389  ->executeQuery()
390  ->fetchAllAssociative();
391 
392  // top frequency
393  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_words');
394  $topFrequency = $queryBuilder
395  ->select('index_words.baseword', 'index_words.metaphone', 'index_rel.*')
396  ->from('index_words')
397  ->from('index_rel')
398  ->setMaxResults(20)
399  ->where(
400  $queryBuilder->expr()->eq(
401  'index_rel.phash',
402  $queryBuilder->createNamedParameter($pageHash, ‪Connection::PARAM_INT)
403  ),
404  $queryBuilder->expr()->eq(
405  'index_words.is_stopword',
406  $queryBuilder->createNamedParameter(0, ‪Connection::PARAM_INT)
407  ),
408  $queryBuilder->expr()->eq(
409  'index_words.wid',
410  $queryBuilder->quoteIdentifier('index_rel.wid')
411  )
412  )
413  ->orderBy('index_rel.freq', 'DESC')
414  ->executeQuery()
415  ->fetchAllAssociative();
416 
417  $this->view->assignMultiple([
418  'extensionConfiguration' => $this->indexerConfig,
419  'phash' => (int)$pageHash,
420  'phashRow' => $pageHashRow,
421  'words' => $wordRecords,
422  'sections' => $sections,
423  'topCount' => $topCountWords,
424  'topFrequency' => $topFrequency,
425  'debug' => $debugInfo,
426  'lexer' => $lexer,
427  'metaphone' => $metaphone,
428  'page' => $pageRecord,
429  'keywords' => $keywords,
430  ]);
431 
432  $moduleTemplate->setContent($this->view->render());
433  return $this->‪htmlResponse($moduleTemplate->renderContent());
434  }
435 
444  public function ‪saveStopwordsKeywordsAction($pageHash, $pageId, $stopwords = [], $keywords = [])
445  {
446  if ($this->‪getBackendUserAuthentication()->isAdmin()) {
447  if (is_array($stopwords) && !empty($stopwords)) {
448  $this->administrationRepository->saveStopWords($stopwords);
449  }
450  if (is_array($keywords) && !empty($keywords)) {
451  $this->administrationRepository->saveKeywords($keywords, $pageId);
452  }
453  }
454 
455  $this->‪redirect('statisticDetails', null, null, ['pageHash' => $pageHash]);
456  }
457 
464  public function ‪wordDetailAction($id = 0, $pageHash = 0): ResponseInterface
465  {
466  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_phash');
467  $rows = $queryBuilder
468  ->select('index_phash.*', 'index_section.*', 'index_rel.*')
469  ->from('index_rel')
470  ->from('index_section')
471  ->from('index_phash')
472  ->where(
473  $queryBuilder->expr()->eq(
474  'index_rel.wid',
475  $queryBuilder->createNamedParameter($id, ‪Connection::PARAM_INT)
476  ),
477  $queryBuilder->expr()->eq(
478  'index_rel.phash',
479  $queryBuilder->quoteIdentifier('index_section.phash')
480  ),
481  $queryBuilder->expr()->eq(
482  'index_section.phash',
483  $queryBuilder->quoteIdentifier('index_phash.phash')
484  )
485  )
486  ->orderBy('index_rel.freq', 'desc')
487  ->executeQuery()
488  ->fetchAllAssociative();
489 
490  $this->view->assignMultiple([
491  'extensionConfiguration' => $this->indexerConfig,
492  'rows' => $rows,
493  'phash' => $pageHash,
494  ]);
495  $moduleTemplate = $this->‪initializeModuleTemplate($this->request);
496  $moduleTemplate->setContent($this->view->render());
497  return $this->‪htmlResponse($moduleTemplate->renderContent());
498  }
499 
506  public function ‪statisticAction($depth = 1, $mode = 'overview'): ResponseInterface
507  {
508  foreach (‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['indexed_search']['external_parsers'] ?? [] as $extension => $className) {
510  $fileContentParser = GeneralUtility::makeInstance($className);
511  if ($fileContentParser->softInit($extension)) {
512  $this->external_parsers[$extension] = $fileContentParser;
513  }
514  }
515  $this->administrationRepository->external_parsers = ‪$this->external_parsers;
516 
517  $allLines = $this->administrationRepository->getTree($this->pageUid, $depth, $mode);
518 
519  $this->view->assignMultiple([
520  'extensionConfiguration' => $this->indexerConfig,
521  'levelTranslations' => explode('|', $this->‪getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.enterSearchLevels')),
522  'tree' => $allLines,
523  'pageUid' => $this->pageUid,
524  'mode' => $mode,
525  'depth' => $depth,
526  ]);
527 
528  $moduleTemplate = $this->‪initializeModuleTemplate($this->request);
529  $moduleTemplate->setContent($this->view->render());
530  return $this->‪htmlResponse($moduleTemplate->renderContent());
531  }
532 
540  public function ‪deleteIndexedItemAction($id, $depth = 1, $mode = 'overview')
541  {
542  $this->administrationRepository->removeIndexedPhashRow($id, $this->pageUid, $depth);
543  $this->‪redirect('statistic', null, null, ['depth' => $depth, 'mode' => $mode]);
544  }
545 
549  protected function ‪getBackendUserAuthentication()
550  {
551  return ‪$GLOBALS['BE_USER'];
552  }
553 
557  protected function ‪getLanguageService()
558  {
559  return ‪$GLOBALS['LANG'];
560  }
561 }
‪TYPO3\CMS\Backend\Template\Components\Menu\Menu\makeMenuItem
‪MenuItem makeMenuItem()
Definition: Menu.php:133
‪TYPO3\CMS\Core\Imaging\Icon\SIZE_SMALL
‪const SIZE_SMALL
Definition: Icon.php:30
‪TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode
‪static list< string > trimExplode($delim, $string, $removeEmptyValues=false, $limit=0)
Definition: GeneralUtility.php:999
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\initializeModuleTemplate
‪initializeModuleTemplate(ServerRequestInterface $request)
Definition: AdministrationController.php:81
‪TYPO3\CMS\Core\Database\Connection\PARAM_INT
‪const PARAM_INT
Definition: Connection.php:49
‪TYPO3\CMS\Extbase\Mvc\Controller\ActionController\$arguments
‪TYPO3 CMS Extbase Mvc Controller Arguments $arguments
Definition: ActionController.php:159
‪TYPO3\CMS\Extbase\Mvc\Controller\ActionController\htmlResponse
‪ResponseInterface htmlResponse(string $html=null)
Definition: ActionController.php:1067
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\pagesAction
‪pagesAction()
Definition: AdministrationController.php:225
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication\getPagePermsClause
‪string getPagePermsClause($perms)
Definition: BackendUserAuthentication.php:460
‪TYPO3\CMS\Core\Configuration\ExtensionConfiguration
Definition: ExtensionConfiguration.php:45
‪TYPO3\CMS\Core\Imaging\Icon
Definition: Icon.php:26
‪TYPO3\CMS\Backend\Template\ModuleTemplateFactory
Definition: ModuleTemplateFactory.php:29
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\initializeAction
‪initializeAction()
Definition: AdministrationController.php:143
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\statisticDetailsAction
‪statisticDetailsAction($pageHash=0)
Definition: AdministrationController.php:255
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\$enableMetaphoneSearch
‪bool $enableMetaphoneSearch
Definition: AdministrationController.php:64
‪TYPO3\CMS\Extbase\Mvc\Controller\ActionController\$request
‪Request $request
Definition: ActionController.php:129
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\$indexer
‪Indexer $indexer
Definition: AdministrationController.php:47
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\wordDetailAction
‪wordDetailAction($id=0, $pageHash=0)
Definition: AdministrationController.php:460
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\$moduleTemplateFactory
‪ModuleTemplateFactory $moduleTemplateFactory
Definition: AdministrationController.php:45
‪TYPO3\CMS\Core\Imaging\IconFactory
Definition: IconFactory.php:34
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\processRequest
‪ResponseInterface processRequest(RequestInterface $request)
Definition: AdministrationController.php:158
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\$indexerConfig
‪array $indexerConfig
Definition: AdministrationController.php:60
‪TYPO3\CMS\Backend\Template\Components\Menu\Menu\setIdentifier
‪Menu setIdentifier($identifier)
Definition: Menu.php:73
‪TYPO3\CMS\Core\Localization\LanguageService\sL
‪string sL($input)
Definition: LanguageService.php:161
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\$administrationRepository
‪AdministrationRepository $administrationRepository
Definition: AdministrationController.php:46
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\getBackendUserAuthentication
‪BackendUserAuthentication getBackendUserAuthentication()
Definition: AdministrationController.php:545
‪TYPO3\CMS\Backend\Template\ModuleTemplate
Definition: ModuleTemplate.php:46
‪TYPO3\CMS\Core\Type\Bitmask\Permission
Definition: Permission.php:26
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController
Definition: AdministrationController.php:44
‪TYPO3\CMS\Backend\Template\Components\MenuRegistry\makeMenu
‪Menu makeMenu()
Definition: MenuRegistry.php:74
‪TYPO3\CMS\Extbase\Mvc\Request\setControllerActionName
‪setControllerActionName($actionName)
Definition: Request.php:343
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository
Definition: AdministrationRepository.php:38
‪TYPO3\CMS\Extbase\Mvc\Request\getArguments
‪getArguments()
Definition: Request.php:214
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\statisticAction
‪statisticAction($depth=1, $mode='overview')
Definition: AdministrationController.php:502
‪TYPO3\CMS\IndexedSearch\Controller
Definition: AdministrationController.php:16
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\getLanguageService
‪LanguageService getLanguageService()
Definition: AdministrationController.php:553
‪TYPO3\CMS\IndexedSearch\FileContentParser
Definition: FileContentParser.php:33
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:62
‪TYPO3\CMS\Core\Type\Bitmask\Permission\PAGE_SHOW
‪const PAGE_SHOW
Definition: Permission.php:35
‪TYPO3\CMS\Backend\Template\Components\DocHeaderComponent\getMenuRegistry
‪MenuRegistry getMenuRegistry()
Definition: DocHeaderComponent.php:78
‪TYPO3\CMS\Core\Database\Connection
Definition: Connection.php:38
‪TYPO3\CMS\Extbase\Mvc\RequestInterface
Definition: RequestInterface.php:27
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\$pageUid
‪int $pageUid
Definition: AdministrationController.php:52
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\saveStopwordsKeywordsAction
‪saveStopwordsKeywordsAction($pageHash, $pageId, $stopwords=[], $keywords=[])
Definition: AdministrationController.php:440
‪TYPO3\CMS\Extbase\Mvc\Controller\ActionController
Definition: ActionController.php:65
‪TYPO3\CMS\Extbase\Mvc\Controller\ActionController\getFlashMessageQueue
‪getFlashMessageQueue(string $identifier=null)
Definition: ActionController.php:852
‪TYPO3\CMS\Backend\Template\ModuleTemplate\getDocHeaderComponent
‪DocHeaderComponent getDocHeaderComponent()
Definition: ModuleTemplate.php:370
‪TYPO3\CMS\Extbase\Mvc\Request\setArguments
‪setArguments(array $arguments)
Definition: Request.php:359
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\$iconFactory
‪IconFactory $iconFactory
Definition: AdministrationController.php:48
‪TYPO3\CMS\Extbase\Mvc\Controller\ActionController\redirect
‪never redirect($actionName, $controllerName=null, $extensionName=null, array $arguments=null, $pageUid=null, $_=null, $statusCode=303)
Definition: ActionController.php:940
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\indexAction
‪indexAction()
Definition: AdministrationController.php:193
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\$external_parsers
‪array $external_parsers
Definition: AdministrationController.php:56
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Core\Database\ConnectionPool
Definition: ConnectionPool.php:46
‪TYPO3\CMS\IndexedSearch\Indexer
Definition: Indexer.php:39
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Backend\Template\Components\AbstractControl\setTitle
‪$this setTitle($title)
Definition: AbstractControl.php:128
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\deleteIndexedItemAction
‪deleteIndexedItemAction($id, $depth=1, $mode='overview')
Definition: AdministrationController.php:536
‪TYPO3\CMS\Extbase\Mvc\Request
Definition: Request.php:39
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\__construct
‪__construct(ModuleTemplateFactory $moduleTemplateFactory, AdministrationRepository $administrationRepository, Indexer $indexer, IconFactory $iconFactory)
Definition: AdministrationController.php:66
‪TYPO3\CMS\IndexedSearch\Controller\AdministrationController\externalDocumentsAction
‪externalDocumentsAction()
Definition: AdministrationController.php:239