diff --git a/core/components/simplesearch/docs/changelog.txt b/core/components/simplesearch/docs/changelog.txt
index 1553e32..ccd5f71 100755
--- a/core/components/simplesearch/docs/changelog.txt
+++ b/core/components/simplesearch/docs/changelog.txt
@@ -1,5 +1,10 @@
Changelog for SimpleSearch.
+- Added a new snippet property onlyFacet [#28]
+- Add basic debug option [#27]
+- Update Elastica [#33]
+- Update exclude parameter to always be active and to use idType [#33]
+
SimpleSearch 1.9.2
========================================================================
- Generate extract for whole search string, not just for last part
diff --git a/core/components/simplesearch/elements/snippets/simplesearch.snippet.php b/core/components/simplesearch/elements/snippets/simplesearch.snippet.php
index 37be7b7..484f0c8 100755
--- a/core/components/simplesearch/elements/snippets/simplesearch.snippet.php
+++ b/core/components/simplesearch/elements/snippets/simplesearch.snippet.php
@@ -38,20 +38,30 @@
$searchIndex = $modx->getOption('searchIndex',$scriptProperties,'search');
$toPlaceholder = $modx->getOption('toPlaceholder',$scriptProperties,false);
$noResultsTpl = $modx->getOption('noResultsTpl',$scriptProperties,'SearchNoResults');
+$debug = (bool)$modx->getOption('debug', $scriptProperties, false);
+$debug_output = '';
/* get search string */
if (empty($_REQUEST[$searchIndex])) {
$output = $search->getChunk($noResultsTpl,array(
'query' => '',
));
- return $search->output($output,$toPlaceholder);
+
+ if ( $debug ) {
+ $debug_output .= '
No search in the URL request for searchIndex: '.$searchIndex;
+ }
+ return $debug_output.$search->output($output,$toPlaceholder);
}
$searchString = $search->parseSearchString($_REQUEST[$searchIndex]);
if (!$searchString) {
$output = $search->getChunk($noResultsTpl,array(
'query' => $searchString,
));
- return $search->output($output,$toPlaceholder);
+
+ if ( $debug ) {
+ $debug_output .= '
Search string was empty after parsing & sanitizing for searchIndex: '.$searchIndex;
+ }
+ return $debug_output.$search->output($output,$toPlaceholder);
}
/* setup default properties */
@@ -75,48 +85,66 @@
$postHooks = $modx->getOption('postHooks',$scriptProperties,'');
$activeFacet = $modx->getOption('facet',$_REQUEST,$modx->getOption('activeFacet',$scriptProperties,'default'));
$activeFacet = $modx->sanitizeString($activeFacet);
+$onlyFacet = $modx->getOption('onlyFacet', $scriptProperties, null);
$facetLimit = $modx->getOption('facetLimit',$scriptProperties,5);
$outputSeparator = $modx->getOption('outputSeparator',$scriptProperties,"\n");
$addSearchToLink = intval($modx->getOption('addSearchToLink',$scriptProperties,"0"));
$searchInLinkName = $modx->getOption('searchInLinkName',$scriptProperties,"search");
/* get results */
-$response = $search->getSearchResults($searchString,$scriptProperties);
-$placeholders = array('query' => $searchString);
-$resultsTpl = array('default' => array('results' => array(),'total' => $response['total']));
-if (!empty($response['results'])) {
- /* iterate through search results */
- foreach ($response['results'] as $resourceArray) {
- $resourceArray['idx'] = $idx;
- if (empty($resourceArray['link'])) {
- $ctx = !empty($resourceArray['context_key']) ? $resourceArray['context_key'] : $modx->context->get('key');
- $args = '';
- if ($addSearchToLink) {
- $args = array($searchInLinkName => $searchString);
- }
- $resourceArray['link'] = $modx->makeUrl($resourceArray['id'],$ctx,$args);
+if ( !is_null($onlyFacet) && $onlyFacet != 'default' ) {
+ $activeFacet = $onlyFacet;
+} else {
+ $response = $search->getSearchResults($searchString, $scriptProperties);
+ $placeholders = array('query' => $searchString);
+ $resultsTpl = array('default' => array('results' => array(), 'total' => $response['total']));
+ if (!empty($response['results'])) {
+ if ($debug) {
+ $debug_output .= '
Begin iterate through search results';
}
- if ($showExtract) {
- $extract = $searchString;
- if (array_key_exists($extractSource, $resourceArray)) {
- $text = $resourceArray[$extractSource];
- } else {
- $text = $modx->runSnippet($extractSource, $resourceArray);
+ /* iterate through search results */
+ foreach ($response['results'] as $resourceArray) {
+ $resourceArray['idx'] = $idx;
+ if ($debug) {
+ $debug_output .= '
Search found resource ID: ' . $resourceArray['id'];
}
- $extract = $search->createExtract($text,$extractLength,$extract,$extractEllipsis);
- /* cleanup extract */
- $extract = strip_tags(preg_replace("#\