@@ -165,7 +165,7 @@ public function isExtendedSearch()
165
165
$ result = ((bool ) $ this ->requestArguments ['extended ' ]);
166
166
} elseif (array_key_exists ('q ' , $ this ->requestArguments )) {
167
167
foreach ($ this ->settings ['queryFields ' ] as $ fieldInfo ) {
168
- if ($ fieldInfo [ 'extended ' ]
168
+ if (array_key_exists ( 'extended ' , $ fieldInfo )
169
169
&& array_key_exists ($ fieldInfo ['id ' ], $ this ->requestArguments ['q ' ])
170
170
&& $ this ->requestArguments ['q ' ][$ fieldInfo ['id ' ]]
171
171
) {
@@ -354,7 +354,7 @@ protected function addFacetQueries(): void
354
354
}
355
355
}
356
356
357
- if (1 === (int ) $ facet ['excludeOwnFilter ' ]) {
357
+ if (array_key_exists ( ' excludeOwnFilter ' , $ facet ) && 1 === (int ) $ facet ['excludeOwnFilter ' ]) {
358
358
$ queryForFacet ->addExclude ($ this ->tagForFacet ($ facetID ));
359
359
}
360
360
} else {
@@ -365,11 +365,11 @@ protected function addFacetQueries(): void
365
365
->setSort ($ facet ['sortOrder ' ]);
366
366
}
367
367
368
- if (1 == $ facet ['excludeOwnFilter ' ]) {
368
+ if (array_key_exists ( ' excludeOwnFilter ' , $ facet ) && 1 = == $ facet ['excludeOwnFilter ' ]) {
369
369
$ queryForFacet ->addExclude ($ this ->tagForFacet ($ facetID ));
370
370
}
371
371
372
- if (1 === $ facet ['showMissing ' ]) {
372
+ if (array_key_exists ( ' showMissing ' , $ facet ) && 1 === $ facet ['showMissing ' ]) {
373
373
$ queryForFacet ->setMissing (true );
374
374
}
375
375
} else {
@@ -389,7 +389,7 @@ protected function addFacetQueries(): void
389
389
390
390
protected function addFeatures (): void
391
391
{
392
- if ($ this ->settings ['features ' ]['eDisMax ' ]) {
392
+ if (array_key_exists ( ' features ' , $ this -> settings ) && $ this ->settings ['features ' ]['eDisMax ' ]) {
393
393
$ this ->addEDisMax ();
394
394
}
395
395
}
@@ -410,7 +410,7 @@ protected function addHighlighting(array $arguments): void
410
410
$ highlight = $ this ->query ->getHighlighting ();
411
411
412
412
// Configure highlight queries.
413
- if ($ highlightConfig ['query ' ]) {
413
+ if (array_key_exists ( ' query ' , $ highlightConfig ) && $ highlightConfig ['query ' ]) {
414
414
$ queryWords = [];
415
415
if ($ highlightConfig ['useQueryTerms ' ] && array_key_exists ('q ' , $ arguments )) {
416
416
$ queryParameters = $ arguments ['q ' ];
@@ -420,9 +420,9 @@ protected function addHighlighting(array $arguments): void
420
420
$ queryArguments = $ queryParameters [$ fieldID ];
421
421
$ queryTerms = null ;
422
422
if (is_array ($ queryArguments ) && array_key_exists (
423
- 'alternate ' ,
424
- $ queryArguments
425
- ) && array_key_exists ('queryAlternate ' , $ fieldInfo )
423
+ 'alternate ' ,
424
+ $ queryArguments
425
+ ) && array_key_exists ('queryAlternate ' , $ fieldInfo )
426
426
) {
427
427
if (array_key_exists ('term ' , $ queryArguments )) {
428
428
$ queryTerms = $ queryArguments ['term ' ];
@@ -474,10 +474,12 @@ protected function addHighlighting(array $arguments): void
474
474
$ highlight ->addFields (implode (', ' , $ highlightConfig ['fields ' ]));
475
475
476
476
// Configure the fragment length.
477
- $ highlight ->setFragSize ((int ) $ highlightConfig ['fragsize ' ]);
477
+ if (array_key_exists ('fragsize ' , $ highlightConfig )) {
478
+ $ highlight ->setFragSize ((int )$ highlightConfig ['fragsize ' ]);
479
+ }
478
480
479
481
// Set up alternative fields.
480
- if ($ highlightConfig ['alternateFields ' ]) {
482
+ if (array_key_exists ( ' alternateFields ' , $ highlightConfig ) && $ highlightConfig ['alternateFields ' ]) {
481
483
foreach ($ highlightConfig ['alternateFields ' ] as $ fieldName => $ alternateFieldName ) {
482
484
$ highlightField = $ highlight ->getField ($ fieldName );
483
485
if ($ highlightField instanceof Field) {
@@ -569,10 +571,12 @@ protected function addSortOrdersToTemplate(array $arguments): void
569
571
}
570
572
}
571
573
572
- if ($ arguments [ 'sort ' ] && array_key_exists ($ arguments ['sort ' ], $ sortOptions ['menu ' ])) {
574
+ if (array_key_exists ( 'sort ' , $ arguments ) && array_key_exists ($ arguments ['sort ' ], $ sortOptions ['menu ' ]) && $ arguments [ ' sort ' ] ) {
573
575
$ sortOptions ['selected ' ] = $ arguments ['sort ' ];
574
- } else {
576
+ } else if ( array_key_exists ( ' default ' , $ sortOptions )) {
575
577
$ sortOptions ['selected ' ] = $ sortOptions ['default ' ];
578
+ } else {
579
+ $ sortOptions ['selected ' ] = 'is asc ' ;
576
580
}
577
581
}
578
582
@@ -971,7 +975,7 @@ protected function queryComponentsForQueryParameters(array $queryParameters): ar
971
975
$ queryFields = $ this ->settings ['queryFields ' ];
972
976
foreach ($ queryFields as $ fieldInfo ) {
973
977
$ fieldID = $ fieldInfo ['id ' ];
974
- if ($ fieldID && $ queryParameters [$ fieldID ]) {
978
+ if ($ fieldID && array_key_exists ( $ fieldID , $ queryParameters ) && null !== $ queryParameters [$ fieldID ]) {
975
979
// Extract array of query terms from the different structures:
976
980
// a) just a single string (e.g. text field)
977
981
// b) array of strings (e.g. date range field)
@@ -993,8 +997,10 @@ protected function queryComponentsForQueryParameters(array $queryParameters): ar
993
997
}
994
998
995
999
// Fill in pre-configured default values if they exist and the field is empty.
996
- $ defaults = $ fieldInfo ['default ' ];
997
- if ($ defaults ) {
1000
+ if (array_key_exists ('default ' , $ fieldInfo )) {
1001
+ $ defaults = $ fieldInfo ['default ' ];
1002
+ }
1003
+ if (isset ($ defaults )) {
998
1004
if (!is_array ($ defaults )) {
999
1005
$ defaults = [$ defaults ];
1000
1006
}
@@ -1118,19 +1124,23 @@ protected function setFields(array $arguments): void
1118
1124
// Use field list from query parameters or from defaults.
1119
1125
if (array_key_exists ('data-fields ' , $ arguments ) && $ arguments ['data-fields ' ]) {
1120
1126
$ fields = explode (', ' , $ arguments ['data-fields ' ]);
1121
- } elseif ($ fieldsConfig ['default ' ]) {
1127
+ } elseif (array_key_exists ( ' default ' , $ arguments ) && $ fieldsConfig ['default ' ]) {
1122
1128
$ fields = array_values ($ fieldsConfig ['default ' ]);
1123
1129
}
1124
1130
1125
1131
// If allowed fields are configured, keep only those.
1126
- $ allowedFields = $ fieldsConfig ['allow ' ];
1127
- if ($ allowedFields ) {
1132
+ if (array_key_exists ('allow ' , $ fieldsConfig ) && $ fieldsConfig ['allow ' ]) {
1133
+ $ allowedFields = $ fieldsConfig ['allow ' ];
1134
+ }
1135
+ if (isset ($ allowedFields )) {
1128
1136
$ fields = array_intersect ($ fields , $ allowedFields );
1129
1137
}
1130
1138
1131
1139
// If disallowed fields are configured, remove those.
1132
- $ disallowedFields = $ fieldsConfig ['disallow ' ];
1133
- if ($ disallowedFields ) {
1140
+ if (array_key_exists ('disallow ' , $ fieldsConfig ) && $ fieldsConfig ['disallow ' ]) {
1141
+ $ disallowedFields = $ fieldsConfig ['disallow ' ];
1142
+ }
1143
+ if (isset ($ disallowedFields )) {
1134
1144
$ fields = array_diff ($ fields , $ disallowedFields );
1135
1145
}
1136
1146
0 commit comments