13.8.4 DocumentList::addDocumentIdentifiers()
La méthode addDocumentIdentifiers
permet d'obtenir les dernières
révisions (latest
) d'un ensemble de documents à partir de la liste
des identifiants de ces documents.
13.8.4.1 Description
void addDocumentIdentifiers ( array[int] $ids, bool $useInitId = true )
La méthode addDocumentIdentifiers
permet d'obtenir les dernières
révisions (latest
) des documents dont les identifiants sont passés
en argument sous la forme d'une liste d'identifiants.
Les identifiants de la liste peuvent être des initid
, des id
de révisions
intermédiaire ou bien des id
de dernière révision (latest
).
La méthode initialise alors l'objet DocumentList
courant pour retourner tous
ces différents documents dans leur dernière révision (latest
).
13.8.4.1.1 Avertissements
Aucun.
13.8.4.2 Liste des paramètres
- (array[int])
ids
-
ids
contient la liste des identifiants des documents avec lesquels on souhaite initialiser l'objetDocumentList
. - (bool)
useInitId
-
useInitId
permet de spécifier si les identifiants fournis sont desinitid
ou des identifiants de dernière révision.Par défaut,
useInitId
vauttrue
, et les identifiants spécifiés doivent être desinitid
.
13.8.4.3 Valeur de retour
Les éléments accessibles par itération sur DocumentList
sont des objet dérivés
de la classe Doc
.
13.8.4.4 Erreurs / Exceptions
Aucune.
13.8.4.5 Historique
Aucun.
13.8.4.6 Exemples
Soit les documents suivants :
- Document #1 d'
initid
3973 et les révisions suivantes.
initid | id | locked | revision | title --------+------+--------+----------+------------- 3973 | 3973 | -1 | 0 | Foo 3973 | 3974 | -1 | 1 | Foo Bar 3973 | 3975 | -1 | 2 | Foo Bar Baz 3973 | 3976 | 0 | 3 | Foo Bar Baz
- Document #2 d'
initid
3977 et les révisions suivantes.
initid | id | locked | revision | title --------+------+--------+----------+--------------------- 3977 | 3977 | -1 | 0 | The 3977 | 3978 | -1 | 1 | The Quick 3977 | 3979 | -1 | 2 | The Quick Brown 3977 | 3980 | -1 | 3 | The Quick Brown Fox 3977 | 3981 | 0 | 4 | The Quick Brown Fox
13.8.4.6.1 Avec Initid
Lorsque useInitId
est à true
(valeur par défaut), les identifiants fournis
doivent être des initid
.
Si un identifiant n'est pas un initid
, alors il n'est pas retourné par l'objet
DocumentList
.
$documentList = new \DocumentList(); $documentList->addDocumentIdentifiers( array( 3973, /* document #1 @ revision 0 (initid) */ 3981 /* document #2 @ revision 4 (latest) */ ) ); foreach ($documentList as $docId => $doc) { printf("* Document {id = '%d', revision = '%d', title = '%s'}.\n", $docId, $doc->getProperty('revision'), $doc->getTitle()); }
Résultat :
* Document {id = '3976', revision = '3', title = 'Foo Bar Baz'}.
Seul document#1 est retourné (car spécifié avec son initid
) et à sa dernière
révision (3).
13.8.4.6.2 Avec Latest Id
Lorsque useInitId
est à false
, les identifiants fournis doivent être des
identifiants de dernière révision (latest
).
Si un identifiant n'est pas un identifiant de dernière révision, alors il n'est
pas retourné par l'objet DocumentList
.
$documentList = new \DocumentList(); $documentList->addDocumentIdentifiers( array( 3973, /* document #1 @ revision 0 (initid) */ 3981 /* document #2 @ revision 4 (latest) */ ), false ); foreach ($documentList as $docId => $rawDoc) { printf("* Document {id = '%d', revision = '%d', title = '%s'}.\n", $docId, $doc->getProperty('revision'), $doc->getTitle()); }
Résultat :
* Document {id = '3981', revision = '4', title = 'The Quick Brown Fox'}.
Seul document#2 est retourné (car spécifié avec son latest
id) et à sa
dernière révision (4).
13.8.4.6.3 Pour n'importe quel identifiant
Si les identifiants fournis ne sont ni initid
ni latest
, alors, pour obtenir
les documents correspondants il faudra modifier la propriété latest
de l'objet
SearchDoc
sous-jacent comme suit :
$documentList = new \DocumentList(); /* * Fournir les identifiants avec `useInitId` à `false` */ $documentList->addDocumentIdentifiers( array( 3974, /* document #1 @ revision 1*/ 3978 /* document #2 @ revision 1 */ ), false ); /* * Récupérer l'objet `SearchDoc` sous-jacent */ $search = $documentList->getSearchDocument(); /* * Positionner SearchDoc->latest à `false` */ $search->latest = false; foreach ($documentList as $docId => $rawDoc) { printf("* Document {id = '%d', revision = '%d', title = '%s'}.\n", $docId, $doc->getProperty('revision'), $doc->getTitle()); }
Résultat :
* Document {id = '3974', revision = '1', title = 'Foo Bar'}. * Document {id = '3978', revision = '1', title = 'The Quick'}.
Les documents #1 et #2 sont retournés avec les documents aux révisions des identifiants demandés.
13.8.4.7 Notes
Les documents obtenus via DocumentList
sont ordonnés alphabétiquement par leur
titre.