getHelperPluginManager(); $status = $plugins->get('status'); $setting = $plugins->get('setting'); $escape = $plugins->get('escapeHtml'); $translate = $plugins->get('translate'); $siteSetting = $plugins->get('siteSetting'); $propertySelect = $plugins->get('propertySelect'); $isSiteRequest = $status->isSiteRequest(); $applyTemplates = $isSiteRequest ? $siteSetting('search_apply_templates') : false; $usedTerms = $isSiteRequest ? false : $setting('advancedsearch_restrict_used_terms', true); // Prepare the property queries. $properties = $query['property'] ?? []; $properties = array_filter($properties, function ($value) { return isset($value['text']) ? '' !== trim($value['text']) : true; }); if (!$properties) { $properties[] = []; } if (isset($query['search'])) { unset($properties[0]['joiner']); array_unshift($properties, [ 'property' => '', 'type' => 'in', 'text' => $query['search'], ]); } $queryOption = function ($value, array $search, $key, $text) { $selected = null; if (isset($search[$key]) && $value === $search[$key]) { $selected = ' selected'; } return sprintf('', $value, $selected, $text); }; $queryText = function (array $search, $index) use ($escape, $translate) { $text = $search['text'] ?? null; return sprintf('', $escape("property[$index][text]"), $escape($text), $escape($translate('Query text'))); }; $optionsQuery = []; if ($isSiteRequest) { if ($siteSetting('vocabulary_scope') === 'sitewide') { $optionsQuery['site_id'] = $this->layout()->site->id(); } elseif ($siteSetting('vocabulary_scope') === 'cross-site') { $optionsQuery['used'] = true; } } ?>
$stem . '[property]', 'attributes' => [ 'class' => 'query-property chosen-select', 'value' => $propertyList, 'aria-label' => $translate('Properties'), // @translate 'multiple' => true, 'data-placeholder' => 'Select properties…', // @translate ], 'options' => [ 'empty_option' => '[Any Property]', // @translate 'apply_templates' => $applyTemplates, 'query' => $optionsQuery, // Used terms in site are already managed by vocabulary scope, but only for items. 'used_terms' => $usedTerms, ], ]) ?>