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'objet DocumentList.
(bool) useInitId

useInitId permet de spécifier si les identifiants fournis sont des initid ou des identifiants de dernière révision.

Par défaut, useInitId vaut true, et les identifiants spécifiés doivent être des initid.

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.

13.8.4.8 Voir aussi

×
nouveauté