Faire un fetch personnalisé (custom fetch)

Le fetch est la fonction a tout faire dans le monde
d’eZ Publish. eZ Publish est fournit avec un certain
nombre de fetch définit par défaul
t. Il est parfois
utile de définir soit même ses propres fetchs.

Définition du fetch

Pour définir un fetch personalisé, il faut donner la définition dans un fichier_definition.
extensions/myextension/modules/mymodule/function_definition.php

<?php
$FunctionList = array();
$FunctionList['CustomFetch'] = array(
	'name' => 'customfetch',
	'call_method' => array(
		'class' => 'MyCustomFunctionCollection',
		'method' => 'fetchCustomFetch'
	),
	'parameters' => array(array(
		'name'     => 'param_1',
		'type'     => 'integer',
		'required' => true,
		'default'  => 1
		),
		array(
		'name'     => 'param_2',
		'type'     => 'string',
		'required' => true,
		'default'  => ''
		)
	)
);

Il reste à définir le code de notre fetch.

class MyCustomFunctionCollection {
 
	public function __construct() {}
 
	public function fetchCustomFetch( $param_1, $param_2 ) {
		$result = // ce que l'on veut
		return array( 'result' => $result);
	}
}

Activation du fetch

Il faut que le module soit deja configurer dans le fichier module.ini.append.php pour pouvoir utiliser notre fetch.

<?php /* #?ini charset="utf-8"?
 
[ModuleSettings]
ExtensionRepositories[]=mymodule
ModuleList[]=mymodule
 
*/

Utiliser notre fetch

Nous disposons maintenant de tout notre environnement pour utiliser notre, il ne reste plus qu’a l’utiliser dans nos templates.

{def $collection = fetch('mycustom', 'customfetch', hash(
	'param_1', 1,
	'param_2', 'text'
)}

Articles liés

eZ Publish : Fetch reverse_related_objects
Documentation eZ Publish
Les datatypes d’eZ Publish : mise en place de l’extension
eZ Find: filtrer par dates
Opérateur PHP avec eZ Publish

One thought on “Faire un fetch personnalisé (custom fetch)

  1. Pingback: Documentation eZ Publish | truffo.fr

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">