Probleme mit Suche und eigenen Text-CMS-Feldern

Gesperrt
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Probleme mit Suche und eigenen Text-CMS-Feldern

Beitrag 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
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag 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.
Bis dann
Tono
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag 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
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag 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
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag 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
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen »

Hallo Oliver,

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

Danke
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag 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.
Bis dann
Tono
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag 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
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag 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
Gesperrt