Beiträge der Kategorie TYPO3

Crawler Extension Konfiguration

Die Extension crawler übernimmt das Indizieren von Seiten, damit diese später in indexed_search gefunden werden können. Die Konfiguration der Extension ist allerdings ein wenig tricky.

Um einfach Seiten zu indizieren, reicht folgendes im PageConfig der Rootseite. Da es sich dabei um TSconfig handelt, kann man da nicht auf Constants zugreifen und so z.B. den baseURL Wert verwenden, wenn man ihn da gesetzt hat. Der Begriff default ist von mir gewählt, man kann auch was anderes nehmen.

tx_crawler.crawlerCfg.paramSets {
default =
default {
procInstrFilter = tx_indexedsearch_reindex
baseUrl = http://www.domain.com/
}
}

Wenn man z.B. Inhalte indizieren möchte, die von einer Extension per Parameter ausgeliefert werden, braucht man folgendes:

tx_crawler.crawlerCfg.paramSets {
default =
[… s.o.]
tt_news = &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:123]
tt_news {
procInstrFilter = tx_indexedsearch_reindex
pidsOnly = 321
cHash = 1
baseUrl = http://www.domain.com/
}
}

In dieser Beispielkonfiguration werden tt_news Detailansichten indiziert. Die News werden dabei auf der Seite 123 gespeichert und die Ausgabe erfolgt auf der Seite 321. Der cHash muss an den Aufruf drangehängt werden, damit pro Detailseite eine Indexeintrag stattfindet. pidsOnly schränkt die Auswahl der Seite ein, ansonsten würde der Crawler alle Seiten mit diesen Parametern aufrufen, was meistens keinen Unterschied bewirken würde. Auf diese Art und Weise kann man auch die Ausgaben eigener Extension indizieren.
Und nun wird es tricky: wenn man Benutzer definiert hat, werden beim Suchen die bisher indizierten Seiten nicht gefunden, weil sie alle im Zustand „nicht eingeloggt“ indiziert worden sind. Dazu braucht man eine weitere Konfiguration, in der die gleichen Seiten im Zustand „eingeloggt“ indiziert werden. Ich machs mir einfach, ich kopiere die Konfguration per TS und hänge die Benutzergruppen dran.

tx_crawler.crawlerCfg.paramSets {
[…]
userPages_default < .default userPages_default.userGroups = 1 adminPages_default < .default adminPages_default.userGroups = 1,2 }

In diesem Beispiel gibt es zwei Benutzergruppen: „normale“ Benutzer (Gruppe 1), und Admin-Benutzer (gehören zu Gruppe 1 und 2). Damit in allen 3 Fällen (nicht eingeloggt, eingeloggt als normaler Benutzer, eingeloggt als Admin) immer die gleichen Ergebnisse gefunden werden, müssen die Seiten für alle drei Szenarien indiziert werden.

Wenn irgendwann eine neue Benutzergruppe dazukommt (z.B. 3), oder Benutzer angelegt werden, die nur zur Gruppe 2 gehören, müssen für alle Kombination separate(!) Konfigurationsabschnitte definiert werden, also: userGroups = 1,2,3 bzw. userGroups = 2

UPDATE:
Wenn der Crawler mal nicht crawlen sollte – weder per Kommandozeile noch sonst wie, kann es daran liegen, dass die „Prozessdatei“ immer noch im Temp-Verzeichnis liegt. Diese wird nicht gelöscht, wenn man den Prozess unerwartet abbricht. Also im Ordner typo3temp die Datei tx_crawler.proc suchen und löschen.

Geschrieben in TYPO3 | Kommentare deaktiviert für Crawler Extension Konfiguration

JavaScript-Fehler in sr_feuser_register 2.5.21

In der letzten Version von sr_feuser_register wird ein JavaScript-Fehler gemeldet, wenn man ein Formular, dass MD5-Verschlüsselte Felder enthält (Passwort und Wiederholung) absendet. Der Fehler besteht darin, dass die Funktion (vielleicht wegen der Übersichtlichkeit) boolsche Werte groß geschrieben (als FALSE und TRUE) zurückgeben. Diese sind somit in JavaScript keine reservierten Wörter und werden als Variablen interpretiert. Die Lösung ist eigentlich ganz einfach – in der Klasse class.tx_srfeuserregister_marker.php nach FALSE suchen und in den zwei Funktion klein schreiben. Ich habe allerdings immer ein blödes Gefühl beim Patchen von Extensions.

Neuer Name für pageSelect

Seit TYPO3 Version 4.2.X heißt die Klasse, die ein Seitenobjekt repräsentiert zwar immer noch pageSelect, liegt aber nicht wie zuvor in der gleichnamigen Datei, sondern in t3lib_page.php. Das hat zur Folge, dass wenn man ein Objekt der Klasse erzeugen möchte, man zunächst die Datei richtig inkludieren muss.
Vorher hat also das ausgereicht:

$sysPageObj = t3lib_div::makeInstance(‚t3lib_pageSelect‘);

Nun ist auch das notwenig (wobei der Pfad zu t3lib auch in einer anderen Variable stecken kann, in meinem Kontext war nur diese verfügbar):

require_once($GLOBALS[‚temp_path_t3lib‘].’class.t3lib_page.php‘);

Mein Vorschlag ist, zu prüfen, ob die Datei t3lib_page.php exisitert und diese bei Bedarf zu laden, so sollte das Erzeugen des Page Objektes sowohl in alten als auch in neuen TYPO3 Versionen funktionieren.

if(file_exists($GLOBALS[‚temp_path_t3lib‘].’class.t3lib_page.php‘)) {
require_once($GLOBALS[‚temp_path_t3lib‘].’class.t3lib_page.php‘);
}
$sysPageObj = t3lib_div::makeInstance(‚t3lib_pageSelect‘);

UPDATE:
Gleiches Problem bei den Basic file funcitons:

if(file_exists($GLOBALS[‚temp_path_t3lib‘].’class.t3lib_basicfilefunc.php‘)) {
require_once($GLOBALS[‚temp_path_t3lib‘].’class.t3lib_basicfilefunc.php‘);
}
$fileFunc = t3lib_div::makeInstance(‚t3lib_basicFileFunctions‘);

Meta-Tags aus der Indizierung ausschließen

Um beim Indizieren mit der indexed_search die Metatags auszuschließen, kann seit TYPO3 4.2.4 folgendes ins Setup geschrieben werden:

config.index_metatags = 0
page.config.index_metatags = 0

Geschrieben in TYPO3 | Kommentare deaktiviert für Meta-Tags aus der Indizierung ausschließen

Seitentitel durch eigene Extension ändern

Es ist möglich innerhalb der eigenen Extension den Seitentitel zu überschrieben, so wie es tt_news auf der Detailansicht macht. Das ist natürlich sinnvoll, weil dann in der Suche die Seitentitel aussagekräftiger sind, weil Google so die Seiten besser zuordnen kann und natürlich weil die Benutzer sich so besser orientieren können.

Um den Seitentitel zu ersetzen braucht man eigentlich nur diese zwei Zeilen:

$GLOBALS[‚TSFE‘]->page[‚title‘] = $entry->get(‚title‘);
$GLOBALS[‚TSFE‘]->indexedDocTitle = $entry->get(‚title‘);

Das funktionieriert aber nur dann, wenn die Extension gecached ist, sprich USER (und nicht USER_INT), falls man noch klassisch die Extensions mit pi erstellt, dann sollte da auch die Option gesetzt werden, dass die Extension gecached werden soll.

Bin allerdings gestern das Problem gestoßen, dass es in TYPO3 4.2.6 nicht klappt. Muss das mal weiter untersuchen.

DAM Problemchen

Beim Verwenden der DAM-Funktionen in eigenen Extensions hat sich folgendes Problem aufgetan: in der Tabelle tx_dam_mm_ref werden die Referenzen auf die Dateien aus dem DAM gespeichert. Dabei wird in der Spalte tablenames der Tabellenname der Extensiontabelle gespeichert, das Feld ist aber nur 30 Zeichen lang. Wenn man sich an die Konventionen hält und die Tabellen z.B. tx_meineextensions_meinetabelle heißen, reichen diese 30-Zeichen nicht aus. Beim Schreiben in die Datenbank werden die letzten Zeichen abgeschnitten, was dazu führt, dass in der tx_dam_mm_ref in der Spalte ein falscher Tabellenname drin steht, weshalb die verknüpften Datei nicht gefunden werden.
Lösung: Feld länger machen…

Geschrieben in TYPO3 | Kommentare deaktiviert für DAM Problemchen

Grafischer Header

… der sich auch ausrichten läßt und auch noch verlinkt ist.

# graphical header #
temp.graphicalHeader = COA
temp.graphicalHeader {
10 = IMAGE
10.stdWrap.wrap =

|

10.stdWrap.typolink.parameter.field = header_link
10.stdWrap.insertData = 1
10.file = GIFBUILDER
10.file {
XY = [10.w]+1,28
transparentColor = #ffffff
backColor = #ffffff
10 = TEXT
10 {
text.current = 1
fontSize = 20
fontFile = {$headerFont}
offset = 0,23
fontColor = #000000
niceText = 1
}
}
}

Geschrieben in TYPO3 | Kommentare deaktiviert für Grafischer Header

tt_news Anzeige im BE ohne Titel und Sortiermöglichkeiten

Problem: in einer TYPO3 4.2.3 Installation wird im BE bei News kein Titel der News angezeigt und somit fehlt der Link auf die Einzelansicht der Tabelle, um Felder ein- und auszublenden und die damt verbundenen Sortiermöglichkeiten.
Lösung: In den Einstellungen der Extension den Wert von „News Label in List-Module“ auf „title“ und „Category ordering in BackEnd trees“ auf „title“ setzen.
Danke: http://www.typo3.net/forum/list/list_post//83582/

Geschrieben in TYPO3 | Kommentare deaktiviert für tt_news Anzeige im BE ohne Titel und Sortiermöglichkeiten

Flexforms: Felder abhängig von anderen anzeigen

Ich wollte in den FlexForms ein Feld nur dann anzeigen lassen, wenn in einem vorherigen Feld ein bestimmter Wert ausgewählt ist. Dann habe ich die Lösung gefunden – sie besteht aus einer Kombination aus onChange mit dem Wert reload und displayCond.
Hier ist der Link, der mit geholfen hat: [link funktioniert nicht mehr]Change value in FlexForms on Reload[/link]
Hier ein allgemeines Beispiel:




reload

select
1
0
1
1


Wert 1
images


Wert 2
content


Wert 3
elements







1

FIELD:type:=:elements
[…]


MySQL Shell-Kommandos

Datenbank Dump: nach -u folgt der Bentuzername, bei -p wird ein Passwort verlangt (man kann es direkt dahinter angeben, sollte man aber nicht), bei -v bekommt man angezeigt, was grade passiert. Und mit > dateiname.sql wird die Ausgabe in die gleichnamige Datei geleitet.

mysqldump -u benutzername -p -v datenbankname > dateiname.sql

Datenbank Dump wieder einspielen:

mysql -u benutzername -p -v datenbankname < dateiname.sql

Tags:

Geschrieben in default, TYPO3 | Kommentare deaktiviert für MySQL Shell-Kommandos