Entwicklung » eCommerce
Wie kann ich mit der "find-methode" nur bestimmte Attribute durchsuchen?
Für die "find methode" können verschiedene Parameter übergeben werden:
- Parameter:
-
$quicksearch string Suchbegriff/e mit Leerzeichen getrennt (Begriffe in " werden als ein Begriff gewertet) $attributes array Attributarray - für eine Direkte Attributsuche $folder mixed Primärschlüssel oder Name eines Ordners, oder null ('null' - Listet alle gültigen Artikel!) $options array Optionen - Array
$attributes
Das Attributarray hat folgende Struktur: Array( "values" => Array("Attributename/Id" => "value",...) "operators" => Array("Attributename/Id" => "OR/AND",...) )
In der eigentlichen RedSYS Anwendung sieht es dann so aus:
Nehmen wir ein Attribut (nennen wir es ab jetzt "attribute_1"). Dieses Attribut sei z.b. ein Attribute mit einem Boolean Wert. Wir möchten nun die Artikelausgabe auf die Artikel beschränken, bei denen dieses Attribut gesetzt ist.
Es wird also ein Array definiert
$filterarray["values"]["attribute_1"] = 1;
und als zweiter Parameter übergeben:
$articlemanager -> find(null,$filterarray,$folderid);
------------------
Möchten Wir zwei oder mehrere Attributwerte prüfen, muss die Array-Definition wie folgt aussehen:(es sei attribute_2 der Name des zweiten Attributs (als string) ist:
$filterarray["values"]["attribute_1"] = 1;
$filterarray["operators"]["attribute_1"] = 'AND';$filterarray["values"]["attribute_2"] = 'Köln';
$filterarray["operators"]["attribute_2"] = "AND";$articlemanager -> find(null,$filterarray,$folderid);
Als gültiger Operatoren können 'AND' bzw. 'OR' angegeben werden.Wenn bei den Attributen Defaultwerte hinterlegt sind, und diese Defaultwerte gesucht werden, dann muss die id dieses Defaultwerts 'values' statt 'Köln' angegeben werden.
$options
Das Optionenarray hat folgendes Format: Array( "includechildfolders" => true/false, "includemedia" => true/false, "useonlyattributes" => Array(Attributename, . ..)
includechildfolders: Sollen auch die Unterodner von der angegeben folderid durchgesucht werden?
includemedia: Definiert, ob der '$quicksearch' - String auch in den Medien des Artikels gesucht werden soll
useonlyattributes: Hier kann definiert werden, welche Attribute nicht durchgesucht werden sollen.
sortorder: Hier kann der Wert "folder" übergeben werden, und somit werden die artikel_id's nach dem angegebenen Sortierwert sortiert. In dem Adminbereich kann dieser Sortierwert/Sortierreihenfolge bei allen Artikeln hinterlegt werden.
Das Array "options muss als vierter Parameter übergeben werden.
$articlemanager -> find(null,$filterarray,$folderid,Array("includechildfolders" => true, "sortorder" => "folder"));
Tags: -
Verwandte Artikel:
- Wie kann ich eine Shopstruktur aus dem Commerce-Bereich im Sitemenü ausgeben?
- Ich habe die Meta-tags einer Seite verändert und sehe die Änderung nicht im Livebereich?
- Wie lege ich eine weiße Seite an, ohne hinterlegtes Template? Wenn ich ein neues Dokument anlege, dann kann ich nur rsys-Dokumente mit Template anlegen. Wie umgehe ich das Template?
- Wie lege ich die Rechte für Gruppen und Rollen fest, so dass nur eine bestimmte Benutzergruppe auf die Seiten zugreifen kann
- Ich habe in der Community "Kundenattribute" mit "Attributseiten" und "Attributgruppen" angelegt, aber ich sehe keine Felder, wenn ich einen Kunden anlege.
Letzte Änderung des Artikels: 2009-01-21 13:53
Verfasser des Artikels: Thomas Borsutzky
Revision: 1.1
Kommentieren nicht möglich