@@ -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 | } |
@@ -113,7 +113,7 @@ discard block |
||
| 113 | 113 | $parent->setCurrentDocument($doc); |
| 114 | 114 | $success = self::add($parent, $documentRepository); |
| 115 | 115 | } else { |
| 116 | - Helper::log('Could not load parent document with UID ' . $document->getCurrentDocument()->parentId, LOG_SEVERITY_ERROR); |
|
| 116 | + Helper::log('Could not load parent document with UID '.$document->getCurrentDocument()->parentId, LOG_SEVERITY_ERROR); |
|
| 117 | 117 | return false; |
| 118 | 118 | } |
| 119 | 119 | } |
@@ -196,19 +196,19 @@ discard block |
||
| 196 | 196 | } catch (\Exception $e) { |
| 197 | 197 | if (!(Environment::isCli())) { |
| 198 | 198 | Helper::addMessage( |
| 199 | - Helper::getLanguageService()->getLL('flash.solrException') . ' ' . htmlspecialchars($e->getMessage()), |
|
| 199 | + Helper::getLanguageService()->getLL('flash.solrException').' '.htmlspecialchars($e->getMessage()), |
|
| 200 | 200 | Helper::getLanguageService()->getLL('flash.error'), |
| 201 | 201 | FlashMessage::ERROR, |
| 202 | 202 | true, |
| 203 | 203 | 'core.template.flashMessages' |
| 204 | 204 | ); |
| 205 | 205 | } |
| 206 | - Helper::log('Apache Solr threw exception: "' . $e->getMessage() . '"', LOG_SEVERITY_ERROR); |
|
| 206 | + Helper::log('Apache Solr threw exception: "'.$e->getMessage().'"', LOG_SEVERITY_ERROR); |
|
| 207 | 207 | return false; |
| 208 | 208 | } |
| 209 | 209 | } |
| 210 | 210 | |
| 211 | - Helper::log('Document not deleted from SOLR - problem with the connection to the SOLR core ' . $solrCoreUid, LOG_SEVERITY_ERROR); |
|
| 211 | + Helper::log('Document not deleted from SOLR - problem with the connection to the SOLR core '.$solrCoreUid, LOG_SEVERITY_ERROR); |
|
| 212 | 212 | return false; |
| 213 | 213 | } |
| 214 | 214 | |
@@ -229,7 +229,7 @@ discard block |
||
| 229 | 229 | // Sanitize input. |
| 230 | 230 | $pid = max((int) $pid, 0); |
| 231 | 231 | if (!$pid) { |
| 232 | - Helper::log('Invalid PID ' . $pid . ' for metadata configuration', LOG_SEVERITY_ERROR); |
|
| 232 | + Helper::log('Invalid PID '.$pid.' for metadata configuration', LOG_SEVERITY_ERROR); |
|
| 233 | 233 | return ''; |
| 234 | 234 | } |
| 235 | 235 | // Load metadata configuration. |
@@ -238,7 +238,7 @@ discard block |
||
| 238 | 238 | $suffix = (in_array($indexName, self::$fields['tokenized']) ? 't' : 'u'); |
| 239 | 239 | $suffix .= (in_array($indexName, self::$fields['stored']) ? 's' : 'u'); |
| 240 | 240 | $suffix .= (in_array($indexName, self::$fields['indexed']) ? 'i' : 'u'); |
| 241 | - $indexName .= '_' . $suffix; |
|
| 241 | + $indexName .= '_'.$suffix; |
|
| 242 | 242 | return $indexName; |
| 243 | 243 | } |
| 244 | 244 | |
@@ -354,7 +354,7 @@ discard block |
||
| 354 | 354 | $solrDoc->setField('title', $metadata['title'][0]); |
| 355 | 355 | $solrDoc->setField('volume', $metadata['volume'][0]); |
| 356 | 356 | // verify date formatting |
| 357 | - if(strtotime($metadata['date'][0])) { |
|
| 357 | + if (strtotime($metadata['date'][0])) { |
|
| 358 | 358 | $solrDoc->setField('date', self::getFormattedDate($metadata['date'][0])); |
| 359 | 359 | } |
| 360 | 360 | $solrDoc->setField('record_id', $metadata['record_id'][0]); |
@@ -517,11 +517,11 @@ discard block |
||
| 517 | 517 | $solrDoc->setField(self::getIndexFieldName($indexName, $document->getPid()), $data); |
| 518 | 518 | if (in_array($indexName, self::$fields['sortables'])) { |
| 519 | 519 | // Add sortable fields to index. |
| 520 | - $solrDoc->setField($indexName . '_sorting', $metadata[$indexName . '_sorting'][0]); |
|
| 520 | + $solrDoc->setField($indexName.'_sorting', $metadata[$indexName.'_sorting'][0]); |
|
| 521 | 521 | } |
| 522 | 522 | if (in_array($indexName, self::$fields['facets'])) { |
| 523 | 523 | // Add facets to index. |
| 524 | - $solrDoc->setField($indexName . '_faceting', $data); |
|
| 524 | + $solrDoc->setField($indexName.'_faceting', $data); |
|
| 525 | 525 | } |
| 526 | 526 | if (in_array($indexName, self::$fields['autocomplete'])) { |
| 527 | 527 | $autocomplete = array_merge($autocomplete, $data); |
@@ -557,7 +557,7 @@ discard block |
||
| 557 | 557 | $data = self::removeAppendsFromAuthor($data); |
| 558 | 558 | } |
| 559 | 559 | // Add facets to index. |
| 560 | - $solrDoc->setField($indexName . '_faceting', $data); |
|
| 560 | + $solrDoc->setField($indexName.'_faceting', $data); |
|
| 561 | 561 | } |
| 562 | 562 | } |
| 563 | 563 | // Add sorting information to physical sub-elements if applicable. |
@@ -587,9 +587,9 @@ discard block |
||
| 587 | 587 | $update = self::$solr->service->createUpdate(); |
| 588 | 588 | $query = ""; |
| 589 | 589 | if ($field == 'uid' || $field == 'partof') { |
| 590 | - $query = $field . ':' . $value; |
|
| 590 | + $query = $field.':'.$value; |
|
| 591 | 591 | } else { |
| 592 | - $query = $field . ':"' . $value . '"'; |
|
| 592 | + $query = $field.':"'.$value.'"'; |
|
| 593 | 593 | } |
| 594 | 594 | $update->addDeleteQuery($query); |
| 595 | 595 | $update->addCommit(); |
@@ -614,7 +614,7 @@ discard block |
||
| 614 | 614 | { |
| 615 | 615 | $solrDoc = $updateQuery->createDocument(); |
| 616 | 616 | // Create unique identifier from document's UID and unit's XML ID. |
| 617 | - $solrDoc->setField('id', $document->getUid() . $unit['id']); |
|
| 617 | + $solrDoc->setField('id', $document->getUid().$unit['id']); |
|
| 618 | 618 | $solrDoc->setField('uid', $document->getUid()); |
| 619 | 619 | $solrDoc->setField('pid', $document->getPid()); |
| 620 | 620 | $solrDoc->setField('partof', $document->getPartof()); |
@@ -693,9 +693,9 @@ discard block |
||
| 693 | 693 | private static function handleException(string $errorMessage): void |
| 694 | 694 | { |
| 695 | 695 | if (!(Environment::isCli())) { |
| 696 | - self::addErrorMessage(Helper::getLanguageService()->getLL('flash.solrException') . '<br />' . htmlspecialchars($errorMessage)); |
|
| 696 | + self::addErrorMessage(Helper::getLanguageService()->getLL('flash.solrException').'<br />'.htmlspecialchars($errorMessage)); |
|
| 697 | 697 | } |
| 698 | - Helper::log('Apache Solr threw exception: "' . $errorMessage . '"', LOG_SEVERITY_ERROR); |
|
| 698 | + Helper::log('Apache Solr threw exception: "'.$errorMessage.'"', LOG_SEVERITY_ERROR); |
|
| 699 | 699 | } |
| 700 | 700 | |
| 701 | 701 | /** |