* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * SimpleSearch; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 * Suite 330, Boston, MA 02111-1307 USA
 *
 * @package simplesearch
 */
/**
 * Show the search form
 *
 * @var modX $modx
 * @var array $scriptProperties
 * @package simplesearch
 */
require_once $modx->getOption('sisea.core_path', null, $modx->getOption('core_path') . 'components/simplesearch/') . 'model/simplesearch/simplesearch.class.php';
$search = new SimpleSearch($modx, $scriptProperties);
/* setup default options */
$scriptProperties = array_merge(array('tpl' => 'SearchForm', 'method' => 'get', 'searchIndex' => 'search', 'toPlaceholder' => false, 'landing' => $modx->resource->get('id')), $scriptProperties);
if (empty($scriptProperties['landing'])) {
    $scriptProperties['landing'] = $modx->resource->get('id');
}
/* if get value already exists, set it as default */
$searchValue = isset($_REQUEST[$scriptProperties['searchIndex']]) ? $_REQUEST[$scriptProperties['searchIndex']] : '';
$searchValues = explode(' ', $searchValue);
array_map(array($modx, 'sanitizeString'), $searchValues);
$searchValue = implode(' ', $searchValues);
$placeholders = array('method' => $scriptProperties['method'], 'landing' => $scriptProperties['landing'], 'searchValue' => strip_tags(str_replace(array('[', ']', '"', "'"), array('[', ']', '"', '''), $searchValue)), 'searchIndex' => $scriptProperties['searchIndex']);
$output = $search->getChunk($scriptProperties['tpl'], $placeholders);
return $search->output($output, $scriptProperties['toPlaceholder']);
Пример #2
0
/**
 * SimpleSearch snippet
 *
 * @var modX $modx
 * @var array $scriptProperties
 * @package simplesearch
 */
require_once $modx->getOption('sisea.core_path', null, $modx->getOption('core_path') . 'components/simplesearch/') . 'model/simplesearch/simplesearch.class.php';
$search = new SimpleSearch($modx, $scriptProperties);
/* find search index and toplaceholder setting */
$searchIndex = $modx->getOption('searchIndex', $scriptProperties, 'search');
$toPlaceholder = $modx->getOption('toPlaceholder', $scriptProperties, false);
$noResultsTpl = $modx->getOption('noResultsTpl', $scriptProperties, 'SearchNoResults');
/* get search string */
if (empty($_REQUEST[$searchIndex])) {
    $output = $search->getChunk($noResultsTpl, array('query' => ''));
    return $search->output($output, $toPlaceholder);
}
$searchString = $search->parseSearchString($_REQUEST[$searchIndex]);
if (!$searchString) {
    $output = $search->getChunk($noResultsTpl, array('query' => $searchString));
    return $search->output($output, $toPlaceholder);
}
/* setup default properties */
$tpl = $modx->getOption('tpl', $scriptProperties, 'SearchResult');
$containerTpl = $modx->getOption('containerTpl', $scriptProperties, 'SearchResults');
$showExtract = $modx->getOption('showExtract', $scriptProperties, true);
$extractSource = $modx->getOption('extractSource', $scriptProperties, 'content');
$extractLength = $modx->getOption('extractLength', $scriptProperties, 200);
$extractEllipsis = $modx->getOption('extractEllipsis', $scriptProperties, '...');
$highlightResults = $modx->getOption('highlightResults', $scriptProperties, true);