‪TYPO3CMS  9.5
AdministrationRepository.php
Go to the documentation of this file.
1 <?php
3 
4 /*
5  * This file is part of the TYPO3 CMS project.
6  *
7  * It is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU General Public License, either version 2
9  * of the License, or any later version.
10  *
11  * For the full copyright and license information, please read the
12  * LICENSE.txt file that was distributed with this source code.
13  *
14  * The TYPO3 project - inspiring people to share!
15  */
31 
37 {
43  public ‪$external_parsers = [];
44 
48  protected ‪$allPhashListed = [];
49 
53  protected ‪$iconFileNameCache = [];
54 
61  public function ‪getGrlistRecord($phash)
62  {
63  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_grlist');
64  $result = $queryBuilder
65  ->select('*')
66  ->from('index_grlist')
67  ->where(
68  $queryBuilder->expr()->eq(
69  'phash',
70  $queryBuilder->createNamedParameter($phash, \PDO::PARAM_INT)
71  )
72  )
73  ->execute();
74  $numberOfRows = $queryBuilder
75  ->count('uniqid')
76  ->execute()
77  ->fetchColumn(0);
78  $allRows = [];
79  while ($row = $result->fetch()) {
80  $row['pcount'] = $numberOfRows;
81  $allRows[] = $row;
82  }
83  return $allRows;
84  }
85 
92  public function ‪getNumberOfFulltextRecords($phash)
93  {
94  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_fulltext');
95  return $queryBuilder
96  ->count('phash')
97  ->from('index_fulltext')
98  ->where(
99  $queryBuilder->expr()->eq(
100  'phash',
101  $queryBuilder->createNamedParameter($phash, \PDO::PARAM_INT)
102  )
103  )
104  ->execute()
105  ->fetchColumn(0);
106  }
107 
114  public function ‪getNumberOfWords($phash)
115  {
116  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_rel');
117  return $queryBuilder
118  ->count('*')
119  ->from('index_rel')
120  ->where(
121  $queryBuilder->expr()->eq(
122  'phash',
123  $queryBuilder->createNamedParameter($phash, \PDO::PARAM_INT)
124  )
125  )
126  ->execute()
127  ->fetchColumn(0);
128  }
129 
135  public function ‪getExternalDocumentsStatistic()
136  {
137  $result = [];
138 
139  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_phash');
140  $res = $queryBuilder
141  ->select('index_phash.*')
142  ->addSelectLiteral($queryBuilder->expr()->count('*', 'pcount'))
143  ->from('index_phash')
144  ->where($queryBuilder->expr()->neq('item_type', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)))
145  ->groupBy(
146  'phash_grouping',
147  'phash',
148  'cHashParams',
149  'data_filename',
150  'data_page_id',
151  // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Remove along with database field data_page_reg1
152  'data_page_reg1',
153  'data_page_type',
154  'data_page_mp',
155  'gr_list',
156  'item_type',
157  'item_title',
158  'item_description',
159  'item_mtime',
160  'tstamp',
161  'item_size',
162  'contentHash',
163  'crdate',
164  'parsetime',
165  'sys_language_uid',
166  'item_crdate',
167  'externalUrl',
168  'recordUid',
169  'freeIndexUid',
170  'freeIndexSetId'
171  )
172  ->orderBy('item_type')
173  ->execute();
174 
175  while ($row = $res->fetch()) {
176  $this->‪addAdditionalInformation($row);
177 
178  $result[] = $row;
179 
180  if ($row['pcount'] > 1) {
181  $res2 = $queryBuilder
182  ->select('*')
183  ->from('index_phash')
184  ->where(
185  $queryBuilder->expr()->eq(
186  'phash_grouping',
187  $queryBuilder->createNamedParameter($row['phash_grouping'], \PDO::PARAM_INT)
188  ),
189  $queryBuilder->expr()->neq(
190  'phash',
191  $queryBuilder->createNamedParameter($row['phash'], \PDO::PARAM_INT)
192  )
193  )
194  ->execute();
195  while ($row2 = $res2->fetch()) {
196  $this->‪addAdditionalInformation($row2);
197  $result[] = $row2;
198  }
199  }
200  }
201  return $result;
202  }
203 
209  public function ‪getRecordsNumbers()
210  {
211  $tables = [
212  'index_phash',
213  'index_words',
214  'index_rel',
215  'index_grlist',
216  'index_section',
217  'index_fulltext',
218  ];
219  $recordList = [];
220  foreach ($tables as $tableName) {
221  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($tableName);
222  $recordList[$tableName] = $queryBuilder
223  ->count('*')
224  ->from($tableName)
225  ->execute()
226  ->fetchColumn(0);
227  }
228  return $recordList;
229  }
230 
236  public function ‪getPageHashTypes()
237  {
238  $counts = [];
239  $types = [
240  'html' => 1,
241  'htm' => 1,
242  'pdf' => 2,
243  'doc' => 3,
244  'txt' => 4
245  ];
246  $revTypes = array_flip($types);
247  $revTypes[0] = 'TYPO3 page';
248 
249  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_phash');
250  $res = $queryBuilder
251  ->select('item_type')
252  ->addSelectLiteral($queryBuilder->expr()->count('*', 'count'))
253  ->from('index_phash')
254  ->groupBy('item_type')
255  ->orderBy('item_type')
256  ->execute();
257 
258  while ($row = $res->fetch()) {
259  $itemType = $row['item_type'];
260  $counts[] = [
261  'count' => $row['count'],
262  'name' => $revTypes[$itemType],
263  'type' => $itemType,
264  'uniqueCount' => $this->‪countUniqueTypes($itemType),
265  ];
266  }
267  return $counts;
268  }
269 
276  protected function ‪countUniqueTypes($itemType)
277  {
278  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_phash');
279  $items = $queryBuilder
280  ->count('*')
281  ->from('index_phash')
282  ->where(
283  $queryBuilder->expr()->eq(
284  'item_type',
285  $queryBuilder->createNamedParameter($itemType, \PDO::PARAM_STR)
286  )
287  )
288  ->groupBy('phash_grouping')
289  ->execute()
290  ->fetchAll();
291 
292  return count($items);
293  }
294 
301  public function ‪getNumberOfSections($pageHash)
302  {
303  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_section');
304  return (int)$queryBuilder
305  ->count('phash')
306  ->from('index_section')
307  ->where(
308  $queryBuilder->expr()->eq(
309  'phash',
310  $queryBuilder->createNamedParameter($pageHash, \PDO::PARAM_INT)
311  )
312  )
313  ->execute()
314  ->fetchColumn(0);
315  }
316 
322  public function ‪getPageStatistic()
323  {
324  $result = [];
325  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_phash');
326  $res = $queryBuilder
327  ->select('index_phash.*')
328  ->addSelectLiteral($queryBuilder->expr()->count('*', 'pcount'))
329  ->from('index_phash')
330  ->where($queryBuilder->expr()->neq('data_page_id', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)))
331  ->groupBy(
332  'phash_grouping',
333  'phash',
334  'cHashParams',
335  'data_filename',
336  'data_page_id',
337  // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Remove along with database field data_page_reg1
338  'data_page_reg1',
339  'data_page_type',
340  'data_page_mp',
341  'gr_list',
342  'item_type',
343  'item_title',
344  'item_description',
345  'item_mtime',
346  'tstamp',
347  'item_size',
348  'contentHash',
349  'crdate',
350  'parsetime',
351  'sys_language_uid',
352  'item_crdate',
353  'externalUrl',
354  'recordUid',
355  'freeIndexUid',
356  'freeIndexSetId'
357  )
358  ->orderBy('data_page_id')
359  ->execute();
360 
361  while ($row = $res->fetch()) {
362  $this->‪addAdditionalInformation($row);
363  $result[] = $row;
364 
365  if ($row['pcount'] > 1) {
366  $res2 = $queryBuilder
367  ->select('*')
368  ->from('index_phash')
369  ->where(
370  $queryBuilder->expr()->eq(
371  'phash_grouping',
372  $queryBuilder->createNamedParameter($row['phash_grouping'], \PDO::PARAM_INT)
373  ),
374  $queryBuilder->expr()->neq(
375  'phash',
376  $queryBuilder->createNamedParameter($row['phash'], \PDO::PARAM_INT)
377  )
378  )
379  ->execute();
380  while ($row2 = $res2->fetch()) {
381  $this->‪addAdditionalInformation($row2);
382  $result[] = $row2;
383  }
384  }
385  }
386  return $result;
387  }
388 
397  public function ‪getGeneralSearchStatistic($additionalWhere, $pageUid, $max = 50)
398  {
399  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
400  ->getQueryBuilderForTable('index_stat_word');
401  $queryBuilder
402  ->select('word')
403  ->from('index_stat_word')
404  ->addSelectLiteral($queryBuilder->expr()->count('*', 'c'))
405  ->where(
406  $queryBuilder->expr()->eq(
407  'pageid',
408  $queryBuilder->createNamedParameter($pageUid, \PDO::PARAM_INT)
409  )
410  )
411  ->groupBy('word')
412  ->orderBy('c', 'desc')
413  ->setMaxResults((int)$max);
414 
415  if (!empty($additionalWhere)) {
416  $queryBuilder->andWhere(‪QueryHelper::stripLogicalOperatorPrefix($additionalWhere));
417  }
418 
419  $result = $queryBuilder->execute();
420  $countQueryBuilder = clone $queryBuilder;
421  $countQueryBuilder->resetQueryPart('orderBy');
422  $count = (int)$countQueryBuilder
423  ->count('uid')
424  ->execute()
425  ->fetchColumn(0);
426  $result->closeCursor();
427 
428  // exist several statistics for this page?
429  if ($count === 0) {
430  // Limit access to pages of the current site
431  $queryBuilder->where(
432  $queryBuilder->expr()->in(
433  'pageid',
434  $queryBuilder->createNamedParameter(
435  $this->extGetTreeList((int)$pageUid),
436  Connection::PARAM_INT_ARRAY
437  )
438  ),
440  );
441  }
442 
443  return $queryBuilder->execute()->fetchAll();
444  }
445 
451  protected function ‪addAdditionalInformation(array &$row)
452  {
453  $grListRec = $this->‪getGrlistRecord($row['phash']);
454  $unserializedCHashParams = unserialize($row['cHashParams']);
455  $row['static_page_arguments'] = $row['static_page_arguments'] ? json_decode($row['static_page_arguments'], true) : null;
456 
457  $row['numberOfWords'] = $this->‪getNumberOfWords($row['phash']);
458  $row['numberOfSections'] = $this->‪getNumberOfSections($row['phash']);
459  $row['numberOfFulltext'] = $this->‪getNumberOfFulltextRecords($row['phash']);
460  $row['cHashParams'] = !empty($unserializedCHashParams) ? $unserializedCHashParams : '';
461  $row['grList'] = $grListRec;
462  }
463 
472  public function ‪getTree($pageId, $depth = 4, $mode)
473  {
474  $allLines = [];
475  $pageRecord = ‪BackendUtility::getRecord('pages', (int)$pageId);
476  if (!$pageRecord) {
477  return $allLines;
478  }
480  $tree = GeneralUtility::makeInstance(PageTreeView::class);
482  $tree->init('AND ' . $perms_clause);
483  $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
484  $HTML = '<span title="' . htmlspecialchars($pageRecord['title']) . '">' . $iconFactory->getIconForRecord('pages', $pageRecord, ‪Icon::SIZE_SMALL)->render() . '</span>';
485  $tree->tree[] = [
486  'row' => $pageRecord,
487  'HTML' => $HTML
488  ];
489 
490  if ($depth > 0) {
491  $tree->getTree((int)$pageId, $depth, '');
492  }
493 
494  foreach ($tree->tree as $singleLine) {
495  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_phash');
496  $result = $queryBuilder->select(
497  'ISEC.phash_t3',
498  'ISEC.rl0',
499  'ISEC.rl1',
500  'ISEC.rl2',
501  'ISEC.page_id',
502  'ISEC.uniqid',
503  'IP.phash',
504  'IP.phash_grouping',
505  'IP.cHashParams',
506  'IP.data_filename',
507  'IP.data_page_id',
508  // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Remove along with database field data_page_reg1
509  'IP.data_page_reg1',
510  'IP.data_page_type',
511  'IP.data_page_mp',
512  'IP.gr_list',
513  'IP.item_type',
514  'IP.item_title',
515  'IP.item_description',
516  'IP.item_mtime',
517  'IP.tstamp',
518  'IP.item_size',
519  'IP.contentHash',
520  'IP.crdate',
521  'IP.parsetime',
522  'IP.sys_language_uid',
523  'IP.item_crdate',
524  'IP.externalUrl',
525  'IP.recordUid',
526  'IP.freeIndexUid',
527  'IP.freeIndexSetId'
528  )
529  ->addSelectLiteral($queryBuilder->expr()->count('*', 'count_val'))
530  ->from('index_phash', 'IP')
531  ->from('index_section', 'ISEC')
532  ->where(
533  $queryBuilder->expr()->eq('IP.phash', $queryBuilder->quoteIdentifier('ISEC.phash')),
534  $queryBuilder->expr()->eq(
535  'ISEC.page_id',
536  $queryBuilder->createNamedParameter($singleLine['row']['uid'], \PDO::PARAM_INT)
537  )
538  )
539  ->groupBy(
540  'IP.phash',
541  'IP.phash_grouping',
542  'IP.cHashParams',
543  'IP.data_filename',
544  'IP.data_page_id',
545  // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Remove along with database field data_page_reg1
546  'IP.data_page_reg1',
547  'IP.data_page_type',
548  'IP.data_page_mp',
549  'IP.gr_list',
550  'IP.item_type',
551  'IP.item_title',
552  'IP.item_description',
553  'IP.item_mtime',
554  'IP.tstamp',
555  'IP.item_size',
556  'IP.contentHash',
557  'IP.crdate',
558  'IP.parsetime',
559  'IP.sys_language_uid',
560  'IP.item_crdate',
561  'ISEC.phash',
562  'ISEC.phash_t3',
563  'ISEC.rl0',
564  'ISEC.rl1',
565  'ISEC.rl2',
566  'ISEC.page_id',
567  'ISEC.uniqid',
568  'IP.externalUrl',
569  'IP.recordUid',
570  'IP.freeIndexUid',
571  'IP.freeIndexSetId'
572  )
573  ->orderBy('IP.item_type')
574  ->addOrderBy('IP.tstamp')
575  ->setMaxResults(11)
576  ->execute();
577 
578  $lines = [];
579  // Collecting phash values (to remove local indexing for)
580  // Traverse the result set of phash rows selected:
581  while ($row = $result->fetch()) {
582  $row['icon'] = $this->‪makeItemTypeIcon($row['item_type']);
583  $this->allPhashListed[] = $row['phash'];
584 
585  // Adds a display row:
586  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
587  ->getQueryBuilderForTable('index_rel');
588  $wordCountResult = $queryBuilder->count('index_words.baseword')
589  ->from('index_rel')
590  ->from('index_words')
591  ->where(
592  $queryBuilder->expr()->eq(
593  'index_rel.phash',
594  $queryBuilder->createNamedParameter($row['phash'], \PDO::PARAM_INT)
595  ),
596  $queryBuilder->expr()->eq('index_words.wid', $queryBuilder->quoteIdentifier('index_rel.wid'))
597  )
598  ->groupBy('index_words.baseword')
599  ->execute();
600 
601  $row['wordCount'] = $queryBuilder
602  ->count('index_rel.wid')
603  ->execute()
604  ->fetchColumn(0);
605  $wordCountResult->closeCursor();
606 
607  if ($mode === 'content') {
608  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
609  ->getQueryBuilderForTable('index_fulltext');
610  $row['fulltextData'] = $queryBuilder->select('*')
611  ->from('index_fulltext')
612  ->where(
613  $queryBuilder->expr()->eq(
614  'phash',
615  $queryBuilder->createNamedParameter($row['phash'], \PDO::PARAM_INT)
616  )
617  )
618  ->setMaxResults(1)
619  ->execute()
620  ->fetch();
621 
622  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
623  ->getQueryBuilderForTable('index_rel');
624  $wordRecords = $queryBuilder->select('index_words.baseword')
625  ->from('index_rel')
626  ->from('index_words')
627  ->where(
628  $queryBuilder->expr()->eq(
629  'index_rel.phash',
630  $queryBuilder->createNamedParameter($row['phash'], \PDO::PARAM_INT)
631  ),
632  $queryBuilder->expr()->eq(
633  'index_words.wid',
634  $queryBuilder->quoteIdentifier('index_rel.wid')
635  )
636  )
637  ->groupBy('index_words.baseword')
638  ->orderBy('index_words.baseword')
639  ->execute()
640  ->fetchAll();
641 
642  if (is_array($wordRecords)) {
643  $row['allWords'] = array_column($wordRecords, 'baseword');
644  }
645  }
646 
647  $lines[] = $row;
648  }
649 
650  $singleLine['lines'] = $lines;
651  $allLines[] = $singleLine;
652  }
653 
654  return $allLines;
655  }
656 
664  protected function ‪extGetTreeList(int $id): array
665  {
666  $pageIds = $this->‪getPageTreeIds($id, 100, 0);
667  $pageIds[] = $id;
668  return $pageIds;
669  }
670 
680  protected function ‪getPageTreeIds(int $id, int $depth, int $begin): array
681  {
682  if (!$id || $depth <= 0) {
683  return [];
684  }
685  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
686  ->getQueryBuilderForTable('pages');
687 
688  $queryBuilder->getRestrictions()
689  ->removeAll()
690  ->add(GeneralUtility::makeInstance(DeletedRestriction::class));
691  $result = $queryBuilder
692  ->select('uid', 'title')
693  ->from('pages')
694  ->where(
695  $queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($id, \PDO::PARAM_INT))
696  )
697  ->execute();
698 
699  $pageIds = [];
700  while ($row = $result->fetch()) {
701  if ($begin <= 0) {
702  $pageIds[] = (int)$row['uid'];
703  }
704  if ($depth > 1) {
705  $pageIds = array_merge($pageIds, $this->‪getPageTreeIds((int)$row['uid'], $depth - 1, $begin - 1));
706  }
707  }
708  return $pageIds;
709  }
710 
718  public function ‪removeIndexedPhashRow($phashList, $pageId, $depth = 4)
719  {
720  if ($phashList === 'ALL') {
721  $this->‪getTree($pageId, $depth, '');
722  $phashRows = ‪$this->allPhashListed;
723  $this->allPhashListed = [];
724  } else {
725  $phashRows = GeneralUtility::trimExplode(',', $phashList, true);
726  }
727 
728  foreach ($phashRows as $phash) {
729  $phash = (int)$phash;
730  if ($phash > 0) {
731  $idList = [];
732  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
733  ->getQueryBuilderForTable('index_section');
734  $res = $queryBuilder
735  ->select('page_id')
736  ->from('index_section')
737  ->where(
738  $queryBuilder->expr()->eq(
739  'phash',
740  $queryBuilder->createNamedParameter($phash, \PDO::PARAM_INT)
741  )
742  )
743  ->execute();
744  while ($row = $res->fetch()) {
745  $idList[] = (int)$row['page_id'];
746  }
747 
748  if (!empty($idList)) {
750  $pageCache = GeneralUtility::makeInstance(CacheManager::class)->getCache('cache_pages');
751  foreach ($idList as $pageId) {
752  $pageCache->flushByTag('pageId_' . $pageId);
753  }
754  }
755 
756  // Removing old registrations for all tables.
757  $tableArr = [
758  'index_phash',
759  'index_rel',
760  'index_section',
761  'index_grlist',
762  'index_fulltext',
763  'index_debug'
764  ];
765  foreach ($tableArr as $table) {
766  GeneralUtility::makeInstance(ConnectionPool::class)
767  ->getConnectionForTable($table)
768  ->delete($table, ['phash' => (int)$phash]);
769  }
770  }
771  }
772  }
773 
779  public function ‪saveStopWords(array $words)
780  {
781  foreach ($words as $wid => $state) {
782  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_words');
783  $queryBuilder
784  ->update('index_words')
785  ->set('is_stopword', (int)$state)
786  ->where(
787  $queryBuilder->expr()->eq(
788  'wid',
789  $queryBuilder->createNamedParameter($wid, \PDO::PARAM_INT)
790  )
791  )
792  ->execute();
793  }
794  }
795 
802  public function ‪saveKeywords(array $words, $pageId)
803  {
804  // Get pages current keywords
805  $pageRec = ‪BackendUtility::getRecord('pages', $pageId);
806  if (!is_array($pageRec)) {
807  return;
808  }
809  $keywords = array_flip(GeneralUtility::trimExplode(',', $pageRec['keywords'], true));
810  // Merge keywords:
811  foreach ($words as $key => $v) {
812  if ($v) {
813  $keywords[$key] = 1;
814  } else {
815  unset($keywords[$key]);
816  }
817  }
818  // Compile new list:
819  $data = [];
820  $data['pages'][$pageId]['keywords'] = implode(', ', array_keys($keywords));
821  $dataHandler = GeneralUtility::makeInstance(DataHandler::class);
822  $dataHandler->start($data, []);
823  $dataHandler->process_datamap();
824  }
825 
832  protected function ‪makeItemTypeIcon($itemType)
833  {
834  if (!isset($this->iconFileNameCache[$itemType])) {
835  $icon = '';
836  if ($itemType === '0') {
837  $icon = 'EXT:indexed_search/Resources/Public/Icons/FileTypes/pages.gif';
838  } elseif ($this->external_parsers[$itemType]) {
839  $icon = $this->external_parsers[$itemType]->getIcon($itemType);
840  }
841  $this->iconFileNameCache[$itemType] = $icon;
842  }
843  return $this->iconFileNameCache[$itemType];
844  }
845 
849  protected function ‪getBackendUserAuthentication()
850  {
851  return ‪$GLOBALS['BE_USER'];
852  }
853 }
‪TYPO3\CMS\Core\DataHandling\DataHandler
Definition: DataHandler.php:81
‪TYPO3\CMS\Core\Imaging\Icon\SIZE_SMALL
‪const SIZE_SMALL
Definition: Icon.php:29
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\makeItemTypeIcon
‪string makeItemTypeIcon($itemType)
Definition: AdministrationRepository.php:829
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getBackendUserAuthentication
‪BackendUserAuthentication getBackendUserAuthentication()
Definition: AdministrationRepository.php:846
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication\getPagePermsClause
‪string getPagePermsClause($perms)
Definition: BackendUserAuthentication.php:523
‪TYPO3\CMS\Core\Imaging\Icon
Definition: Icon.php:25
‪TYPO3\CMS\IndexedSearch\Domain\Repository
Definition: AdministrationRepository.php:2
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\$allPhashListed
‪array $allPhashListed
Definition: AdministrationRepository.php:46
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\saveStopWords
‪saveStopWords(array $words)
Definition: AdministrationRepository.php:776
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getGeneralSearchStatistic
‪array null getGeneralSearchStatistic($additionalWhere, $pageUid, $max=50)
Definition: AdministrationRepository.php:394
‪TYPO3\CMS\Core\Imaging\IconFactory
Definition: IconFactory.php:31
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getNumberOfSections
‪int getNumberOfSections($pageHash)
Definition: AdministrationRepository.php:298
‪TYPO3\CMS\Backend\Tree\View\PageTreeView
Definition: PageTreeView.php:23
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\$external_parsers
‪FileContentParser[] $external_parsers
Definition: AdministrationRepository.php:42
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\addAdditionalInformation
‪addAdditionalInformation(array &$row)
Definition: AdministrationRepository.php:448
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getPageTreeIds
‪array getPageTreeIds(int $id, int $depth, int $begin)
Definition: AdministrationRepository.php:677
‪TYPO3\CMS\Core\Type\Bitmask\Permission
Definition: Permission.php:23
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository
Definition: AdministrationRepository.php:37
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getRecordsNumbers
‪array getRecordsNumbers()
Definition: AdministrationRepository.php:206
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\extGetTreeList
‪array extGetTreeList(int $id)
Definition: AdministrationRepository.php:661
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getPageStatistic
‪array getPageStatistic()
Definition: AdministrationRepository.php:319
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getTree
‪array getTree($pageId, $depth=4, $mode)
Definition: AdministrationRepository.php:469
‪TYPO3\CMS\Core\Database\Query\QueryHelper
Definition: QueryHelper.php:30
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getNumberOfWords
‪int bool getNumberOfWords($phash)
Definition: AdministrationRepository.php:111
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\$iconFileNameCache
‪array $iconFileNameCache
Definition: AdministrationRepository.php:50
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getExternalDocumentsStatistic
‪array getExternalDocumentsStatistic()
Definition: AdministrationRepository.php:132
‪TYPO3\CMS\Core\Cache\CacheManager
Definition: CacheManager.php:34
‪TYPO3\CMS\IndexedSearch\FileContentParser
Definition: FileContentParser.php:29
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:45
‪TYPO3\CMS\Core\Type\Bitmask\Permission\PAGE_SHOW
‪const PAGE_SHOW
Definition: Permission.php:32
‪TYPO3\CMS\Backend\Utility\BackendUtility
Definition: BackendUtility.php:72
‪TYPO3\CMS\Backend\Utility\BackendUtility\getRecord
‪static array null getRecord($table, $uid, $fields=' *', $where='', $useDeleteClause=true)
Definition: BackendUtility.php:130
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getGrlistRecord
‪array getGrlistRecord($phash)
Definition: AdministrationRepository.php:58
‪TYPO3\CMS\Core\Database\Connection
Definition: Connection.php:31
‪TYPO3\CMS\Core\Cache\Frontend\FrontendInterface
Definition: FrontendInterface.php:21
‪TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix
‪static string stripLogicalOperatorPrefix(string $constraint)
Definition: QueryHelper.php:163
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:5
‪TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction
Definition: DeletedRestriction.php:26
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\removeIndexedPhashRow
‪removeIndexedPhashRow($phashList, $pageId, $depth=4)
Definition: AdministrationRepository.php:715
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getPageHashTypes
‪array getPageHashTypes()
Definition: AdministrationRepository.php:233
‪TYPO3\CMS\Core\Database\ConnectionPool
Definition: ConnectionPool.php:44
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\saveKeywords
‪saveKeywords(array $words, $pageId)
Definition: AdministrationRepository.php:799
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:45
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\countUniqueTypes
‪int countUniqueTypes($itemType)
Definition: AdministrationRepository.php:273
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getNumberOfFulltextRecords
‪int bool getNumberOfFulltextRecords($phash)
Definition: AdministrationRepository.php:89