Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: Suchergebnisse nach Hits sortieren

Suchergebnisse nach Hits sortieren 27 Jun 2014 03:41 #1135

Hallo,
ich habe mit SEBLOD® eine einfache Suche erstellt die per Text-Feld sämtliche Volltext Felder auf meiner Website durchsucht. Jetz habe ich ein eigenes List-Item geschrieben, das per php (substr_count) überprüft wie häuftg das Suchwort im jeweiligen Volltext vorkommt und die Anzahlt der Treffer zusammen mit einem kurzen Ausschnitt des Volltextes ausgibt. Die mainbody.php habe ich hier abgelegt (templates/seb_one/positions/my_search/item/).

So weit so gut. Jetzt würde ich gerne meine Suchergebnisse nach Häuftgkeit der Treffer sortieren lassen. Ich schätze mal, dass man dafür einen eigenen Override für den List-view des Seb-Blog Templates schreiben muss. Ist sowas möglich? Wenn ja - wie kann ich die Sache anpacken?

Ich habe mal testweise probiert eine eigene mainbody.php in diese Ordner zu legen "templates/seb_blog/positions/my_search/list/" , "templates/seb_one/positions/my_search/list/" das hatte aber leider keinen Einfluss auf den output.

Danke schon mal - toll dass es ein deutsches SEBLOD® Forum gibt :)
Anhang:
Letzte Änderung: 27 Jun 2014 04:51 von bad habit.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Suchergebnisse nach Hits sortieren 27 Jun 2014 17:23 #1136

  • Anonymus
  • Anonymuss Avatar
Hallo bad habit,

willkommen im Forum.

Warum kopierst du nicht einfach die Templates welche du verändern möchtest und Installierst sie unter anderem Namen.
So kannst du dort alles so Manipulieren wie du möchtest. Du musst natürlich die Templates in SEBLOD® unter Templates registrieren,
sonst sind sie nicht verfügbar.

Niemals die originalen Templates Manipulieren (wenn möglich), da bei einem SEBLOD® Update dies Überschrieben werden.

gruss
Paul
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Suchergebnisse nach Hits sortieren 27 Jun 2014 19:45 #1137

Hallo Paul,
dank dir für deine nette Antwort. Das würde also bedeuten, dass ich eine Kopie des Web_Blog Templates mache und dann die index.php anpasse, richtig? Ich hab mir die Datei mal angeschaut und die sieht mega umfangreich aus. Mein php ist leider so mittelmäßig. Wurde so ein Umbau bisher vielleicht irgendwo dokumentiert?

Mir fällt gerade ein, dass ich mal von einem rudimentären Listen-Template für SEBLOD® gehört habe, nur fällt mir der Name gerade nicht ein - vielleicht wäre es für meinen Zweck schlauer ein etwas einfacheres Template umzubauen?

Grüße Adrian
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Suchergebnisse nach Hits sortieren 28 Jun 2014 14:21 #1138

  • Anonymus
  • Anonymuss Avatar
Hallo Adrian,

Ja die gibt es, 2 sogar.
- SD Simple Simon
- Minima

Aber auch in den Tutorials von SEBLOD® gibt es Hilfe wie man ein Template selbst bauen kann.
Musst mal bei Tutorial/Videos nachschauen.
Ebenso kannst du mal hier im Forum, oben in der Menüleiste auf "ressourcen" klicken. Dort die Videos von WhyKiki anschauen.

gruss
Paul
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Suchergebnisse nach Hits sortieren 01 Jul 2014 15:26 #1139

Hi Paul,

dank dir für die Tipps. Ich habe es jetzt mit dem Seb_List Template probiert und geschafft - juhu! :) Ich habe mich ohnehin gewundert dass es zu dem Problem so gut wie nichts zu finden gab - wo es doch kein ausgefallener Wunsch ist seine Suchergebnisse anhand der Treffer zu sortieren. Anbei mal der Code, falls irgendwer an so einer Lösung interessiert ist, oder Verbesserungsvorschläge hat:
<?php
$suchbegriff_lower = strtolower($_GET['suche_volltext']);

if ( !$auto_clean ) { ?>
<ul<?php echo $class; ?>>
<?php }
	if ( $count ) {

		foreach ( $items as $item ) {
			if ($item) {
				$clean_fulltext_lower = strtolower(strip_tags($item->fields_list[art_fulltext]->value));
				$suchbegriff_count = substr_count($clean_fulltext_lower, $suchbegriff_lower);
				$item_list[] = array($suchbegriff_count,$item->pid);
				arsort($item_list);
				$item_list = array_values($item_list);
			}
		}
		$i=0;
		foreach ( $item_list as $value ) {
			$row	=	$items[$value[1]]->renderPosition( 'element' );

			if ( $row ) {
				if ($i % 2 != 0) {
					$row_class = 'odd';	
				} else {
					$row_class = 'even';
				}
				$row	=	'<li class="' . $row_class . '">'.$row.'</li>';
			}
			$html	.=	$row;
			$i++;
		}
		
		echo $html;

	}
if ( !$auto_clean ) {
?>
</ul>
<?php
}
Letzte Änderung: 01 Jul 2014 16:12 von bad habit.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
nach oben