@@ -82,7 +82,7 @@ discard block |
||
82 | 82 | { |
83 | 83 | foreach ($this->requiredMetadataFields as $requiredMetadataField) { |
84 | 84 | if (empty($this->metadata[$requiredMetadataField][0])) { |
85 | - $this->logger->error('Missing required metadata field "' . $requiredMetadataField . '".'); |
|
85 | + $this->logger->error('Missing required metadata field "'.$requiredMetadataField.'".'); |
|
86 | 86 | return false; |
87 | 87 | } |
88 | 88 | } |
@@ -100,14 +100,14 @@ discard block |
||
100 | 100 | */ |
101 | 101 | public function hasCorrectLogicalStructure(string $type): bool |
102 | 102 | { |
103 | - $expectedNodes = $this->xml->xpath('./mets:structMap[@TYPE="LOGICAL"]/mets:div[@TYPE="' . $type . '"]'); |
|
103 | + $expectedNodes = $this->xml->xpath('./mets:structMap[@TYPE="LOGICAL"]/mets:div[@TYPE="'.$type.'"]'); |
|
104 | 104 | if ($expectedNodes) { |
105 | 105 | return true; |
106 | 106 | } |
107 | 107 | |
108 | 108 | $existingNodes = $this->xml->xpath('./mets:structMap[@TYPE="LOGICAL"]/mets:div'); |
109 | 109 | if ($existingNodes) { |
110 | - $this->logger->error('Document contains logical structure but @TYPE="' . $type . '" is missing.'); |
|
110 | + $this->logger->error('Document contains logical structure but @TYPE="'.$type.'" is missing.'); |
|
111 | 111 | return false; |
112 | 112 | } |
113 | 113 |
@@ -105,7 +105,7 @@ |
||
105 | 105 | |
106 | 106 | private function getXml(string $file): SimpleXMLElement |
107 | 107 | { |
108 | - $xml = simplexml_load_file(__DIR__ . '/../../Fixtures/MetsDocument/' . $file); |
|
108 | + $xml = simplexml_load_file(__DIR__.'/../../Fixtures/MetsDocument/'.$file); |
|
109 | 109 | self::assertNotFalse($xml); |
110 | 110 | return $xml; |
111 | 111 | } |
@@ -84,7 +84,7 @@ discard block |
||
84 | 84 | $this->initializeRepositories((int) $input->getOption('pid')); |
85 | 85 | |
86 | 86 | if ($this->storagePid == 0) { |
87 | - $io->error('ERROR: No valid PID (' . $this->storagePid . ') given.'); |
|
87 | + $io->error('ERROR: No valid PID ('.$this->storagePid.') given.'); |
|
88 | 88 | return BaseCommand::FAILURE; |
89 | 89 | } |
90 | 90 | |
@@ -99,13 +99,13 @@ discard block |
||
99 | 99 | if (empty($solrCoreUid) || !in_array($solrCoreUid, $allSolrCores)) { |
100 | 100 | $outputSolrCores = []; |
101 | 101 | foreach ($allSolrCores as $indexName => $uid) { |
102 | - $outputSolrCores[] = $uid . ' : ' . $indexName; |
|
102 | + $outputSolrCores[] = $uid.' : '.$indexName; |
|
103 | 103 | } |
104 | 104 | if (empty($outputSolrCores)) { |
105 | - $io->error('ERROR: No valid Solr core ("' . $input->getOption('solr') . '") given. No valid cores found on PID ' . $this->storagePid . ".\n"); |
|
105 | + $io->error('ERROR: No valid Solr core ("'.$input->getOption('solr').'") given. No valid cores found on PID '.$this->storagePid.".\n"); |
|
106 | 106 | return BaseCommand::FAILURE; |
107 | 107 | } else { |
108 | - $io->error('ERROR: No valid Solr core ("' . $input->getOption('solr') . '") given. ' . "Valid cores are (<uid>:<index_name>):\n" . implode("\n", $outputSolrCores) . "\n"); |
|
108 | + $io->error('ERROR: No valid Solr core ("'.$input->getOption('solr').'") given. '."Valid cores are (<uid>:<index_name>):\n".implode("\n", $outputSolrCores)."\n"); |
|
109 | 109 | return BaseCommand::FAILURE; |
110 | 110 | } |
111 | 111 | } |
@@ -147,15 +147,15 @@ discard block |
||
147 | 147 | $document = $this->getDocument($input); |
148 | 148 | |
149 | 149 | if ($document === null) { |
150 | - $io->info('INFO: Document with UID "' . $input->getOption('doc') . '" could not be found on PID ' . $this->storagePid . '. It is probably already deleted from DB.'); |
|
150 | + $io->info('INFO: Document with UID "'.$input->getOption('doc').'" could not be found on PID '.$this->storagePid.'. It is probably already deleted from DB.'); |
|
151 | 151 | } else { |
152 | 152 | if ($io->isVerbose()) { |
153 | - $io->section('Deleting ' . $document->getUid() . ' ("' . $document->getLocation() . '") on PID ' . $this->storagePid . '.'); |
|
153 | + $io->section('Deleting '.$document->getUid().' ("'.$document->getLocation().'") on PID '.$this->storagePid.'.'); |
|
154 | 154 | } |
155 | 155 | $this->documentRepository->remove($document); |
156 | 156 | $this->persistenceManager->persistAll(); |
157 | 157 | if ($io->isVerbose()) { |
158 | - $io->success('Deleted ' . $document->getUid() . ' ("' . $document->getLocation() . '") on PID ' . $this->storagePid . '.'); |
|
158 | + $io->success('Deleted '.$document->getUid().' ("'.$document->getLocation().'") on PID '.$this->storagePid.'.'); |
|
159 | 159 | } |
160 | 160 | } |
161 | 161 | } |
@@ -174,7 +174,7 @@ discard block |
||
174 | 174 | private function deleteFromSolr($input, $io, $solrCoreUid): void |
175 | 175 | { |
176 | 176 | if ($io->isVerbose()) { |
177 | - $io->section('Deleting ' . $input->getOption('doc') . ' on Solr core ' . $solrCoreUid . '.'); |
|
177 | + $io->section('Deleting '.$input->getOption('doc').' on Solr core '.$solrCoreUid.'.'); |
|
178 | 178 | } |
179 | 179 | |
180 | 180 | $isDeleted = false; |
@@ -187,7 +187,7 @@ discard block |
||
187 | 187 | |
188 | 188 | if ($isDeleted) { |
189 | 189 | if ($io->isVerbose()) { |
190 | - $io->success('Deleted ' . $input->getOption('doc') . ' on Solr core ' . $solrCoreUid . '.'); |
|
190 | + $io->success('Deleted '.$input->getOption('doc').' on Solr core '.$solrCoreUid.'.'); |
|
191 | 191 | } |
192 | 192 | $io->success('All done!'); |
193 | 193 | } else { |
@@ -122,7 +122,7 @@ discard block |
||
122 | 122 | } |
123 | 123 | |
124 | 124 | if (isset($listRequestData['searchParameter']) && is_array($listRequestData['searchParameter'])) { |
125 | - $this->searchParams = array_merge($this->searchParams ?: [], $listRequestData['searchParameter']); |
|
125 | + $this->searchParams = array_merge($this->searchParams ? : [], $listRequestData['searchParameter']); |
|
126 | 126 | $listViewSearch = true; |
127 | 127 | $GLOBALS['TSFE']->fe_user->setKey('ses', 'search', $this->searchParams); |
128 | 128 | } |
@@ -183,7 +183,7 @@ discard block |
||
183 | 183 | $simplePagination = new SimplePagination($solrPaginator); |
184 | 184 | |
185 | 185 | $pagination = $this->buildSimplePagination($simplePagination, $solrPaginator); |
186 | - $this->view->assignMultiple([ 'pagination' => $pagination, 'paginator' => $solrPaginator ]); |
|
186 | + $this->view->assignMultiple(['pagination' => $pagination, 'paginator' => $solrPaginator]); |
|
187 | 187 | } |
188 | 188 | |
189 | 189 | $this->view->assign('documents', !empty($solrResults) ? $solrResults : []); |
@@ -208,7 +208,7 @@ discard block |
||
208 | 208 | |
209 | 209 | // Add uHash parameter to suggest parameter to make a basic protection of this form. |
210 | 210 | if ($this->settings['suggest']) { |
211 | - $this->view->assign('uHash', GeneralUtility::hmac((string) (new Typo3Version()) . Environment::getExtensionsPath(), 'SearchSuggest')); |
|
211 | + $this->view->assign('uHash', GeneralUtility::hmac((string) (new Typo3Version()).Environment::getExtensionsPath(), 'SearchSuggest')); |
|
212 | 212 | } |
213 | 213 | |
214 | 214 | $this->view->assign('viewData', $this->viewData); |
@@ -229,7 +229,7 @@ discard block |
||
229 | 229 | // Get facets from plugin configuration. |
230 | 230 | $facets = []; |
231 | 231 | foreach (GeneralUtility::trimExplode(',', $this->settings['facets'], true) as $facet) { |
232 | - $facets[$facet . '_faceting'] = Helper::translate($facet, 'tx_dlf_metadata', $this->settings['storagePid']); |
|
232 | + $facets[$facet.'_faceting'] = Helper::translate($facet, 'tx_dlf_metadata', $this->settings['storagePid']); |
|
233 | 233 | } |
234 | 234 | |
235 | 235 | $this->view->assign('facetsMenu', $this->makeFacetsMenuArray($facets)); |
@@ -265,13 +265,13 @@ discard block |
||
265 | 265 | $searchParams = $this->searchParams; |
266 | 266 | if ( |
267 | 267 | (!empty($searchParams['fulltext'])) |
268 | - || preg_match('/' . $fields['fulltext'] . ':\((.*)\)/', trim($searchParams['query']), $matches) |
|
268 | + || preg_match('/'.$fields['fulltext'].':\((.*)\)/', trim($searchParams['query']), $matches) |
|
269 | 269 | ) { |
270 | 270 | // If the query already is a fulltext query e.g using the facets |
271 | 271 | $searchParams['query'] = empty($matches[1]) ? $searchParams['query'] : $matches[1]; |
272 | 272 | // Search in fulltext field if applicable. Query must not be empty! |
273 | 273 | if (!empty($searchParams['query'])) { |
274 | - $search['query'] = $fields['fulltext'] . ':(' . Solr::escapeQuery(trim($searchParams['query'])) . ')'; |
|
274 | + $search['query'] = $fields['fulltext'].':('.Solr::escapeQuery(trim($searchParams['query'])).')'; |
|
275 | 275 | } |
276 | 276 | } else { |
277 | 277 | // Retain given search field if valid. |
@@ -288,7 +288,7 @@ discard block |
||
288 | 288 | // add filter query for date search |
289 | 289 | if (!empty($this->searchParams['dateFrom']) && !empty($this->searchParams['dateTo'])) { |
290 | 290 | // combine dateFrom and dateTo into filterquery as range search |
291 | - $search['params']['filterquery'][]['query'] = '{!join from=' . $fields['uid'] . ' to=' . $fields['uid'] . '}' . $fields['date'] . ':[' . $this->searchParams['dateFrom'] . ' TO ' . $this->searchParams['dateTo'] . ']'; |
|
291 | + $search['params']['filterquery'][]['query'] = '{!join from='.$fields['uid'].' to='.$fields['uid'].'}'.$fields['date'].':['.$this->searchParams['dateFrom'].' TO '.$this->searchParams['dateTo'].']'; |
|
292 | 292 | } |
293 | 293 | |
294 | 294 | // Add extended search query. |
@@ -306,9 +306,9 @@ discard block |
||
306 | 306 | in_array($searchParams['extOperator'][$i], $allowedOperators) |
307 | 307 | ) { |
308 | 308 | if (!empty($search['query'])) { |
309 | - $search['query'] .= ' ' . $searchParams['extOperator'][$i] . ' '; |
|
309 | + $search['query'] .= ' '.$searchParams['extOperator'][$i].' '; |
|
310 | 310 | } |
311 | - $search['query'] .= Indexer::getIndexFieldName($searchParams['extField'][$i], $this->settings['storagePid']) . ':(' . Solr::escapeQuery($searchParams['extQuery'][$i]) . ')'; |
|
311 | + $search['query'] .= Indexer::getIndexFieldName($searchParams['extField'][$i], $this->settings['storagePid']).':('.Solr::escapeQuery($searchParams['extQuery'][$i]).')'; |
|
312 | 312 | } |
313 | 313 | } |
314 | 314 | } |
@@ -397,24 +397,24 @@ discard block |
||
397 | 397 | foreach ($collections as $collectionEntry) { |
398 | 398 | // check for virtual collections query string |
399 | 399 | if ($collectionEntry->getIndexSearch()) { |
400 | - $virtualCollectionsQueryString .= empty($virtualCollectionsQueryString) ? '(' . $collectionEntry->getIndexSearch() . ')' : ' OR (' . $collectionEntry->getIndexSearch() . ')'; |
|
400 | + $virtualCollectionsQueryString .= empty($virtualCollectionsQueryString) ? '('.$collectionEntry->getIndexSearch().')' : ' OR ('.$collectionEntry->getIndexSearch().')'; |
|
401 | 401 | } else { |
402 | - $collectionsQueryString .= empty($collectionsQueryString) ? '"' . $collectionEntry->getIndexName() . '"' : ' OR "' . $collectionEntry->getIndexName() . '"'; |
|
402 | + $collectionsQueryString .= empty($collectionsQueryString) ? '"'.$collectionEntry->getIndexName().'"' : ' OR "'.$collectionEntry->getIndexName().'"'; |
|
403 | 403 | } |
404 | 404 | } |
405 | 405 | |
406 | 406 | // distinguish between simple collection browsing and actual searching within the collection(s) |
407 | 407 | if (!empty($collectionsQueryString)) { |
408 | 408 | if (empty($query)) { |
409 | - $collectionsQueryString = '(collection_faceting:(' . $collectionsQueryString . ') AND toplevel:true AND partof:0)'; |
|
409 | + $collectionsQueryString = '(collection_faceting:('.$collectionsQueryString.') AND toplevel:true AND partof:0)'; |
|
410 | 410 | } else { |
411 | - $collectionsQueryString = '(collection_faceting:(' . $collectionsQueryString . '))'; |
|
411 | + $collectionsQueryString = '(collection_faceting:('.$collectionsQueryString.'))'; |
|
412 | 412 | } |
413 | 413 | } |
414 | 414 | |
415 | 415 | // virtual collections might query documents that are neither toplevel:true nor partof:0 and need to be searched separately |
416 | 416 | if (!empty($virtualCollectionsQueryString)) { |
417 | - $virtualCollectionsQueryString = '(' . $virtualCollectionsQueryString . ')'; |
|
417 | + $virtualCollectionsQueryString = '('.$virtualCollectionsQueryString.')'; |
|
418 | 418 | } |
419 | 419 | |
420 | 420 | // combine both querystrings into a single filterquery via OR if both are given, otherwise pass either of those |
@@ -444,7 +444,7 @@ discard block |
||
444 | 444 | $entryArray['doNotLinkIt'] = 0; |
445 | 445 | // Check if facet is already selected. |
446 | 446 | $queryColumn = array_column($search['params']['filterquery'], 'query'); |
447 | - $index = array_search($field . ':("' . Solr::escapeQuery($value) . '")', $queryColumn); |
|
447 | + $index = array_search($field.':("'.Solr::escapeQuery($value).'")', $queryColumn); |
|
448 | 448 | if ($index !== false) { |
449 | 449 | // Facet is selected, thus remove it from filter. |
450 | 450 | unset($queryColumn[$index]); |
@@ -458,7 +458,7 @@ discard block |
||
458 | 458 | } |
459 | 459 | } else { |
460 | 460 | // Facet is not selected, thus add it to filter. |
461 | - $queryColumn[] = $field . ':("' . Solr::escapeQuery($value) . '")'; |
|
461 | + $queryColumn[] = $field.':("'.Solr::escapeQuery($value).'")'; |
|
462 | 462 | $entryArray['ITEM_STATE'] = 'NO'; |
463 | 463 | } |
464 | 464 | $entryArray['queryColumn'] = $queryColumn; |
@@ -82,7 +82,7 @@ discard block |
||
82 | 82 | // extract collection(s) from collection parameter |
83 | 83 | $collections = []; |
84 | 84 | if (array_key_exists('collection', $this->searchParams)) { |
85 | - foreach(explode(',', $this->searchParams['collection']) as $collectionEntry) { |
|
85 | + foreach (explode(',', $this->searchParams['collection']) as $collectionEntry) { |
|
86 | 86 | $collections[] = $this->collectionRepository->findByUid((int) $collectionEntry); |
87 | 87 | } |
88 | 88 | } |
@@ -110,7 +110,7 @@ discard block |
||
110 | 110 | $simplePagination = new SimplePagination($solrPaginator); |
111 | 111 | |
112 | 112 | $pagination = $this->buildSimplePagination($simplePagination, $solrPaginator); |
113 | - $this->view->assignMultiple([ 'pagination' => $pagination, 'paginator' => $solrPaginator ]); |
|
113 | + $this->view->assignMultiple(['pagination' => $pagination, 'paginator' => $solrPaginator]); |
|
114 | 114 | } |
115 | 115 | |
116 | 116 | $this->view->assign('viewData', $this->viewData); |
@@ -136,7 +136,7 @@ discard block |
||
136 | 136 | } |
137 | 137 | |
138 | 138 | if (empty(array_filter($metadata))) { |
139 | - $this->logger->warning('No metadata found for document with UID ' . $this->document->getUid()); |
|
139 | + $this->logger->warning('No metadata found for document with UID '.$this->document->getUid()); |
|
140 | 140 | return; |
141 | 141 | } |
142 | 142 | ksort($metadata); |
@@ -174,7 +174,7 @@ discard block |
||
174 | 174 | $this->parseMetadata($i, $name, $value, $metadata); |
175 | 175 | |
176 | 176 | if (is_array($metadata[$i][$name])) { |
177 | - $metadata[$i][$name] = array_values(array_filter($metadata[$i][$name], function ($metadataValue) { |
|
177 | + $metadata[$i][$name] = array_values(array_filter($metadata[$i][$name], function($metadataValue) { |
|
178 | 178 | return !empty($metadataValue); |
179 | 179 | })); |
180 | 180 | } |
@@ -391,7 +391,7 @@ discard block |
||
391 | 391 | if (empty(implode('', $value)) && $this->settings['getTitle'] && $this->document->getPartof()) { |
392 | 392 | $superiorTitle = AbstractDocument::getTitle($this->document->getPartof(), true); |
393 | 393 | if (!empty($superiorTitle)) { |
394 | - $metadata[$i]['title'] = ['[' . $superiorTitle . ']']; |
|
394 | + $metadata[$i]['title'] = ['['.$superiorTitle.']']; |
|
395 | 395 | } |
396 | 396 | } |
397 | 397 | } |
@@ -250,7 +250,7 @@ discard block |
||
250 | 250 | |
251 | 251 | $data['tx_dlf_metadata'][uniqid('NEW')] = [ |
252 | 252 | 'pid' => $this->pid, |
253 | - 'label' => $this->getLLL('metadata.' . $indexName, $this->siteLanguages[0]->getTypo3Language(), $metadataLabels), |
|
253 | + 'label' => $this->getLLL('metadata.'.$indexName, $this->siteLanguages[0]->getTypo3Language(), $metadataLabels), |
|
254 | 254 | 'index_name' => $indexName, |
255 | 255 | 'format' => implode(',', $formatIds), |
256 | 256 | 'default_value' => $values['default_value'], |
@@ -289,7 +289,7 @@ discard block |
||
289 | 289 | 'pid' => $this->pid, |
290 | 290 | 'sys_language_uid' => $siteLanguage->getLanguageId(), |
291 | 291 | 'l18n_parent' => $id, |
292 | - 'label' => $this->getLLL('metadata.' . $indexName, $siteLanguage->getTypo3Language(), $metadataLabels), |
|
292 | + 'label' => $this->getLLL('metadata.'.$indexName, $siteLanguage->getTypo3Language(), $metadataLabels), |
|
293 | 293 | ]; |
294 | 294 | } |
295 | 295 | |
@@ -315,7 +315,7 @@ discard block |
||
315 | 315 | |
316 | 316 | if ($this->solrCoreRepository->findOneByPid($this->pid) === null) { |
317 | 317 | $newRecord = GeneralUtility::makeInstance(SolrCore::class); |
318 | - $newRecord->setLabel($this->getLLL('flexform.solrcore', $this->siteLanguages[0]->getTypo3Language(), $beLabels). ' (PID ' . $this->pid . ')'); |
|
318 | + $newRecord->setLabel($this->getLLL('flexform.solrcore', $this->siteLanguages[0]->getTypo3Language(), $beLabels).' (PID '.$this->pid.')'); |
|
319 | 319 | $indexName = Solr::createCore(''); |
320 | 320 | if (!empty($indexName)) { |
321 | 321 | $newRecord->setIndexName($indexName); |
@@ -355,7 +355,7 @@ discard block |
||
355 | 355 | $data['tx_dlf_structures'][uniqid('NEW')] = [ |
356 | 356 | 'pid' => $this->pid, |
357 | 357 | 'toplevel' => $values['toplevel'], |
358 | - 'label' => $this->getLLL('structure.' . $indexName, $this->siteLanguages[0]->getTypo3Language(), $structureLabels), |
|
358 | + 'label' => $this->getLLL('structure.'.$indexName, $this->siteLanguages[0]->getTypo3Language(), $structureLabels), |
|
359 | 359 | 'index_name' => $indexName, |
360 | 360 | 'oai_name' => $values['oai_name'], |
361 | 361 | 'thumbnail' => 0, |
@@ -380,7 +380,7 @@ discard block |
||
380 | 380 | 'pid' => $this->pid, |
381 | 381 | 'sys_language_uid' => $siteLanguage->getLanguageId(), |
382 | 382 | 'l18n_parent' => $id, |
383 | - 'label' => $this->getLLL('structure.' . $indexName, $siteLanguage->getTypo3Language(), $structureLabels), |
|
383 | + 'label' => $this->getLLL('structure.'.$indexName, $siteLanguage->getTypo3Language(), $structureLabels), |
|
384 | 384 | ]; |
385 | 385 | } |
386 | 386 | |
@@ -475,7 +475,7 @@ discard block |
||
475 | 475 | } elseif (isset($langArray['default'][$index][0]['target'])) { |
476 | 476 | return $langArray['default'][$index][0]['target']; |
477 | 477 | } else { |
478 | - return 'Missing translation for ' . $index; |
|
478 | + return 'Missing translation for '.$index; |
|
479 | 479 | } |
480 | 480 | } |
481 | 481 | |
@@ -490,7 +490,7 @@ discard block |
||
490 | 490 | */ |
491 | 491 | private function getRecords(string $recordType): array |
492 | 492 | { |
493 | - $filePath = Environment::getPublicPath() . '/typo3conf/ext/dlf/Resources/Private/Data/' . $recordType . 'Defaults.json'; |
|
493 | + $filePath = Environment::getPublicPath().'/typo3conf/ext/dlf/Resources/Private/Data/'.$recordType.'Defaults.json'; |
|
494 | 494 | |
495 | 495 | $resourceFactory = GeneralUtility::makeInstance(ResourceFactory::class); |
496 | 496 | $fileObject = $resourceFactory->getFileObjectFromCombinedIdentifier($filePath); |
@@ -227,7 +227,7 @@ discard block |
||
227 | 227 | // in which case metadata of toplevel entry isn't yet filled. |
228 | 228 | if (empty($document['metadata'])) { |
229 | 229 | $document['metadata'] = $this->fetchToplevelMetadataFromSolr([ |
230 | - 'query' => 'uid:' . $document['uid'], |
|
230 | + 'query' => 'uid:'.$document['uid'], |
|
231 | 231 | 'start' => 0, |
232 | 232 | 'rows' => 1, |
233 | 233 | 'sort' => ['score' => 'desc'], |
@@ -238,7 +238,7 @@ discard block |
||
238 | 238 | if (empty($document['title']) && $document['partOf'] > 0) { |
239 | 239 | $superiorTitle = AbstractDocument::getTitle($document['partOf'], true); |
240 | 240 | if (!empty($superiorTitle)) { |
241 | - $document['title'] = '[' . $superiorTitle . ']'; |
|
241 | + $document['title'] = '['.$superiorTitle.']'; |
|
242 | 242 | } |
243 | 243 | } |
244 | 244 | } |
@@ -373,13 +373,13 @@ discard block |
||
373 | 373 | // Set search query. |
374 | 374 | if ( |
375 | 375 | !empty($this->searchParams['fulltext']) |
376 | - || preg_match('/' . $fields['fulltext'] . ':\((.*)\)/', trim($this->searchParams['query'] ?? ''), $matches) |
|
376 | + || preg_match('/'.$fields['fulltext'].':\((.*)\)/', trim($this->searchParams['query'] ?? ''), $matches) |
|
377 | 377 | ) { |
378 | 378 | // If the query already is a fulltext query e.g using the facets |
379 | 379 | $this->searchParams['query'] = empty($matches[1]) ? $this->searchParams['query'] : $matches[1]; |
380 | 380 | // Search in fulltext field if applicable. Query must not be empty! |
381 | 381 | if (!empty($this->searchParams['query'])) { |
382 | - $query = $fields['fulltext'] . ':(' . Solr::escapeQuery(trim($this->searchParams['query'])) . ')'; |
|
382 | + $query = $fields['fulltext'].':('.Solr::escapeQuery(trim($this->searchParams['query'])).')'; |
|
383 | 383 | } |
384 | 384 | $params['fulltext'] = true; |
385 | 385 | } else { |
@@ -402,9 +402,9 @@ discard block |
||
402 | 402 | in_array($this->searchParams['extOperator'][$i], $allowedOperators) |
403 | 403 | ) { |
404 | 404 | if (!empty($query)) { |
405 | - $query .= ' ' . $this->searchParams['extOperator'][$i] . ' '; |
|
405 | + $query .= ' '.$this->searchParams['extOperator'][$i].' '; |
|
406 | 406 | } |
407 | - $query .= Indexer::getIndexFieldName($this->searchParams['extField'][$i], $this->settings['storagePid']) . ':(' . Solr::escapeQuery($this->searchParams['extQuery'][$i]) . ')'; |
|
407 | + $query .= Indexer::getIndexFieldName($this->searchParams['extField'][$i], $this->settings['storagePid']).':('.Solr::escapeQuery($this->searchParams['extQuery'][$i]).')'; |
|
408 | 408 | } |
409 | 409 | } |
410 | 410 | } |
@@ -413,7 +413,7 @@ discard block |
||
413 | 413 | // Add filter query for date search |
414 | 414 | if (!empty($this->searchParams['dateFrom']) && !empty($this->searchParams['dateTo'])) { |
415 | 415 | // combine dateFrom and dateTo into range search |
416 | - $params['filterquery'][]['query'] = '{!join from=' . $fields['uid'] . ' to=' . $fields['uid'] . '}'. $fields['date'] . ':[' . $this->searchParams['dateFrom'] . ' TO ' . $this->searchParams['dateTo'] . ']'; |
|
416 | + $params['filterquery'][]['query'] = '{!join from='.$fields['uid'].' to='.$fields['uid'].'}'.$fields['date'].':['.$this->searchParams['dateFrom'].' TO '.$this->searchParams['dateTo'].']'; |
|
417 | 417 | } |
418 | 418 | |
419 | 419 | // Add filter query for faceting. |
@@ -430,12 +430,12 @@ discard block |
||
430 | 430 | ) { |
431 | 431 | // Search in document and all subordinates (valid for up to three levels of hierarchy). |
432 | 432 | $params['filterquery'][]['query'] = '_query_:"{!join from=' |
433 | - . $fields['uid'] . ' to=' . $fields['partof'] . '}' |
|
434 | - . $fields['uid'] . ':{!join from=' . $fields['uid'] . ' to=' . $fields['partof'] . '}' |
|
435 | - . $fields['uid'] . ':' . $this->searchParams['documentId'] . '"' . ' OR {!join from=' |
|
436 | - . $fields['uid'] . ' to=' . $fields['partof'] . '}' |
|
437 | - . $fields['uid'] . ':' . $this->searchParams['documentId'] . ' OR ' |
|
438 | - . $fields['uid'] . ':' . $this->searchParams['documentId']; |
|
433 | + . $fields['uid'].' to='.$fields['partof'].'}' |
|
434 | + . $fields['uid'].':{!join from='.$fields['uid'].' to='.$fields['partof'].'}' |
|
435 | + . $fields['uid'].':'.$this->searchParams['documentId'].'"'.' OR {!join from=' |
|
436 | + . $fields['uid'].' to='.$fields['partof'].'}' |
|
437 | + . $fields['uid'].':'.$this->searchParams['documentId'].' OR ' |
|
438 | + . $fields['uid'].':'.$this->searchParams['documentId']; |
|
439 | 439 | } |
440 | 440 | |
441 | 441 | // if collections are given, we prepare the collection query string |
@@ -455,8 +455,8 @@ discard block |
||
455 | 455 | if ($this->listedMetadata) { |
456 | 456 | foreach ($this->listedMetadata as $metadata) { |
457 | 457 | if ($metadata->getIndexStored() || $metadata->getIndexIndexed()) { |
458 | - $listMetadataRecord = $metadata->getIndexName() . '_' . ($metadata->getIndexTokenized() ? 't' : 'u') . ($metadata->getIndexStored() ? 's' : 'u') . ($metadata->getIndexIndexed() ? 'i' : 'u'); |
|
459 | - $params['fields'] .= ',' . $listMetadataRecord; |
|
458 | + $listMetadataRecord = $metadata->getIndexName().'_'.($metadata->getIndexTokenized() ? 't' : 'u').($metadata->getIndexStored() ? 's' : 'u').($metadata->getIndexIndexed() ? 'i' : 'u'); |
|
459 | + $params['fields'] .= ','.$listMetadataRecord; |
|
460 | 460 | $params['listMetadataRecords'][$metadata->getIndexName()] = $listMetadataRecord; |
461 | 461 | } |
462 | 462 | } |
@@ -531,8 +531,8 @@ discard block |
||
531 | 531 | if ($this->searchParams['fulltext'] == '1') { |
532 | 532 | $searchResult['snippet'] = $doc['snippet']; |
533 | 533 | $searchResult['highlight'] = $doc['highlight']; |
534 | - $searchResult['highlight_word'] = preg_replace('/^;|;$/', '', // remove ; at beginning or end |
|
535 | - preg_replace('/;+/', ';', // replace any multiple of ; with a single ; |
|
534 | + $searchResult['highlight_word'] = preg_replace('/^;|;$/', '', // remove ; at beginning or end |
|
535 | + preg_replace('/;+/', ';', // replace any multiple of ; with a single ; |
|
536 | 536 | preg_replace('/[{~\d*}{\s+}{^=*\d+.*\d*}`~!@#$%\^&*()_|+-=?;:\'",.<>\{\}\[\]\\\]/', ';', $this->searchParams['query']))); // replace search operators and special characters with ; |
537 | 537 | } |
538 | 538 | $documents[$doc['uid']]['searchResults'][] = $searchResult; |
@@ -556,7 +556,7 @@ discard block |
||
556 | 556 | |
557 | 557 | // Fetch metadata for the current batch |
558 | 558 | $metadataOf = $this->fetchToplevelMetadataFromSolr([ |
559 | - 'query' => 'partof:' . $doc['uid'], |
|
559 | + 'query' => 'partof:'.$doc['uid'], |
|
560 | 560 | 'start' => $start, |
561 | 561 | 'rows' => min($batchSize, $totalChildren - $start), |
562 | 562 | ]); |
@@ -608,8 +608,8 @@ discard block |
||
608 | 608 | if ($this->listedMetadata) { |
609 | 609 | foreach ($this->listedMetadata as $metadata) { |
610 | 610 | if ($metadata->getIndexStored() || $metadata->getIndexIndexed()) { |
611 | - $listMetadataRecord = $metadata->getIndexName() . '_' . ($metadata->getIndexTokenized() ? 't' : 'u') . ($metadata->getIndexStored() ? 's' : 'u') . ($metadata->getIndexIndexed() ? 'i' : 'u'); |
|
612 | - $params['fields'] .= ',' . $listMetadataRecord; |
|
611 | + $listMetadataRecord = $metadata->getIndexName().'_'.($metadata->getIndexTokenized() ? 't' : 'u').($metadata->getIndexStored() ? 's' : 'u').($metadata->getIndexIndexed() ? 'i' : 'u'); |
|
612 | + $params['fields'] .= ','.$listMetadataRecord; |
|
613 | 613 | $params['listMetadataRecords'][$metadata->getIndexName()] = $listMetadataRecord; |
614 | 614 | } |
615 | 615 | } |
@@ -660,7 +660,7 @@ discard block |
||
660 | 660 | $cache = null; |
661 | 661 | // Calculate cache identifier. |
662 | 662 | if ($enableCache === true) { |
663 | - $cacheIdentifier = Helper::digest($solr->core . print_r($parameters, true)); |
|
663 | + $cacheIdentifier = Helper::digest($solr->core.print_r($parameters, true)); |
|
664 | 664 | $cache = GeneralUtility::makeInstance(CacheManager::class)->getCache('tx_dlf_solr'); |
665 | 665 | } |
666 | 666 | $resultSet = [ |
@@ -678,8 +678,8 @@ discard block |
||
678 | 678 | if ($this->indexedMetadata) { |
679 | 679 | foreach ($this->indexedMetadata as $metadata) { |
680 | 680 | if ($metadata->getIndexIndexed()) { |
681 | - $listMetadataRecord = $metadata->getIndexName() . '_' . ($metadata->getIndexTokenized() ? 't' : 'u') . ($metadata->getIndexStored() ? 's' : 'u') . 'i'; |
|
682 | - $queryFields .= $listMetadataRecord . '^' . $metadata->getIndexBoost() . ' '; |
|
681 | + $listMetadataRecord = $metadata->getIndexName().'_'.($metadata->getIndexTokenized() ? 't' : 'u').($metadata->getIndexStored() ? 's' : 'u').'i'; |
|
682 | + $queryFields .= $listMetadataRecord.'^'.$metadata->getIndexBoost().' '; |
|
683 | 683 | } |
684 | 684 | } |
685 | 685 | } |
@@ -765,24 +765,24 @@ discard block |
||
765 | 765 | foreach ($this->collections as $collection) { |
766 | 766 | // check for virtual collections query string |
767 | 767 | if ($collection->getIndexSearch()) { |
768 | - $virtualCollectionsQueryString .= empty($virtualCollectionsQueryString) ? '(' . $collection->getIndexSearch() . ')' : ' OR (' . $collection->getIndexSearch() . ')'; |
|
768 | + $virtualCollectionsQueryString .= empty($virtualCollectionsQueryString) ? '('.$collection->getIndexSearch().')' : ' OR ('.$collection->getIndexSearch().')'; |
|
769 | 769 | } else { |
770 | - $collectionsQueryString .= empty($collectionsQueryString) ? '"' . $collection->getIndexName() . '"' : ' OR "' . $collection->getIndexName() . '"'; |
|
770 | + $collectionsQueryString .= empty($collectionsQueryString) ? '"'.$collection->getIndexName().'"' : ' OR "'.$collection->getIndexName().'"'; |
|
771 | 771 | } |
772 | 772 | } |
773 | 773 | |
774 | 774 | // distinguish between simple collection browsing and actual searching within the collection(s) |
775 | 775 | if (!empty($collectionsQueryString)) { |
776 | 776 | if (empty($query)) { |
777 | - $collectionsQueryString = '(collection_faceting:(' . $collectionsQueryString . ') AND toplevel:true AND partof:0)'; |
|
777 | + $collectionsQueryString = '(collection_faceting:('.$collectionsQueryString.') AND toplevel:true AND partof:0)'; |
|
778 | 778 | } else { |
779 | - $collectionsQueryString = '(collection_faceting:(' . $collectionsQueryString . '))'; |
|
779 | + $collectionsQueryString = '(collection_faceting:('.$collectionsQueryString.'))'; |
|
780 | 780 | } |
781 | 781 | } |
782 | 782 | |
783 | 783 | // virtual collections might query documents that are neither toplevel:true nor partof:0 and need to be searched separately |
784 | 784 | if (!empty($virtualCollectionsQueryString)) { |
785 | - $virtualCollectionsQueryString = '(' . $virtualCollectionsQueryString . ')'; |
|
785 | + $virtualCollectionsQueryString = '('.$virtualCollectionsQueryString.')'; |
|
786 | 786 | } |
787 | 787 | |
788 | 788 | // combine both query strings into a single filterquery via OR if both are given, otherwise pass either of those |
@@ -860,7 +860,7 @@ discard block |
||
860 | 860 | private function translateLanguageCode(&$doc): void |
861 | 861 | { |
862 | 862 | if (array_key_exists('language', $doc['metadata'])) { |
863 | - foreach($doc['metadata']['language'] as $indexName => $language) { |
|
863 | + foreach ($doc['metadata']['language'] as $indexName => $language) { |
|
864 | 864 | $doc['metadata']['language'][$indexName] = Helper::getLanguageName($language); |
865 | 865 | } |
866 | 866 | } |
@@ -114,7 +114,7 @@ discard block |
||
114 | 114 | $this->initializeRepositories((int) $input->getOption('pid')); |
115 | 115 | |
116 | 116 | if ($this->storagePid == 0) { |
117 | - $io->error('ERROR: No valid PID (' . $this->storagePid . ') given.'); |
|
117 | + $io->error('ERROR: No valid PID ('.$this->storagePid.') given.'); |
|
118 | 118 | return BaseCommand::FAILURE; |
119 | 119 | } |
120 | 120 | |
@@ -129,13 +129,13 @@ discard block |
||
129 | 129 | if (empty($solrCoreUid) || !in_array($solrCoreUid, $allSolrCores)) { |
130 | 130 | $outputSolrCores = []; |
131 | 131 | foreach ($allSolrCores as $indexName => $uid) { |
132 | - $outputSolrCores[] = $uid . ' : ' . $indexName; |
|
132 | + $outputSolrCores[] = $uid.' : '.$indexName; |
|
133 | 133 | } |
134 | 134 | if (empty($outputSolrCores)) { |
135 | - $io->error('ERROR: No valid Solr core ("' . $input->getOption('solr') . '") given. No valid cores found on PID ' . $this->storagePid . ".\n"); |
|
135 | + $io->error('ERROR: No valid Solr core ("'.$input->getOption('solr').'") given. No valid cores found on PID '.$this->storagePid.".\n"); |
|
136 | 136 | return BaseCommand::FAILURE; |
137 | 137 | } else { |
138 | - $io->error('ERROR: No valid Solr core ("' . $input->getOption('solr') . '") given. ' . "Valid cores are (<uid>:<index_name>):\n" . implode("\n", $outputSolrCores) . "\n"); |
|
138 | + $io->error('ERROR: No valid Solr core ("'.$input->getOption('solr').'") given. '."Valid cores are (<uid>:<index_name>):\n".implode("\n", $outputSolrCores)."\n"); |
|
139 | 139 | return BaseCommand::FAILURE; |
140 | 140 | } |
141 | 141 | } |
@@ -165,7 +165,7 @@ discard block |
||
165 | 165 | ->setLimit((int) $input->getOption('index-limit')) |
166 | 166 | ->setOffset((int) $input->getOption('index-begin')) |
167 | 167 | ->execute(); |
168 | - $io->writeln($input->getOption('index-limit') . ' documents starting from ' . $input->getOption('index-begin') . ' will be indexed.'); |
|
168 | + $io->writeln($input->getOption('index-limit').' documents starting from '.$input->getOption('index-begin').' will be indexed.'); |
|
169 | 169 | } else { |
170 | 170 | // Get all documents. |
171 | 171 | $documents = $this->documentRepository->findAll(); |
@@ -187,7 +187,7 @@ discard block |
||
187 | 187 | ) { |
188 | 188 | $documents = $this->documentRepository->findAllByCollectionsLimited($collections, (int) $input->getOption('index-limit'), (int) $input->getOption('index-begin')); |
189 | 189 | |
190 | - $io->writeln($input->getOption('index-limit') . ' documents starting from ' . $input->getOption('index-begin') . ' will be indexed.'); |
|
190 | + $io->writeln($input->getOption('index-limit').' documents starting from '.$input->getOption('index-begin').' will be indexed.'); |
|
191 | 191 | } else { |
192 | 192 | // Get all documents of given collections. |
193 | 193 | $documents = $this->documentRepository->findAllByCollectionsLimited($collections, 0); |
@@ -201,15 +201,15 @@ discard block |
||
201 | 201 | $doc = AbstractDocument::getInstance($document->getLocation(), ['storagePid' => $this->storagePid], true); |
202 | 202 | |
203 | 203 | if ($doc === null) { |
204 | - $io->warning('WARNING: Document "' . $document->getLocation() . '" could not be loaded. Skip to next document.'); |
|
204 | + $io->warning('WARNING: Document "'.$document->getLocation().'" could not be loaded. Skip to next document.'); |
|
205 | 205 | continue; |
206 | 206 | } |
207 | 207 | |
208 | 208 | if ($dryRun) { |
209 | - $io->writeln('DRY RUN: Would index ' . ($id + 1) . '/' . count($documents) . ' with UID "' . $document->getUid() . '" ("' . $document->getLocation() . '") on PID ' . $this->storagePid . ' and Solr core ' . $solrCoreUid . '.'); |
|
209 | + $io->writeln('DRY RUN: Would index '.($id + 1).'/'.count($documents).' with UID "'.$document->getUid().'" ("'.$document->getLocation().'") on PID '.$this->storagePid.' and Solr core '.$solrCoreUid.'.'); |
|
210 | 210 | } else { |
211 | 211 | if ($io->isVerbose()) { |
212 | - $io->writeln(date('Y-m-d H:i:s') . ' Indexing ' . ($id + 1) . '/' . count($documents) . ' with UID "' . $document->getUid() . '" ("' . $document->getLocation() . '") on PID ' . $this->storagePid . ' and Solr core ' . $solrCoreUid . '.'); |
|
212 | + $io->writeln(date('Y-m-d H:i:s').' Indexing '.($id + 1).'/'.count($documents).' with UID "'.$document->getUid().'" ("'.$document->getLocation().'") on PID '.$this->storagePid.' and Solr core '.$solrCoreUid.'.'); |
|
213 | 213 | } |
214 | 214 | $document->setCurrentDocument($doc); |
215 | 215 | // save to database |