Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 05. April 2011 10:41

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Suche auf bestimmte Seiten eingrenzen

Hi,

ich hab grade die Specs für eine Seite erhalten und da stehen ein paar interessante Sachen drin:

Der Kunde möchte PDF Dateien durchsuchen lassen. Dazu hatte ich hier schon mal einen Thread erstellt.

Viel interessanter ist aber, dass die Suche variabel nach aktuell angezeigter Seite nur diese und deren Subseiten, bzw. die den Parent Baum durchsuchen können soll.

Beispiel: ich bin auf 2.1.2. Der User ist verzweifelt und benutzt die Suche. Er soll nur Seiten von 2. aus angezeigt bekommen.

Geht das irgendwie?

Danke
leerraum


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#2 05. April 2011 14:32

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: Suche auf bestimmte Seiten eingrenzen

ist die frage so dämlich, oder hat nur grade keiner zeit?


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#3 05. April 2011 14:59

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.930
Webseite

Re: Suche auf bestimmte Seiten eingrenzen

Zeit hätte ich, eine Lösung im Moment nicht  glasses

Die Baumsuche könnte sich ev irgendwie lösen lassen, beim durchsuchen der PDFs wird es schon schwieriger. CMSms kennt kein Modul welches dies kann.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#4 05. April 2011 15:13

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: Suche auf bestimmte Seiten eingrenzen

ok, was meinst du wie man die baumsuche lösen kann. ich hab jetzt erstmal in die hilfe für das suchmodul geschaut, da hab ich aber nix gefunden. die keywords erscheinen mir irgendwie nicht passend. ich glaub das ist eher für eine tag cloud geeignet. gibt es noch ein anderes suchmodul?

edit: ich hab grade überlegt, ob man das vielleicht über smarty in der ausgabe dann filtern könnte. aber dazu kenne ich die ausgabe noch nicht genau genug. die suche muss ja einen link ausspucken, diesen link könnte man dann nehmen und gucken ob die friendly_position dem entspricht, was man haben möchte. dazu müsste man auf jeder seite erstmal eine variable definieren, die speichert von wo die suche aufgerufen wurde.

verrenn ich mich grade, oder gehts in die richtige richtung?

Beitrag geändert von leerraum (05. April 2011 15:23)


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#5 05. April 2011 15:34

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.436

Re: Suche auf bestimmte Seiten eingrenzen

Ja, ja, ich seh schon. Unsere User sind hier verwöhnt wink

An sowas ähnliches habe ich auch im ersten Moment gedacht.
Einfach bei der Ausgabe des Suchmoduls die Ergebnisse anhand der URL filtern.
Die Variable, die man mitgeben müsste, wäre die ID der jeweiligen Übergeordneten Seite erster Ebene. Das könnte man mit CGSimpleSmarty recht einfach in das Suchformular als hidden Input-Feld einbauen.
Im Suchergebnis-Template könnte man dann mit {$smarty.get.besagte_id} darauf zugreifen. Dann muss man eigentlich "nur" die Links der Suchergebnisse mit einem RegExp Filter prüfen, um an die Seiten-ID zu kommen. Und dann könnte man wieder mit Hilfe von CGSimpleSmarty prüfen, ob diese unterhalb der im hidden Input-Feld übermittelten ID liegt.

Erstmal so als Ansatz, ohne irgendwas zu hacken.
Besser wäre es natürlich, wenn das Suchmodul einen entsprechenden Parameter dafür hätte, um schon bei der Abfrage die Seiten herauszufiltern.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#6 05. April 2011 16:02

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: Suche auf bestimmte Seiten eingrenzen

und dazu müsste man eine funktion da rein hacken, richtig? wie hoch sind denn die chancen, dass so eine funktion in den nächsten release mit reingenommen wird?


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#7 05. April 2011 16:53

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.436

Re: Suche auf bestimmte Seiten eingrenzen

leerraum schrieb:

und dazu müsste man eine funktion da rein hacken, richtig?

Kommt drauf an welche Methode Du meinst.
Der erste Ansatz ginge evtl. via Smarty.

Für letzteres könnte man ja mal ein Feature-Request beim Entwickler abgeben.
Aber vor Ende Sommer würde ich nicht damit rechnen.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#8 05. April 2011 20:20

nhaack
Server-Pate
Ort: Bonn
Registriert: 12. Dezember 2010
Beiträge: 171
Webseite

Re: Suche auf bestimmte Seiten eingrenzen

Idee für einen Hack (alles auf eigene Verantwortung):

Man könnt sich am Feld "prefix_content_hierarchy" orientieren. Dort sind die IDs in einem String in Hierarchie geschrieben.

Also:

ID: 1 = Startseite
ID: 2 = Kuchenrezepte (A)
ID: 3 = Käsekuchen (B)

ist dann "1.2.3"

Dann müsste man nur noch gucken, ob die "Start-ID" der Suche (also z.B. alles unter Kuchenrezepte = "1.2") in der ID Hierarchy der gefundenen Seite auftaucht (also: "Kommt [1.2] in [1.2.3] vor?").

Ist also die ID einer Seite "A" Bestandteil der ID-Hierarchy einer anderen Seite "B", dann liegt "B" zwangsläufig unter "A", bzw "A" steht definitiv in der direkten Hierarchie über "B".

Für diesen Vergleich müsstest du aber die ID-Hierarchy der einzelnen Seite kennen, das wird mit Smarty schwierig, da die ID/Hierarchy nicht im Ergebnisset drin ist. In Zeile 250 (oder so) in action.dosearch.php des Search Moduls werden normale Content-Ergebnisse an das Resultset angehängt. Dort kommst du auch an die ID an (müsste jedenfalls dort irgendwo sein).

Die Start-ID könnte man als Parameter beo Modulaufruf übergeben und direkt abgleichen, also das Ergebnis garnicht erst mit rausgeben. Kann man ja sonst auch mit einem Schalter versehen (filter=true/false).

Führt aber dazu, dass die Suche grundsätzlich erstmal alle Seiten in Betracht zieht. D.h. du durchsuchst auch eigentlich ausgeschlossene Inhalte ... du zeigst sie nur nicht mehr mit an.

...

Nach dem URL Aufbau gehen, würde auch gehen. Dann klammerst du jedes Ergebnis vor der Ausgabe mit einen Stringvergleich (URL des Starts vs. URL der Seite). Quasi das gleiche wie bei der ID.Hierarchy nur im Template und nicht im Modul. Setzt aber sprechende und hierarchische URLs voraus.

Alle genannten Methoden unterdrücken aber erstmal nur nicht passende Ergebnisse.

Das mal als Ideenanreize in dem Raum getellt.

Grüße
Nils

Offline