From 998b30a5761be01387a6fac707cf948062d79b36 Mon Sep 17 00:00:00 2001
From: Michael Stucki
Date: Sat, 15 Oct 2005 19:53:40 +0000
Subject: [PATCH] * Added template support to indexed_search. Many thanks to
Udo von Eynern for his great work! * Many other changes to indexed_search.
For details, see typo3/sysext/indexed_search/ChangeLog.
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@818 709f56b5-9817-0410-a4d7-c38de5d9e867
---
ChangeLog | 2 +
typo3/sysext/indexed_search/ChangeLog | 4 +
.../indexed_search/ext_typoscript_setup.txt | 166 ++++---
typo3/sysext/indexed_search/locallang.xml | 2 +-
.../class.tx_indexedsearch_modfunc1.php | 1 +
.../pi/class.tx_indexedsearch.php | 456 +++++++++++-------
.../indexed_search/pi/considerations.txt | 6 +-
.../indexed_search/pi/template_css.tmpl | 219 +++++++++
.../pi/template_traditional.tmpl | 203 ++++++++
9 files changed, 805 insertions(+), 254 deletions(-)
create mode 100644 typo3/sysext/indexed_search/pi/template_css.tmpl
create mode 100644 typo3/sysext/indexed_search/pi/template_traditional.tmpl
diff --git a/ChangeLog b/ChangeLog
index 3d1a3f4e8801..85a987b71adf 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
* Added a hook for adding new items in alt_topmenu_dummy.php (requested by Stig N. Færch for his "roles" extension)
* Added a JavaScript to the backend which makes it possible to use tabulator keys in textareas. Can be disabled by setting $BE_USER->uc['disableTabInTextarea'].
+ * Added template support to indexed_search. Many thanks to Udo von Eynern for his great work!
+ * Many other changes to indexed_search. For details, see typo3/sysext/indexed_search/ChangeLog.
2005-10-14 Andreas Otto
diff --git a/typo3/sysext/indexed_search/ChangeLog b/typo3/sysext/indexed_search/ChangeLog
index 43d6a342c471..bde3bbc29cc8 100755
--- a/typo3/sysext/indexed_search/ChangeLog
+++ b/typo3/sysext/indexed_search/ChangeLog
@@ -1,3 +1,7 @@
+2005-10-15 Michael Stucki
+
+ * Added template support to indexed_search. Many thanks to Udo von Eynern for his great work!
+
2005-05-15 Michael Stucki
* Removed some debug output in backend module
diff --git a/typo3/sysext/indexed_search/ext_typoscript_setup.txt b/typo3/sysext/indexed_search/ext_typoscript_setup.txt
index 474c83acd204..a8e5971ed765 100755
--- a/typo3/sysext/indexed_search/ext_typoscript_setup.txt
+++ b/typo3/sysext/indexed_search/ext_typoscript_setup.txt
@@ -1,90 +1,100 @@
plugin.tx_indexedsearch {
- show {
- rules=1
- parsetimes=0
- L2sections=0
- L1sections=1
- LxALLtypes=0
- clearSearchBox = 0
- clearSearchBox.enableSubSearchCheckBox=0
- }
+ templateFile = EXT:indexed_search/pi/template_traditional.tmpl
- # Blinding of option-selectors / values in these (advanced search) (see $optValues array in source code for options + extResume checkbox)
- blind {
- type=0
- defOp=0
- sections=0
- media=0
- order=0
- group=0
- lang=0
- desc=0
- results=0
+ show {
+ rules = 1
+ parsetimes = 0
+ L2sections = 0
+ L1sections = 1
+ LxALLtypes = 0
+ clearSearchBox = 0
+ clearSearchBox.enableSubSearchCheckBox = 0
+ forbiddenRecords = 0
+ alwaysShowPageLinks = 0
+ advancedSearchLink = 1
+ resultNumber = 0
+ mediaList =
+ }
-# defOp.1=1
-# extResume=1
- }
- rules_stdWrap {
- }
- sectionlinks_stdWrap {
- }
- path_stdWrap {
- }
- search {
- rootPidList =
- page_links = 10
- }
+ # Blinding of option-selectors / values in these (advanced search) (see $optValues array in source code for options + extResume checkbox)
+ blind {
+ type = 0
+ defOp = 0
+ sections = 0
+ media = 0
+ order = 0
+ group = 0
+ lang = 0
+ desc = 0
+ results = 0
+ # defOp.1=1
+ # extResume=1
+ }
+ rules_stdWrap {
+ }
+ sectionlinks_stdWrap {
+ }
+ path_stdWrap {
+ }
+ search {
+ rootPidList =
+ page_links = 10
+ }
- result_link_target =
+ result_link_target =
/*
- flagRendering = CASE
- flagRendering {
- key.current = 1
- 2 = TEXT
- 2.value = German
- default = TEXT
- default.value = English
- }
+ flagRendering = CASE
+ flagRendering {
+ key.current = 1
+ 2 = TEXT
+ 2.value = German
+ default = TEXT
+ default.value = English
+ }
*/
/*
- iconRendering = CASE
- iconRendering {
- key.current = 1
- html = TEXT
- html.value = HtmL
- default = TEXT
- default.value = TYPO3 pages
- }
+ iconRendering = CASE
+ iconRendering {
+ key.current = 1
+ html = TEXT
+ html.value = HtmL
+ default = TEXT
+ default.value = TYPO3 pages
+ }
*/
- tableParams {
- secHead = border="0" cellpadding="0" cellspacing="0" width="100%"
- searchBox = border="0" cellpadding="0" cellspacing="0"
- searchRes = border="0" cellpadding="0" cellspacing="0" width="100%"
- }
- forwardSearchWordsInResultLink = 0
+ tableParams {
+ secHead = border="0" cellpadding="0" cellspacing="0" width="100%"
+ searchBox = border="0" cellpadding="0" cellspacing="0"
+ searchRes = border="0" cellpadding="0" cellspacing="0" width="100%"
+ }
+ forwardSearchWordsInResultLink = 0
- # Setting default values for piVars (please see the source code for the form-field names which you can preset values for here)
- _DEFAULT_PI_VARS.extResume=1
- _CSS_DEFAULT_STYLE (
- .tx-indexedsearch .tx-indexedsearch-searchbox INPUT.tx-indexedsearch-searchbox-button { width:100px; }
- .tx-indexedsearch .tx-indexedsearch-searchbox INPUT.tx-indexedsearch-searchbox-sword { width:150px; }
- .tx-indexedsearch .tx-indexedsearch-whatis P .tx-indexedsearch-sw { font-weight:bold; font-style:italic; }
- .tx-indexedsearch .tx-indexedsearch-whatis { margin-top:10px; margin-bottom:5px; }
- .tx-indexedsearch P.tx-indexedsearch-noresults { text-align:center; font-weight:bold; }
- .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-title { background:#eeeeee; }
- .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-title P { font-weight:bold; }
- .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-title P.tx-indexedsearch-percent { font-weight:normal; }
- .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-descr P { font-style:italic; }
- .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-descr P .tx-indexedsearch-redMarkup { color:red; }
- .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-info { background:#eeeeff; }
- .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead { margin-top:20px; margin-bottom:5px; }
- .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead H2 { margin-top:0px; margin-bottom:0px; }
- .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead TABLE { background:#cccccc; }
- .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead TD { vertical-align:middle; }
- .tx-indexedsearch .tx-indexedsearch-res .noResume { color : #666666; }
- )
- _LOCAL_LANG {
- }
+ # Setting default values for piVars (please see the source code for the form-field names which you can preset values for here)
+ _DEFAULT_PI_VARS {
+ extResume = 1
+ type = 1
+ group = flat
+ }
+ _CSS_DEFAULT_STYLE (
+ .tx-indexedsearch .tx-indexedsearch-searchbox INPUT.tx-indexedsearch-searchbox-button { width:100px; }
+ .tx-indexedsearch .tx-indexedsearch-searchbox INPUT.tx-indexedsearch-searchbox-sword { width:150px; }
+ .tx-indexedsearch .tx-indexedsearch-whatis P .tx-indexedsearch-sw { font-weight:bold; font-style:italic; }
+ .tx-indexedsearch .tx-indexedsearch-whatis { margin-top:10px; margin-bottom:5px; }
+ .tx-indexedsearch P.tx-indexedsearch-noresults { text-align:center; font-weight:bold; }
+ .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-title { background:#eeeeee; }
+ .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-title P { font-weight:bold; }
+ .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-title P.tx-indexedsearch-percent { font-weight:normal; }
+ .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-descr P { font-style:italic; }
+ .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-descr P .tx-indexedsearch-redMarkup { color:red; }
+ .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-info { background:#eeeeff; }
+ .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead { margin-top:20px; margin-bottom:5px; }
+ .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead H2 { margin-top:0px; margin-bottom:0px; }
+ .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead TABLE { background:#cccccc; }
+ .tx-indexedsearch .tx-indexedsearch-res .tx-indexedsearch-secHead TD { vertical-align:middle; }
+ .tx-indexedsearch .tx-indexedsearch-res .noResume { color : #666666; }
+ )
+ _LOCAL_LANG {
+ }
}
diff --git a/typo3/sysext/indexed_search/locallang.xml b/typo3/sysext/indexed_search/locallang.xml
index 32dc3d86bde8..ca2377a19e6a 100755
--- a/typo3/sysext/indexed_search/locallang.xml
+++ b/typo3/sysext/indexed_search/locallang.xml
@@ -14,7 +14,7 @@
-
+
EXT:csh_dk/indexed_search/dk.locallang.xmlEXT:csh_de/indexed_search/de.locallang.xml
diff --git a/typo3/sysext/indexed_search/modfunc1/class.tx_indexedsearch_modfunc1.php b/typo3/sysext/indexed_search/modfunc1/class.tx_indexedsearch_modfunc1.php
index 3070c3efbd85..43e655ac4829 100755
--- a/typo3/sysext/indexed_search/modfunc1/class.tx_indexedsearch_modfunc1.php
+++ b/typo3/sysext/indexed_search/modfunc1/class.tx_indexedsearch_modfunc1.php
@@ -130,6 +130,7 @@ class tx_indexedsearch_modfunc1 extends t3lib_extobjbase {
1 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_1'),
2 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_2'),
3 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_3'),
+ 999 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_infi'),
),
'type' => array(
0 => 'Overview',
diff --git a/typo3/sysext/indexed_search/pi/class.tx_indexedsearch.php b/typo3/sysext/indexed_search/pi/class.tx_indexedsearch.php
index fe77695a40ab..c20d89ef2a95 100755
--- a/typo3/sysext/indexed_search/pi/class.tx_indexedsearch.php
+++ b/typo3/sysext/indexed_search/pi/class.tx_indexedsearch.php
@@ -119,12 +119,12 @@ require_once(t3lib_extMgm::extPath('indexed_search').'class.indexer.php');
* @author Kasper Skårhøj
*/
class tx_indexedsearch extends tslib_pibase {
- var $prefixId = 'tx_indexedsearch'; // Same as class name
- var $scriptRelPath = 'pi/class.tx_indexedsearch.php'; // Path to this script relative to the extension dir.
- var $extKey = 'indexed_search'; // The extension key.
+ var $prefixId = 'tx_indexedsearch'; // Same as class name
+ var $scriptRelPath = 'pi/class.tx_indexedsearch.php'; // Path to this script relative to the extension dir.
+ var $extKey = 'indexed_search'; // The extension key.
var $join_pages = 0; // See document for info about this flag...
- var $defaultResultNumber = 20;
+ var $defaultResultNumber = 10;
var $operator_translate_table = Array ( // case-sensitive. Defines the words, which will be operators between words
Array ('+' , 'AND'),
@@ -144,15 +144,16 @@ class tx_indexedsearch extends tslib_pibase {
var $optValues = array(); // Selector box values for search configuration form
var $firstRow = Array(); // Will hold the first row in result - used to calculate relative hit-ratings.
- var $cache_path = array(); // Caching of page path
- var $cache_rl = array(); // Caching of root line data
- var $fe_groups_required = array(); // Required fe_groups memberships for display of a result.
- var $domain_records = array(); // Domain records (?)
- var $wSelClauses = array(); // Select clauses for individual words
- var $resultSections = array(); // Page tree sections for search result.
- var $external_parsers = array(); // External parser objects
- var $iconFileNameCache = array(); // Storage of icons....
- var $lexerObj; // Lexer object
+ var $cache_path = array(); // Caching of page path
+ var $cache_rl = array(); // Caching of root line data
+ var $fe_groups_required = array(); // Required fe_groups memberships for display of a result.
+ var $domain_records = array(); // Domain records (?)
+ var $wSelClauses = array(); // Select clauses for individual words
+ var $resultSections = array(); // Page tree sections for search result.
+ var $external_parsers = array(); // External parser objects
+ var $iconFileNameCache = array(); // Storage of icons....
+ var $lexerObj; // Lexer object
+ var $templateCode; // Will hold the content of $conf['templateFile']
/**
@@ -165,8 +166,8 @@ class tx_indexedsearch extends tslib_pibase {
function main($content, $conf) {
// Initialize:
- $this->conf = $conf;
- $this->pi_loadLL();
+ $this->conf = $conf;
+ $this->pi_loadLL();
$this->pi_setPiVarDefaults();
// Initialize the indexer-class - just to use a few function (for making hashes)
@@ -182,10 +183,9 @@ class tx_indexedsearch extends tslib_pibase {
}
// Finally compile all the content, form, messages and results:
- $content=
- $this->makeSearchForm($this->optValues).
+ $content = $this->makeSearchForm($this->optValues).
$this->printRules().
- $content;
+ $content;
return $this->pi_wrapInBaseClass($content);
}
@@ -282,7 +282,13 @@ class tx_indexedsearch extends tslib_pibase {
);
// Add media to search in:
+ if (strlen(trim($this->conf['search.']['mediaList']))) {
+ $mediaList = implode(',', t3lib_div::trimExplode(',', $this->conf['search.']['mediaList'], 1));
+ }
foreach($this->external_parsers as $extension => $obj) {
+ // Skip unwanted extensions
+ if ($mediaList && !t3lib_div::inList($mediaList, $extension)) { continue; }
+
if ($name = $obj->searchTypeMediaTitle($extension)) {
$this->optValues['media'][$extension] = $this->pi_getLL('opt_sections_'.$extension,$name);
}
@@ -324,6 +330,9 @@ class tx_indexedsearch extends tslib_pibase {
$this->wholeSiteIdList = implode(',',t3lib_div::intExplode(',',$this->conf['search.']['rootPidList']));
}
+ // Load the template
+ $this->templateCode = $this->cObj->fileResource($this->conf['templateFile']);
+
// Add search languages:
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_language', '1=1'.$this->cObj->enableFields('sys_language'));
while($lR = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
@@ -499,20 +508,18 @@ class tx_indexedsearch extends tslib_pibase {
// Organize and process result:
if ($res) {
- // Get some variables:
- $count = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
- $pointer = t3lib_div::intInRange($this->piVars['pointer'],0,floor($count/$this->piVars['results']));
+ $count = $GLOBALS['TYPO3_DB']->sql_num_rows($res); // Total search-result count
+ $pointer = t3lib_div::intInRange($this->piVars['pointer'], 0, floor($count/$this->piVars['results'])); // The pointer is set to the result page that is currently being viewed
// Initialize result accumulation variables:
- $c = 0;
- $lines = Array();
+ $c = 0; // Result pointer: Counts up the position in the current search-result
$grouping_phashes = array(); // Used to filter out duplicates.
$grouping_chashes = array(); // Used to filter out duplicates BASED ON cHash.
- $firstRow = Array(); // Will hold the first row in result - used to calculate relative hit-ratings.
+ $firstRow = Array(); // Will hold the first row in result - used to calculate relative hit-ratings.
$resultRows = Array(); // Will hold the results rows for display.
// Now, traverse result and put the rows to be displayed into an array
- // Each row should be a the fields from 'ISEC.*, IP.*' combined + artificial fields "show_resume" (boolean) and "result_number" (counter)
+ // Each row should contain the fields from 'ISEC.*, IP.*' combined + artificial fields "show_resume" (boolean) and "result_number" (counter)
while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
// Set first row:
@@ -521,22 +528,27 @@ class tx_indexedsearch extends tslib_pibase {
}
$row['show_resume'] = $this->checkResume($row); // Tells whether we can link directly to a document or not (depends on possible right problems)
+
$phashGr = !in_array($row['phash_grouping'], $grouping_phashes);
$chashGr = !in_array($row['contentHash'].'.'.$row['data_page_id'], $grouping_chashes);
if ($phashGr && $chashGr) {
- if ($row['show_resume']) { // Only if the resume may be shown are we going to filter out duplicates...
+ if ($row['show_resume'] || $this->conf['show.']['forbiddenRecords']) { // Only if the resume may be shown are we going to filter out duplicates...
if (!$this->multiplePagesType($row['item_type'])) { // Only on documents which are not multiple pages documents
$grouping_phashes[] = $row['phash_grouping'];
}
$grouping_chashes[] = $row['contentHash'].'.'.$row['data_page_id'];
- }
- $c++;
- // All rows for display is put into resultRows[]
- if ($c > $pointer * $this->piVars['results']) {
- $row['result_number'] = $c;
- $resultRows[] = $row;
- if ($c+1 > ($pointer+1)*$this->piVars['results']) break;
+ $c++; // Increase the result pointer
+
+ // All rows for display is put into resultRows[]
+ if ($c > $pointer * $this->piVars['results']) {
+ $row['result_number'] = $c;
+ $resultRows[] = $row;
+ // This may lead to a problem: If the result check is not stopped here, the search will take longer. However the result counter will not filter out grouped cHashes/pHashes that were not processed yet.
+ if (($c+1) > ($pointer+1)*$this->piVars['results']) break;
+ }
+ } else {
+ $count--; // Skip this row if the user cannot view it (missing permission)
}
} else {
$count--; // For each time a phash_grouping document is found (which is thus not displayed) the search-result count is reduced, so that it matches the number of rows displayed.
@@ -1183,70 +1195,135 @@ class tx_indexedsearch extends tslib_pibase {
* @return string Search form HTML
*/
function makeSearchForm($optValues) {
+ $html = $this->cObj->getSubpart($this->templateCode, '###SEARCH_FORM###');
+
+ // Multilangual text
+ $substituteArray = array('searchFor', 'extResume', 'atATime', 'orderBy', 'fromSection', 'searchIn', 'match', 'style');
+ foreach ($substituteArray as $marker) {
+ $markerArray['###FORM_'.strtoupper($marker).'###'] = $this->pi_getLL('form_'.$marker);
+ }
- // Accumulate table rows here:
- $rows = array();
+ $markerArray['###FORM_SUBMIT###'] = $this->pi_getLL('submit_button_label');
- // Adding search field and button:
- $rows[]='
';
-
- // Print the resume-section. If headerOnly is 1, then only the short resume is printed
+ $html = $this->cObj->getSubpart($this->templateCode, '###RESULT_OUTPUT###');
+
+ if (!is_array($row['_sub'])) {
+ $html = $this->cObj->substituteSubpart($html, '###ROW_SUB###', '');
+ }
+
if (!$headerOnly) {
- $out.='
';
+ if ($pageCount > 1) { // only show the result browser if more than one page is needed
+ $pointer=intval($pointer);
+ $links=array();
+
+ // Make browse-table/links:
+ if ($pointer>0) { // all pages after the 1st one
+ $links[]='
'.sprintf(
str_replace('###SPAN_BEGIN###','pi_classParam('browsebox-strong').'>',$this->pi_getLL('pi_list_browseresults_displays','Displaying results ###SPAN_BEGIN###%s to %s out of ###SPAN_BEGIN###%s')),
@@ -1414,10 +1528,7 @@ class tx_indexedsearch extends tslib_pibase {
min(array($this->internal['res_count'],$pR2)),
$this->internal['res_count']
).$addString.'
':''
- ).$addPart.
- '
-
'.implode('',$links).'
-
';
+ ).$addPart.'';
return $sTables;
}
@@ -1477,7 +1588,7 @@ class tx_indexedsearch extends tslib_pibase {
$tmplContent = array();
$tmplContent['title'] = $title;
- $tmplContent['result_number'] = $row['result_number'];
+ $tmplContent['result_number'] = $this->conf['show.']['resultNumber'] ? $row['result_number'].': ' : ' ';
$tmplContent['icon'] = $this->makeItemTypeIcon($row['item_type'],'',$specRowConf);
$tmplContent['rating'] = $this->makeRating($row);
$tmplContent['description'] = $this->makeDescription($row,$this->piVars['extResume'] && !$headerOnly?0:1);
@@ -1674,22 +1785,23 @@ class tx_indexedsearch extends tslib_pibase {
$markedSW = '';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'index_fulltext', 'phash='.intval($row['phash']));
if ($ftdrow = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
- $markedSW = $this->markupSWpartsOfString($ftdrow['fulltextdata']);
+ // Cut HTTP references after some length
+ $content = preg_replace('/(http:\/\/[^\?]+)\?[^[:blank:]]*/i', '$1?...', $ftdrow['fulltextdata']);
+ $markedSW = $this->markupSWpartsOfString($content);
}
$GLOBALS['TYPO3_DB']->sql_free_result($res);
}
- if (trim($markedSW)) {
- return $this->utf8_to_currentCharset($markedSW);
- } else {
+ if (!trim($markedSW)) {
$outputStr = $GLOBALS['TSFE']->csConvObj->crop('utf-8',$row['item_description'],$lgd);
$outputStr = htmlspecialchars($outputStr);
-
- return $this->utf8_to_currentCharset($outputStr);
}
+ $output = $this->utf8_to_currentCharset($outputStr ? $outputStr : $markedSW);
} else {
- return ''.$this->pi_getLL('res_noResume','',1).'';
+ $output = ''.$this->pi_getLL('res_noResume','',1).'';
}
+
+ return $output;
}
/**
@@ -1702,7 +1814,7 @@ class tx_indexedsearch extends tslib_pibase {
// Init:
$str = str_replace(' ',' ',t3lib_parsehtml::bidir_htmlspecialchars($str,-1));
- $str = ereg_replace('[[:space:]]+',' ',$str);
+ $str = preg_replace('/\s\s+/',' ',$str);
$swForReg = array();
// Prepare search words for regex:
diff --git a/typo3/sysext/indexed_search/pi/considerations.txt b/typo3/sysext/indexed_search/pi/considerations.txt
index d24f2a3db860..e389c4404ffc 100755
--- a/typo3/sysext/indexed_search/pi/considerations.txt
+++ b/typo3/sysext/indexed_search/pi/considerations.txt
@@ -39,7 +39,7 @@ IW.wid=IR.wid AND
-This is not a problem. Actually it works very well apparently. However performing and AND search is much harder. Because you cannot just switch OR with AND (because "baseword" cannot be two things at the same time... :-)
+This is not a problem. Actually it works very well apparently. However performing an AND search is much harder. Because you cannot just switch OR with AND (because "baseword" cannot be two things at the same time... :-)
@@ -289,7 +289,7 @@ Suggestion: try first:
AND ....
AND ....
-The first line of the criteria shall pürovide as small as possible amount
+The first line of the criteria shall provide as small as possible amount
of rows matching.
(this looks then strange somehow, but is effective).
@@ -300,7 +300,7 @@ But there is no guarantee. What the guaranteed is to don't rely on
something else.
A good query works good without any artificial help.
-BTW. If You like to see IN ADVANCE hov the query will behave: call the
+BTW. If You like to see IN ADVANCE how the query will behave: call the
EXPLAIN for this query.
You will get then more information about how mySQL will go to process the
query.
diff --git a/typo3/sysext/indexed_search/pi/template_css.tmpl b/typo3/sysext/indexed_search/pi/template_css.tmpl
new file mode 100644
index 000000000000..5750f6367d20
--- /dev/null
+++ b/typo3/sysext/indexed_search/pi/template_css.tmpl
@@ -0,0 +1,219 @@
+
+
+
+indexed_search
+
+
+
+
+