eZContentObjectTreeNode::subTree d'eZ publish
Publié le 09 avril 2007 | 1 commentaire(s) | Tags : api , framework |
Lors d'un développement, j'utilise l'API d'eZ publish pour récupérer des informations. Pour cela j'utilise la fonction subtree en me basant sur l'excelent tutorial Fetching eZ publish content objects with php
Malheureusement , il n'explique pas à 100% comment utiliser les différentes fonctions qu'on a via les templates d'eZ publish.
J'avais besoin d'utiliser le critère AttributeFilter. Dans l'utilisation, je trouve que c'est vraiment très proche de l'utilisation dans un template eZ publish.
eZ publish prévoit des champs type , tel que path, published, class_identifier , mais on peut aussi utiliser des attributs personnalisés, qu'on peut utiliser comme dans les templates eZ publish, soit par numéro d'attribute, soit par le chemin de l'attribut. Personellement , je préfère utiliser le chemin de l'attribut, c'est plus clair. Vous pourrez voir un exemple un peu plus loin.
Il suffit de rajouter un tableau dans les paramètres de la fonction subtree, qui s'appele AttributeFilter :
include_once('kernel/classes/ezcontentobjecttreenode.php'); $nodes =& eZContentObjectTreeNode::subTree( array('Depth' => 1, 'AttributeFilter' => array('none', array('classe/attribute','=','text')) ), 2);
En cherchant dans le code, on remarque que la méthode subTree prend plusieurs paramètres :
- Depth : cet attribute sert surtout à définir si la fonction subTree fonctionne comme un simple content list, ou un content tree.
- Offset : permet de spécifier à partir de quel objet il commence
- Language : permet de spécifier la langue à utiliser ( ex : fre-FR)
- Limit : le nombre d'objet à retourner
- SortBy : le type de tri
- MainNodeOnly : selon la valeur ( true/false ), il ne renvoie que les noeuds principaux
- AttributeFilter : les différentes conditions à appliquer
- ExtendedAttributeFiler
- ClassFilterType : le fameux include/exclude
- ClassFilterArray : un tableau regroupant le nom des classes à retourner
- GroupBy : regrouper les objets selon un attribute ou autre
- Limitation : permet d'outre passer les droits d'eZ publish
Edition du 24 avril 2007
En continuant l'étude de la fonction subTree de la classe eZContentObjectTreeNode , j'avais besoin que ma fonction retourne tous mes objets. Mon soucis a été qu' eZ publish ne me retournait que les noeuds que l'utilisateur identifié n'avait le droit de lecture sur certains objets. Pour que la fonction subTree renvoie bien tous les objets, il faut passer un paramètre nommé Limitation. Ce paramètre doit contenir un tableau vide, pour que cela fonctionne correctement.
include_once('kernel/classes/ezcontentobjecttreenode.php); $nodes =& eZContentObjectTreeNode::subTree( array('Depth' => 1, 'Limitation' => array(), 'AttributeFilter' => array('none', array('classe/attribute','=','text')) ), 2);
Commentaires
#1 - Le 01 mai 08 par Soon7
Ajouter un commentaire