Seite 1 von 1

Probleme mit Suche und eigenen Text-CMS-Feldern

Verfasst: Fr 18. Jul 2008, 15:37
von derSteffen
Hallo,

ich habe mir für mein CMS noch weitere Text-Module angelegt, damit ich diese dann über die Modul-Templates individuell anpassen kann.

Zum Beispiel so:

Code: Alles auswählen

<?php
if (!isset($tpl) || !is_object($tpl)) {
    $tpl = new Template();
}
$tpl->reset();
$tpl->set('s', 'text', "CMS_HTML[11]");
$tpl->generate('templates/kurzbeschreibung_html.html');
?>
Das klappt auch alles wunderbar und wird mir auch so angezeigt wie gewünscht. Allerdings passt das nicht mir meiner Original-Suche zusammen.

Beispiel:
Suche ich etwas, was in dem Original-Modul "Text" vorkommt, zeigt mir die Suche das ergebnis wie gewohnt an, mit Überschrift und dem Text,

Suche ich aber etwas was in meinem eigenen Modul "Text2" vorkommt findet er das ergebnis und gibt mir dazu die Überschrift aus und verlinkt auch richtig, aber in der Suchergebnisliste erscheint kein Auszug aus meinen Text2-Modul. Woran liegt das? Zeigt die Suche nur Headline und Text an und mehr Modulauszüge nicht? Oder habe ich ewtas an meinem Modul-Text2 übersehen?

Ich freue mich über eure Hinweise.

Danke schon mal

MfG Steffen

Verfasst: Fr 18. Jul 2008, 17:39
von tono
Das Standard-Suchausgabemodul verwendet für die Zusammenstellung des Textauszuges nicht alle Content-Container. Da müsstest Du entweder in deinem Modul eine niedrigere Nummer benutzen, oder das Suchausgabemodul anpassen.

Verfasst: Fr 18. Jul 2008, 22:21
von OliverL
Konkret wird das im Modul 'Search_Output' in Zeile 212-214 definiert.
Immer mit Result-ID, CMS-Typ und Typ-Index.

mfg OliverL

Verfasst: Mo 21. Jul 2008, 09:18
von derSteffen
Hallo ihr Beiden,

vielen Dank für eure Hinweise. Leider klappt das bei mir immer noch nicht,. Wenn ich im search_output-Modul diese Zeile

Code: Alles auswählen

$text = $oSearchResults->getSearchContent($key, 'HTML', 1);
in

Code: Alles auswählen

$text = $oSearchResults->getSearchContent($key, 'HTML', 11);
ändere wird jetzt meine Kurzbeschreibung ausgeben, allerdings nicht wird nicht mehr das normale Text-modul ausgegen - logisch.

Mache ich dies:

Code: Alles auswählen

$text = $oSearchResults->getSearchContent($key, 'HTML', 1);$text = $oSearchResults->getSearchContent($key, 'HTML', 11);
wird nur die Kurzbeschreibung ausgegeben.

Ändere ich die 1 auf 100 wird gar nicht ausgegeben und das klappt leider auch nicht

Code: Alles auswählen

$text = $oSearchResults->getSearchContent($key, 'HTML', 1,11);
Und wenn ich in meinen Modul aus der 11 mache, bekomme ich doch Probleme wenn ich beide Module in einem und dem selben Template habe, oder nicht?

Vielen Dank

Verfasst: Mo 21. Jul 2008, 10:31
von OliverL
möchtest du gerne
-> [1] & [11] bei der Suchausgabe-Liste ausgegeben bekommen?
-> oder sollte [11] nicht existieren dann nimm [1] ?

mfg Oliver

Keine Lösung aber eine Idee:
Ich definiere Templates (bei großen Sites) meist so das ich 3 Boxen hab (wie bei Zeitungstexten).
1. HMTL-Headline
2. PLAIN-Teasertext (auch für die Suchausgabe und ArticelListen)
3. HMTL-Fliesstext

Verfasst: Mo 21. Jul 2008, 12:55
von derSteffen
Hallo Oliver,

also ich möchte gerne [1] und [11] und noch ein paar weitere [x] bei den Suchergebnissen ausgeben.

Danke

Verfasst: Di 22. Jul 2008, 15:34
von tono
Also das

Code: Alles auswählen

$text = $oSearchResults->getSearchContent($key, 'HTML', 1);$text = $oSearchResults->getSearchContent($key, 'HTML', 11);
kann ja zu nicht führen. Erst schreibst Du den Inhalt von [1] in die Variable $text und dann überschreibst Du das mit den Inhalten aus [11].

Vielleicht hilf Dir hier ein kleiner Punkt vor dem =

Code: Alles auswählen

$text = $oSearchResults->getSearchContent($key, 'HTML', 1);$text .= $oSearchResults->getSearchContent($key, 'HTML', 11);
Damit wird der Inhalt aus [11] an die Variable $text angehängt.

Verfasst: Di 22. Jul 2008, 16:04
von OliverL
Da du dich ja inbischen aus kennst denke ich das du auch folgendes machen kannst:

Code: Alles auswählen

$text = $oSearchResults->getSearchContent($key, 'HTML', 1);
$text2= $oSearchResults->getSearchContent($key, 'HTML', 2);
$text3= $oSearchResults->getSearchContent($key, 'HTML', 3);
$text4= $oSearchResults->getSearchContent($key, 'HTML', 4);
...
Dann suchst du sowas wie:

Code: Alles auswählen

$tpl->set('d', 'TEXT', $text); 
und kopierst den teil und änderst die Kopie in

Code: Alles auswählen

$tpl->set('d', 'TEXT2', $text2); 
oder vollständig alle Zeilen mit $text, damit du die gesamte Verarbeitung hast. (Irgendwo sollte der Text noch gekürzt werden)

mfg Oliver

Verfasst: Mi 23. Jul 2008, 07:22
von derSteffen
Hallo OliverL,

super hat geklappt.

Also ich habe im Modul "Suchausgabe, bzw. search_output", wie du gesagt hast: unter dem

Code: Alles auswählen

$text = $oSearchResults->getSearchContent($key, 'HTML', 1);
$text = capiStrTrimAfterWord($text[0], CON_SEARCH_MAXLEN_TEASERTEXT);
das darunter eingefügt:

Code: Alles auswählen

$text11 = $oSearchResults->getSearchContent($key, 'HTML', 11);
$text11 = capiStrTrimAfterWord($text11[0], CON_SEARCH_MAXLEN_TEASERTEXT);
und unter dem:

Code: Alles auswählen

$tpl->set('d', 'HEADLINE', $text);
das hier eingefügt:

Code: Alles auswählen

$tpl->set('d', 'TEXT11', $text11);
und dann habe ich im Modul-Template noch {TEXT11} nach {HEADLINE} eingefügt.

Super vielen Dank