SHOW:
|
|
- or go back to the newest paste.
1 | <?php | |
2 | ||
3 | /*************************************************************** | |
4 | * Copyright notice | |
5 | * | |
6 | * (c) 2012 Christian Bülter (kennziffer.com) <[email protected]> | |
7 | * All rights reserved | |
8 | * | |
9 | * This script is part of the TYPO3 project. The TYPO3 project is | |
10 | * free software; you can redistribute it and/or modify | |
11 | * it under the terms of the GNU General Public License as published by | |
12 | * the Free Software Foundation; either version 2 of the License, or | |
13 | * (at your option) any later version. | |
14 | * | |
15 | * The GNU General Public License can be found at | |
16 | * http://www.gnu.org/copyleft/gpl.html. | |
17 | * | |
18 | * This script is distributed in the hope that it will be useful, | |
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
21 | * GNU General Public License for more details. | |
22 | * | |
23 | * This copyright notice MUST APPEAR in all copies of the script! | |
24 | ***************************************************************/ | |
25 | ||
26 | class KeSearchExtenedPagesIndexer { | |
27 | ||
28 | /** | |
29 | * Adds the custom indexer to the TCA of indexer configurations, so that | |
30 | * it's selectable in the backend as an indexer type when you create a | |
31 | * new indexer configuration. | |
32 | * | |
33 | * @param array $params | |
34 | * @param type $pObj | |
35 | */ | |
36 | function registerIndexerConfiguration(&$params, $pObj) { | |
37 | ||
38 | // add item to "type" field | |
39 | $newArray = array( | |
40 | 'Extend pages', | |
41 | 'extended_pages', | |
42 | \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('example') . 'Resources/Public/Icons/kesearch-indexer-extend_pages.gif' | |
43 | ); | |
44 | $params['items'][] = $newArray; | |
45 | ||
46 | // enable fields in indexer config | |
47 | $GLOBALS['TCA']['tx_kesearch_indexerconfig']['columns']['fileext']['displayCond'] .= ',extended_pages'; | |
48 | $GLOBALS['TCA']['tx_kesearch_indexerconfig']['columns']['index_content_with_restrictions']['displayCond'] .= ',extended_pages'; | |
49 | $GLOBALS['TCA']['tx_kesearch_indexerconfig']['columns']['index_use_page_tags_for_files']['displayCond'] .= ',extended_pages'; | |
50 | $GLOBALS['TCA']['tx_kesearch_indexerconfig']['columns']['single_pages']['displayCond'] .= ',extended_pages'; | |
51 | $GLOBALS['TCA']['tx_kesearch_indexerconfig']['columns']['startingpoints_recursive']['displayCond'] .= ',extended_pages'; | |
52 | $GLOBALS['TCA']['tx_kesearch_indexerconfig']['columns']['targetpid']['displayCond'] .= ',extended_pages'; | |
53 | $GLOBALS['TCA']['tx_kesearch_indexerconfig']['columns']['targetpid']['displayCond'] .= ',extended_pages'; | |
54 | } | |
55 | ||
56 | /** | |
57 | * Custom indexer for ke_search | |
58 | * | |
59 | * @param array $indexerConfig Configuration from TYPO3 Backend | |
60 | * @param array $indexerObject Reference to indexer class. | |
61 | * @return string Output. | |
62 | */ | |
63 | public function customIndexer(&$indexerConfig, &$indexerObject) { | |
64 | if($indexerConfig['type'] == 'extended_pages') { | |
65 | $content = ''; | |
66 | ||
67 | // Create new instance from tx_kesearch_indexer_types_page | |
68 | $keseachIndexerTypesPage = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_kesearch_indexer_types_page'); | |
69 | $keseachIndexerTypesPage->pObj = $indexerObject; | |
70 | $keseachIndexerTypesPage->indexerConfig = $indexerConfig; | |
71 | ||
72 | // Add own CTypes | |
73 | $ownCTypes = array( | |
74 | 'example_1', | |
75 | 'example_2', | |
76 | 'example_3', | |
77 | ); | |
78 | $keseachIndexerTypesPage->indexCTypes = array_merge($keseachIndexerTypesPage->indexCTypes, $ownCTypes); | |
79 | foreach ($keseachIndexerTypesPage->indexCTypes as $value) { | |
80 | $cTypes[] = 'CType="' . $value . '"'; | |
81 | } | |
82 | $keseachIndexerTypesPage->whereClauseForCType = implode(' OR ', $cTypes); | |
83 | ||
84 | // Start indexing | |
85 | $content = $keseachIndexerTypesPage->startIndexing(); | |
86 | ||
87 | return $content; | |
88 | } | |
89 | } | |
90 | } |