‪TYPO3CMS  10.4
AdministrationRepository.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 
33 
39 {
45  public ‪$external_parsers = [];
46 
50  protected ‪$allPhashListed = [];
51 
55  protected ‪$iconFileNameCache = [];
56 
63  public function ‪getGrlistRecord($phash)
64  {
65  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_grlist');
66  $result = $queryBuilder
67  ->select('*')
68  ->from('index_grlist')
69  ->where(
70  $queryBuilder->expr()->eq(
71  'phash',
72  $queryBuilder->createNamedParameter($phash, \PDO::PARAM_INT)
73  )
74  )
75  ->execute();
76  $numberOfRows = $queryBuilder
77  ->count('uniqid')
78  ->execute()
79  ->fetchColumn(0);
80  $allRows = [];
81  while ($row = $result->fetch()) {
82  $row['pcount'] = $numberOfRows;
83  $allRows[] = $row;
84  }
85  return $allRows;
86  }
87 
94  public function ‪getNumberOfFulltextRecords($phash)
95  {
96  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_fulltext');
97  return $queryBuilder
98  ->count('phash')
99  ->from('index_fulltext')
100  ->where(
101  $queryBuilder->expr()->eq(
102  'phash',
103  $queryBuilder->createNamedParameter($phash, \PDO::PARAM_INT)
104  )
105  )
106  ->execute()
107  ->fetchColumn(0);
108  }
109 
116  public function ‪getNumberOfWords($phash)
117  {
118  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_rel');
119  return $queryBuilder
120  ->count('*')
121  ->from('index_rel')
122  ->where(
123  $queryBuilder->expr()->eq(
124  'phash',
125  $queryBuilder->createNamedParameter($phash, \PDO::PARAM_INT)
126  )
127  )
128  ->execute()
129  ->fetchColumn(0);
130  }
131 
137  public function ‪getExternalDocumentsStatistic()
138  {
139  $result = [];
140 
141  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_phash');
142  $res = $queryBuilder
143  ->select('index_phash.*')
144  ->addSelectLiteral($queryBuilder->expr()->count('*', 'pcount'))
145  ->from('index_phash')
146  ->where($queryBuilder->expr()->neq('item_type', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)))
147  ->groupBy(
148  'phash_grouping',
149  'phash',
150  'static_page_arguments',
151  'data_filename',
152  'data_page_id',
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  'static_page_arguments',
335  'data_filename',
336  'data_page_id',
337  'data_page_type',
338  'data_page_mp',
339  'gr_list',
340  'item_type',
341  'item_title',
342  'item_description',
343  'item_mtime',
344  'tstamp',
345  'item_size',
346  'contentHash',
347  'crdate',
348  'parsetime',
349  'sys_language_uid',
350  'item_crdate',
351  'externalUrl',
352  'recordUid',
353  'freeIndexUid',
354  'freeIndexSetId'
355  )
356  ->orderBy('data_page_id')
357  ->execute();
358 
359  while ($row = $res->fetch()) {
360  $this->‪addAdditionalInformation($row);
361  $result[] = $row;
362 
363  if ($row['pcount'] > 1) {
364  $res2 = $queryBuilder
365  ->select('*')
366  ->from('index_phash')
367  ->where(
368  $queryBuilder->expr()->eq(
369  'phash_grouping',
370  $queryBuilder->createNamedParameter($row['phash_grouping'], \PDO::PARAM_INT)
371  ),
372  $queryBuilder->expr()->neq(
373  'phash',
374  $queryBuilder->createNamedParameter($row['phash'], \PDO::PARAM_INT)
375  )
376  )
377  ->execute();
378  while ($row2 = $res2->fetch()) {
379  $this->‪addAdditionalInformation($row2);
380  $result[] = $row2;
381  }
382  }
383  }
384  return $result;
385  }
386 
395  public function ‪getGeneralSearchStatistic($additionalWhere, $pageUid, $max = 50)
396  {
397  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
398  ->getQueryBuilderForTable('index_stat_word');
399  $queryBuilder
400  ->select('word')
401  ->from('index_stat_word')
402  ->addSelectLiteral($queryBuilder->expr()->count('*', 'c'))
403  ->where(
404  $queryBuilder->expr()->eq(
405  'pageid',
406  $queryBuilder->createNamedParameter($pageUid, \PDO::PARAM_INT)
407  )
408  )
409  ->groupBy('word')
410  ->orderBy('c', 'desc')
411  ->setMaxResults((int)$max);
412 
413  if (!empty($additionalWhere)) {
414  $queryBuilder->andWhere(‪QueryHelper::stripLogicalOperatorPrefix($additionalWhere));
415  }
416 
417  $result = $queryBuilder->execute();
418  $countQueryBuilder = clone $queryBuilder;
419  $countQueryBuilder->resetQueryPart('orderBy');
420  $count = (int)$countQueryBuilder
421  ->count('uid')
422  ->execute()
423  ->fetchColumn(0);
424  $result->closeCursor();
425 
426  // exist several statistics for this page?
427  if ($count === 0) {
428  // Limit access to pages of the current site
429  $queryBuilder->where(
430  $queryBuilder->expr()->in(
431  'pageid',
432  $queryBuilder->createNamedParameter(
433  $this->extGetTreeList((int)$pageUid),
434  Connection::PARAM_INT_ARRAY
435  )
436  ),
438  );
439  }
440 
441  return $queryBuilder->execute()->fetchAll();
442  }
443 
449  protected function ‪addAdditionalInformation(array &$row)
450  {
451  $grListRec = $this->‪getGrlistRecord($row['phash']);
452  $row['static_page_arguments'] = $row['static_page_arguments'] ? json_decode($row['static_page_arguments'], true) : null;
453 
454  $row['numberOfWords'] = $this->‪getNumberOfWords($row['phash']);
455  $row['numberOfSections'] = $this->‪getNumberOfSections($row['phash']);
456  $row['numberOfFulltext'] = $this->‪getNumberOfFulltextRecords($row['phash']);
457  $row['grList'] = $grListRec;
458  }
459 
468  public function ‪getTree($pageId, $depth = 4, $mode)
469  {
470  $allLines = [];
471  $pageRecord = ‪BackendUtility::getRecord('pages', (int)$pageId);
472  if (!$pageRecord) {
473  return $allLines;
474  }
476  $tree = GeneralUtility::makeInstance(PageTreeView::class);
478  $tree->init('AND ' . $perms_clause);
479  $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
480  $HTML = '<span title="' . htmlspecialchars($pageRecord['title']) . '">' . $iconFactory->getIconForRecord('pages', $pageRecord, ‪Icon::SIZE_SMALL)->render() . '</span>';
481  $tree->tree[] = [
482  'row' => $pageRecord,
483  'HTML' => $HTML
484  ];
485 
486  if ($depth > 0) {
487  $tree->getTree((int)$pageId, $depth, '');
488  }
489 
490  foreach ($tree->tree as $singleLine) {
491  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_phash');
492  $result = $queryBuilder->select(
493  'ISEC.phash_t3',
494  'ISEC.rl0',
495  'ISEC.rl1',
496  'ISEC.rl2',
497  'ISEC.page_id',
498  'ISEC.uniqid',
499  'IP.phash',
500  'IP.phash_grouping',
501  'IP.static_page_arguments',
502  'IP.data_filename',
503  'IP.data_page_id',
504  'IP.data_page_type',
505  'IP.data_page_mp',
506  'IP.gr_list',
507  'IP.item_type',
508  'IP.item_title',
509  'IP.item_description',
510  'IP.item_mtime',
511  'IP.tstamp',
512  'IP.item_size',
513  'IP.contentHash',
514  'IP.crdate',
515  'IP.parsetime',
516  'IP.sys_language_uid',
517  'IP.item_crdate',
518  'IP.externalUrl',
519  'IP.recordUid',
520  'IP.freeIndexUid',
521  'IP.freeIndexSetId'
522  )
523  ->addSelectLiteral($queryBuilder->expr()->count('*', 'count_val'))
524  ->from('index_phash', 'IP')
525  ->from('index_section', 'ISEC')
526  ->where(
527  $queryBuilder->expr()->eq('IP.phash', $queryBuilder->quoteIdentifier('ISEC.phash')),
528  $queryBuilder->expr()->eq(
529  'ISEC.page_id',
530  $queryBuilder->createNamedParameter($singleLine['row']['uid'], \PDO::PARAM_INT)
531  )
532  )
533  ->groupBy(
534  'IP.phash',
535  'IP.phash_grouping',
536  'IP.static_page_arguments',
537  'IP.data_filename',
538  'IP.data_page_id',
539  'IP.data_page_type',
540  'IP.data_page_mp',
541  'IP.gr_list',
542  'IP.item_type',
543  'IP.item_title',
544  'IP.item_description',
545  'IP.item_mtime',
546  'IP.tstamp',
547  'IP.item_size',
548  'IP.contentHash',
549  'IP.crdate',
550  'IP.parsetime',
551  'IP.sys_language_uid',
552  'IP.item_crdate',
553  'ISEC.phash',
554  'ISEC.phash_t3',
555  'ISEC.rl0',
556  'ISEC.rl1',
557  'ISEC.rl2',
558  'ISEC.page_id',
559  'ISEC.uniqid',
560  'IP.externalUrl',
561  'IP.recordUid',
562  'IP.freeIndexUid',
563  'IP.freeIndexSetId'
564  )
565  ->orderBy('IP.item_type')
566  ->addOrderBy('IP.tstamp')
567  ->setMaxResults(11)
568  ->execute();
569 
570  $lines = [];
571  // Collecting phash values (to remove local indexing for)
572  // Traverse the result set of phash rows selected:
573  while ($row = $result->fetch()) {
574  $row['icon'] = $this->‪makeItemTypeIcon($row['item_type']);
575  $this->allPhashListed[] = $row['phash'];
576 
577  // Adds a display row:
578  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
579  ->getQueryBuilderForTable('index_rel');
580  $wordCountResult = $queryBuilder->count('index_words.baseword')
581  ->from('index_rel')
582  ->from('index_words')
583  ->where(
584  $queryBuilder->expr()->eq(
585  'index_rel.phash',
586  $queryBuilder->createNamedParameter($row['phash'], \PDO::PARAM_INT)
587  ),
588  $queryBuilder->expr()->eq('index_words.wid', $queryBuilder->quoteIdentifier('index_rel.wid'))
589  )
590  ->groupBy('index_words.baseword')
591  ->execute();
592 
593  $row['wordCount'] = $queryBuilder
594  ->count('index_rel.wid')
595  ->execute()
596  ->fetchColumn(0);
597  $wordCountResult->closeCursor();
598 
599  if ($mode === 'content') {
600  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
601  ->getQueryBuilderForTable('index_fulltext');
602  $row['fulltextData'] = $queryBuilder->select('*')
603  ->from('index_fulltext')
604  ->where(
605  $queryBuilder->expr()->eq(
606  'phash',
607  $queryBuilder->createNamedParameter($row['phash'], \PDO::PARAM_INT)
608  )
609  )
610  ->setMaxResults(1)
611  ->execute()
612  ->fetch();
613 
614  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
615  ->getQueryBuilderForTable('index_rel');
616  $wordRecords = $queryBuilder->select('index_words.baseword')
617  ->from('index_rel')
618  ->from('index_words')
619  ->where(
620  $queryBuilder->expr()->eq(
621  'index_rel.phash',
622  $queryBuilder->createNamedParameter($row['phash'], \PDO::PARAM_INT)
623  ),
624  $queryBuilder->expr()->eq(
625  'index_words.wid',
626  $queryBuilder->quoteIdentifier('index_rel.wid')
627  )
628  )
629  ->groupBy('index_words.baseword')
630  ->orderBy('index_words.baseword')
631  ->execute()
632  ->fetchAll();
633 
634  if (is_array($wordRecords)) {
635  $row['allWords'] = array_column($wordRecords, 'baseword');
636  }
637  }
638 
639  $lines[] = $row;
640  }
641 
642  $singleLine['lines'] = $lines;
643  $allLines[] = $singleLine;
644  }
645 
646  return $allLines;
647  }
648 
656  protected function ‪extGetTreeList(int $id): array
657  {
658  $pageIds = $this->‪getPageTreeIds($id, 100, 0);
659  $pageIds[] = $id;
660  return $pageIds;
661  }
662 
672  protected function ‪getPageTreeIds(int $id, int $depth, int $begin): array
673  {
674  if (!$id || $depth <= 0) {
675  return [];
676  }
677  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
678  ->getQueryBuilderForTable('pages');
679 
680  $queryBuilder->getRestrictions()
681  ->removeAll()
682  ->add(GeneralUtility::makeInstance(DeletedRestriction::class));
683  $result = $queryBuilder
684  ->select('uid', 'title')
685  ->from('pages')
686  ->where(
687  $queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($id, \PDO::PARAM_INT))
688  )
689  ->execute();
690 
691  $pageIds = [];
692  while ($row = $result->fetch()) {
693  if ($begin <= 0) {
694  $pageIds[] = (int)$row['uid'];
695  }
696  if ($depth > 1) {
697  $pageIds = array_merge($pageIds, $this->‪getPageTreeIds((int)$row['uid'], $depth - 1, $begin - 1));
698  }
699  }
700  return $pageIds;
701  }
702 
710  public function ‪removeIndexedPhashRow($phashList, $pageId, $depth = 4)
711  {
712  if ($phashList === 'ALL') {
713  $this->‪getTree($pageId, $depth, '');
714  $phashRows = ‪$this->allPhashListed;
715  $this->allPhashListed = [];
716  } else {
717  $phashRows = ‪GeneralUtility::trimExplode(',', $phashList, true);
718  }
719 
720  foreach ($phashRows as $phash) {
721  $phash = (int)$phash;
722  if ($phash > 0) {
723  $idList = [];
724  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
725  ->getQueryBuilderForTable('index_section');
726  $res = $queryBuilder
727  ->select('page_id')
728  ->from('index_section')
729  ->where(
730  $queryBuilder->expr()->eq(
731  'phash',
732  $queryBuilder->createNamedParameter($phash, \PDO::PARAM_INT)
733  )
734  )
735  ->execute();
736  while ($row = $res->fetch()) {
737  $idList[] = (int)$row['page_id'];
738  }
739 
740  if (!empty($idList)) {
742  $pageCache = GeneralUtility::makeInstance(CacheManager::class)->getCache('pages');
743  foreach ($idList as $pageId) {
744  $pageCache->flushByTag('pageId_' . $pageId);
745  }
746  }
747 
748  // Removing old registrations for all tables.
749  $tableArr = [
750  'index_phash',
751  'index_rel',
752  'index_section',
753  'index_grlist',
754  'index_fulltext',
755  'index_debug'
756  ];
757  foreach ($tableArr as $table) {
758  GeneralUtility::makeInstance(ConnectionPool::class)
759  ->getConnectionForTable($table)
760  ->delete($table, ['phash' => (int)$phash]);
761  }
762  }
763  }
764  }
765 
771  public function ‪saveStopWords(array $words)
772  {
773  foreach ($words as $wid => $state) {
774  $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('index_words');
775  $queryBuilder
776  ->update('index_words')
777  ->set('is_stopword', (int)$state)
778  ->where(
779  $queryBuilder->expr()->eq(
780  'wid',
781  $queryBuilder->createNamedParameter($wid, \PDO::PARAM_INT)
782  )
783  )
784  ->execute();
785  }
786  }
787 
794  public function ‪saveKeywords(array $words, $pageId)
795  {
796  // Get pages current keywords
797  $pageRec = ‪BackendUtility::getRecord('pages', $pageId);
798  if (!is_array($pageRec)) {
799  return;
800  }
801  $keywords = array_flip(‪GeneralUtility::trimExplode(',', $pageRec['keywords'], true));
802  // Merge keywords:
803  foreach ($words as $key => $v) {
804  if ($v) {
805  $keywords[$key] = 1;
806  } else {
807  unset($keywords[$key]);
808  }
809  }
810  // Compile new list:
811  $data = [];
812  $data['pages'][$pageId]['keywords'] = implode(', ', array_keys($keywords));
813  $dataHandler = GeneralUtility::makeInstance(DataHandler::class);
814  $dataHandler->start($data, []);
815  $dataHandler->process_datamap();
816  }
817 
824  protected function ‪makeItemTypeIcon($itemType)
825  {
826  if (!isset($this->iconFileNameCache[$itemType])) {
827  $icon = '';
828  if ($itemType === '0') {
829  $icon = 'EXT:indexed_search/Resources/Public/Icons/FileTypes/pages.gif';
830  } elseif ($this->external_parsers[$itemType]) {
831  $icon = $this->external_parsers[$itemType]->getIcon($itemType);
832  }
833  $this->iconFileNameCache[$itemType] = $icon;
834  }
835  return $this->iconFileNameCache[$itemType];
836  }
837 
841  protected function ‪getBackendUserAuthentication()
842  {
843  return ‪$GLOBALS['BE_USER'];
844  }
845 }
‪TYPO3\CMS\Core\DataHandling\DataHandler
Definition: DataHandler.php:84
‪TYPO3\CMS\Core\Imaging\Icon\SIZE_SMALL
‪const SIZE_SMALL
Definition: Icon.php:30
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\makeItemTypeIcon
‪string makeItemTypeIcon($itemType)
Definition: AdministrationRepository.php:821
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getBackendUserAuthentication
‪BackendUserAuthentication getBackendUserAuthentication()
Definition: AdministrationRepository.php:838
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication\getPagePermsClause
‪string getPagePermsClause($perms)
Definition: BackendUserAuthentication.php:499
‪TYPO3\CMS\Core\Imaging\Icon
Definition: Icon.php:26
‪TYPO3\CMS\IndexedSearch\Domain\Repository
Definition: AdministrationRepository.php:16
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\$allPhashListed
‪array $allPhashListed
Definition: AdministrationRepository.php:48
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\saveStopWords
‪saveStopWords(array $words)
Definition: AdministrationRepository.php:768
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getGeneralSearchStatistic
‪array null getGeneralSearchStatistic($additionalWhere, $pageUid, $max=50)
Definition: AdministrationRepository.php:392
‪TYPO3\CMS\Core\Imaging\IconFactory
Definition: IconFactory.php:33
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getNumberOfSections
‪int getNumberOfSections($pageHash)
Definition: AdministrationRepository.php:298
‪TYPO3\CMS\Backend\Tree\View\PageTreeView
Definition: PageTreeView.php:24
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\$external_parsers
‪FileContentParser[] $external_parsers
Definition: AdministrationRepository.php:44
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\addAdditionalInformation
‪addAdditionalInformation(array &$row)
Definition: AdministrationRepository.php:446
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getPageTreeIds
‪array getPageTreeIds(int $id, int $depth, int $begin)
Definition: AdministrationRepository.php:669
‪TYPO3\CMS\Core\Type\Bitmask\Permission
Definition: Permission.php:24
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository
Definition: AdministrationRepository.php:39
‪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:653
‪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:465
‪TYPO3\CMS\Core\Database\Query\QueryHelper
Definition: QueryHelper.php:32
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getNumberOfWords
‪int bool getNumberOfWords($phash)
Definition: AdministrationRepository.php:113
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\$iconFileNameCache
‪array $iconFileNameCache
Definition: AdministrationRepository.php:52
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getExternalDocumentsStatistic
‪array getExternalDocumentsStatistic()
Definition: AdministrationRepository.php:134
‪TYPO3\CMS\Core\Cache\CacheManager
Definition: CacheManager.php:35
‪TYPO3\CMS\IndexedSearch\FileContentParser
Definition: FileContentParser.php:30
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:62
‪TYPO3\CMS\Core\Type\Bitmask\Permission\PAGE_SHOW
‪const PAGE_SHOW
Definition: Permission.php:33
‪TYPO3\CMS\Backend\Utility\BackendUtility
Definition: BackendUtility.php:75
‪TYPO3\CMS\Backend\Utility\BackendUtility\getRecord
‪static array null getRecord($table, $uid, $fields=' *', $where='', $useDeleteClause=true)
Definition: BackendUtility.php:95
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getGrlistRecord
‪array getGrlistRecord($phash)
Definition: AdministrationRepository.php:60
‪TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode
‪static string[] trimExplode($delim, $string, $removeEmptyValues=false, $limit=0)
Definition: GeneralUtility.php:1059
‪TYPO3\CMS\Core\Database\Connection
Definition: Connection.php:36
‪TYPO3\CMS\Core\Cache\Frontend\FrontendInterface
Definition: FrontendInterface.php:22
‪TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix
‪static string stripLogicalOperatorPrefix(string $constraint)
Definition: QueryHelper.php:165
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:5
‪TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction
Definition: DeletedRestriction.php:28
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\removeIndexedPhashRow
‪removeIndexedPhashRow($phashList, $pageId, $depth=4)
Definition: AdministrationRepository.php:707
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\getPageHashTypes
‪array getPageHashTypes()
Definition: AdministrationRepository.php:233
‪TYPO3\CMS\Core\Database\ConnectionPool
Definition: ConnectionPool.php:46
‪TYPO3\CMS\IndexedSearch\Domain\Repository\AdministrationRepository\saveKeywords
‪saveKeywords(array $words, $pageId)
Definition: AdministrationRepository.php:791
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:46
‪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:91