objektsuche nach kagegoriename

Fragen zum Erstellen von Templates für webEdition.
arkakus
Member
Beiträge: 62
Registriert: Do 6. Jul 2006, 10:48

objektsuche nach kagegoriename

Beitragvon arkakus » Mo 9. Aug 2010, 10:51

Hallo,

wahrscheinlich stehe ich nur auf der Leitung. Ich habe Objekte denen jeweils mehrere Kategorien zugeordnet sind, z.B. "Holz", "Metall", "Kunststoff" "glatt" "rauh" etc.

Der User soll bei Eingabe von z.B. "glatt" im Suchfeld nun das entsprechende Objekt angezeigt bekommen. Aber "glatt" ist lediglich Bestandteil der Kategorie und in keinem Feld des Objektes selber eingetragen.

Das geht doch gar nicht oder? Gefunden habe ich zumindest keinen Lösungsansatz im Forum.

Vielen Dank!

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: objektsuche nach kagegoriename

Beitragvon we:willRockYou » Mo 9. Aug 2010, 11:21

Hallo arkakus,

soll der Nutzer dieses Suchwort eingeben oder wählt er es als Eigenschaft in einem Select-Feld?

Ein listview hat das Attribut "categories", wo Du kommasepariert ID's von Kategorien angeben kannst. Von Deiner Suchanfrage must Du halt irgendwie an die ID's rankommen. Wenn es ein Select ist, sollte das recht leicht sein, da kannst Du als Value ja direkt die ID hinterlegen. Wenn es eine Freitextsuche ist, müsstest du wohl erst selbst eine Suche über Kategorien per PHP/MySQL basteln und zutreffende Kategorien ermitteln.
EOF; //totally retired

arkakus
Member
Beiträge: 62
Registriert: Do 6. Jul 2006, 10:48

Re: objektsuche nach kagegoriename

Beitragvon arkakus » Di 10. Aug 2010, 10:30

Hallo,

nein, der User soll es als freies Suchwort im Suchfeld angeben können... ich hab´s geahnt aber auf eine einfache Lösung gehofft.

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: objektsuche nach kagegoriename

Beitragvon we:willRockYou » Di 10. Aug 2010, 10:41

Du kannst es mal über ein <we:listview type="category"> versuchen. Ich weiss nicht ob man hier per Condition filtern kann, vermute es aber nicht. So müsstest Du nicht selbst mit der Datenbank arbeiten, falls das ein Problem sein sollte.
EOF; //totally retired

arkakus
Member
Beiträge: 62
Registriert: Do 6. Jul 2006, 10:48

Re: objektsuche nach kagegoriename

Beitragvon arkakus » Mi 11. Aug 2010, 11:22

danke, ich habs versucht aber wie erwartet geht das natürlich nicht.
schade auch.

e_herrmann
Senior Member
Beiträge: 1319
Registriert: Do 22. Mai 2003, 23:25

Re: objektsuche nach kagegoriename

Beitragvon e_herrmann » Mi 11. Aug 2010, 13:58

Hi,
mit dem von Daniel vorgeschlagenen Attribut "categories" sollte es schon gehen. Das erwartet nämlich den Kategorienamen ind Nicht die ID. Die gibt man mit "categoryids" an (dessen Beschreibung in der Docu fehlt, trage das mal in die Bugbase ein).
Also wenn du die gesuchte Kategorie mit Request übergibst, kannst du diese als Variable an das Listview-Tag übergeben.
<we:listview type="object" classid="123" categories="\$cat">

Aber damit schränkst du die Suchergebnisse ja ganz schön ein. Denn bei x vorhandenen Kategorien hast du auch nur x mögliche Treffer.
Außerdem gibt es zu bedenken, dass das nur funktioniert, wenn alle Kategorie in der obersten Ebene liegen, Unterkategorien sind nur mit dem richtigen Pfad erreichbar.

Grüße Elko
Elko Herrmann
komplexx | internet.fotografie
web: http://www.komplexx.de

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: objektsuche nach kagegoriename

Beitragvon we:willRockYou » Mi 11. Aug 2010, 14:17

Stimmt, mit dem Attribut. Viel bringen wird es allerdings nicht. Und auch meine Idee mit der vorherigen Suche über Kategorien wird nicht funktionieren, denn:

Suche nach "A B". A entspricht einer Kategorie, B nicht. Woher soll das Listview nun wissen was es finden soll. Ich wüsste es nicht mal. ;-)

Soll es nun nach B in allen Seiten der Kategorie A suchen?
Soll es nach Kategorien A und B suchen? -> Keine Treffer, Kategorie A gibt es nicht.
Soll es nach Kategorien A oder B suchen?
Soll es alle Seiten von Kategorie A finden und zusätzlich nach A und B in allen anderen Seiten suchen?

Ich glaube mit einem einzigen Listview wird das in keinem Fall etwas. Da müssen zu viele Fälle abgedeckt werden. Aus meiner Sicht wären das folgende:

Suche alle Seiten von Kategorie A in denen B als Text vorkommt
Suche alle Seiten von Kategorie B in denen A als Text vorkommt
Suche alle Seiten von Kategorie A und B
Suche alle Seiten in denen A und B als Text vorkommen

Und das bei nur zwei Suchworten...

Ausserdem ist bei Kategorie-Namen sicher die Gross/Kleinschreibung wichtig. Und es würden keine Teilworte gefunden.

Das wäre etwas, dass man in den LV-Code selbst einbauen müsste, so dass auch im Kategorienamen gesucht wird.
EOF; //totally retired

arkakus
Member
Beiträge: 62
Registriert: Do 6. Jul 2006, 10:48

Re: objektsuche nach kagegoriename

Beitragvon arkakus » Mi 11. Aug 2010, 14:45

o.k. jetzt mal ein Versuch von hinten rum durchs Auge.

Ich könnte doch die Kategorien auslesen und in ein unsichtbares Feld schreiben. Wäre dieses Feld dann mit der Sucheingabe nicht abzugleichen? Also derzeit lasse ich die Feldinhalte der Objekte ja auch so durchsuchen:
<?php
$MyCondition = $_REQUEST['we_lv_search_0'];
$MyProductCond = "Name like '%".$MyCondition."%' OR Kurzbeschreibung like '%".$MyCondition."%'";
?>
<we:listview type="object" name="procuct" order="Name" classid="4" condition="\$MyProductCond">

Mehrere listviews wären kein Problem, nur sollte es nicht für jede Kategorie eine einzelne Listview sein weil der Kunde / der Redakteur die Kategorien eben auch selber vergibt.

Kriegt man die Kategorien irgendwie in den Code?
Danke!

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: objektsuche nach kagegoriename

Beitragvon we:willRockYou » Mi 11. Aug 2010, 14:58

Vermutlich nicht. Die Kategorien stehen im Feld OF_Categories in der Form ",1,2,3,4,". Vieleicht gehts mit dem Parameter "predefinedsql", damit habe ich bisher nichts gemacht. Damit kann man vielleicht joins hinbekommen.


Aber wenn Du wirklich ein weiteres Feld im Objekt anlegst und dort nochmals die entsprechenden Schlagworte eingbist, funktioniert das. So haben wir es auch schon mal bei einem Kunden gemacht. Der Kunde trägt dann beliebige Worte in das Feld die nur bei der Suche berücksichtigt werden.
EOF; //totally retired


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot] und 31 Gäste