Entwicklung » eCommerce

ID #1209

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:

Letzte Änderung des Artikels: 2009-01-21 13:53
Verfasser des Artikels: Thomas Borsutzky
Revision: 1.1

Digg it! Artikel ausdrucken Artikel weiterempfehlen Als PDF-Datei anzeigen
Übersetzungsvorschlag für Übersetzungsvorschlag für
Bewertung der Nützlichkeit dieses Artikels:

Durchschnittliche Bewertung: 0 von 5 (0 Bewertungen)

vollkommen überflüssig 1 2 3 4 5 sehr wertvoll

Kommentieren nicht möglich