Просмотр исходного кода

[DOCUMENTATION] German:

- sync up to r16640

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@16841 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 16 лет назад
Родитель
Сommit
5eedf3aae6

+ 263 - 0
documentation/manual/de/module_specs/Zend_Ldap-API-Ldap-Attribute.xml

@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 16639 -->
+<!-- Reviewed: no -->
+<sect3 id="zend.ldap.api.reference.zend-ldap-attribute">
+    <title>Zend_Ldap_Attribute</title>
+
+    <para>
+        <code>Zend_Ldap_Attribute</code> is a helper class providing only static
+        methods to manipulate arrays suitable to the structure used in
+        <classname>Zend_Ldap</classname> data modification methods and to the data format required by
+        the <acronym>LDAP</acronym> server. PHP data types are converted the following way:
+    </para>
+
+    <variablelist>
+        <varlistentry>
+            <term><code>string</code></term>
+            <listitem><para>No conversion will be done.</para></listitem>
+        </varlistentry>
+
+        <varlistentry>
+            <term><code>integer</code> and <code>float</code></term>
+            <listitem><para>The value will be converted to a string.</para></listitem>
+        </varlistentry>
+
+        <varlistentry>
+            <term><code>boolean</code></term>
+            <listitem><para><code>true</code> will be converted to <code>'TRUE'</code> and
+            <code>false</code> to <code>'FALSE'</code></para></listitem>
+        </varlistentry>
+
+        <varlistentry>
+            <term><code>object</code> and <code>array</code></term>
+            <listitem><para>The value will be converted to a string by using
+            <code>serialize()</code>.</para></listitem>
+        </varlistentry>
+
+        <varlistentry>
+            <term><code>resource</code></term>
+            <listitem><para>If a <code>stream</code> resource is given, the data will be
+            fetched by calling <code>stream_get_contents()</code>.</para></listitem>
+        </varlistentry>
+
+        <varlistentry>
+            <term>others</term>
+            <listitem><para>All other data types (namely non-stream resources) will be
+            ommitted.</para></listitem>
+        </varlistentry>
+
+    </variablelist>
+
+    <para>On reading attribute values the following conversion will take place:</para>
+
+    <variablelist>
+        <varlistentry>
+            <term><code>'TRUE'</code></term>
+            <listitem><para>Converted to <code>true</code>.</para></listitem>
+        </varlistentry>
+
+        <varlistentry>
+            <term><code>'FALSE'</code></term>
+            <listitem><para>Converted to <code>false</code>.</para></listitem>
+        </varlistentry>
+
+        <varlistentry>
+            <term>others</term>
+            <listitem><para>All other strings won't be automatically converted and are passed
+            as they are.</para></listitem>
+        </varlistentry>
+
+    </variablelist>
+
+    <table id="zend.ldap.api.reference.zend-ldap-attribute.table">
+        <title>Zend_Ldap_Attribute API</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry>
+                        <emphasis><code>void setAttribute(array &amp;$data, string
+                        $attribName, mixed $value, boolean $append)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        Sets the attribute <code>$attribName</code> in
+                        <code>$data</code> to the value <code>$value</code>. If
+                        <code>$append</code> is <code>true</code> (<code>false</code> by
+                        default) <code>$value</code> will be appended to the attribute.
+                        <code>$value</code> can be a scalar value or an array of scalar
+                        values. Conversion will take place.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>array|mixed getAttribute(array $data,
+                        string $attribName, integer|null $index)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Returns the attribute <code>$attribName</code> from
+                        <code>$data</code>. If <code>$index</code> is <code>null</code>
+                        (default) an array will be returned containing all the values for
+                        the given attribute. An empty array will be returned if the
+                        attribute does not exist in the given array. If an integer index is
+                        specified the corresponding value at the given index will be
+                        returned. If the index is out of bounds, <code>null</code> will be
+                        returned. Conversion will take place.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>boolean attributeHasValue(array &amp;$data,
+                        string $attribName, mixed|array $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Checks if the attribute <code>$attribName</code> in
+                        <code>$data</code> has the value(s) given in <code>$value</code>.
+                        The method returns <code>true</code> only if all values in
+                        <code>$value</code> are present in the attribute. Comparison is
+                        done strictly (respecting the data type).
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>void removeDuplicatesFromAttribute(array
+                        &amp;$data, string $attribName)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Removes all duplicates from the attribute
+                        <code>$attribName</code> in <code>$data</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>void removeFromAttribute(array &amp;$data,
+                        string $attribName, mixed|array $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Removes the value(s) given in <code>$value</code> from
+                        the attribute <code>$attribName</code> in
+                        <code>$data</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>string|null convertToLdapValue(mixed
+                        $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Converts a PHP data type into its <acronym>LDAP</acronym> representation. See
+                        introduction for details.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>mixed convertFromLdapValue(string
+                        $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Converts an <acronym>LDAP</acronym> value into its PHP data type. See
+                        introduction for details.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>string|null
+                        convertToLdapDateTimeValue(integer $value, boolean $utc)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        Converts a timestamp into its <acronym>LDAP</acronym> date/time representation.
+                        If <code>$utc</code> is <code>true</code> (<code>false</code> by
+                        default) the resulting <acronym>LDAP</acronym> date/time string will be in UTC,
+                        otherwise a local date/time string will be returned.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>integer|null
+                        convertFromLdapDateTimeValue(string $value)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        Converts <acronym>LDAP</acronym> date/time representation into a timestamp. The
+                        method returns <code>null</code> if <code>$value</code> can not be
+                        converted back into a PHP timestamp.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>void setPassword(array &amp;$data, string
+                        $password, string $hashType, string $attribName)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        Sets a <acronym>LDAP</acronym> password for the attribute
+                        <code>$attribName</code> in <code>$data</code>.
+                        <code>$attribName</code> defaults to <code>'userPassword'</code>
+                        which is the standard password attribute. The password hash can be
+                        specified with <code>$hashType</code>. The default value here is
+                        <code>Zend_Ldap_Attribute::PASSWORD_HASH_MD5</code> with
+                        <code>Zend_Ldap_Attribute::PASSWORD_HASH_SHA</code> as the other
+                        possibilty.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>string createPassword(string $password,
+                        string $hashType)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates a <acronym>LDAP</acronym> password. The password hash can be specified
+                        with <code>$hashType</code>. The default value here is
+                        <code>Zend_Ldap_Attribute::PASSWORD_HASH_MD5</code> with
+                        <code>Zend_Ldap_Attribute::PASSWORD_HASH_SHA</code> as the other
+                        possibilty.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>void setDateTimeAttribute(array &amp;$data,
+                        string $attribName, integer|array $value, boolean $utc, boolean
+                        $append)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Sets the attribute <code>$attribName</code> in
+                        <code>$data</code> to the date/time value <code>$value</code>. If
+                        <code>$append</code> is <code>true</code> (<code>false</code> by
+                        default) <code>$value</code> will be appended to the attribute.
+                        <code>$value</code> can be an integer value or an array of
+                        integers. Date-time-conversion according to
+                        <code>Zend_Ldap_Attribute::convertToLdapDateTimeValue()</code> will
+                        take place.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>array|integer getDateTimeAttribute(array
+                        $data, string $attribName, integer|null $index)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        Returns the date/time attribute <code>$attribName</code>
+                        from <code>$data</code>. If <code>$index</code> is
+                        <code>null</code> (default) an array will be returned containing
+                        all the date/time values for the given attribute. An empty array
+                        will be returned if the attribute does not exist in the given
+                        array. If an integer index is specified the corresponding date/time
+                        value at the given index will be returned. If the index is out of
+                        bounds, <code>null</code> will be returned. Date-time-conversion
+                        according to
+                        <code>Zend_Ldap_Attribute::convertFromLdapDateTimeValue()</code>
+                        will take place.
+                    </entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect3>

+ 311 - 0
documentation/manual/de/module_specs/Zend_Ldap-API-Ldap-Dn.xml

@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 16639 -->
+<!-- Reviewed: no -->
+<sect3 id="zend.ldap.api.reference.zend-ldap-dn">
+    <title>Zend_Ldap_Dn</title>
+
+    <para>
+        <classname>Zend_Ldap_Dn</classname> provides an object-oriented interface to
+        manipulating <acronym>LDAP</acronym> distinguished names (DN). The parameter <code>$caseFold</code>
+        that is used in several methods determines the way DN attributes are handled
+        regarding their case. Allowed values for this paraneter are:
+    </para>
+
+    <variablelist>
+        <varlistentry>
+            <term><code>Zend_Ldap_Dn::ATTR_CASEFOLD_NONE</code></term>
+            <listitem><para>No case-folding will be done.</para></listitem>
+        </varlistentry>
+
+        <varlistentry>
+            <term><code>Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER</code></term>
+            <listitem><para>All attributes will be converted to upper-case.</para></listitem>
+        </varlistentry>
+
+        <varlistentry>
+            <term><code>Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER</code></term>
+            <listitem><para>All attributes will be converted to lower-case.</para></listitem>
+        </varlistentry>
+    </variablelist>
+
+    <para>
+        The default case-folding is <code>Zend_Ldap_Dn::ATTR_CASEFOLD_NONE</code> and
+        can be set with <code>Zend_Ldap_Dn::setDefaultCaseFold()</code>. Each instance of
+        <classname>Zend_Ldap_Dn</classname> can have its own case-folding-setting. If the
+        <code>$caseFold</code> parameter is ommitted in method-calls it defaults to the
+        instance's case-folding setting.
+    </para>
+
+    <para>
+        The class implements <code>ArrayAccess</code> to allow indexer-access to the
+        different parts of the DN. The <code>ArrayAccess</code>-methods proxy to
+        <code>Zend_Ldap_Dn::get($offset, 1, null)</code> for <code>offsetGet(integer
+        $offset)</code>, to <code>Zend_Ldap_Dn::set($offset, $value)</code> for
+        <code>offsetSet()</code> and to <code>Zend_Ldap_Dn::remove($offset, 1)</code> for
+        <code>offsetUnset()</code>. <code>offsetExists()</code> simply checks if the index
+        is within the bounds.
+    </para>
+
+    <table id="zend.ldap.api.reference.zend-ldap-dn.table">
+        <title>Zend_Ldap_Dn API</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Dn factory(string|array $dn,
+                        string|null $caseFold)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates a <classname>Zend_Ldap_Dn</classname> instance from an array
+                        or a string. The array must conform to the array structure detailed
+                        under <code>Zend_Ldap_Dn::implodeDn()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Dn fromString(string $dn,
+                        string|null $caseFold)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates a <classname>Zend_Ldap_Dn</classname> instance from a
+                        string.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Dn fromArray(array $dn,
+                        string|null $caseFold)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates a <classname>Zend_Ldap_Dn</classname> instance from an array.
+                        The array must conform to the array structure detailed under
+                        <code>Zend_Ldap_Dn::implodeDn()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>array getRdn(string|null $caseFold)</code></entry>
+                    <entry>
+                        Gets the <acronym>RDN</acronym> of the current DN. The return value is an array
+                        with the <acronym>RDN</acronym> attribute names its keys and the <acronym>RDN</acronym> attribute
+                        values.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>string getRdnString(string|null
+                        $caseFold)</code>
+                    </entry>
+                    <entry>
+                        Gets the <acronym>RDN</acronym> of the current DN. The return value is a
+                        string.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Dn getParentDn(integer
+                        $levelUp)</code>
+                    </entry>
+                    <entry>
+                        Gets the DN of the current DN's ancestor
+                        <code>$levelUp</code> levels up the tree. <code>$levelUp</code>
+                        defaults to <code>1</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array get(integer $index, integer $length, string|null
+                        $caseFold)</code>
+                    </entry>
+                    <entry>
+                        Returns a slice of the current DN determined by
+                        <code>$index</code> and <code>$length</code>. <code>$index</code>
+                        starts with <code>0</code> on the DN part from the left.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Dn set(integer $index, array
+                        $value)</code>
+                    </entry>
+                    <entry>
+                        Replaces a DN part in the current DN. This operation
+                        manipulates the current instance.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Dn remove(integer $index, integer
+                        $length)</code>
+                    </entry>
+                    <entry>
+                        Removes a DN part from the current DN. This operation
+                        manipulates the current instance. <code>$length</code> defaults to
+                        <code>1</code>
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Dn append(array $value)</code></entry>
+                    <entry>
+                        Appends a DN part to the current DN. This operation
+                        manipulates the current instance.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Dn prepend(array $value)</code></entry>
+                    <entry>
+                        Prepends a DN part to the current DN. This operation
+                        manipulates the current instance.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Dn insert(integer $index, array
+                        $value)</code>
+                    </entry>
+                    <entry>
+                        Inserts a DN part after the index <code>$index</code> to the
+                        current DN. This operation manipulates the current
+                        instance.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>void setCaseFold(string|null $caseFold)</code></entry>
+                    <entry>
+                        Sets the case-folding option to the current DN instance. If
+                        <code>$caseFold</code> is null the default case-folding setting
+                        (<code>Zend_Ldap_Dn::ATTR_CASEFOLD_NONE</code> by default or set
+                        via <code>Zend_Ldap_Dn::setDefaultCaseFold()</code> will be set for
+                        the current instance.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>string toString(string|null $caseFold)</code></entry>
+                    <entry>Returns DN as a string.</entry>
+                </row>
+                <row>
+                    <entry><code>array toArray(string|null $caseFold)</code></entry>
+                    <entry>Returns DN as an array.</entry>
+                </row>
+                <row>
+                    <entry><code>string __toString()</code></entry>
+                    <entry>
+                        Returns DN as a string - proxies to
+                        <code>Zend_Ldap_Dn::toString(null)</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>void setDefaultCaseFold(string
+                        $caseFold)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Sets the default case-folding option used by all instances
+                        on creation by default. Already existing instances are not affected
+                        by this setting.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>array escapeValue(string|array
+                        $values)</code> </emphasis>
+                    </entry>
+                    <entry>Escapes a DN value according to RFC 2253.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>array unescapeValue(string|array
+                        $values)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Undoes the conversion done by
+                        <code>Zend_Ldap_Dn::escapeValue()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>array explodeDn(string $dn, array
+                        &amp;$keys, array &amp;$vals, string|null $caseFold)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        Explodes the DN <code>$dn</code> into an array containing
+                        all parts of the given DN. <code>$keys</code> optinally receive DN
+                        keys (e.g. CN, OU, DC, ...). <code>$vals</code> optionally receive
+                        DN values. The resulting array will be of type
+                    <programlisting language="php"><![CDATA[
+array(
+array("cn" => "name1", "uid" => "user"),
+array("cn" => "name2"),
+array("dc" => "example"),
+array("dc" => "org")
+)
+]]></programlisting>for a DN of <code>cn=name1+uid=user,cn=name2,dc=example,dc=org</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>boolean checkDn(string $dn, array
+                        &amp;$keys, array &amp;$vals, string|null $caseFold)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        Checks if a given DN <code>$dn</code> is malformed. If
+                        <code>$keys</code> or <code>$keys</code> and <code>$vals</code> are
+                        given, these arrays will be filled with the appropriate DN keys and
+                        values.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>string implodeRdn(array $part, string|null
+                        $caseFold)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Returns a DN part in the form
+                        <code>$attribute=$value</code>
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>string implodeDn(array $dnArray,
+                        string|null $caseFold, string $separator)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        Implodes an array in the form delivered by
+                        <code>Zend_Ldap_Dn::explodeDn()</code> to a DN string.
+                        <code>$separator</code> defaults to <code>','</code> but some LDAP
+                        servers also understand <code>';'</code>. <code>$dnArray</code>
+                        must of type
+                    <programlisting language="php"><![CDATA[
+array(
+array("cn" => "name1", "uid" => "user"),
+array("cn" => "name2"),
+array("dc" => "example"),
+array("dc" => "org")
+)
+]]></programlisting>
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>boolean isChildOf(string|Zend_Ldap_Dn
+                        $childDn, string|Zend_Ldap_Dn $parentDn)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Checks if given <code>$childDn</code> is beneath
+                        <code>$parentDn</code> subtree.
+                    </entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect3>
+

+ 235 - 0
documentation/manual/de/module_specs/Zend_Ldap-API-Ldap-Filter.xml

@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 16639 -->
+<!-- Reviewed: no -->
+<sect3 id="zend.ldap.api.reference.zend-ldap-filter">
+    <title>Zend_Ldap_Filter</title>
+
+    <table id="zend.ldap.api.reference.zend-filter.table">
+        <title>Zend_Ldap_Filter API</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter equals(string $attr,
+                        string $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates an 'equals' filter:
+                        <code>(attr=value)</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter begins(string $attr,
+                        string $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates an 'begins with' filter:
+                        <code>(attr=value*)</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter ends(string $attr, string
+                        $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates an 'ends with' filter:
+                        <code>(attr=*value)</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter contains(string $attr,
+                        string $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates an 'contains' filter:
+                        <code>(attr=*value*)</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter greater(string $attr,
+                        string $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates an 'greater' filter:
+                        <code>(attr&gt;value)</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter greaterOrEqual(string
+                        $attr, string $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates an 'greater or equal' filter:
+                        <code>(attr&gt;=value)</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter less(string $attr, string
+                        $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates an 'less' filter:
+                        <code>(attr&lt;value)</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter lessOrEqual(string $attr,
+                        string $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates an 'less or equal' filter:
+                        <code>(attr&lt;=value)</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter approx(string $attr,
+                        string $value)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates an 'approx' filter:
+                        <code>(attr~=value)</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter any(string $attr)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>Creates an 'any' filter: <code>(attr=*)</code>.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter string(string
+                        $filter)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates a simple custom string filter. The user is
+                        responsible for all value-escaping as the filter is used as
+                        is.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter mask(string $mask, string
+                        $value,...)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Creates a filter from a string mask. All <code>$value</code>
+                        parameters will be escaped and substituted into <code>$mask</code>
+                        by using
+                        <ulink url="http://php.net/sprintf">
+                        <code>sprintf()</code></ulink>
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter
+                        andFilter(Zend_Ldap_Filter_Abstract $filter,...)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>Creates an 'and' filter from all arguments given.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Filter
+                        orFilter(Zend_Ldap_Filter_Abstract $filter,...)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>Creates an 'or' filter from all arguments given.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>__construct(string $attr, string $value, string
+                        $filtertype, string|null $prepend, string|null
+                        $append)</code>
+                    </entry>
+                    <entry>
+                        Constructor. Creates an arbitrary filter according to the
+                        parameters supplied. The resulting filter will be a concatenation
+                        <code>$attr . $filtertype . $prepend . $value . $append</code>.
+                        Normally this constructor is not needed as all filters can be
+                        created by using the apprpriate factory methods.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>string toString()</code></entry>
+                    <entry>Returns a string representation of the filter.</entry>
+                </row>
+                <row>
+                    <entry><code>string __toString()</code></entry>
+                    <entry>
+                        Returns a string representation of the filter. Proxies to
+                        <code>Zend_Ldap_Filter::toString()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Filter_Abstract negate()</code></entry>
+                    <entry>Negates the current filter.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Filter_Abstract
+                        addAnd(Zend_Ldap_Filter_Abstract $filter,...)</code>
+                    </entry>
+                    <entry>
+                        Creates an 'and' filter from the current filter and all
+                        filters passed in as the arguments.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Filter_Abstract
+                        addOr(Zend_Ldap_Filter_Abstract $filter,...)</code>
+                    </entry>
+                    <entry>
+                        Creates an 'or' filter from the current filter and all
+                        filters passed in as the arguments.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>string|array escapeValue(string|array
+                        $values)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Escapes the given <code>$values</code> according to RFC 2254
+                        so that they can be safely used in <acronym>LDAP</acronym> filters. If a single string
+                        is given, a string is returned - otherwise an array is returned.
+                        Any control characters with an ACII code &lt; 32 as well as the
+                        characters with special meaning in <acronym>LDAP</acronym> filters "*", "(", ")", and
+                        "\" (the backslash) are converted into the representation of a
+                        backslash followed by two hex digits representing the hexadecimal
+                        value of the character.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>string|array unescapeValue(string|array
+                        $values)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Undoes the conversion done by
+                        <code>Zend_Ldap_Filter::escapeValue()</code>. Converts any
+                        sequences of a backslash followed by two hex digits into the
+                        corresponding character.
+                    </entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect3>

+ 76 - 0
documentation/manual/de/module_specs/Zend_Ldap-API-Ldap-Ldif-Encoder.xml

@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 16639 -->
+<!-- Reviewed: no -->
+<sect3 id="zend.ldap.api.reference.zend-ldap-ldif-encoder">
+    <title>Zend_Ldif_Encoder</title>
+
+    <table id="zend.ldap.api.reference.zend-ldap-ldif-encoder.table">
+        <title>Zend_Ldif_Encoder API</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry>
+                        <emphasis><code>array decode(string $string)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        Decodes the string <code>$string</code> into an array of
+                        <acronym>LDIF</acronym> items.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>string encode(scalar|array|Zend_Ldap_Node
+                        $value, array $options)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Encode <code>$value</code> into a <acronym>LDIF</acronym> representation.
+                        <code>$options</code> is an array that may contain the following
+                        keys:
+                        <variablelist>
+                            <varlistentry>
+                                <term><code>'sort'</code></term>
+                                <listitem>
+                                    <para>
+                                        Sort the given attributes with <code>dn</code>
+                                        following <code>objectClass</code> and following all other
+                                        attributes sorted alphabetically. <code>true</code> by
+                                        default.
+                                    </para>
+                                </listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term><code>'version'</code></term>
+                                <listitem>
+                                    <para>
+                                        The <acronym>LDIF</acronym> format version. <code>1</code> by
+                                        default.
+                                    </para>
+                                </listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term><code>'wrap'</code></term>
+                                <listitem>
+                                <para>
+                                    The line-length. <code>78</code> by default to
+                                    conform to the <acronym>LDIF</acronym> specification.
+                                </para>
+                                </listitem>
+                            </varlistentry>
+                        </variablelist>
+                    </entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect3>
+

+ 581 - 0
documentation/manual/de/module_specs/Zend_Ldap-API-Ldap-Node-RootDse.xml

@@ -0,0 +1,581 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 16639 -->
+<!-- Reviewed: no -->
+<sect3 id="zend.ldap.api.reference.zend-ldap-node-rootdse">
+    <title>Zend_Ldap_Node_RootDse</title>
+
+    <para>The following methods are available on all vendor-specific subclasses.</para>
+
+    <para>
+        <code>Zend_Ldap_Node_RootDse</code> includes the magic propery accessors
+        <code>__get()</code> and <code>__isset()</code> to access the attributes by their
+        name. They proxy to <code>Zend_Ldap_Node_RootDse::getAttribute()</code> and
+        <code>Zend_Ldap_Node_RootDse::existsAttribute()</code> respectively.
+        <code>__set()</code> and <code>__unset()</code> are also implemented but they throw
+        a <code>BadMethodCallException</code> as modifications are not allowed on RootDSE
+        nodes. Furthermore the class implements <code>ArrayAccess</code> for
+        array-style-access to the attributes. <code>offsetSet()</code> and
+        <code>offsetUnset()</code> also throw a <code>BadMethodCallException</code> due ro
+        obvious reasons.
+    </para>
+
+    <table id="zend.ldap.api.reference.zend-ldap-node-rootdse.table">
+        <title>Zend_Ldap_Node_RootDse API</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><code>Zend_Ldap_Dn getDn()</code></entry>
+                    <entry>Gets the DN of the current node as a Zend_Ldap_Dn.</entry>
+                </row>
+                <row>
+                    <entry><code>string getDnString(string $caseFold)</code></entry>
+                    <entry>Gets the DN of the current node as a string.</entry>
+                </row>
+                <row>
+                    <entry><code>array getDnArray(string $caseFold)</code></entry>
+                    <entry>Gets the DN of the current node as an array.</entry>
+                </row>
+                <row>
+                    <entry><code>string getRdnString(string $caseFold)</code></entry>
+                    <entry>Gets the <acronym>RDN</acronym> of the current node as a string.</entry>
+                </row>
+                <row>
+                    <entry><code>array getRdnArray(string $caseFold)</code></entry>
+                    <entry>Gets the <acronym>RDN</acronym> of the current node as an array.</entry>
+                </row>
+                <row>
+                    <entry><code>array getObjectClass()</code></entry>
+                    <entry>Returns the objectClass of the node.</entry>
+                </row>
+                <row>
+                    <entry><code>string toString()</code></entry>
+                    <entry>
+                        Returns the DN of the current node - proxies to
+                        <code>Zend_Ldap_Dn::getDnString()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>string __toString()</code></entry>
+                    <entry>
+                        Casts to string representation - proxies to
+                        <code>Zend_Ldap_Dn::toString()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array toArray(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Returns an array representation of the current node. If
+                        <code>$includeSystemAttributes</code> is <code>false</code>
+                        (defaults to <code>true</code>) the system specific attributes are
+                        stripped from the array. Unlike
+                        <code>Zend_Ldap_Node_RootDse::getAttributes()</code> the resulting
+                        array contains the DN with key <code>'dn'</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>string toJson(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Returns a <acronym>JSON</acronym> representation of the current node using
+                        <code>Zend_Ldap_Node_RootDse::toArray()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array getData(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Returns the node's attributes. The array contains all
+                        attributes in its internal format (no conversion).
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>boolean existsAttribute(string $name, boolean
+                        $emptyExists)</code>
+                    </entry>
+                    <entry>
+                        Checks whether a given attribute exists. If
+                        <code>$emptyExists</code> is <code>false</code> empty attributes
+                        (containing only array()) are treated as non-existent returning
+                        <code>false</code>. If <code>$emptyExists</code> is true empty
+                        attributes are treated as existent returning <code>true</code>. In
+                        this case teh method returns <code>false</code> only if the
+                        attribute name is missing in the key-collection.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>boolean attributeHasValue(string $name, mixed|array
+                        $value)</code>
+                    </entry>
+                    <entry>
+                        Checks if the given value(s) exist in the attribute. The
+                        method returns <code>true</code> only if all values in
+                        <code>$value</code> are present in the attribute. Comparison is
+                        done strictly (respecting the data type).
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>integer count()</code></entry>
+                    <entry>
+                        Returns the number of attributes in the node. Implements
+                        Countable.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>mixed getAttribute(string $name, integer|null
+                        $index)</code>
+                    </entry>
+                    <entry>
+                        Gets a <acronym>LDAP</acronym> attribute. Data conversion is applied using
+                        <code>Zend_Ldap_Attribute::getAttribute()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array getAttributes(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Gets all attributes of node. If
+                        <code>$includeSystemAttributes</code> is <code>false</code>
+                        (defaults to <code>true</code>) the system specific attributes are
+                        stripped from the array.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array|integer getDateTimeAttribute(string $name,
+                        integer|null $index)</code>
+                    </entry>
+                    <entry>
+                        Gets a <acronym>LDAP</acronym> date/time attribute. Data conversion is applied
+                        using
+                        <code>Zend_Ldap_Attribute::getDateTimeAttribute()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node_RootDse reload(Zend_Ldap
+                        $ldap)</code>
+                    </entry>
+                    <entry>
+                        Reloads the current node's attributes from the given LDAP
+                        server.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Node_RootDse create(Zend_Ldap
+                        $ldap)</code> </emphasis>
+                    </entry>
+                    <entry>Factory method to create the RootDSE.</entry>
+                </row>
+                <row>
+                    <entry><code>array getNamingContexts()</code></entry>
+                    <entry>Gets the namingContexts.</entry>
+                </row>
+                <row>
+                    <entry><code>string|null getSubschemaSubentry()</code></entry>
+                    <entry>Gets the subschemaSubentry.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>boolean supportsVersion(string|int|array
+                        $versions)</code>
+                    </entry>
+                    <entry>Determines if the <acronym>LDAP</acronym> version is supported.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>boolean supportsSaslMechanism(string|array
+                        $mechlist)</code>
+                    </entry>
+                    <entry>Determines if the sasl mechanism is supported.</entry>
+                </row>
+                <row>
+                    <entry><code>integer getServerType()</code></entry>
+                    <entry>
+                        Gets the server type. Returns
+                        <variablelist>
+                            <varlistentry>
+                                <term>
+                                <code>Zend_Ldap_Node_RootDse::SERVER_TYPE_GENERIC</code></term>
+                                <listitem><para>for unknown <acronym>LDAP</acronym> servers</para></listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term>
+                                <code>Zend_Ldap_Node_RootDse::SERVER_TYPE_OPENLDAP</code></term>
+                                <listitem><para>for OpenLDAP servers</para></listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term>
+                                <code>Zend_Ldap_Node_RootDse::SERVER_TYPE_ACTIVEDIRECTORY</code></term>
+                                <listitem><para>for Microsoft ActiveDirectory servers</para></listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term>
+                                <code>Zend_Ldap_Node_RootDse::SERVER_TYPE_EDIRECTORY</code></term>
+                                <listitem><para>For Novell eDirectory servers</para></listitem>
+                            </varlistentry>
+                        </variablelist>
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Dn getSchemaDn()</code></entry>
+                    <entry>Returns the schema DN.</entry>
+                </row>
+            </tbody>
+
+        </tgroup>
+
+    </table>
+
+    <sect4 id="zend.ldap.api.reference.zend-ldap-node-rootdse.openldap">
+        <title>OpenLDAP</title>
+
+        <para>
+            Additionally the common methods above apply to instances of
+            <code>Zend_Ldap_Node_RootDse_OpenLdap</code>.
+        </para>
+
+        <note>
+            <para>
+                Refer to
+                <ulink url="http://www.zytrax.com/books/ldap/ch3/#operational">LDAP
+                Operational Attributes and Objects</ulink>for information on the attributes
+                of OpenLDAP RootDSE.
+            </para>
+        </note>
+
+        <table id="zend.ldap.api.reference.zend-ldap-node-rootdse.openldap.table">
+            <title>Zend_Ldap_Node_RootDse_OpenLdap API</title>
+
+            <tgroup cols="2">
+                <thead>
+                    <row>
+                        <entry>Method</entry>
+                        <entry>Description</entry>
+                    </row>
+                </thead>
+                <tbody>
+                    <row>
+                        <entry><code>integer getServerType()</code></entry>
+                        <entry>
+                            Gets the server type. Returns
+                            <code>Zend_Ldap_Node_RootDse::SERVER_TYPE_OPENLDAP</code>
+                        </entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getConfigContext()</code></entry>
+                        <entry>Gets the configContext.</entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getMonitorContext()</code></entry>
+                        <entry>Gets the monitorContext.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>boolean supportsControl(string|array
+                            $oids)</code>
+                        </entry>
+                        <entry>Determines if the control is supported.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>boolean supportsExtension(string|array
+                            $oids)</code>
+                        </entry>
+                        <entry>Determines if the extension is supported.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>boolean supportsFeature(string|array
+                            $oids)</code>
+                        </entry>
+                        <entry>Determines if the feature is supported.</entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </table>
+    </sect4>
+
+    <sect4 id="zend.ldap.api.reference.zend-ldap-node-rootdse.activedirectory">
+        <title>ActiveDirectory</title>
+
+        <para>
+            Additionally the common methods above apply to instances of
+            <code>Zend_Ldap_Node_RootDse_ActiveDirectory</code>.
+        </para>
+
+        <note>
+            <para>
+                Refer to
+                <ulink url="http://msdn.microsoft.com/en-us/library/ms684291(VS.85).aspx">
+                RootDSE</ulink>for information on the attributes of Microsoft
+                ActiveDirectory RootDSE.
+            </para>
+        </note>
+
+        <table id="zend.ldap.api.reference.zend-ldap-node-rootdse.activedirectory.table">
+            <title>Zend_Ldap_Node_RootDse_ActiveDirectory API</title>
+
+            <tgroup cols="2">
+                <thead>
+                    <row>
+                        <entry>Method</entry>
+                        <entry>Description</entry>
+                    </row>
+                </thead>
+                <tbody>
+                    <row>
+                        <entry><code>integer getServerType()</code></entry>
+                        <entry>
+                            Gets the server type. Returns
+                            <code>Zend_Ldap_Node_RootDse::SERVER_TYPE_ACTIVEDIRECTORY</code>
+                        </entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getConfigurationNamingContext()</code>
+                        </entry>
+                        <entry>Gets the configurationNamingContext.</entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getCurrentTime()</code></entry>
+                        <entry>Gets the currentTime.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getDefaultNamingContext()</code>
+                        </entry>
+                        <entry>Gets the defaultNamingContext.</entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getDnsHostName()</code></entry>
+                        <entry>Gets the dnsHostName.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getDomainControllerFunctionality()</code>
+                        </entry>
+                        <entry>Gets the domainControllerFunctionality.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getDomainFunctionality()</code>
+                        </entry>
+                        <entry>Gets the domainFunctionality.</entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getDsServiceName()</code></entry>
+                        <entry>Gets the dsServiceName.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getForestFunctionality()</code>
+                        </entry>
+                        <entry>Gets the forestFunctionality.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getHighestCommittedUSN()</code>
+                        </entry>
+                        <entry>Gets the highestCommittedUSN.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getIsGlobalCatalogReady()</code>
+                        </entry>
+                        <entry>Gets the isGlobalCatalogReady.</entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getIsSynchronized()</code></entry>
+                        <entry>Gets the isSynchronized.</entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getLdapServiceName()</code></entry>
+                        <entry>Gets the ldapServiceName.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getRootDomainNamingContext()</code>
+                        </entry>
+                        <entry>Gets the rootDomainNamingContext.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getSchemaNamingContext()</code>
+                        </entry>
+                        <entry>Gets the schemaNamingContext.</entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getServerName()</code></entry>
+                        <entry>Gets the serverName.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>boolean supportsCapability(string|array
+                            $oids)</code>
+                        </entry>
+                        <entry>Determines if the capability is supported.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>boolean supportsControl(string|array
+                            $oids)</code>
+                        </entry>
+                        <entry>Determines if the control is supported.</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>boolean supportsPolicy(string|array
+                            $policies)</code>
+                        </entry>
+                        <entry>Determines if the version is supported.</entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </table>
+    </sect4>
+
+    <sect4 id="zend.ldap.api.reference.zend-ldap-node-rootdse.edirectory">
+        <title>eDirectory</title>
+
+        <para>
+            Additionally the common methods above apply to instances of
+            <code>Zend_Ldap_Node_RootDse_eDirectory</code>.
+        </para>
+
+        <note>
+            <para>
+                Refer to
+                <ulink url="http://www.novell.com/documentation/edir88/edir88/index.html?page=/documentation/edir88/edir88/data/ah59jqq.html">
+                Getting Information about the <acronym>LDAP</acronym> Server</ulink>for information on the
+                attributes of Novell eDirectory RootDSE.
+            </para>
+        </note>
+
+        <table id="zend.ldap.api.reference.zend-ldap-node-rootdse.edirectory.table">
+            <title>Zend_Ldap_Node_RootDse_eDirectory API</title>
+
+            <tgroup cols="2">
+                <thead>
+                    <row>
+                        <entry>Method</entry>
+                        <entry>Description</entry>
+                    </row>
+                </thead>
+                <tbody>
+                    <row>
+                        <entry><code>integer getServerType()</code></entry>
+                        <entry>
+                            Gets the server type. Returns
+                            <code>Zend_Ldap_Node_RootDse::SERVER_TYPE_EDIRECTORY</code>
+                        </entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>boolean supportsExtension(string|array
+                            $oids)</code>
+                        </entry>
+                        <entry>Determines if the extension is supported.</entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getVendorName()</code></entry>
+                        <entry>Gets the vendorName.</entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getVendorVersion()</code></entry>
+                        <entry>Gets the vendorVersion.</entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getDsaName()</code></entry>
+                        <entry>Gets the dsaName.</entry>
+                    </row>
+                    <row>
+                        <entry><code>string|null getStatisticsErrors()</code></entry>
+                        <entry>Gets the server statistics "errors".</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getStatisticsSecurityErrors()</code>
+                        </entry>
+                        <entry>Gets the server statistics "securityErrors".</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getStatisticsChainings()</code>
+                        </entry>
+                        <entry>Gets the server statistics "chainings".</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getStatisticsReferralsReturned()</code>
+                        </entry>
+                        <entry>Gets the server statistics "referralsReturned".</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getStatisticsExtendedOps()</code>
+                        </entry>
+                        <entry>Gets the server statistics "extendedOps".</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getStatisticsAbandonOps()</code>
+                        </entry>
+                        <entry>Gets the server statistics "abandonOps".</entry>
+                    </row>
+                    <row>
+                        <entry>
+                            <code>string|null
+                            getStatisticsWholeSubtreeSearchOps()</code>
+                        </entry>
+                        <entry>
+                            Gets the server statistics
+                            "wholeSubtreeSearchOps".
+                        </entry>
+                    </row>
+                </tbody>
+
+            </tgroup>
+
+        </table>
+
+    </sect4>
+
+</sect3>
+

+ 506 - 0
documentation/manual/de/module_specs/Zend_Ldap-API-Ldap-Node-Schema.xml

@@ -0,0 +1,506 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 16639 -->
+<!-- Reviewed: no -->
+<sect3 id="zend.ldap.api.reference.zend-ldap-node-schema">
+    <title>Zend_Ldap_Node_Schema</title>
+
+    <para>The following methods are available on all vendor-specific subclasses.</para>
+
+    <para>
+        <code>Zend_Ldap_Node_Schema</code> includes the magic propery accessors
+        <code>__get()</code> and <code>__isset()</code> to access the attributes by their
+        name. They proxy to <code>Zend_Ldap_Node_Schema::getAttribute()</code> and
+        <code>Zend_Ldap_Node_Schema::existsAttribute()</code> respectively.
+        <code>__set()</code> and <code>__unset()</code> are also implemented but they throw
+        a <code>BadMethodCallException</code> as modifications are not allowed on RootDSE
+        nodes. Furthermore the class implements <code>ArrayAccess</code> for
+        array-style-access to the attributes. <code>offsetSet()</code> and
+        <code>offsetUnset()</code> also throw a <code>BadMethodCallException</code> due ro
+        obvious reasons.
+    </para>
+
+    <table id="zend.ldap.api.reference.zend-ldap-node-schema.table">
+        <title>Zend_Ldap_Node_Schema API</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><code>Zend_Ldap_Dn getDn()</code></entry>
+                    <entry>Gets the DN of the current node as a Zend_Ldap_Dn.</entry>
+                </row>
+                <row>
+                    <entry><code>string getDnString(string $caseFold)</code></entry>
+                    <entry>Gets the DN of the current node as a string.</entry>
+                </row>
+                <row>
+                    <entry><code>array getDnArray(string $caseFold)</code></entry>
+                    <entry>Gets the DN of the current node as an array.</entry>
+                </row>
+                <row>
+                    <entry><code>string getRdnString(string $caseFold)</code></entry>
+                    <entry>Gets the <acronym>RDN</acronym> of the current node as a string.</entry>
+                </row>
+                <row>
+                    <entry><code>array getRdnArray(string $caseFold)</code></entry>
+                    <entry>Gets the <acronym>RDN</acronym> of the current node as an array.</entry>
+                </row>
+                <row>
+                    <entry><code>array getObjectClass()</code></entry>
+                    <entry>Returns the objectClass of the node.</entry>
+                </row>
+                <row>
+                    <entry><code>string toString()</code></entry>
+                    <entry>
+                        Returns the DN of the current node - proxies to
+                        <code>Zend_Ldap_Dn::getDnString()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>string __toString()</code></entry>
+                    <entry>
+                        Casts to string representation - proxies to
+                        <code>Zend_Ldap_Dn::toString()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array toArray(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Returns an array representation of the current node. If
+                        <code>$includeSystemAttributes</code> is <code>false</code>
+                        (defaults to <code>true</code>) the system specific attributes are
+                        stripped from the array. Unlike
+                        <code>Zend_Ldap_Node_Schema::getAttributes()</code> the resulting
+                        array contains the DN with key <code>'dn'</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>string toJson(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Returns a <acronym>JSON</acronym> representation of the current node using
+                        <code>Zend_Ldap_Node_Schema::toArray()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array getData(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Returns the node's attributes. The array contains all
+                        attributes in its internal format (no conversion).
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>boolean existsAttribute(string $name, boolean
+                        $emptyExists)</code>
+                    </entry>
+                    <entry>
+                        Checks whether a given attribute exists. If
+                        <code>$emptyExists</code> is <code>false</code> empty attributes
+                        (containing only array()) are treated as non-existent returning
+                        <code>false</code>. If <code>$emptyExists</code> is true empty
+                        attributes are treated as existent returning <code>true</code>. In
+                        this case teh method returns <code>false</code> only if the
+                        attribute name is missing in the key-collection.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>boolean attributeHasValue(string $name, mixed|array
+                        $value)</code>
+                    </entry>
+                    <entry>
+                        Checks if the given value(s) exist in the attribute. The
+                        method returns <code>true</code> only if all values in
+                        <code>$value</code> are present in the attribute. Comparison is
+                        done strictly (respecting the data type).
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>integer count()</code></entry>
+                    <entry>
+                        Returns the number of attributes in the node. Implements
+                        Countable.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>mixed getAttribute(string $name, integer|null
+                        $index)</code>
+                    </entry>
+                    <entry>
+                        Gets a <acronym>LDAP</acronym> attribute. Data conversion is applied using
+                        <code>Zend_Ldap_Attribute::getAttribute()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array getAttributes(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Gets all attributes of node. If
+                        <code>$includeSystemAttributes</code> is <code>false</code>
+                        (defaults to <code>true</code>) the system specific attributes are
+                        stripped from the array.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array|integer getDateTimeAttribute(string $name,
+                        integer|null $index)</code>
+                    </entry>
+                    <entry>
+                        Gets a <acronym>LDAP</acronym> date/time attribute. Data conversion is applied
+                        using
+                        <code>Zend_Ldap_Attribute::getDateTimeAttribute()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node_Schema reload(Zend_Ldap
+                        $ldap)</code>
+                    </entry>
+                    <entry>
+                        Reloads the current node's attributes from the given LDAP
+                        server.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Node_Schema create(Zend_Ldap
+                        $ldap)</code> </emphasis>
+                    </entry>
+                    <entry>Factory method to create the Schema node.</entry>
+                </row>
+                <row>
+                    <entry><code>array getAttributeTypes()</code></entry>
+                    <entry>Gets the attribute types as an array of <code/>.</entry>
+                </row>
+                <row>
+                    <entry><code>array getObjectClasses()</code></entry>
+                    <entry>
+                        Gets the object classes as an array of
+                        <code>Zend_Ldap_Node_Schema_ObjectClass_Interface</code>.
+                    </entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+
+    <table id="zend.ldap.api.reference.zend-ldap-node-schema.attributetype-interface.table">
+        <title>Zend_Ldap_Node_Schema_AttributeType_Interface API</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><code>string getName()</code></entry>
+                    <entry>Gets the attribute name.</entry>
+                </row>
+                <row>
+                    <entry><code>string getOid()</code></entry>
+                    <entry>Gets the attribute OID.</entry>
+                </row>
+                <row>
+                    <entry><code>string getSyntax()</code></entry>
+                    <entry>Gets the attribute syntax.</entry>
+                </row>
+                <row>
+                    <entry><code>int|null getMaxLength()</code></entry>
+                    <entry>Gets the attribute maximum length.</entry>
+                </row>
+                <row>
+                    <entry><code>boolean isSingleValued()</code></entry>
+                    <entry>Returns if the attribute is single-valued.</entry>
+                </row>
+                <row>
+                    <entry><code>string getDescription()</code></entry>
+                    <entry>Gets the attribute description</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+
+    <table id="zend.ldap.api.reference.zend-ldap-node-schema.objectclass-interface.table">
+        <title>Zend_Ldap_Node_Schema_ObjectClass_Interface API</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><code>string getName()</code></entry>
+                    <entry>Returns the objectClass name.</entry>
+                </row>
+                <row>
+                    <entry><code>string getOid()</code></entry>
+                    <entry>Returns the objectClass OID.</entry>
+                </row>
+                <row>
+                    <entry><code>array getMustContain()</code></entry>
+                    <entry>
+                        Returns the attributes that this objectClass must
+                        contain.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>array getMayContain()</code></entry>
+                    <entry>
+                        Returns the attributes that this objectClass may
+                        contain.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>string getDescription()</code></entry>
+                    <entry>Returns the attribute description</entry>
+                </row>
+                <row>
+                    <entry><code>integer getType()</code></entry>
+                    <entry>
+                        Returns the objectClass type. The method returns one of the
+                        following values:
+                        <variablelist>
+                            <varlistentry>
+                                <term>
+                                <code>Zend_Ldap_Node_Schema::OBJECTCLASS_TYPE_UNKNOWN</code></term>
+                                <listitem><para>for unknown class types</para></listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term>
+                                <code>Zend_Ldap_Node_Schema::OBJECTCLASS_TYPE_STRUCTURAL</code></term>
+                                <listitem><para>for structural classes</para></listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term>
+                                <code>Zend_Ldap_Node_Schema::OBJECTCLASS_TYPE_ABSTRACT</code></term>
+                                <listitem><para>for abstract classes</para></listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term>
+                                <code>Zend_Ldap_Node_Schema::OBJECTCLASS_TYPE_AUXILIARY</code></term>
+                                <listitem><para>for auxiliary classes</para></listitem>
+                            </varlistentry>
+                        </variablelist>
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>array getParentClasses()</code></entry>
+                    <entry>
+                        Returns the parent objectClasses of this class. This
+                        includes structural, abstract and auxiliary objectClasses.
+                    </entry>
+                </row>
+            </tbody>
+
+        </tgroup>
+
+    </table>
+
+    <para>
+        Classes representing attribute types and object classes extend
+        <code>Zend_Ldap_Node_Schema_Item</code> which provides some core methods to access
+        arbitrary attributes on the underlying <acronym>LDAP</acronym> node.
+        <code>Zend_Ldap_Node_Schema_Item</code> includes the magic propery accessors
+        <code>__get()</code> and <code>__isset()</code> to access the attributes by their
+        name. Furthermore the class implements <code>ArrayAccess</code> for
+        array-style-access to the attributes. <code>offsetSet()</code> and
+        <code>offsetUnset()</code> throw a <code>BadMethodCallException</code> as
+        modifications are not allowed on schema information nodes.
+    </para>
+
+    <table id="zend.ldap.api.reference.zend-ldap-node-schema.schema-item.table">
+        <title>Zend_Ldap_Node_Schema_Item API</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><code>array getData()</code></entry>
+                    <entry>
+                        Gets all the underlying data from the schema information
+                        node.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>integer count()</code></entry>
+                    <entry>
+                        Returns the number of attributes in this schema information
+                        node. Implements Countable.
+                    </entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+
+    <sect4 id="zend.ldap.api.reference.zend-ldap-node-schema.openldap">
+        <title>OpenLDAP</title>
+
+        <para>
+            Additionally the common methods above apply to instances of
+            <code>Zend_Ldap_Node_Schema_OpenLDAP</code>.
+        </para>
+
+        <table id="zend.ldap.api.reference.zend-ldap-node-schema.openldap.table">
+            <title>Zend_Ldap_Node_Schema_OpenLDAP API</title>
+
+            <tgroup cols="2">
+                <thead>
+                    <row>
+                        <entry>Method</entry>
+                        <entry>Description</entry>
+                    </row>
+                </thead>
+                <tbody>
+                    <row>
+                        <entry><code>array getLdapSyntaxes()</code></entry>
+                        <entry>Gets the <acronym>LDAP</acronym> syntaxes.</entry>
+                    </row>
+                    <row>
+                        <entry><code>array getMatchingRules()</code></entry>
+                        <entry>Gets the matching rules.</entry>
+                    </row>
+                    <row>
+                        <entry><code>array getMatchingRuleUse()</code></entry>
+                        <entry>Gets the matching rule use.</entry>
+                    </row>
+                </tbody>
+
+            </tgroup>
+
+        </table>
+
+        <table
+            id="zend.ldap.api.reference.zend-ldap-node-schema.openldap.attributetype-interface.table">
+            <title>Zend_Ldap_Node_Schema_AttributeType_OpenLDAP API</title>
+
+            <tgroup cols="2">
+                <thead>
+                    <row>
+                        <entry>Method</entry>
+                        <entry>Description</entry>
+                    </row>
+                </thead>
+                <tbody>
+                    <row>
+                        <entry>
+                            <code>Zend_Ldap_Node_Schema_AttributeType_OpenLdap|null
+                            getParent()</code>
+                        </entry>
+                        <entry>
+                            Returns the parent attribute type in the inhertitance
+                            tree if one exists.
+                        </entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </table>
+
+        <table
+            id="zend.ldap.api.reference.zend-ldap-node-schema.openldap.objectclass-interface.table">
+            <title>Zend_Ldap_Node_Schema_ObjectClass_OpenLDAP API</title>
+
+            <tgroup cols="2">
+                <thead>
+                    <row>
+                        <entry>Method</entry>
+                        <entry>Description</entry>
+                    </row>
+                </thead>
+                <tbody>
+                    <row>
+                        <entry><code>array getParents()</code></entry>
+                        <entry>
+                            Returns the parent object classes in the inhertitance
+                            tree if one exists. The returned array is an array of
+                            <code>Zend_Ldap_Node_Schema_ObjectClass_OpenLdap</code>.
+                        </entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </table>
+    </sect4>
+
+    <sect4 id="zend.ldap.api.reference.zend-ldap-node-schema.activedirectory">
+        <title>ActiveDirectory</title>
+
+        <note>
+            <title>Schema browsing on ActiveDirectory servers</title>
+            <para>
+                Due to restrictions on Microsoft ActiveDirectory servers regarding
+                the number of entries returned by generic search routines and due to the
+                structure of the ActiveDirectory schema repository, schema browsing is
+                currently <emphasis>not</emphasis> available for Microsoft ActiveDirectory
+                servers.
+            </para>
+        </note>
+
+        <para>
+            <code>Zend_Ldap_Node_Schema_ActiveDirectory</code> does not provide any
+            additional methods.
+        </para>
+
+        <table
+            id="zend.ldap.api.reference.zend-ldap-node-schema.activedirectory.attributetype-interface.table">
+            <title>Zend_Ldap_Node_Schema_AttributeType_ActiveDirectory API</title>
+
+            <tgroup cols="1">
+                <tbody>
+                    <row>
+                        <entry>
+                            <code>Zend_Ldap_Node_Schema_AttributeType_ActiveDirectory</code>
+                            does not provide any additional methods.
+                        </entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </table>
+
+        <table
+            id="zend.ldap.api.reference.zend-ldap-node-schema.activedirectory.objectclass-interface.table">
+            <title>Zend_Ldap_Node_Schema_ObjectClass_ActiveDirectory API</title>
+
+            <tgroup cols="1">
+                <tbody>
+                    <row>
+                        <entry>
+                            <code>Zend_Ldap_Node_Schema_ObjectClass_ActiveDirectory</code>
+                            does not provide any additional methods.
+                        </entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </table>
+    </sect4>
+</sect3>
+

+ 527 - 0
documentation/manual/de/module_specs/Zend_Ldap-API-Ldap-Node.xml

@@ -0,0 +1,527 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 16639 -->
+<!-- Reviewed: no -->
+<sect3 id="zend.ldap.api.reference.zend-ldap-node">
+    <title>Zend_Ldap_Node</title>
+
+    <para>
+        <code>Zend_Ldap_Node</code> includes the magic propery accessors
+        <code>__set()</code>, <code>__get()</code>, <code>__unset()</code> and
+        <code>__isset()</code> to access the attributes by their name. They proxy to
+        <code>Zend_Ldap_Node::setAttribute()</code>,
+        <code>Zend_Ldap_Node::getAttribute()</code>,
+        <code>Zend_Ldap_Node::deleteAttribute()</code> and
+        <code>Zend_Ldap_Node::existsAttribute()</code> respectively. Furthermore the class
+        implements <code>ArrayAccess</code> for array-style-access to the attributes.
+        <code>Zend_Ldap_Node</code> also implements <code>Iterator</code> and
+        <code>RecursiveIterato</code> to allow for recursive tree-traversal.
+    </para>
+
+    <table id="zend.ldap.api.reference.zend-ldap-node.table">
+        <title>Zend_Ldap_Node API</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry><code>Zend_Ldap getLdap()</code></entry>
+                    <entry>
+                        Returns the current <acronym>LDAP</acronym> connection. Throws
+                        <code>Zend_Ldap_Exception</code> if current node is in detached
+                        mode (not connected to a <classname>Zend_Ldap</classname> instance).
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node attachLdap(Zend_Ldap
+                        $ldap)</code>
+                    </entry>
+                    <entry>
+                        Attach the current node to the <code>$ldap</code>
+                        <classname>Zend_Ldap</classname> instance. Throws
+                        <code>Zend_Ldap_Exception</code> if <code>$ldap</code> is not
+                        responsible for the current node (node is not a child of the
+                        <code>$ldap</code> base DN).
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Node detachLdap()</code></entry>
+                    <entry>Detach node from <acronym>LDAP</acronym> connection.</entry>
+                </row>
+                <row>
+                    <entry><code>boolean isAttached()</code></entry>
+                    <entry>
+                        Checks if the current node is attached to a LDAP
+                        connection.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Node
+                        create(string|array|Zend_Ldap_Dn $dn, array $objectClass)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        Factory method to create a new detached
+                        <code>Zend_Ldap_Node</code> for a given DN. Creates a new
+                        <code>Zend_Ldap_Node</code> with the DN <code>$dn</code> and the
+                        object-classes <code>$objectClass</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Node
+                        fromLdap(string|array|Zend_Ldap_Dn $dn, Zend_Ldap $ldap)</code>
+                        </emphasis>
+                    </entry>
+                    <entry>
+                        Factory method to create an attached
+                        <code>Zend_Ldap_Node</code> for a given DN. Loads an existing
+                        <code>Zend_Ldap_Node</code> with the DN <code>$dn</code> from the
+                        <acronym>LDAP</acronym> connection <code>$ldap</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>Zend_Ldap_Node fromArray((array $data,
+                        boolean $fromDataSource)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Factory method to create a detached
+                        <code>Zend_Ldap_Node</code> from array data <code>$data</code>. If
+                        <code>$fromDataSource</code> is <code>true</code>
+                        (<code>false</code> by default), the data is treated as beeing
+                        present in a <acronym>LDAP</acronym> tree.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>boolean isNew()</code></entry>
+                    <entry>
+                        Tells if the node is consiedered as new (not present on the
+                        server). Please note, that this doesn't tell if the node is really
+                        present on the server. Use <code>Zend_Ldap_Node::exists()</code> to
+                        see if a node is already there.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>boolean willBeDeleted()</code></entry>
+                    <entry>
+                        Tells if this node is going to be deleted once
+                        <code>Zend_Ldap_Node::update()</code> is called.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Node delete()</code></entry>
+                    <entry>
+                        Marks this node as to be deleted. Node will be deleted on
+                        calling <code>Zend_Ldap_Node::update()</code> if
+                        <code>Zend_Ldap_Node::willBeDeleted()</code> is true.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>boolean willBeMoved()</code></entry>
+                    <entry>
+                        Tells if this node is going to be moved once
+                        <code>Zend_Ldap_Node::update()</code> is called.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Node update(Zend_Ldap $ldap)</code></entry>
+                    <entry>
+                        Sends all pending changes to the <acronym>LDAP</acronym> server. If
+                        <code>$ldap</code> is omitted the current <acronym>LDAP</acronym> connection is used.
+                        If the current node is detached from a <acronym>LDAP</acronym> connection a
+                        <code>Zend_Ldap_Exception</code> will be thrown. If
+                        <code>$ldap</code> is provided the current node will be attached to
+                        the given <acronym>LDAP</acronym> connection.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Dn getCurrentDn()</code></entry>
+                    <entry>
+                        Gets the current DN of the current node as a Zend_Ldap_Dn.
+                        This does not reflect possible rename-operations.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Dn getDn()</code></entry>
+                    <entry>
+                        Gets the original DN of the current node as a Zend_Ldap_Dn.
+                        This reflects possible rename-operations.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>string getDnString(string $caseFold)</code></entry>
+                    <entry>
+                        Gets the original DN of the current node as a string. This
+                        reflects possible rename-operations.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>array getDnArray(string $caseFold)</code></entry>
+                    <entry>
+                        Gets the original DN of the current node as an array. This
+                        reflects possible rename-operations.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>string getRdnString(string $caseFold)</code></entry>
+                    <entry>
+                        Gets the <acronym>RDN</acronym> of the current node as a string. This reflects
+                        possible rename-operations.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>array getRdnArray(string $caseFold)</code></entry>
+                    <entry>
+                        Gets the <acronym>RDN</acronym> of the current node as an array. This reflects
+                        possible rename-operations.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node setDn(Zend_Ldap_Dn|string|array
+                        $newDn)</code>
+                    </entry>
+                    <entry>
+                        Sets the new DN for this node effectively moving the node
+                        once <code>Zend_Ldap_Node::update()</code> is called.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node move(Zend_Ldap_Dn|string|array
+                        $newDn)</code>
+                    </entry>
+                    <entry>
+                        This is an alias for
+                        <code>Zend_Ldap_Node::setDn()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node rename(Zend_Ldap_Dn|string|array
+                        $newDn)</code>
+                    </entry>
+                    <entry>
+                        This is an alias for
+                        <code>Zend_Ldap_Node::setDn()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>array getObjectClass()</code></entry>
+                    <entry>Returns the objectClass of the node.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node setObjectClass(array|string
+                        $value)</code>
+                    </entry>
+                    <entry>Sets the objectClass attribute.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node appendObjectClass(array|string
+                        $value)</code>
+                    </entry>
+                    <entry>Appends to the objectClass attribute.</entry>
+                </row>
+                <row>
+                    <entry><code>string toLdif(array $options)</code></entry>
+                    <entry>
+                        Returns a <acronym>LDIF</acronym> representation of the current node.
+                        <code>$options</code> will be passed to the
+                        <code>Zend_Ldap_Ldif_Encoder</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>array getChangedData()</code></entry>
+                    <entry>
+                        Gets changed node data. The array contains all changed
+                        attributes. This format can be used in
+                        <code>Zend_Ldap::add()</code> and
+                        <code>Zend_Ldap::update()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>array getChanges()</code></entry>
+                    <entry>Returns all changes made.</entry>
+                </row>
+                <row>
+                    <entry><code>string toString()</code></entry>
+                    <entry>
+                        Returns the DN of the current node - proxies to
+                        <code>Zend_Ldap_Dn::getDnString()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>string __toString()</code></entry>
+                    <entry>
+                        Casts to string representation - proxies to
+                        <code>Zend_Ldap_Dn::toString()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array toArray(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Returns an array representation of the current node. If
+                        <code>$includeSystemAttributes</code> is <code>false</code>
+                        (defaults to <code>true</code>) the system specific attributes are
+                        stripped from the array. Unlike
+                        <code>Zend_Ldap_Node::getAttributes()</code> the resulting array
+                        contains the DN with key <code>'dn'</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>string toJson(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Returns a <acronym>JSON</acronym> representation of the current node using
+                        <code>Zend_Ldap_Node::toArray()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array getData(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Returns the node's attributes. The array contains all
+                        attributes in its internal format (no conversion).
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>boolean existsAttribute(string $name, boolean
+                        $emptyExists)</code>
+                    </entry>
+                    <entry>
+                        Checks whether a given attribute exists. If
+                        <code>$emptyExists</code> is <code>false</code> empty attributes
+                        (containing only array()) are treated as non-existent returning
+                        <code>false</code>. If <code>$emptyExists</code> is true empty
+                        attributes are treated as existent returning <code>true</code>. In
+                        this case teh method returns <code>false</code> only if the
+                        attribute name is missing in the key-collection.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>boolean attributeHasValue(string $name, mixed|array
+                        $value)</code>
+                    </entry>
+                    <entry>
+                        Checks if the given value(s) exist in the attribute. The
+                        method returns <code>true</code> only if all values in
+                        <code>$value</code> are present in the attribute. Comparison is
+                        done strictly (respecting the data type).
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>integer count()</code></entry>
+                    <entry>
+                        Returns the number of attributes in the node. Implements
+                        Countable.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>mixed getAttribute(string $name, integer|null
+                        $index)</code>
+                    </entry>
+                    <entry>
+                        Gets a <acronym>LDAP</acronym> attribute. Data conversion is applied using
+                        <code>Zend_Ldap_Attribute::getAttribute()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array getAttributes(boolean
+                        $includeSystemAttributes)</code>
+                    </entry>
+                    <entry>
+                        Gets all attributes of node. If
+                        <code>$includeSystemAttributes</code> is <code>false</code>
+                        (defaults to <code>true</code>) the system specific attributes are
+                        stripped from the array.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node setAttribute(string $name, mixed
+                        $value)</code>
+                    </entry>
+                    <entry>
+                        Sets a <acronym>LDAP</acronym> attribute. Data conversion is applied using
+                        <code>Zend_Ldap_Attribute::setAttribute()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node appendToAttribute(string $name, mixed
+                        $value)</code>
+                    </entry>
+                    <entry>
+                        Appends to a <acronym>LDAP</acronym> attribute. Data conversion is applied
+                        using <code>Zend_Ldap_Attribute::setAttribute()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array|integer getDateTimeAttribute(string $name,
+                        integer|null $index)</code>
+                    </entry>
+                    <entry>
+                        Gets a <acronym>LDAP</acronym> date/time attribute. Data conversion is applied
+                        using
+                        <code>Zend_Ldap_Attribute::getDateTimeAttribute()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node setDateTimeAttribute(string $name,
+                        integer|array $value, boolean $utc)</code>
+                    </entry>
+                    <entry>
+                        Sets a <acronym>LDAP</acronym> date/time attribute. Data conversion is applied
+                        using
+                        <code>Zend_Ldap_Attribute::setDateTimeAttribute()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node appendToDateTimeAttribute(string $name,
+                        integer|array $value, boolean $utc)</code>
+                    </entry>
+                    <entry>
+                        Appends to a <acronym>LDAP</acronym> date/time attribute. Data conversion is
+                        applied using
+                        <code>Zend_Ldap_Attribute::setDateTimeAttribute()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node setPasswordAttribute(string $password,
+                        string $hashType, string $attribName)</code>
+                    </entry>
+                    <entry>
+                        Sets a <acronym>LDAP</acronym> password on <code>$attribName</code> (defaults
+                        to <code>'userPassword'</code>) to <code>$password</code> with the
+                        hash type <code>$hashType</code> (defaults to
+                        <code>Zend_Ldap_Attribute::PASSWORD_HASH_MD5</code>).
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node deleteAttribute(string
+                        $name)</code>
+                    </entry>
+                    <entry>Deletes a <acronym>LDAP</acronym> attribute.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>void removeDuplicatesFromAttribute(string
+                        $name)</code>
+                    </entry>
+                    <entry>Removes duplicate values from a <acronym>LDAP</acronym> attribute.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>void removeFromAttribute(string $attribName,
+                        mixed|array $value)</code>
+                    </entry>
+                    <entry>Removes the given values from a <acronym>LDAP</acronym> attribute.</entry>
+                </row>
+                <row>
+                    <entry><code>boolean exists(Zend_Ldap $ldap)</code></entry>
+                    <entry>
+                        Checks if the current node exists on the given <acronym>LDAP</acronym> server
+                        (current server is used if <code>null</code> is passed).
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Node reload(Zend_Ldap $ldap)</code></entry>
+                    <entry>
+                        Reloads the current node's attributes from the given LDAP
+                        server (current server is used if <code>null</code> is
+                        passed).
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node_Collection
+                        searchSubtree(string|Zend_Ldap_Filter_Abstract $filter, integer
+                        $scope, string $sort)</code>
+                    </entry>
+                    <entry>
+                        Searches the nodes's subtree with the given
+                        <code>$filter</code> and the given search parameters. See
+                        <code>Zend_Ldap::search()</code> for details on the parameters
+                        <code>$scope</code> and <code>$sort</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>integer countSubtree(string|Zend_Ldap_Filter_Abstract
+                        $filter, integer $scope)</code>
+                    </entry>
+                    <entry>
+                        Count the nodes's subtree items matching the given
+                        <code>$filter</code> and the given search scope. See
+                        <code>Zend_Ldap::search()</code> for details on the
+                        <code>$scope</code> parameter.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>integer countChildren()</code></entry>
+                    <entry>Count the nodes's children.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node_Collection
+                        searchChildren(string|Zend_Ldap_Filter_Abstract $filter, string
+                        $sort)</code>
+                    </entry>
+                    <entry>
+                        Searches the nodes's children matching the given
+                        <code>$filter</code>. See <code>Zend_Ldap::search()</code> for
+                        details on the <code>$sort</code> parameter.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>boolean hasChildren()</code></entry>
+                    <entry>Returns whether the current node has children.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node_ChildrenIterator
+                        getChildren()</code>
+                    </entry>
+                    <entry>Returns all children of the current node.</entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node getParent(Zend_Ldap
+                        $ldap)</code>
+                    </entry>
+                    <entry>
+                        Returns the parent of the current node using the LDAP
+                        connection <code>$ldap</code> (uses the current <acronym>LDAP</acronym> connection if
+                        omitted).
+                    </entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+</sect3>
+

+ 558 - 0
documentation/manual/de/module_specs/Zend_Ldap-API-Ldap.xml

@@ -0,0 +1,558 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 16639 -->
+<!-- Reviewed: no -->
+<sect3 id="zend.ldap.api.reference.zend-ldap">
+    <title>Zend_Ldap</title>
+
+    <para>
+        <classname>Zend_Ldap</classname> is the base interface into a <acronym>LDAP</acronym> server. It provides
+        connection and binding methods as well as methods to operate on the LDAP
+        tree.
+    </para>
+
+    <table id="zend.ldap.api.reference.zend-ldap.table">
+        <title>Zend_Ldap API</title>
+
+        <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry>
+                        <code>string filterEscape(string $str)</code>
+                    </entry>
+                    <entry>
+                        Escapes a value to be used in a <acronym>LDAP</acronym> filter according to RFC
+                        2254. This method is <emphasis>deprecated</emphasis>, please use
+                        <code>Zend_Ldap_Filter_Abstract::escapeValue()</code>
+                        instead.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>boolean explodeDn($dn, array &amp;$keys = null, array &amp;$vals = null)</code>
+                    </entry>
+                    <entry>
+                        Checks if a given DN <code>$dn</code> is malformed. If
+                        <code>$keys</code> or <code>$keys</code> and <code>$vals</code> are
+                        given, these arrays will be filled with the appropriate DN keys and
+                        values. This method is <emphasis>deprecated</emphasis>, please use
+                        <code>Zend_Ldap_Dn::checkDn()</code> instead.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>__construct($options)</code></entry>
+                    <entry>
+                        Constructor. The <code>$options</code> parameter is optional
+                        and can be set to an array or a <classname>Zend_Config</classname> instance.
+                        If no options are provided at instantiation, the connection
+                        parameters must be passed to the instance using
+                        <code>Zend_Ldap::setOptions()</code>. The allowed options are
+                        specified in <link
+                            linkend="zend.ldap.api.configuration.table">Zend_Ldap
+                            Options</link>
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>resource getResource()</code></entry>
+                    <entry>Returns the raw <acronym>LDAP</acronym> extension (ext/ldap) resource.</entry>
+                </row>
+                <row>
+                    <entry><code>integer getLastErrorCode()</code></entry>
+                    <entry>
+                        Returns the <acronym>LDAP</acronym> error number of the last LDAP
+                        command.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>string getLastError(integer &amp;$errorCode, array &amp;$errorMessages)</code>
+                    </entry>
+                    <entry>
+                        Returns the <acronym>LDAP</acronym> error message of the last <acronym>LDAP</acronym> command. The
+                        optional <code>$errorCode</code> parameter is set to the <acronym>LDAP</acronym> error
+                        number when given. The optional <code>$errorMessages</code> array
+                        will be filled with the raw error messages when given. The various
+                        <acronym>LDAP</acronym> error retrieval functions can return different things, so they
+                        are all collected if <code>$errorMessages</code> is given.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap setOptions($options)</code></entry>
+                    <entry>
+                        Sets the <acronym>LDAP</acronym> connection and binding parameters.
+                        <code>$options</code> can be an array or an instance of
+                        <classname>Zend_Config</classname>. The allowed options are specified in
+                        <link
+                            linkend="zend.ldap.api.configuration.table">Zend_Ldap Options</link>
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>array getOptions()</code></entry>
+                    <entry>
+                        Returns the current connection and binding
+                        parameters.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>string getBaseDn()</code></entry>
+                    <entry>
+                        Returns the base DN this <acronym>LDAP</acronym> connection is bound
+                        to.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>string getCanonicalAccountName(string $acctname, integer $form)</code>
+                    </entry>
+                    <entry>
+                        Returns the canonical account name of the given account name
+                        <code>$acctname</code>. <code>$form</code> specifies the <link
+                            linkend="zend.ldap.using.theory-of-operation.account-name-canonicalization.table">format</link>
+                        into which the account name is canonicalized. See <link
+                            linkend="zend.ldap.introduction.theory-of-operations.account-name-canonicalization">Account Name Canonicalization</link>
+                        for more details.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap disconnect()</code></entry>
+                    <entry>
+                        Disconnects the Zend_Ldap instance from the LDAP
+                        server.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap connect(string $host, integer $port, boolean $useSsl, boolean $useStartTls)</code>
+                    </entry>
+                    <entry>
+                        Connects the Zend_Ldap instance to the given <acronym>LDAP</acronym> server.
+                        All parameters are optional and will be taken from the LDAP
+                        connection and binding parameters passed to the instance via the
+                        construtor or via <code>Zend_Ldap::setOptions()</code> when set to
+                        <code>null</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap bind(string $username, string $password)</code>
+                    </entry>
+                    <entry>
+                        Authenticates <code>$username</code> with
+                        <code>$password</code> at the <acronym>LDAP</acronym> server. If both paramaters are
+                        omitted the binding will be carried out with the credentials given
+                        in the connection and binding parameters. If no credentials are
+                        given in the connection and binding parameters an anonymous bind
+                        will be performed. Note that this requires anonymous binds to be
+                        allowed on the <acronym>LDAP</acronym> server. An empty string <code>''</code> can be
+                        passed as <code>$password</code> together with a username if, and
+                        only if, <code>allowEmptyPassword</code> is set to
+                        <code>true</code> in the connection and binding parameters.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Collection search(string|Zend_Ldap_Filter_Abstract $filter, string|Zend_Ldap_Dn $basedn, integer $scope, array $attributes, string $sort, string $collectionClass)</code>
+                    </entry>
+                    <entry>
+                        Searches the <acronym>LDAP</acronym> tree with the given <code>$filter</code>
+                        and the given search parameters.
+                        <variablelist>
+                            <varlistentry>
+                                <term><code>string|Zend_Ldap_Filter_Abstract
+                                $filter</code></term>
+
+                                <listitem>
+                                    <para>
+                                        The filter string to be used in the search, e.g.
+                                        <code>(objectClass=posixAccount)</code>.
+                                    </para>
+                                </listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term><code>string|Zend_Ldap_Dn $basedn</code></term>
+
+                                <listitem>
+                                    <para>
+                                        The search base for the search. If omitted or
+                                        <code>null</code>, the <code>baseDn</code> from the
+                                        connection and binding parameters is used.
+                                    </para>
+                                </listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term><code>integer $scope</code></term>
+
+                                <listitem>
+                                    <para>
+                                        The search scope.
+                                        <code>Zend_Ldap::SEARCH_SCOPE_SUB</code> searches the
+                                        complete subtree including the <code>$baseDn</code> node.
+                                        <code>Zend_Ldap::SEARCH_SCOPE_ONE</code> restricts search
+                                        to one level below <code>$baseDn</code>.
+                                        <code>Zend_Ldap::SEARCH_SCOPE_BASE</code> restricts search
+                                        to the <code>$baseDn</code> itself; this can be used to
+                                        efficiently retrieve a single entry by its DN. The default
+                                        value is
+                                        <code>Zend_Ldap::SEARCH_SCOPE_SUB</code>.
+                                    </para>
+                                </listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term><code>array $attributes</code></term>
+
+                                <listitem>
+                                    <para>
+                                        Specifies the attributes contained in the
+                                        returned entries. To include all possible attributes (ACL
+                                        restrictions can disallow certain attribute to be retrieved
+                                        by a given user) pass either an empty array
+                                        <code>array()</code> or <code>array('*')</code> to the
+                                        method. On some <acronym>LDAP</acronym> servers you can retrieve special
+                                        internal attributes by passing <code>array('*', '+')</code>
+                                        to the method.
+                                    </para>
+                                </listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term><code>string $sort</code></term>
+
+                                <listitem>
+                                    <para>
+                                        If given the result collection will be sorted
+                                        after the attribute <code>$sort</code>. Results can only be
+                                        sorted after one single attribute as this parameter uses
+                                        the ext/ldap function <code>ldap_sort()</code>.
+                                    </para>
+                                </listitem>
+                            </varlistentry>
+
+                            <varlistentry>
+                                <term><code>string $collectionClass</code></term>
+
+                                <listitem>
+                                    <para>
+                                        If given the result will be wrapped in an object
+                                        of type <code>$collectionClass</code>. By default an object
+                                        of type <code>Zend_Ldap_Collection</code> will be returned.
+                                        The custom class must extend
+                                        <code>Zend_Ldap_Collection</code> and will be passed a
+                                        <code>Zend_Ldap_Collection_Iterator_Default</code> on
+                                        instantiation.
+                                    </para>
+                                </listitem>
+                            </varlistentry>
+                        </variablelist>
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>integer count(string|Zend_Ldap_Filter_Abstract
+                        $filter, string|Zend_Ldap_Dn $basedn, integer
+                        $scope)</code>
+                    </entry>
+                    <entry>
+                        Counts the elements returned by the given search parameters.
+                        See <code>Zend_Ldap::search()</code> for a detailed description of
+                        the method parameters.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>integer countChildren(string|Zend_Ldap_Dn
+                        $dn)</code>
+                    </entry>
+                    <entry>
+                        Counts the direct descendants (children) of the entry
+                        identified by the given <code>$dn</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>boolean exists(string|Zend_Ldap_Dn $dn)</code></entry>
+                    <entry>
+                        Checks whether the entry identified by the given
+                        <code>$dn</code> exists.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array searchEntries(string|Zend_Ldap_Filter_Abstract
+                        $filter, string|Zend_Ldap_Dn $basedn, integer $scope, array
+                        $attributes, string $sort)</code>
+                    </entry>
+                    <entry>
+                        Performs a search operation and returns the result as an PHP
+                        array. This is essentially the same method as
+                        <code>Zend_Ldap::search()</code> except for the return type. See
+                        <code>Zend_Ldap::search()</code> for a detailed description of the
+                        method parameters.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>array getEntry(string|Zend_Ldap_Dn $dn, array
+                        $attributes, boolean $throwOnNotFound)</code>
+                    </entry>
+                    <entry>
+                        Retrieves the <acronym>LDAP</acronym> entry identified by <code>$dn</code> with
+                        the attributes specified in <code>$attributes</code>. If
+                        <code>$attributes</code> is ommitted, all attributes
+                        (<code>array()</code>) are included in the result.
+                        <code>$throwOnNotFound</code> is <code>false</code> by default, so
+                        the method will return <code>null</code> if the specified entry
+                        cannot be found. If set to <code>true</code>, a
+                        <code>Zend_Ldap_Exception</code> will be thrown instead.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <emphasis><code>void prepareLdapEntryArray(array
+                        &amp;$entry)</code> </emphasis>
+                    </entry>
+                    <entry>
+                        Prepare an array for the use in <acronym>LDAP</acronym> modification
+                        operations. This method does not need to be called by the end-user
+                        as it's implicitly called on every data modification
+                        method.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap add(string|Zend_Ldap_Dn $dn, array
+                        $entry)</code>
+                    </entry>
+                    <entry>
+                        Adds the entry identified by <code>$dn</code> with its
+                        attributes <code>$entry</code> to the <acronym>LDAP</acronym> tree. Throws a
+                        <code>Zend_Ldap_Exception</code> if the entry could not be
+                        added.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap update(string|Zend_Ldap_Dn $dn, array
+                        $entry)</code>
+                    </entry>
+                    <entry>
+                        Updates the entry identified by <code>$dn</code> with its
+                        attributes <code>$entry</code> to the <acronym>LDAP</acronym> tree. Throws a
+                        <code>Zend_Ldap_Exception</code> if the entry could not be
+                        modified.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap save(string|Zend_Ldap_Dn $dn, array
+                        $entry)</code>
+                    </entry>
+                    <entry>
+                        Saves the entry identified by <code>$dn</code> with its
+                        attributes <code>$entry</code> to the <acronym>LDAP</acronym> tree. Throws a
+                        <code>Zend_Ldap_Exception</code> if the entry could not be saved.
+                        This method decides by querying the <acronym>LDAP</acronym> tree if the entry will be
+                        added or updated.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap delete(string|Zend_Ldap_Dn $dn, boolean
+                        $recursively)</code>
+                    </entry>
+                    <entry>
+                        Deletes the entry identified by <code>$dn</code> from the
+                        <acronym>LDAP</acronym> tree. Throws a <code>Zend_Ldap_Exception</code> if the entry
+                        could not be deleted. <code>$recursively</code> is
+                        <code>false</code> by default. If set to <code>true</code> the
+                        deletion will be carried out recursively and will effectively
+                        delete a complete subtree. Deletion will fail if
+                        <code>$recursively</code> is <code>false</code> and the entry
+                        <code>$dn</code> is not a leaf entry.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap moveToSubtree(string|Zend_Ldap_Dn $from,
+                        string|Zend_Ldap_Dn $to, boolean $recursively, boolean
+                        $alwaysEmulate)</code>
+                    </entry>
+                    <entry>
+                        Moves the entry identified by <code>$from</code> to a
+                        location below <code>$to</code> keeping its <acronym>RDN</acronym> unchanged.
+                        <code>$recursively</code> specifies if the operation will be
+                        carried out recursively (<code>false</code> by default) so that the
+                        entry <code>$from</code> and all its descendants will be moved.
+                        Moving will fail if <code>$recursively</code> is <code>false</code>
+                        and the entry <code>$from</code> is not a leaf entry.
+                        <code>$alwaysEmulate</code> controls whether the ext/ldap function
+                        <code>ldap_rename()</code> should be used if available. This can
+                        only work for leaf entries and for servers and for ext/ldap
+                        supporting this function. Set to <code>true</code> to always use an
+                        emulated rename operation.
+                        <note>
+                            <para>All move-operations are carried out by copying and then
+                            deleting the corresponding entries in the <acronym>LDAP</acronym> tree. These
+                            operations are not <emphasis>atomic</emphasis> so that failures
+                            during the operation will result in an
+                            <emphasis>inconsistent</emphasis> state on the <acronym>LDAP</acronym> server. The
+                            same is true for all recursive operations. They also are by no
+                            means atomic. Please keep this in mind.
+                        </para>
+                    </note></entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap move(string|Zend_Ldap_Dn $from,
+                        string|Zend_Ldap_Dn $to, boolean $recursively, boolean
+                        $alwaysEmulate)</code>
+                    </entry>
+                    <entry>
+                        This is an alias for
+                        <code>Zend_Ldap::rename()</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap rename(string|Zend_Ldap_Dn $from,
+                        string|Zend_Ldap_Dn $to, boolean $recursively, boolean
+                        $alwaysEmulate)</code>
+                    </entry>
+                    <entry>
+                        Renames the entry identified by <code>$from</code> to
+                        <code>$to</code>. <code>$recursively</code> specifies if the
+                        operation will be carried out recursively (<code>false</code> by
+                        default) so that the entry <code>$from</code> and all its
+                        descendants will be moved. Moving will fail if
+                        <code>$recursively</code> is <code>false</code> and the entry
+                        <code>$from</code> is not a leaf entry. <code>$alwaysEmulate</code>
+                        controls whether the ext/ldap function <code>ldap_rename()</code>
+                        should be used if available. This can only work for leaf entries
+                        and for servers and for ext/ldap supporting this function. Set to
+                        <code>true</code> to always use an emulated rename
+                        operation.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap copyToSubtree(string|Zend_Ldap_Dn $from,
+                        string|Zend_Ldap_Dn $to, boolean $recursively)</code>
+                    </entry>
+                    <entry>
+                        Copies the entry identified by <code>$from</code> to a
+                        location below <code>$to</code> keeping its <acronym>RDN</acronym> unchanged.
+                        <code>$recursively</code> specifies if the operation will be
+                        carried out recursively (<code>false</code> by default) so that the
+                        entry <code>$from</code> and all its descendants will be copied.
+                        Copying will fail if <code>$recursively</code> is
+                        <code>false</code> and the entry <code>$from</code> is not a leaf
+                        entry.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap copy(string|Zend_Ldap_Dn $from,
+                        string|Zend_Ldap_Dn $to, boolean $recursively)</code>
+                    </entry>
+                    <entry>
+                        Copies the entry identified by <code>$from</code> to
+                        <code>$to</code>. <code>$recursively</code> specifies if the
+                        operation will be carried out recursively (<code>false</code> by
+                        default) so that the entry <code>$from</code> and all its
+                        descendants will be copied. Copying will fail if
+                        <code>$recursively</code> is <code>false</code> and the entry
+                        <code>$from</code> is not a leaf entry.
+                    </entry>
+                </row>
+                <row>
+                    <entry>
+                        <code>Zend_Ldap_Node getNode(string|Zend_Ldap_Dn
+                        $dn)</code>
+                    </entry>
+                    <entry>
+                        Returns the entry <code>$dn</code> wrapped in a
+                        <code>Zend_Ldap_Node</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Node getBaseNode()</code></entry>
+                    <entry>
+                        Returns the entry for the base DN <code>$baseDn</code>
+                        wrapped in a <code>Zend_Ldap_Node</code>.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Node_RootDse getRootDse()</code></entry>
+                    <entry>Returns the RootDSE for the current server.</entry>
+                </row>
+                <row>
+                    <entry><code>Zend_Ldap_Node_Schema getSchema()</code></entry>
+                    <entry>Returns the <acronym>LDAP</acronym> schema for the current server.</entry>
+                </row>
+            </tbody>
+        </tgroup>
+    </table>
+
+    <sect4 id="zend.ldap.api.reference.zend-ldap.zend-ldap-collection">
+        <title>Zend_Ldap_Collection</title>
+
+        <para>
+            <code>Zend_Ldap_Collection</code> implements <code>Iterator</code> to
+            allow for item traversal using <code>foreach()</code> and
+            <code>Countable</code> to be able to respond to <code>count()</code>. With its
+            protected <code>_createEntry()</code> method it provides a simple extension
+            point for developers needing custom result objects.
+        </para>
+
+        <table id="zend.ldap.api.reference.zend-ldap.zend-ldap-collection.table">
+            <title>Zend_Ldap_Collection API</title>
+
+            <tgroup cols="2">
+            <thead>
+                <row>
+                    <entry>Method</entry>
+                    <entry>Description</entry>
+                </row>
+            </thead>
+            <tbody>
+                <row>
+                    <entry>
+                        <code>__construct(Zend_Ldap_Collection_Iterator_Interface
+                        $iterator)</code>
+                    </entry>
+                    <entry>
+                        Constructor. The constrcutor must be provided by a
+                        <code>Zend_Ldap_Collection_Iterator_Interface</code> which does the
+                        real result iteration.
+                        <code>Zend_Ldap_Collection_Iterator_Default</code> is the default
+                        implementation for iterating ext/ldap results.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>boolean close()</code></entry>
+                    <entry>
+                        Closes the internal iterator. This is also called in the
+                        destructor.
+                    </entry>
+                </row>
+                <row>
+                    <entry><code>array toArray()</code></entry>
+                    <entry>Returns all entries as an array.</entry>
+                </row>
+                <row>
+                    <entry><code>array getFirst()</code></entry>
+                    <entry>
+                        Returns the first entry in the collection or
+                        <code>null</code> if the collection is empty.
+                    </entry>
+                </row>
+            </tbody></tgroup>
+        </table>
+    </sect4>
+</sect3>

+ 1 - 1
documentation/manual/de/module_specs/Zend_Ldap-API.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 16617 -->
+<!-- EN-Revision: 16640 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.ldap.api" xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>API overview</title>

+ 1 - 1
documentation/manual/de/module_specs/Zend_Ldap-Introduction.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16617 -->
+<!-- EN-Revision: 16638 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.ldap.introduction">
     <title>Introduction</title>

+ 1 - 1
documentation/manual/de/module_specs/Zend_Ldap-LDIF.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16617 -->
+<!-- EN-Revision: 16633 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.ldap.ldif">
     <title>Serializing LDAP data to and from LDIF</title>

+ 1 - 1
documentation/manual/de/module_specs/Zend_Ldap-Node.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16617 -->
+<!-- EN-Revision: 16633 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.ldap.node">
     <title>Object oriented access to the LDAP tree using Zend_Ldap_Node</title>

+ 1 - 1
documentation/manual/de/module_specs/Zend_Ldap-Server.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16617 -->
+<!-- EN-Revision: 16633 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.ldap.server">
     <title>Getting information from the LDAP server</title>

+ 1 - 1
documentation/manual/de/module_specs/Zend_Ldap-Tools.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16617 -->
+<!-- EN-Revision: 16633 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.ldap.tools">
     <title>Tools</title>

+ 1 - 1
documentation/manual/de/module_specs/Zend_Ldap-Usage.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16617 -->
+<!-- EN-Revision: 16634 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.ldap.usage">
     <title>Usage Scenarios</title>

+ 168 - 128
documentation/manual/de/ref/coding_standard.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15745 -->
+<!-- EN-Revision: 16626 -->
 <!-- Reviewed: no -->
 <appendix id="coding-standard">
   <title>Zend Framework Coding Standard für PHP</title>
@@ -27,32 +27,32 @@
 
             <para>
                 Die Bereiche die im ZF Coding Standard abgedeckt werden enthalten:
+            </para>
 
-                <itemizedlist>
-                    <listitem>
-                        <para>PHP Dateiformatierung</para>
-                    </listitem>
+            <itemizedlist>
+                <listitem>
+                    <para><acronym>PHP</acronym> Dateiformatierung</para>
+                </listitem>
 
-                    <listitem>
-                        <para>Namens Konventionen</para>
-                    </listitem>
+                <listitem>
+                    <para>Namens Konventionen</para>
+                </listitem>
 
-                    <listitem>
-                        <para>Code Stil</para>
-                    </listitem>
+                <listitem>
+                    <para>Code Stil</para>
+                </listitem>
 
-                    <listitem>
-                        <para>Inline Dokumentation</para>
-                    </listitem>
-                </itemizedlist>
-            </para>
+                <listitem>
+                    <para>Inline Dokumentation</para>
+                </listitem>
+            </itemizedlist>
         </sect2>
 
         <sect2 id="coding-standard.overview.goals">
             <title>Ziele</title>
 
             <para>
-                Coding Standards sind in jedem Entwicklungs Projekt wichtig, aber sie sid speziell
+                Coding Standards sind in jedem Entwicklungs Projekt wichtig, aber sie sind speziell
                 dann wichtig wenn viele Entwickler an dem gleichen Projekt arbeiten. Coding
                 Standards helfen sicherzustellen das der Code von hoher Qualität ist, weniger
                 Fehler hat, und einfach zu warten ist.
@@ -67,17 +67,20 @@
             <title>Allgemein</title>
 
             <para>
-                Für Dateien, welche nur PHP Code beinhalten ist der schliessende Tag ("?>") nicht
-                zugelassen. Er wird von PHP nicht benötigt, und das Weglassen verhindert das
-                versehentlich Leerzeilen in die Antwort eingefügt werden.
+                Für Dateien, welche nur <acronym>PHP</acronym> Code beinhalten ist der schliessende
+                Tag ("?>") nicht zugelassen. Er wird von <acronym>PHP</acronym> nicht benötigt, und
+                das Weglassen verhindert das versehentlich Leerzeilen in die Antwort eingefügt
+                werden.
             </para>
 
-            <para>
-                <emphasis>WICHTIG:</emphasis> Einbeziehen von beliebigen binärischen Daten durch
-                <code>__HALT_COMPILER()</code> ist in den PHP Dateien im Zend Framework oder
-                abgeleiteten Datei verboten. Das Benutzen ist nur für einige Installationsskirpte
-                erlaubt.
-            </para>
+            <note>
+                <para>
+                    <emphasis>Wichtig</emphasis>: Einbeziehen von beliebigen binärischen Daten
+                    durch <methodname>__HALT_COMPILER()</methodname> ist in den
+                    <acronym>PHP</acronym> Dateien im Zend Framework oder abgeleiteten Datei
+                    verboten. Das Benutzen ist nur für einige Installationsskirpte erlaubt.
+                </para>
+            </note>
         </sect2>
 
         <sect2 id="coding-standard.php-file-formatting.indentation">
@@ -93,8 +96,8 @@
             <para>
                 Die Zielzeilenlänge ist 80 Zeichen. Entwickler sollten jede Zeile Ihres Codes unter
                 80 Zeichen halten, soweit dies möglich und praktikabel ist. Trotzdem sind längere
-                Zeilen in einigen Fällen erlaubt. Die maximale Länge einer Zeile beträgt 120
-                Zeichen.
+                Zeilen in einigen Fällen erlaubt. Die maximale Länge einer <acronym>PHP</acronym>
+                Codezeile beträgt 120 Zeichen.
             </para>
         </sect2>
 
@@ -134,32 +137,37 @@
                 Klassennamen dürfen nur alphanumerische Zeichen enthalten. Nummern sind in
                 Klassennamen gestattet es wird aber von Ihnen in den meisten Fällen abgeraten.
                 Unterstriche sind nur gestattet im Platz des Pfadseparators -- der Dateiname
-                "Zend/Db/Table.php" muß übereinstimmen mit dem Klassennamen "Zend_Db_Table".
+                "<filename>Zend/Db/Table.php</filename>" muß übereinstimmen mit dem Klassennamen
+                "<classname>Zend_Db_Table</classname>".
             </para>
 
             <para>
                 Wenn ein Klassenname aus mehr als einem Wort besteht, muß der erste Buchstabe von
                 jedem neuen Wort großgeschrieben werden. Durchgehende Großbuchstaben sind nicht
-                erlaubt, z.B. eine Klasse "Zend_PDF" ist nicht erlaubt, aber "Zend_Pdf" ist
-                akzeptierbar.
+                erlaubt, z.B. eine Klasse "Zend_PDF" ist nicht erlaubt, aber
+                "<classname>Zend_Pdf</classname>" ist akzeptierbar.
             </para>
 
             <para>
                 Diese Konventionen definieren einen Pseudo-Namespace Mechanismus für Zend
-                Framework. Zend Framework wird das PHP Namespace Feature einbauen sobald es
-                verfügbar ist und es für unsere Entwickler in deren Anwendungen ohne Bedenken
-                verwendbar ist.
+                Framework. Zend Framework wird das <acronym>PHP</acronym> Namespace Feature
+                einbauen sobald es verfügbar ist und es für unsere Entwickler in deren Anwendungen
+                ohne Bedenken verwendbar ist.
             </para>
 
             <para>
                 Siehe die Klassennamen in der Standard und Extra Bibliothek für Beispiel dieser
                 Klassennamen Konvention.
-
-                <emphasis>WICHTIG:</emphasis> Code welcher mit dem Framework ausgeliefert werden
-                muß, aber nicht Teil der Standard oder Extras Bibliothek ist (z.B. Anwendungscode
-                oder Bibliotheken die nicht von Zend ausgeliefert werden), dürfen nie mit "Zend_"
-                oder "ZendX_" beginnen.
             </para>
+
+            <note>
+                <para>
+                    <emphasis>Wichtig</emphasis>: Code welcher mit dem Framework ausgeliefert
+                    werden muß, aber nicht Teil der Standard oder Extras Bibliothek ist (z.B.
+                    Anwendungscode oder Bibliotheken die nicht von Zend ausgeliefert werden),
+                    dürfen nie mit "Zend_" oder "ZendX_" beginnen.
+                </para>
+            </note>
         </sect2>
 
         <sect2 id="coding-standard.naming-conventions.filenames">
@@ -171,11 +179,12 @@
             </para>
 
             <para>
-                Jede Datei die irgendeinen PHP Code enthält sollte mit der Endung ".php" enden, mit
-                Ausnahme der View Skripte. Die folgenden Beispiele zeigen akzeptierbare Dateinamen
-                für Zend Framework Klassen:
+                Jede Datei die irgendeinen <acronym>PHP</acronym> Code enthält sollte mit der
+                Endung "<filename>.php</filename>" enden, mit Ausnahme der View Skripte. Die
+                folgenden Beispiele zeigen akzeptierbare Dateinamen für Zend Framework Klassen:
+            </para>
 
-                <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 Zend/Db.php
 
 Zend/Controller/Front.php
@@ -183,6 +192,7 @@ Zend/Controller/Front.php
 Zend/View/Helper/FormRadio.php
 ]]></programlisting>
 
+            <para>
                 Dateinamen müssen den Klassennamen wie oben beschrieben entsprechen.
             </para>
         </sect2>
@@ -209,15 +219,15 @@ Zend/View/Helper/FormRadio.php
 
             <para>
                 Das sind Beispiele akzeptierbarer Namen für Funktionen:
+            </para>
 
-                <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 filterInput()
 
 getElementById()
 
 widgetFactory()
 ]]></programlisting>
-            </para>
 
             <para>
                 Für objekt-orientiertes Programmieren, sollten Zugriffspunkte für Instanzen oder
@@ -287,8 +297,8 @@ widgetFactory()
             </para>
 
             <para>
-                Zum Beispiel ist <code>EMBED_SUPPRESS_EMBED_EXCEPTION</code> gestattet aber
-                <code>EMBED_SUPPRESSEMBEDEXCEPTION</code> nicht.
+                Zum Beispiel ist <constant>EMBED_SUPPRESS_EMBED_EXCEPTION</constant> gestattet aber
+                <constant>EMBED_SUPPRESSEMBEDEXCEPTION</constant> nicht.
             </para>
 
             <para>
@@ -306,18 +316,19 @@ widgetFactory()
             <title>PHP Code Abgrenzung</title>
 
             <para>
-                PHP Code muß immer mit der kompletten Form des Standard-PHP Tags abgegrenzt sein:
+                <acronym>PHP</acronym> Code muß immer mit der kompletten Form des
+                Standard-<acronym>PHP</acronym> Tags abgegrenzt sein:
+            </para>
 
-                <programlisting language="php"><![CDATA[
+            <programlisting language="php"><![CDATA[
 <?php
 
 ?>
 ]]></programlisting>
-            </para>
 
             <para>
-                Kurze Tags sind nie erlaubt. Für Dateien die nur PHP Code enthalten, darf
-                das schließende Tag nie angegeben werden (Siehe
+                Kurze Tags sind nie erlaubt. Für Dateien die nur <acronym>PHP</acronym> Code
+                enthalten, darf das schließende Tag nie angegeben werden (Siehe
                 <xref linkend="coding-standard.php-file-formatting.general"/>).
             </para>
         </sect2>
@@ -332,11 +343,11 @@ widgetFactory()
                     Wenn ein String ein Literal ist (er also keine Variablenvertreter enthält),
                     sollte immer das Apostroph oder "einzelne Anführungszeichen" verwendet werden um
                     den String abzugrenzen:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $a = 'Beispiel String';
 ]]></programlisting>
-                </para>
             </sect3>
 
             <sect3 id="coding-standard.coding-style.strings.literals-containing-apostrophes">
@@ -345,13 +356,15 @@ $a = 'Beispiel String';
                 <para>
                     Wenn ein literaler String selbst Apostrophe enthält, ist es gestattet den String
                     mit Anführungszeichen oder "doppeltes Anführungszeichen" abzugrenzen. Das ist
-                    speziell für SQL Anweisungen nützlich:
+                    speziell für <acronym>SQL</acronym> Anweisungen nützlich:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $sql = "SELECT `id`, `name` from `people` "
      . "WHERE `name`='Fred' OR `name`='Susan'";
 ]]></programlisting>
 
+                <para>
                     Diese Syntax ist zu bevorzugen, im Gegensatz zum Ausbruch von Apostrophs, da Sie
                     viel einfacher lesbar ist.
                 </para>
@@ -362,21 +375,21 @@ $sql = "SELECT `id`, `name` from `people` "
 
                 <para>
                     Variabler Austausch ist gestatten bei Verwendung einer der Formen:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $greeting = "Halle $name, willkommen zurück!";
 
 $greeting = "Hallo {$name}, willkommen zurück!";
 ]]></programlisting>
-                </para>
 
                 <para>
                     Aus Gründen der Konstistenz ist folgende Form nicht gestattet:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $greeting = "Hallo ${name}, willkommen zurück!";
 ]]></programlisting>
-                </para>
             </sect3>
 
             <sect3 id="coding-standard.coding-style.strings.string-concatenation">
@@ -386,24 +399,24 @@ $greeting = "Hallo ${name}, willkommen zurück!";
                     Strings müssen verbunden werden indem man den "." Operator verwendet. Ein
                     Leerzeichen muß immer vor und nach dem "." Operator hinzugefügt werden um die
                     Lesbarkeit zu erhöhen:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $company = 'Zend' . ' ' . 'Technologies';
 ]]></programlisting>
-                </para>
 
                 <para>
                     Wenn Strings mit dem "." Operator verbunden werden, ist es empfohlen die
                     Anweisung in mehrere Zeilen umzubrechen um die Lesbarkeit zu erhöhen. In diesen
                     Fällen sollte jede folgende Zeile mit Leerraum aufgefüllt werden so das der "."
                     Operator genau unterhalb des "=" Operators ist:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $sql = "SELECT `id`, `name` FROM `people` "
      . "WHERE `name` = 'Susan' "
      . "ORDER BY `name` ASC ";
 ]]></programlisting>
-                </para>
             </sect3>
         </sect2>
 
@@ -424,23 +437,23 @@ $sql = "SELECT `id`, `name` FROM `people` "
                     Wenn indizierte Arrays mit dem <type>Array</type> Funktion deklariert werden,
                     muß ein folgendes Leerzeichen nach jeder Kommabegrenzung hinzugefügt werden um
                     die Lesbarkeit zu erhöhen:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $sampleArray = array(1, 2, 3, 'Zend', 'Studio');
 ]]></programlisting>
-                </para>
 
                 <para>
                     Es ist gestattet mehrzeilige indizierte Arrays zu definieren bei Verwendung des
                     "array" Konstrukts. In diesem Fall, muß jede folgende Zeile mit Leerzeichen
                     aufgefüllt werden so das der Beginn jeder Zeile ausgerichtet ist:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $sampleArray = array(1, 2, 3, 'Zend', 'Studio',
                      $a, $b, $c,
                      56.44, $d, 500);
 ]]></programlisting>
-                </para>
             </sect3>
 
             <sect3 id="coding-standard.coding-style.arrays.associative">
@@ -451,12 +464,12 @@ $sampleArray = array(1, 2, 3, 'Zend', 'Studio',
                     ist das Umbrechen der Anweisung in mehrere Zeilen gestattet. In diesem Fall muß
                     jede folgende Linie mit Leerraum aufgefüllt werden so das beide, der Schlüssel
                     und der Wert untereinander stehen:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 $sampleArray = array('firstKey'  => 'firstValue',
                      'secondKey' => 'secondValue');
 ]]></programlisting>
-                 </para>
             </sect3>
         </sect2>
 
@@ -468,23 +481,36 @@ $sampleArray = array('firstKey'  => 'firstValue',
 
                 <para>
                     Klassen müssen entsprechend der Zend Framework Namenskonvention benannt werden.
-                </para><para>
+                </para>
+
+                <para>
                     Die Klammer sollte immer in der Zeile unter dem Klassennamen geschrieben werden.
-                </para><para>
+                </para>
+
+                <para>
                     Jede Klasse muß einen Dokumentationsblock haben der dem PHPDocumentor Standard
                     entspricht.
-                </para><para>
+                </para>
+
+                <para>
                     Jeder Code in der Klasse muß mit vier Leerzeichen eingerückt sein.
-                </para><para>
-                    Nur eine Klasse ist in jeder PHP Datei gestattet.
-                </para><para>
+                </para>
+
+                <para>
+                    Nur eine Klasse ist in jeder <acronym>PHP</acronym> Datei gestattet.
+                </para>
+
+                <para>
                     Das Platzieren von zusätzlichem Code in Klassendateien ist gestattet aber es
                     wird davon abgeraten. In solchen Dateien müssen zwei leere Zeilen die Klasse von
-                    jedem zusätzlichen PHP Code in der Datei seperieren.
-                </para><para>
+                    jedem zusätzlichen <acronym>PHP</acronym> Code in der Datei seperieren.
+                </para>
+
+                <para>
                     Das folgende ist ein Beispiel einer akzeptierbaren Klassendeklaration:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 /**
  * Dokumentations Block hier
  */
@@ -494,7 +520,6 @@ class SampleClass
     // muss mit vier Leerzeichen eingerückt sein
 }
 ]]></programlisting>
-                </para>
             </sect3>
 
             <sect3 id="coding-standard.coding-style.classes.member-variables">
@@ -504,17 +529,19 @@ class SampleClass
                     Klassenvariablen müssen entsprechend den Variablen-Benennungs-Konventionen des
                     Zend Frameworks benannt werden.
                 </para>
+
                 <para>
                     Jede Variable die in der Klasse deklariert wird muß am Beginn der Klasse
                     ausgelistet werden, vor der Deklaration von allen Methoden.
                 </para>
+
                 <para>
                     Das <code>var</code> Konstrukt ist nicht gestattet. Klassenvariablen definieren
                     Ihre Sichtbarkeit durch die Verwendung des <code>private</code>,
                     <code>protected</code>, oder <code>public</code> Modifikatoren. Das gestatten
                     von direktem Zugriff auf Klassenvariablen durch deren Deklaration als public ist
                     gestattet aber es wird davon abgeraten da hierfür Zugriffsmethoden verwendet
-                    werden sollten (set/get).
+                    werden sollten (set &amp; get).
                 </para>
             </sect3>
         </sect2>
@@ -529,11 +556,13 @@ class SampleClass
                     Funktionen müssen nach der Funktions-Namenskonvention des Zend Frameworks
                     benannt werden.
                 </para>
+
                 <para>
                     Methoden innerhalb von Klassen müssen immer Ihre Sichtbarkeit durch Verwendung
                     einer der <code>private</code>, <code>protected</code>, oder <code>public</code>
                     Modifikatoren definieren.
                 </para>
+
                 <para>
                     Wie bei Klassen, sollte die Klammer immer in der Zeile unterhalb des
                     Funktionsnamens geschrieben werden.
@@ -541,14 +570,17 @@ class SampleClass
                     Leerzeichen zwischen dem Funktionsnamen und der öffnenden Klammer für die
                     Argumente sind nicht erlaubt.
                 </para>
+
                 <para>
                     Von Funktionen im globalen Raum wird komplett abgeraten.
                 </para>
+
                 <para>
                     Das folgende ist ein Beispiel einer akzeptierbaren Funktionsdeklaration in einer
                     Klasse:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 /**
  * Dokumentations Block hier
  */
@@ -564,13 +596,16 @@ class Foo
     }
 }
 ]]></programlisting>
-                </para>
 
-                <para>
-                    <emphasis>NOTIZ:</emphasis> Die Übergabe per Referenz ist die einzige erlaubt
-                    Mechanismus für die Übergabe von Parametern in der Deklaration einer Funktion:
+                <note>
+                    <para>
+                        <emphasis>Notiz</emphasis>: Die Übergabe per Referenz ist die einzige
+                        erlaubt Mechanismus für die Übergabe von Parametern in der Deklaration
+                        einer Funktion:
+                    </para>
+                </note>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 /**
  * Dokumentations Block hier
  */
@@ -583,7 +618,6 @@ class Foo
     {}
 }
 ]]></programlisting>
-                </para>
 
                 <para>
                     Der Aufruf durch Referenz ist nicht gestattet.
@@ -593,8 +627,9 @@ class Foo
                     Der Rückgabewert darf nicht in Klammern stehen. Das kann die Lesbarkeit
                     behindern und zusätzlich den Code unterbrechen wenn eine Methode später auf
                     Rückgabe durch Referenz geändert wird.
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 /**
  * Dokumentations Block hier
  */
@@ -617,8 +652,6 @@ class Foo
     }
 }
 ]]></programlisting>
-                </para>
-
             </sect3>
 
             <sect3 id="coding-standard.coding-style.functions-and-methods.usage">
@@ -628,31 +661,32 @@ class Foo
                     Funktionsargumente sollten durch ein einzelnes trennendes Leerzeichen nach dem
                     Komma Trennzeichen getrennt werden. Das folgende ist ein Beispiel für einen
                     akzeptierbaren Aufruf einer Funktion die drei Argumente benötigt:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 threeArguments(1, 2, 3);
 ]]></programlisting>
-                </para>
 
                 <para>
                     Übergabe von Referenzen zur Laufzeit ist strengstens verboten. Siehe die Sektion
                     für Funktions Deklarationen für den richtigen Weg um Funktionsargumente per
                     Referenz zu übergeben.
                 </para>
+
                 <para>
                     Durch die Übergabe von Arrays als Argument für eine Funktion, kann der
                     Funktionsaufruf den "array" Hinweis enthalten und kann in mehrere Zeilen geteilt
                     werden um die Lesbarkeit zu erhöhen. In solchen Fällen sind die normalen
                     Richtlinien für das Schreiben von Arrays trotzdem noch anzuwenden:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 threeArguments(array(1, 2, 3), 2, 3);
 
 threeArguments(array(1, 2, 3, 'Zend', 'Studio',
                      $a, $b, $c,
                      56.44, $d, 500), 2, 3);
 ]]></programlisting>
-                </para>
             </sect3>
         </sect2>
 
@@ -681,20 +715,21 @@ threeArguments(array(1, 2, 3, 'Zend', 'Studio',
                     Bedingungsanweisung. Die schließende Klammer wird immer in einer eigenen Zeile
                     geschrieben. Jeder Inhalt innerhalb der Klammer muß durch Verwendung von vier
                     Leerzeichen eingerückt werden.
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 if ($a != 2) {
     $a = 2;
 }
 ]]></programlisting>
-                </para>
 
                 <para>
                     Für "if" Anweisungen die "elseif" oder "else" beinhalten, sind die Konventionen
                     der Formatierung ähnlich dem "if" Konstrukt. Das folgende Beispiel zeigt gültige
                     Formatierungen für "if" Anweisungen mit "else" und/oder "elseif" Konstrukten:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 if ($a != 2) {
     $a = 2;
 } else {
@@ -709,9 +744,12 @@ if ($a != 2) {
     $a = 7;
 }
 ]]></programlisting>
-                    PHP erlaubt das Anweisungen in einigen Fällen auch ohne Klammern zu schreiben.
-                    Dieser Coding Standard macht keine Unterscheidungen und es müssen alle "if",
-                    "elseif" oder "else" Anweisungen in Klammern geschrieben werden.
+
+                <para>
+                    <acronym>PHP</acronym> erlaubt das Anweisungen in einigen Fällen auch ohne
+                    Klammern zu schreiben. Dieser Coding Standard macht keine Unterscheidungen und
+                    es müssen alle "if", "elseif" oder "else" Anweisungen in Klammern geschrieben
+                    werden.
                 </para>
 
                 <para>
@@ -753,15 +791,17 @@ switch ($numPeople) {
                     Anweisung vergessen werden.
                 </para>
 
-                <para>
-                    <emphasis>NOTIZ:</emphasis> Es ist machmal nützlich eine <code>case</code>
-                    Anweisung zu schreiben, die durch das nächste case fällt indem innerhalb solcher
-                    Fälle kein <code>break</code> oder <code>return</code> angegeben wird. Um diese
-                    Fälle von Fehlern zu unterscheiden, sollte jede <code>case</code> Anweisung in
-                    der <code>break</code> oder <code>return</code> unterlassen werden einen
-                    Kommentar enthalten der anzeigt das das break gewünschtermaßen unterdrückt
-                    wurde.
-                </para>
+                <note>
+                    <para>
+                        <emphasis>Notiz</emphasis>: Es ist machmal nützlich eine <code>case</code>
+                        Anweisung zu schreiben, die durch das nächste case fällt indem innerhalb
+                        solcher Fälle kein <code>break</code> oder <code>return</code> angegeben
+                        wird. Um diese Fälle von Fehlern zu unterscheiden, sollte jede
+                        <code>case</code> Anweisung in der <code>break</code> oder
+                        <code>return</code> unterlassen werden einen Kommentar enthalten der
+                        anzeigt das das break gewünschtermaßen unterdrückt wurde.
+                    </para>
+                </note>
             </sect3>
         </sect2>
 
@@ -789,10 +829,11 @@ switch ($numPeople) {
                 <title>Dateien</title>
 
                 <para>
-                    Jede Datei die PHP Code enthält muß einen Docblock am Beginn der Datei besitzen
-                    welcher mindestens diese phpDocumentor Tags enthält:
+                    Jede Datei die <acronym>PHP</acronym> Code enthält muß einen Docblock am Beginn
+                    der Datei besitzen welcher mindestens diese phpDocumentor Tags enthält:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 /**
  * Kurze Beschreibung der Datei
  *
@@ -807,7 +848,6 @@ switch ($numPeople) {
  * @since      Datei vorhanden seit Release 1.2.0
 */
 ]]></programlisting>
-                </para>
             </sect3>
 
             <sect3 id="coding-standards.inline-documentation.classes">
@@ -816,8 +856,9 @@ switch ($numPeople) {
                 <para>
                     Jede Klasse muß einen Docblock haben welche mindestens diese phpDocumentor Tags
                     enthält:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 /**
  * Kurze Beschreibung für die Klasse
  *
@@ -831,23 +872,22 @@ switch ($numPeople) {
  * @deprecated Klasse abgeraten ab Release 2.0.0
  */
 ]]></programlisting>
-                </para>
             </sect3>
 
             <sect3 id="coding-standards.inline-documentation.functions">
                 <title>Funktionen</title>
 
                 <para>
-                Jede Funktion, auch Objekt Methoden, müssen einen Docblock haben welcher mindestens
-                folgendes enthält:
-
-                    <itemizedlist>
-                        <listitem><para>Eine Beschreibung der Funktion</para></listitem>
-                        <listitem><para>Alle Argumente</para></listitem>
-                        <listitem><para>Alle möglichen Rückgabewerte</para></listitem>
-                    </itemizedlist>
+                    Jede Funktion, auch Objekt Methoden, müssen einen Docblock haben welcher
+                    mindestens folgendes enthält:
                 </para>
 
+                <itemizedlist>
+                    <listitem><para>Eine Beschreibung der Funktion</para></listitem>
+                    <listitem><para>Alle Argumente</para></listitem>
+                    <listitem><para>Alle möglichen Rückgabewerte</para></listitem>
+                </itemizedlist>
+
                 <para>
                     Es ist nicht notwendig das "@access" Tag zu verwenden, weil das Accesslevel
                     bereits vom "public", "private" oder "protected" Modifikator bekannt ist wenn
@@ -855,13 +895,13 @@ switch ($numPeople) {
                 </para>
 
                 <para>
-                    Wenn eine Funktion/Methode eine Ausnahme werfen könnte, muß @throws für alle
-                    bekannten Exception Klassen verwendet werden:
+                    Wenn eine Funktion oder Methode eine Ausnahme werfen könnte, muß @throws für
+                    alle bekannten Exception Klassen verwendet werden:
+                </para>
 
-                    <programlisting language="php"><![CDATA[
+                <programlisting language="php"><![CDATA[
 @throws exceptionclass [Beschreibung]
 ]]></programlisting>
-                </para>
             </sect3>
         </sect2>
     </sect1>

+ 15 - 13
documentation/manual/de/ref/installation.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 15614 -->
+<!-- EN-Revision: 16626 -->
 <!-- Reviewed: no -->
 <sect1 id="introduction.installation">
 
@@ -35,18 +35,19 @@
                 Entwicklung des Zend Frameworks. Schnappschüße sind gebündelt mit
                 Dokumentation, entweder in Englisch oder in allen vorhandenen Sprachen. Wenn
                 davon abgesehen wird mit den letzten Zend Framework Entwicklungen zu arbeiten,
-                sollte die Verwendung eine Subversion (SVN) Clients erwogen werden.
+                sollte die Verwendung eine Subversion (<acronym>SVN</acronym>) Clients erwogen
+                werden.
             </para>
         </listitem>
         <listitem>
             <para>
                 Verwenden eines <ulink url="http://subversion.tigris.org">Subversion</ulink>
-                (SVN) Clients. Zend Framework ist eine Open Source Software, und das für dessen
-                Entwicklung verwendete Subversion Repository ist öffentlich erreichbar. Es
-                sollte überlegt werden SVN zu verwenden um den Zend Framework zu erhalten, wenn
-                bereits SVN für die eigene Anwendungsentwicklung verwendet wird, oder wenn es
-                notwendig ist die Framework Version öfter zu aktualisieren als Releases
-                erscheinen.
+                (<acronym>SVN</acronym>) Clients. Zend Framework ist eine Open Source Software, und
+                das für dessen Entwicklung verwendete Subversion Repository ist öffentlich
+                erreichbar. Es sollte überlegt werden <acronym>SVN</acronym> zu verwenden um den
+                Zend Framework zu erhalten, wenn bereits <acronym>SVN</acronym> für die eigene
+                Anwendungsentwicklung verwendet wird, oder wenn es notwendig ist die Framework
+                Version öfter zu aktualisieren als Releases erscheinen.
             </para>
             <para>
                 <ulink url="http://svnbook.red-bean.com/nightly/en/svn.ref.svn.c.export.html">
@@ -62,17 +63,18 @@
                 url="http://svnbook.red-bean.com/nightly/en/svn.ref.svn.c.update.html">
                 svn update</ulink> upgedated werden und Änderungen können mit dem
                 <ulink url="http://svnbook.red-bean.com/nightly/en/svn.ref.svn.c.commit.html">
-                svn commit</ulink> Kommando in unser SVN Repository übertragen
+                svn commit</ulink> Kommando in unser <acronym>SVN</acronym> Repository übertragen
                 werden.
             </para>
             <para>
                 Eine <ulink
                 url="http://svnbook.red-bean.com/nightly/en/svn.advanced.externals.html">
-                externe Definition</ulink> ist recht bequem für Entwickler die bereits SVN
-                benutzen um Ihre eigenen Arbeitskopien ihrer Anwendungen zu Verwalten.
+                externe Definition</ulink> ist recht bequem für Entwickler die bereits
+                <acronym>SVN</acronym> benutzen um Ihre eigenen Arbeitskopien ihrer Anwendungen
+                zu Verwalten.
             </para>
             <para>
-                Die URL für den Stamm des Zend Framework SVN Repositories ist:
+                Die URL für den Stamm des Zend Framework <acronym>SVN</acronym> Repositories ist:
                 <ulink url="http://framework.zend.com/svn/framework/standard/trunk">
                 http://framework.zend.com/svn/framework/standard/trunk</ulink>
             </para>
@@ -83,7 +85,7 @@
         Sobald eine Kopie des Zend Framework vorhanden ist, muß die eigene Anwendung fähig sein
         die Zend Framework Klassen aufzurufen. Obwohl es <ulink
         url="http://www.php.net/manual/de/configuration.changes.php"> verschiedene Wege gibt das zu
-        erreichen</ulink>, muß PHP's <ulink
+        erreichen</ulink>, muß <acronym>PHP</acronym>'s <ulink
         url="http://www.php.net/manual/de/ini.core.php#ini.include-path">include_path</ulink> den
         Pfad zur Zend Framework Bibliothek enthalten.
     </para>

+ 2 - 2
documentation/manual/de/ref/overview.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16620 -->
+<!-- EN-Revision: 16626 -->
 <!-- Reviewed: no -->
 <sect1 id="introduction.overview">
 
@@ -29,7 +29,7 @@
         die verwendet werden kann um die Entwicklungszeit drastisch zu reduzieren.
     </para>
     <para>
-        Der prinzipielle Sponsor des Zend Framework Projektes ist
+        Der prinzipielle Sponsor des Projektes 'Zend Framework' ist
         <ulink url="http://www.zend.com">Zend Technologies</ulink>, aber viele Firmen haben
         Komponenten oder signifikante Features dem Framework beigesteuert. Firmen wie Google,
         Microsoft, und StrikeIron sind eine Partnerschaft mit Zend eingegangen um Interfaces zu