Zum Inhalt springen

Problem mit Backend Modul für Sucherweiterung

Erstellt am 19. Juli 2007 · 7 Antworten · letzte Antwort am 23. Juli 2007

Tags: FlexForms, Frage

VioletSupporter ·

Bin gerade dabei ein Backend Modul für meine eigens programmierte Sucherweiterung zu erstellen. Das "besondere" an der Erweiterung ist, dass der User die einzelnen Resultate bewerten kann. Die Gewichtung einer Bewertung kann über Flexform oder Typoscript konfiguriert werden.

Das Backend Modul soll eine kurze Statistik über bereits gesuchte Suchbegriffe liefern und zusätzlich die Möglichkeit bieten, die Reihung der Ergebnisse neu zu berechnen.

Dazu muss ich allerdings auf die Flexform-Werte (Gewichtung) zugreifen.

Im Frontend Plugin klappt das ohne Probleme mittels:

$this->pi_initPIflexForm();
$piFlexForm = $this->cObj->data['pi_flexform'];
...

Zusätzlich zu der Flexform Konfiguration muss ich auch auf die TypoScript Konfiguration zugreifen.

Wie ist das im BE-Modul (mod1/index.php) am besten zu realisieren?

Bin für jeden Hinweis dankbar!!!

steffenk ·

ich habe das an anderer Stelle schonmal benötigt und wie folgt gelöst:

1. record aus tt_content auslesen, dann

$cfgArr = t3lib_div::xml2array($row['pi_flexform']);

Die Werte musst Du Dir dann aus dem Array holen, am besten Du lässt es Dir mal komplett anzeigen.

VioletSupporter ·

Danke soweit so gut.

Leider kann bekomm ich beim Versuch, das Array auszugeben folgende Fehlermeldung:

|Line 1: Invalid document end|

Ausgeben tu ich das Array mittels debug Funktion:

t3lib_div::debug($cfgArr);

Ist da irgendwas an meinem Flexform XML faul??

Inhalt der Tabellenspalte pi_flexform aus tt_content:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<T3FlexForms>
<data>
<sheet index="tx_i_search_s_general">
<language index="lDEF">
<field index="tx_i_search_results">
<value index="vDEF">12</value>
</field>
<field index="tx_i_search_newsearch">
<value index="vDEF">0</value>
</field>
<field index="tx_i_search_search">
<value index="vDEF">tx_calendar_item:title,teaser:title,teaser,descr: pid;tx_veguestbook_entries:entry:entry:pid;tx_lzgallery_galleries:title,descr_short:title,descr_short:pid</value>
</field>
<field index="tx_i_search_startingpoint">
<value index="vDEF">10</value>
</field>
<field index="tx_i_search_recursive">
<value index="vDEF">3</value>
</field>
<field index="tx_i_search_exclude">
<value index="vDEF">20</value>
</field>
<field index="tx_i_search_submit">
<value index="vDEF">tx_calendar_item:uid:tx_calendar_pi1[f1];tx_lzgallery_galleries:uid:tx_lzgallery_pi1[showUid]</value>
</field>
<field index="tx_i_search_alias">
<value index="vDEF">40=39;46=47;29=25</value>
</field>
<field index="tx_i_search_expires">
<value index="vDEF">0</value>
</field>
</language>
</sheet>
<sheet index="tx_i_search_s_template">
<language index="lDEF">
<field index="tx_i_search_results">
<value index="vDEF"></value>
</field>
<field index="tx_i_search_newsearch">
<value index="vDEF"></value>
</field>
<field index="tx_mhajaxsearch_tmpl">
<value index="vDEF"></value>
</field>
<field index="tx_mhajaxsearch_style">
<value index="vDEF"></value>
</field>
</language>
</sheet>
<sheet index="tx_i_search_s_weight">
<language index="lDEF">
<field index="tx_i_search_results">
<value index="vDEF"></value>
</field>
<field index="tx_i_search_newsearch">
<value index="vDEF"></value>
</field>
<field index="tx_i_search_evaluation">
<value index="vDEF">50</value>
</field>
<field index="tx_i_search_click">
<value index="vDEF">10</value>
</field>
</language>
</sheet>
<sheet index="tx_i_search_s_preview">
<language index="lDEF">
<field index="tx_i_search_width">
<value index="vDEF"></value>
</field>
<field index="tx_i_search_height">
<value index="vDEF"></value>
</field>
</language>
</sheet>
</data>
</T3FlexForms>

Was erzeugt xml2array aus diesem XML??

Stoneage ·

Das "besondere" an der Erweiterung ist, dass der User die einzelnen Resultate bewerten kann. Die Gewichtung einer Bewertung kann über Flexform oder Typoscript konfiguriert werden.

Wie genau funktioniert das? Darfst Du etwas dazu sagen?

VioletSupporter ·
Tetramatrix schrieb

Das "besondere" an der Erweiterung ist, dass der User die einzelnen Resultate bewerten kann. Die Gewichtung einer Bewertung kann über Flexform oder Typoscript konfiguriert werden.

Wie genau funktioniert das? Darfst Du etwas dazu sagen?

Werde die Erweiterung schätze mal in den nächsten paar Tagen veröffentlichen. Dann kannst du sie dir ja anschauen.

Nur mal so zum Vorgeschmack:
http://www.moserdesign.at/josieneu/index.php?id=67

Der User kann einfach die erhaltenen Suchtreffer bewerten --> gutes Resultat oder schlechtes Resultat. Im Backend kann man per TypoScript oder per Konfiguration des Plugins (Flexform) eine Wertigkeit für eine Bewertung eingeben. z.B eine Wertigkeit von 10 bedeutet eine positive Bewertung ist +10 Punkte wert, eine negative -10 Punkte. Zusätzlich gibt es je einen Punkt für die Anzahl der vorkommenden Treffer in einem Ergebnis.(zB wenn ein gesuchtes Wort auf einer Seite 10mal vorkommt macht das 10 Punkte. Diese Wertigkeit von 1em Punkt kann auch über das Backend verändert werden) Die Summe der Punkte eines Resultats bestimmt den "Rang", den das Ergebnis in der Ergebnisliste einnimmt.