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 | } |