Hi, Le 22/03/2012 10:10, Jean-Sébastien H. a écrit :
Thanks for your feedback, I'll fix my patch soon.
In attachment, the new patch. Regards, -- Jean-Sébastien H. au-fil-du.net
Index: en/reference/ldap/functions/ldap-control-paged-result-response.xml =================================================================== --- en/reference/ldap/functions/ldap-control-paged-result-response.xml (révision 324333) +++ en/reference/ldap/functions/ldap-control-paged-result-response.xml (copie de travail) @@ -1,9 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <!-- $Revision$ --> -<refentry xml:id='function.ldap-control-paged-result-response' xmlns="http://docbook.org/ns/docbook"> +<refentry xml:id='function.ldap-control-paged-result-response' +xmlns="http://docbook.org/ns/docbook" +xmlns:xlink="http://www.w3.org/1999/xlink"> <refnamediv> <refname>ldap_control_paged_result_response</refname> - <refpurpose>Extract paged results control response</refpurpose> + <refpurpose>Retrieve the LDAP pagination cookie</refpurpose> </refnamediv> <refsect1 role="description"> @@ -15,9 +17,67 @@ <methodparam choice="opt"><type>string</type><parameter role="reference">cookie</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter role="reference">estimated</parameter></methodparam> </methodsynopsis> - &warn.undocumented.func; + <para> + Retrieve the pagination information send by the server. + </para> </refsect1> + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>link</parameter></term> + <listitem> + <para> + An LDAP link identifier, returned by <function>ldap_connect</function>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>result</parameter></term> + <listitem> + <para> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>cookie</parameter></term> + <listitem> + <para> + An opaque structure sent by the server. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>estimated</parameter></term> + <listitem> + <para> + The estimated number of entries to retrieve. + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + &return.success; + </para> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>ldap_control_paged_result</function></member> + <member><link xlink:href="&url.rfc;2696">RFC2696 : LDAP Control Extension for Simple + Paged Results Manipulation</link></member> + </simplelist> + </para> + </refsect1> </refentry> <!-- Keep this comment at the end of the file Index: en/reference/ldap/functions/ldap-control-paged-result.xml =================================================================== --- en/reference/ldap/functions/ldap-control-paged-result.xml (révision 324333) +++ en/reference/ldap/functions/ldap-control-paged-result.xml (copie de travail) @@ -1,22 +1,151 @@ <?xml version="1.0" encoding="utf-8"?> <!-- $Revision$ --> -<refentry xml:id='function.ldap-control-paged-result' xmlns="http://docbook.org/ns/docbook"> +<refentry xml:id='function.ldap-control-paged-result' +xmlns="http://docbook.org/ns/docbook" +xmlns:xlink="http://www.w3.org/1999/xlink"> <refnamediv> <refname>ldap_control_paged_result</refname> - <refpurpose>Inject paged results control</refpurpose> + <refpurpose>Send LDAP pagination control</refpurpose> </refnamediv> <refsect1 role="description"> &reftitle.description; <methodsynopsis> - <type>mixed</type><methodname>ldap_control_paged_result</methodname> + <type>bool</type><methodname>ldap_control_paged_result</methodname> <methodparam><type>resource</type><parameter>link</parameter></methodparam> <methodparam><type>int</type><parameter>pagesize</parameter></methodparam> - <methodparam choice="opt"><type>bool</type><parameter role="reference">iscritical</parameter></methodparam> - <methodparam choice="opt"><type>string</type><parameter role="reference">cookie</parameter></methodparam> + <methodparam choice="opt"><type>bool</type><parameter>iscritical</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>cookie</parameter></methodparam> </methodsynopsis> - &warn.undocumented.func; + <para> + Enable LDAP pagination by sending the pagination control (page size, cookie...). + </para> </refsect1> + <refsect1 role="parameters"> + &reftitle.parameters; + <para> + <variablelist> + <varlistentry> + <term><parameter>link</parameter></term> + <listitem> + <para> + An LDAP link identifier, returned by <function>ldap_connect</function>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>pagesize</parameter></term> + <listitem> + <para> + The number of entries by page. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>iscritical</parameter></term> + <listitem> + <para> + Indicates whether the pagination is critical of not. + If true and if the server doesn't support pagination, the search + will return no result. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>cookie</parameter></term> + <listitem> + <para> + An opaque structure sent by the server + (<function>ldap_control_paged_result_response</function>). + </para> + </listitem> + </varlistentry> + </variablelist> + </para> + </refsect1> + + <refsect1 role="returnvalues"> + &reftitle.returnvalues; + <para> + &return.success; + </para> + </refsect1> + + <refsect1 role="examples"> + &reftitle.examples; + <para> + The example below show the retrieval of the first page of a search paginated + with one entry by page. + <example> + <title>LDAP pagination</title> + <programlisting role="php"> + <![CDATA[ + <?php + // $ds is a valid link identifier (see ldap_connect) + + $dn = 'ou=example,dc=org'; + $filter = '(|(sn=Doe*)(givenname=John*))'; + $justthese = array('ou', 'sn', 'givenname', 'mail'); + + // enable pagination with a page size of 1. + ldap_control_paged_result($ds, 1); + + $sr = ldap_search($ds, $dn, $filter, $justthese); + + $info = ldap_get_entries($ds, $sr); + + echo $info['count'] . ' entries returned' . PHP_EOL; + ]]> + </programlisting> + </example> + </para> + <para> + The example below show the retrieval of all the result paginated with 100 + entries by page. + <example> + <title>LDAP pagination</title> + <programlisting role="php"> + <![CDATA[ + <?php + // $ds is a valid link identifier (see ldap_connect) + + $dn = 'ou=example,dc=org'; + $filter = '(|(sn=Doe*)(givenname=John*))'; + $justthese = array('ou', 'sn', 'givenname', 'mail'); + + // enable pagination with a page size of 100. + $pageSize = 100; + + $cookie = ''; + do { + ldap_control_paged_result($ds, $pageSize, true, $cookie); + + $result = ldap_search($ds, $dn, $filter, $justthese); + $entries = ldap_get_entries($ds, $result); + + foreach ($entries as $e) { + echo $e['dn'] . PHP_EOL; + } + + ldap_control_paged_result_response($ds, $result, $cookie); + + } while($cookie !== null && $cookie != ''); + ]]> + </programlisting> + </example> + </para> + </refsect1> + + <refsect1 role="seealso"> + &reftitle.seealso; + <para> + <simplelist> + <member><function>ldap_control_paged_result_response</function></member> + <member><link xlink:href="&url.rfc;2696">RFC2696 : LDAP Control Extension for Simple + Paged Results Manipulation</link></member> + </simplelist> + </para> + </refsect1> </refentry> <!-- Keep this comment at the end of the file