Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#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
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
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
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
Seiten: 1