240 - Fortsetzung und Grundsätzliches zur mnogosearch Extension:
Aus dem Handbuch von Autor Dmitry geht bei allem guten Willen "Einiges" nicht klar hervor, selbst wenn man als gestandener Programmierer einsteigt.
- Die Suchmaschine ist eine Linux - Mysql Konzeption und hat mit Typo3 erstmal wenig zu tun. Die mnogosearch Engine wird einmalig auf dem Server compiliert !! und !! installiert und ist auf diesem Server für alle mysql basierenden Systeme nutzbar.
- Die tx_mnogosearch Extension von Dmitry ist das unbedingt notwendige und zugehörige Konfigurations- und Konnectivity Modul zu Typo3. Dort werden (innerhalb von Typo3) die Parameter für den (Linux-) Indexer sowie die Typo3 Anfrage- und Ausgabe-Seiten für den Typo3- Content definiert und gestyled.
- In diese tx_mnogosearch Extension ist vom Autor Dmitry eine weitere (Spezial-Include-) Extension, der "Universal Page Browswer" integriert (besser "included") worden.
- Dieser "Universal Page Browswer" ist keine richtige eigenständige Extension, er ist eher ein "Include"- Zusatz-Modul zur Nutzung innerhalb einer (Main-) Extension. Diese Verwendung ist in der tx_mnogosearch bereits rudimantär vorbereitet.
- Beide "Extensions" müssen/sollen/können auch global installiert und dort (unerwünschter Weise) für alle Webs gestyled werden (war bei uns Vorgabe). (Stand 4.1.2010 - "global" funktioniert nicht. - 18.3.2010 und es funktioniert doch, nur warum geht es jetzt ??)
- Weder im Typscript der jeweilige Root Seite noch im TS Bereich der Templates (bei constants, setup) der Abfrage und Anzeigeseite werden "TS-Codebrocken" eingefügt.
- Im Template der dedizierten Suchseite habe ich 2 statische Templates "eingeschlossen":
mnogosearch und pagebrowse (Zweites braucht man aber gar nicht) - Die Einbindung des mnogosearch statischen Templates in die root Seite kommt später noch, wenn das globale Suchfeld auf jeder Seite umgebaut wird.
-
Erst, wenn man das alles verstanden hat, sollte man sich an diese Extension "heran" machen und sie nach seinem Gusto einbauen.
250 - Gestaltung der mnogosearch Eingabe und Ergebnis-Ausgabe mit css
Hier muss also dem originalen Manual etwas (nach-) geholfen werden, wenn man es noch nie gemacht hatte.
Darum nochmal: Ich habe diese Extension nicht "local" sondern (im ersten Web) "global" installiert. (war leider ein Fehler - Stand Feb. 2010 - es geht - mit Dmitrys Pagebrowser - bisher nur local !!) ) Es müssen bei uns später nämlich insgesamt 8 Domains diese gleiche Extension (auf demgleichen Server) benutzen und die Ergebnisse sollen jeweils ähnlich dargestellt werden. (Also die Installation als "global" wäre bzw. ist ideal !!)
So müssen im globalen Verzeichnis . . . . oh ?? Mist, was war das ?
Sie müssen leider viel "Spielen", noch mehr Googeln und dann empirisch Erproben. Irgendwann geht es und Sie wissen fast nicht mehr - warum.
Es ist jetzt 2.45 am 30.12.2009 und es geht erst mal überhaupt. Das Fehlerchen zeigte sich erst beim Blättern in die Folgeseiten, das geht "global" nämlich nicht.
(hier ist das repariert, also "local" installiert !!!)
http://www.fernsehmuseum.info/die-schnelle-suchseite.html?&no_cache=1
251 - ein Backup ist nicht verkehrt
Der kluge Mensch wirft jetzt dennoch eine Typo3 Datensicherung an und verabschiedet sich erst, wenn die durchgelaufen ist.
260 - Wenn Programmierer am Werk sind . . . .
Ich habe jetzt also 3 Extensions von Dmitry "global" installiert. (Leider hatte es im Feb 2010 nur "local" funktioniert - inzwischen in 2011 geht es im "global" Modus.)
- mnoGoSearch mnogosearch 2.2.2
- pagepath 0.1.5 - inzwischen 1.0.0 (Ob diese hier gebraucht wird ?? Ist sie nicht da, wird ein Fehler ausgeworfen.)
- Universal page browser pagebrowse 1.0.1 - inzwischen 1.3.0
-
Alle 3 "wohnen" im typo3/ext/ - Bereich (bei einer "local" Installation natürlich nicht.)
-
- typo3/ext/mnogosearch
- typo3/ext/pagepath
- typo3/ext/pagebrowse
-
Für die ebenfalls globale Nutzung auf einzelnen Web-Ebenen hatte ich den mir voher bekannten deutschen Page-Browser "cag_pagebrowser 1.2.1" bereits vorher installiert, auch global !! Anfänglich (als es nicht ging) hatte ich Kollisionen im TS vermutet, doch die beiden Pagebrowser kollidieren nicht miteinander.
262 - die kleinen Unterschiede
Es gibt in jedem der drei (obigen) Extension- Verzeichnisse jeweils drei weitere Verzeichnisse,
- pi1
- static
- resources (manchmal verwirrender weise auch nur "res" genannt)
-
. . . . in denen ich etwas geändert habe.
In "typo3/ext/mnogosearch/static/mnoGoSearch/" stehen die Dateien setup.txt und constants.txt. Die bleiben (bei uns) dort stehen, das sind die TS Codes, die sonst bei uns im Seiten-Template stehen.
264 - Und jetzt kommts: WICHTIG !!! pagebrowser "Include"
In die Datei
/==domainroot==/typo3/ext/mnogosearch/static/mnoGoSearch/setup.txt
wird der Inhalt von
/==domainroot==/typo3/ext/pagebrowse/static/page_browser/setup.txt
wie folgt eingefügt:
# Enable mnoGoSearch
config.tx_mnogosearch_enable = 1
# ===== das hier ist also eingefuegt aus der "Sub- Extension" tx_pagebrowse
# Declare plugin
# Feel free to change the plugin to be USER_INT if necessary! repariert laut issue 4886 - 29.12.2009 gr
plugin.tx_pagebrowse_pi1 = USER_INT
plugin.tx_pagebrowse_pi1 {
# USER_INT support
includeLibs = EXT:typo3/ext/pagebrowse/pi1/class.tx_pagebrowse_pi1.php
userFunc = tx_pagebrowse_pi1->main
# Template file
templateFile = {$plugin.tx_pagebrowse_pi1.templateFile}
# Extra parameters to the query string. Must start with & if not empty
extraQueryString =
# Number of page links to show before the current page
pagesBefore = 3
# Number of page links to show before the current page
pagesAfter = 3
# GET variable name for page pointer. Examples: "page" or "tx_exykey_pi1|page". Notice that array separator is pipe (one level only!)
pageParameterName = tx_pagebrowse_pi1|page
# Enables section for "more" pages. This section is shown after links to next pages, normally like three dots (1 2 3 ...). Notice that you can also hide it by emptying corresponding template section.
enableMorePages = 1
# Enables section for "less" pages. This section is shown after links to next pages, normally like three dots (1 2 3 ...) Notice that you can also hide it by emptying corresponding template section.
enableLessPages = 1
}
# ===== hier geht es weiter mit dem Original TS von tx_mnogosearch
# Declare plugin
plugin.tx_mnogosearch_pi1 = USER_INT
plugin.tx_mnogosearch_pi1 {
includeLibs = EXT:mnogosearch/pi1/class.tx_mnogosearch_pi1.php
userFunc = tx_mnogosearch_pi1->main
# Template file
templateFile = {$plugin.tx_mnogosearch_pi1.templateFile}
. . . . . und so weiter und so weiter . . . . . . .
-
266 - Wie es (unglücklich) im Handbuch von pagebrowse steht
Im Handbuch steht, man möge den folgenden Code
/vol2/www/www.fernsehmuseum.info/typo3/ext/pagebrowse/static/page_browser/setup.txt
im "Haupttemplate" einfügen. Das ist aber wirklich sehr ungeschickt ausgedrückt !!! (eine wohlwollende Umschreibung!!). Bei mir ist das (oder ein) Haupttemplate immer das der root Seite. Man muß das hier aber anders sehen:
Voraussetzung ist nämlich (aber ungesagt), daß diese "pagebrowse" Geschichte ja KEINE eigenständige Extension ist, sondern eine Extension "in" einer "Haupt-" Extension und damit muß/soll der TS-Code (nicht in die root-Seite des Webs oder in die mnogo Anzeige-Seite sondern) in den TS-Code der Haupt-Extension eingebaut werden.
-
Wenn man es weiß, ja dann . . . .
-
270 - und endlich gehts ans Styling
Bis hier her war es ein sehr (zu) langer Kampf um das Verstehen der Gedanken eines völlig anderen Programmier- und Denk- Stiles. Zum Glück sind wir hart im Nehmen und meist auch noch lernfähig.
Konträr zu den Gedanken und Vorgaben der Typo3 Core Entwickler habe ich das Styling der mnogosearch Eingabe und Ausgabe weitgehend im "global" Bereich der Extensions vorgenommen. Das mag jetzt keine Empfehlung sein, kommt aber meinen Vorgaben bezüglich Effizienz am nächsten.
Insbesondere das css hatte ich anfänglich in mein Content-css eingebaut, doch die Suche möchte ich farblich und technisch global designen (wie gesagt nur bei mir!).
272 - Styling von mnogosearch
In der Datei
/vol2/www/www.fernsehmuseum.info/typo3/ext//mnogosearch/resources/styles.css
stehen die css Formatierungen der Eingabefelder wie auch der Ausgabeseiten. Die Reihenfolge der Zeilen habe ich etwas gruppiert.
/* Search results */
.tx-mnogosearch-short-search-form fieldset {padding: 2px 2px 2px 10px; margin: 3px 0 3px 0; border:1px green solid; } /* kleines Eingabefeld */
.tx-mnogosearch-long-form fieldset {border: none;}
.tx-mnogosearch-form-field {clear: left; margin-bottom: 5px; overflow: hidden;}
.tx-mnogosearch-form-field label {display: block; float: left; padding-right: 9px; width: 200px;}
#tx_mnogosearch_pi1_submit {margin-left: 0px;}
.tx-mnogosearch-summary {background-color: #99FF66; padding: 3px 2px 2px 10px; margin: 3px 0 3px 0; border:1px gray solid; font-weight: bold; } /* die Zusammenfassung */
.tx-mnogosearch-page-browser {padding: 15px 0; margin: 10px 0;}
.tx-mnogosearch-summary-value {font-weight: bold;}
#tx-mnogosearch-results {margin: 4px 0;} /* der gesamte Ergebnis-Block - alle Fundstellen */
ol#tx-mnogosearch-result {list-style: none inside none; padding: 0 0;}
ol#tx-mnogosearch-result > li {margin-bottom: 6px; padding: 1px 4px 2px 4px ; background:white; border:1px orange solid; } /* Format gesamte Fundstelle !! */
.tx-mnogosearch-pi1-result-excerpt-selection {font-weight:b; color:red !important; background-color:yellow; padding:0px 2px 0px 2px; } /* Fundstellen ;border:1px 0px 1px 0px red solid */
ol#tx-mnogosearch-result > li img { vertical-align: middle;}
#tx-mnogosearch-result p { margin: 0 0; padding: 0 0;}
ol#tx-mnogosearch-result li h3 { font-weight: bold; font-size: 16px; margin: 0px 0 4px 0px;} /* Format nur fuer Header 3 */
ol#tx-mnogosearch-result li h3 a { text-decoration: underline;}
.tx-mnogosearch-result-url {margin: 0 0; padding: 0 0; font-size: 90%; color: #008000;}
.tx-mnogosearch-relevancy-bg-bar {display: block;width: 48px;height: 5px;padding: 2px 1px; background-image: url(images/relevance.gif); float: left;margin: 5px 10px 0 0;}
.tx-mnogosearch-relelvancy-fg-bar {display: block; background-color: #A7D3A7; color: #A7D3A7; height: 5px; overflow: hidden;}
.tx-mnogosearch-result-excerpt {margin: 3px 0 0 0; padding: 0 0;}
.tx-mnogosearch-result-excerpt-selection {}
.tx-mnogosearch-result-links {border-left: 5px solid #e7e7e7; padding-left: 5px;}
.tx-mnogosearch-result-links ul {display: none; list-style: none inside none; padding: 1px 0 3px 20px; margin: 0 0;}
276 - Styling der pagebrowse Zeile
Dieses Styling steht (auf unseren Servern) hier
/vol2/www/www.fernsehmuseum.info/typo3/ext/pagebrowse/res/styles.css
Zu beachten ist, daß Dmitry hier das "resource" Verzeichnis zu "res" abgekürzt hatte ?????
.tx-pagebrowse { text-align: center; list-style: none inside none; padding: 0 0; margin: 0 0; width: 100%; }
.tx-pagebrowse li { display: inline; list-style: none; margin: 0 0; padding: 0 5px 0 0; }
li.tx-pagebrowse-pages { width: 80%; }
li.tx-pagebrowse-pages ol { display: inline; margin: 0 0; padding: 0 10px; }
280 - (Vereinfachung) durch Probieren herausgefunden
("page_browser" TS in "mnoGoSearch" TS veschieben)
Nachdem so Einiges nicht funktioniert, habe ich durch simples Probieren herausgefunden, daß man die
typo3/ext//pagebrowse/static/page_browser/setup.txt
in die
typo3/ext///mnogosearch/static/mnoGoSearch/setup.txt
einfügen kann
und die
typo3/ext//pagebrowse/static/page_browser/constants.txt
in die
typo3/ext///mnogosearch/static/mnoGoSearch/constants.txt .
Gleiches (Cut and paste) gilt auch für die typo3/ext//pagebrowse/res/styles.css
dies css ist jetzt auch in mnoGoSearch eingefügt worden.
Ich habe also aus 6 Konfigurationsdateien nur noch 3 gemacht.
Dafür brauche ich im Template meiner Suchseite das "Statische Template" Page Browser nicht mehr einzufügen, mnogosearch reicht (so scheint es) jetzt aus.
Stand vom 31.12.2009 - (Ich habe diese schnelle mnogo Suche noch nicht auf jeder Seite oben rechts im Suchfeld drinnen, dort ist zur Zeit noch die sequentielle Standard-Suche eingebaut.)
294 - eine zweite Installation - aber nun "local"
Diese sogenannte "global" Installation der Extension hatte nicht funktioniert. Der Pagebrowser der Ergenisliste ging nicht. Das ist betrüblich, denn es müsste nicht sein.
Hier geht es weiter mit der zweiten Installation jetzt aber "local".
Ich habe dennoch jetzt (18.3.2010) eine "global" Installation am Laufen und es geht, weiß aber nicht, warum.
Hier unten stehen die Quell-Texte der einzelnen Dateien im Klartext.
310 - aktuelles Constants TS für beide ext.
plugin.tx_mnogosearch_pi1 {
templateFile = EXT:mnogosearch/resources/template.html
resultsPage = 1094
siteList =
resultsPerPage = 50
}
plugin.tx_pagebrowse_pi1 {
templateFile = EXT:pagebrowse/res/template.html
}
320 - aktuelles Setup TS für beide ext.
# Enable mnoGoSearch
config.tx_mnogosearch_enable = 1
# Declare plugin - habe ich hier aus pagebrowse setup.txt eingefügt
plugin.tx_pagebrowse_pi1 = USER_INT
plugin.tx_pagebrowse_pi1 {
includeLibs = EXT:typo3/ext/pagebrowse/pi1/class.tx_pagebrowse_pi1.php
userFunc = tx_pagebrowse_pi1->main
templateFile = {$plugin.tx_pagebrowse_pi1.templateFile}
extraQueryString =
pagesBefore = 3
pagesAfter = 3
pageParameterName = tx_pagebrowse_pi1|page
enableMorePages = 1
enableLessPages = 1
}
# Declare plugin
plugin.tx_mnogosearch_pi1 = USER_INT
plugin.tx_mnogosearch_pi1 {
includeLibs = EXT:mnogosearch/pi1/class.tx_mnogosearch_pi1.php
userFunc = tx_mnogosearch_pi1->main
templateFile = {$plugin.tx_mnogosearch_pi1.templateFile}
mode = long_form,results
form {
resultsPage = {$plugin.tx_mnogosearch_pi1.resultsPage}
advanced {
siteSelector = disabled
siteSelector.searchAll = 1
siteSelector.exclude =
siteSelector.default =
}
}
# Search options
search {
time_format = %0.3f
resultTime_stdWrap {
setContentToCurrent = 1
if.isTrue.current = 1
strftime = %x %X
noTrimWrap = |– ||
}
siteList = {$plugin.tx_mnogosearch_pi1.siteList}
# Search options
options {
track_queries = 0
cache_queries = 1
use_spell_data = 1
crosswords = 1
detect_clones = 0
phrase_search = 1
suggest_mode = 1
search_word_forms = 1
}
extendedConfiguration { }
resultsPerPage = {$plugin.tx_mnogosearch_pi1.resultsPerPage}
number_stdWrap.wrap = <b>|</b>
minimumWordLength = 3
maximumWordLength = 32
excerptSize = 384
excerptPadding = 20
excerptHighlight = <span class="tx-mnogosearch-pi1-result-excerpt-selection">|</span>
sortMode = RPD
numberOfSections = 4
weightFactor = 00F8
pageBrowser < plugin.tx_pagebrowse_pi1
pageBrowser.disableCacheHash = 1
}
defaultFileIcon = EXT:mnogosearch/resources/icons/file.png
icons {
.......
}
}
330 - die aktuelle css Datei für beide ext.
/* Search results */
.tx-mnogosearch-short-search-form fieldset {padding: 2px 2px 2px 10px; margin: 3px 0 3px 0; border:1px green solid; } /* kleines Eingabefeld */
.tx-mnogosearch-long-form fieldset {border: none;}
.tx-mnogosearch-form-field {clear: left; margin-bottom: 5px; overflow: hidden;}
.tx-mnogosearch-form-field label {display: block; float: left; padding-right: 9px; width: 200px;}
#tx_mnogosearch_pi1_submit {margin-left: 0px;}
.tx-mnogosearch-summary {background-color: #99FF66; padding: 3px 2px 2px 10px; margin: 3px 0 3px 0; border:1px gray solid; font-weight: bold; } /* die Zusammenfassung */
.tx-mnogosearch-page-browser {padding: 0px 0; margin: 0px 0;}
.tx-mnogosearch-summary-value {font-weight: bold;}
#tx-mnogosearch-results {margin: 4px 0;} /* der gesamte Ergebnis-Block - alle Fundstellen */
ol#tx-mnogosearch-result {list-style: none inside none; padding: 0 0;}
ol#tx-mnogosearch-result > li {margin-bottom: 6px; padding: 1px 4px 2px 4px ; background:#F1EFE2; border:1px orange solid; } /* Format gesamte Fundstelle !! */
.tx-mnogosearch-pi1-result-excerpt-selection {font-weight:b; color:red !important; background-color:yellow; padding:0px 2px 0px 2px; } /* Fundstellen ;border:1px 0px 1px 0px red solid */
ol#tx-mnogosearch-result > li img { vertical-align: middle;}
#tx-mnogosearch-result p { margin: 0 0; padding: 0 0;}
ol#tx-mnogosearch-result li h3 { font-weight: bold; font-size: 16px; margin: 0px 0 4px 0px;} /* Format nur fuer Header 3 */
ol#tx-mnogosearch-result li h3 a { text-decoration: underline;}
.tx-mnogosearch-result-url {margin: 0 0; padding: 0 0; font-size: 90%; color: #008000;}
.tx-mnogosearch-relevancy-bg-bar {display: block;width: 48px;height: 5px;padding: 2px 1px; background-image: url(images/relevance.gif); float: left;margin: 5px 10px 0 0;}
.tx-mnogosearch-relelvancy-fg-bar {display: block; background-color: #A7D3A7; color: #A7D3A7; height: 5px; overflow: hidden;}
.tx-mnogosearch-result-excerpt {margin: 3px 0 0 0; padding: 0 0;}
.tx-mnogosearch-result-excerpt-selection {}
.tx-mnogosearch-result-links {border-left: 5px solid #e7e7e7; padding-left: 5px;}
.tx-mnogosearch-result-links ul {display: none; list-style: none inside none; padding: 1px 0 3px 20px; margin: 0 0;}
/* der Dmittry pagebrowser */
.tx-pagebrowse { text-align: center; list-style: none inside none; padding: 0 0; margin: 0px; ; border:1px solid orange; font-weight: bold; ; background-color: #FFFFCC}
.tx-pagebrowse li { display: inline; list-style: none; margin: 0 0; padding: 0 5px 0 0; }
li.tx-pagebrowse-pages { width: 80%; }
li.tx-pagebrowse-pages ol { display: inline; margin: 0 0; padding: 0 16px; }
350 - Wishlist bzw. Änderungen
- Verwöhnt durch die Markierung der Suchschlüssel (= Suchwörter der sequentiellen Typo3 Standard-Suche) in den über den Link angezeigten (Ziel-) Seiten möchte ich auch diese Funktion ergänzen. Die Standardsuche hängt auf der Fundstellen-Ausgabe-Seite am Ende eines jeden Links eine spezielle Option dran. Das war eine super Idee.
Beispiel:
(www.useddlt.com/ampex-200a.html?&no_cache=1&sword_list[]=ampex ) =
www.useddlt.com/ampex-200a.html - Aus Gründen der Übersicht wäre es vorteilhaft, vor jeder Fundstelle die laufende Nummer anzuzeigen, meinetwegen auch mit dem Link hinterlegt.