<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect3 id="zend.ldap.api.reference.zend-ldap-node">
    <title>Zend_Ldap_Node</title>

    <para>
        <classname>Zend_Ldap_Node</classname> enthält die magischen Zugriffsmethoden
        <methodname>__set()</methodname>, <methodname>__get()</methodname>,
        <methodname>__unset()</methodname> und <methodname>__isset()</methodname> um auf die
        Attribute mit Ihrem Namen zugreifen zu können. Sie verweisen auf
        <methodname>Zend_Ldap_Node::setAttribute()</methodname>,
        <methodname>Zend_Ldap_Node::getAttribute()</methodname>,
        <methodname>Zend_Ldap_Node::deleteAttribute()</methodname> und
        <methodname>Zend_Ldap_Node::existsAttribute()</methodname>. Weiters implementiert die Klasse
        <code>ArrayAccess</code> für einen Array-artigen Zugriff auf die Attribute.
        <classname>Zend_Ldap_Node</classname> implementiert auch <code>Iterator</code> und
        <code>RecursiveIterator</code> um rekursive Suchen im Baum zu erlauben.
    </para>

    <table id="zend.ldap.api.reference.zend-ldap-node.table">
        <title>Zend_Ldap_Node API</title>

        <tgroup cols="2">
            <thead>
                <row>
                    <entry>Methode</entry>
                    <entry>Beschreibung</entry>
                </row>
            </thead>

            <tbody>
                <row>
                    <entry><code>Zend_Ldap getLdap()</code></entry>

                    <entry>
                        Gibt die aktuelle <acronym>LDAP</acronym> Verbindung zurück. Wirft eine
                        <classname>Zend_Ldap_Exception</classname> wenn der aktuelle Node im
                        abgehängten Modus ist (nicht mit einer <classname>Zend_Ldap</classname>
                        Instanz verbunden).
                    </entry>
                </row>

                <row>
                    <entry><code>Zend_Ldap_Node attachLdap(Zend_Ldap$ldap)</code></entry>

                    <entry>
                        Hängt den aktuellen Node an die <classname>Zend_Ldap</classname> Instanz
                        <varname>$ldap</varname> an. Wirft eine
                        <classname>Zend_Ldap_Exception</classname> wenn <varname>$ldap</varname>
                        für den aktuellen Node nicht verantwortlich ist (wenn der Node kein Kind
                        der Basis DN von <varname>$ldap</varname> ist).
                    </entry>
                </row>

                <row>
                    <entry><code>Zend_Ldap_Node detachLdap()</code></entry>
                    <entry>Hängt den Node von der <acronym>LDAP</acronym> Verbindung ab.</entry>
                </row>

                <row>
                    <entry><code>boolean isAttached()</code></entry>

                    <entry>
                        Prüft ob der aktuelle Node an eine <acronym>LDAP</acronym> Verbindung
                        angehängt ist.
                    </entry>
                </row>

                <row>
                    <entry>
                        <emphasis>
                            <code>Zend_Ldap_Node create(string|array|Zend_Ldap_Dn $dn, array
                                $objectClass)</code>
                        </emphasis>
                    </entry>

                    <entry>
                        Factory Methode um einen neuen abgehängten
                        <classname>Zend_Ldap_Node</classname> für einen angegebenen DN zu erstellen.
                        Erstellt einen neuen <classname>Zend_Ldap_Node</classname> mit dem DN
                        <varname>$dn</varname> und der Objektklasse <varname>$objectClass</varname>.
                    </entry>
                </row>

                <row>
                    <entry>
                        <emphasis>
                            <code>Zend_Ldap_Node fromLdap(string|array|Zend_Ldap_Dn $dn, Zend_Ldap
                                $ldap)</code>
                        </emphasis>
                    </entry>

                    <entry>
                        Factory Methode um einen angehängten <classname>Zend_Ldap_Node</classname>
                        für einen angegebenen DN zu erstellen. Lädt einen existierenden
                        <classname>Zend_Ldap_Node</classname> mit dem DN <varname>$dn</varname> von
                        der <acronym>LDAP</acronym> Verbindung <varname>$ldap</varname>.
                    </entry>
                </row>

                <row>
                    <entry>
                        <emphasis>
                            <code>Zend_Ldap_Node fromArray((array $data, boolean
                                $fromDataSource)</code>
                        </emphasis>
                    </entry>

                    <entry>
                        Factory Methode um einen abgehängten <classname>Zend_Ldap_Node</classname>
                        aus den Array Daten <varname>$data</varname> zu erstellen. Wenn
                        <varname>$fromDataSource</varname> <constant>TRUE</constant> ist (der
                        Standardwert ist <constant>FALSE</constant>), werden die Daten als, in einem
                        <acronym>LDAP</acronym> Baum vorhanden, betrachtet.
                    </entry>
                </row>

                <row>
                    <entry><code>boolean isNew()</code></entry>

                    <entry>
                        Sagt ob der Node als Neu betrachtet wird (nicht auf dem Server vorhanden).
                        Es ist zu beachten dass das nicht sagt ob der Node wirklich auf dem Server
                        vorhanden ist. Man muss <methodname>Zend_Ldap_Node::exists()</methodname>
                        verwenden um zu sehen ob der Node dort bereits existiert.
                    </entry>
                </row>

                <row>
                    <entry><code>boolean willBeDeleted()</code></entry>

                    <entry>
                        Sagt ob dieser Node gelöscht wird sobald
                        <methodname>Zend_Ldap_Node::update()</methodname> aufgerufen wird.
                        Tells if this node is going to be deleted once
                        <methodname>Zend_Ldap_Node::update()</methodname> is called.
                    </entry>
                </row>

                <row>
                    <entry><code>Zend_Ldap_Node delete()</code></entry>

                    <entry>
                        Markiert den Node als gelöscht. Nodes werden beim Aufruf von
                        <methodname>Zend_Ldap_Node::update()</methodname> gelöscht, wenn
                        <methodname>Zend_Ldap_Node::willBeDeleted()</methodname>
                        <constant>TRUE</constant> ist.
                    </entry>
                </row>

                <row>
                    <entry><code>boolean willBeMoved()</code></entry>

                    <entry>
                        Sagt ob dieser Node verschoben wird sobald
                        <methodname>Zend_Ldap_Node::update()</methodname> aufgerufen wird.
                    </entry>
                </row>

                <row>
                    <entry><code>Zend_Ldap_Node update(Zend_Ldap $ldap)</code></entry>

                    <entry>
                        Sendet alle wartenden Änderungen an den <acronym>LDAP</acronym> Server. Wenn
                        <varname>$ldap</varname> unterdrückt wird, dann wird die aktuelle
                        <acronym>LDAP</acronym> Verbindung verwendet. Wenn der aktuelle Node von
                        einer <acronym>LDAP</acronym> Verbindung getrennt ist, wird eine
                        <classname>Zend_Ldap_Exception</classname> geworfen. Wenn
                        <varname>$ldap</varname> angegeben wird, dann wird der aktuelle Node an die
                        angegebene <acronym>LDAP</acronym> Verbindung angehängt.
                    </entry>
                </row>

                <row>
                    <entry><code>Zend_Ldap_Dn getCurrentDn()</code></entry>

                    <entry>
                        Gibt den aktuellen DN des aktuellen Nodes als
                        <classname>Zend_Ldap_Dn</classname> zurück. Das reflektiert mögliche
                        rename-Operationen.
                    </entry>
                </row>

                <row>
                    <entry><code>Zend_Ldap_Dn getDn()</code></entry>

                    <entry>
                        Gibt den originalen DN des aktuellen Nodes als
                        <classname>Zend_Ldap_Dn</classname> zurück. Das reflektiert mögliche
                        rename-Operationen.
                    </entry>
                </row>

                <row>
                    <entry><code>string getDnString(string $caseFold)</code></entry>

                    <entry>
                        Gibt den originalen DN des aktuellen Nodes als String zurück. Das
                        reflektiert mögliche rename-Operationen.
                    </entry>
                </row>

                <row>
                    <entry><code>array getDnArray(string $caseFold)</code></entry>

                    <entry>
                        Gibt den originalen DN des aktuellen Nodes als Array zurück. Das reflektiert
                        mögliche rename-Operationen.
                    </entry>
                </row>

                <row>
                    <entry><code>string getRdnString(string $caseFold)</code></entry>

                    <entry>
                        Gibt den <acronym>RDN</acronym> des aktuellen Nodes als String zurück. Das
                        reflektiert mögliche rename-Operationen.
                    </entry>
                </row>

                <row>
                    <entry><code>array getRdnArray(string $caseFold)</code></entry>

                    <entry>
                        Gibt den <acronym>RDN</acronym> des aktuellen Nodes als Array zurück. Das
                        reflektiert mögliche rename-Operationen.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node setDn(Zend_Ldap_Dn|string|array $newDn)</code>
                    </entry>

                    <entry>
                        Setzt den neuen DB für diesen Node und verschiebt diesen Node effektiv
                        sobald <methodname>Zend_Ldap_Node::update()</methodname> aufgerufen wird.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node move(Zend_Ldap_Dn|string|array $newDn)</code>
                    </entry>

                    <entry>
                        Das ist ein Alias für <methodname>Zend_Ldap_Node::setDn()</methodname>.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node rename(Zend_Ldap_Dn|string|array $newDn)</code>
                    </entry>

                    <entry>
                        Das ist ein Alias für <methodname>Zend_Ldap_Node::setDn()</methodname>.
                    </entry>
                </row>

                <row>
                    <entry><code>array getObjectClass()</code></entry>
                    <entry>Gibt objectClass des Nodes zurück.</entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node setObjectClass(array|string $value)</code>
                    </entry>

                    <entry>Setzt das objectClass Attribut.</entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node appendObjectClass(array|string $value)</code>
                    </entry>

                    <entry>Stellt dem objectClass Attribut voran.</entry>
                </row>

                <row>
                    <entry><code>string toLdif(array $options)</code></entry>

                    <entry>
                        Gibt eine <acronym>LDIF</acronym> Repräsentation des aktuellen Nodes zurück.
                        <varname>$options</varname> wird an
                        <classname>Zend_Ldap_Ldif_Encoder</classname> übergeben.
                    </entry>
                </row>

                <row>
                    <entry><code>array getChangedData()</code></entry>

                    <entry>
                        Gibt geänderte Node Daten zurück. Das Array enthält alle geänderten
                        Attribute. Dieses format kann in <methodname>Zend_Ldap::add()</methodname>
                        und <methodname>Zend_Ldap::update()</methodname> verwendet werden.
                    </entry>
                </row>

                <row>
                    <entry><code>array getChanges()</code></entry>
                    <entry>Gibt alle gemachten Änderungen zurück.</entry>
                </row>

                <row>
                    <entry><code>string toString()</code></entry>

                    <entry>
                        Gibt den DN des aktuellen Nodes zurück - leitet auf
                        <methodname>Zend_Ldap_Dn::getDnString()</methodname> weiter.
                    </entry>
                </row>

                <row>
                    <entry><code>string __toString()</code></entry>

                    <entry>
                        Castet auf eine String Repräsentation - leitet auf
                        <methodname>Zend_Ldap_Dn::toString()</methodname> weiter.
                    </entry>
                </row>

                <row>
                    <entry><code>array toArray(boolean $includeSystemAttributes)</code></entry>

                    <entry>
                        Gibt eine Array Repräsentation des aktuellen Nodes zurück. Wenn
                        <varname>$includeSystemAttributes</varname> <constant>FALSE</constant> ist
                        (der Standardwert ist <constant>TRUE</constant>), werden Systemspezifische
                        Attribute vom Array entfernt. Anders als
                        <methodname>Zend_Ldap_Node::getAttributes()</methodname> enthält das
                        resultierende Array den DN mit dem Schlüssel <code>'dn'</code>.
                    </entry>
                </row>

                <row>
                    <entry><code>string toJson(boolean $includeSystemAttributes)</code></entry>

                    <entry>
                        Gibt eine <acronym>JSON</acronym> Repräsentation des aktuellen Nodes  zurück
                        wobei <methodname>Zend_Ldap_Node::toArray()</methodname> verwendet wird.
                    </entry>
                </row>

                <row>
                    <entry><code>array getData(boolean $includeSystemAttributes)</code></entry>

                    <entry>
                        Gibt die Attribute des Nodes zurück. Das Array enthält alle Attribute in
                        Ihrem internen Format (keine Konvertierung).
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>boolean existsAttribute(string $name, boolean $emptyExists)</code>
                    </entry>

                    <entry>
                        Prüft ob ein angegebenes Attribut existiert. Wenn
                        <varname>$emptyExists</varname> <constant>FALSE</constant> ist werden leere
                        Attrbute (welche nur array() enthalten) als nicht-existent betrachtet und es
                        wird <constant>FALSE</constant> zurückgegeben. Wenn
                        <varname>$emptyExists</varname> <constant>TRUE</constant> ist werden leere
                        Attribute als existent betrachtet und es wird <constant>TRUE</constant>
                        zurückgegeben. In diesem Fall gibt die Methode nur dann
                        <constant>FALSE</constant> zurck wenn der Name des Attributs in der Sammlung
                        der Schlüssel fehlt.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>boolean attributeHasValue(string $name, mixed|array $value)</code>
                    </entry>

                    <entry>
                        Prüft ob die angegebenen Werte im Attribut existieren. Die Methode gibt nur
                        dann <constant>TRUE</constant> zurück wenn alle Werte von
                        <varname>$value</varname> im Attribut vorhanden sind. Der Vergleich wird
                        strikt durchgeführt (er respektiert den Datentyp).
                    </entry>
                </row>

                <row>
                    <entry><code>integer count()</code></entry>

                    <entry>
                        Gibt die Anzahl der Attribute im Node zurück. Implementiert Countable.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>mixed getAttribute(string $name, integer|null $index)</code>
                    </entry>

                    <entry>
                        Holt ein <acronym>LDAP</acronym> Attribut. Die Datenkonvertierung wird
                        angewendet durch Verwendung von
                        <methodname>Zend_Ldap_Attribute::getAttribute()</methodname>.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>array getAttributes(boolean $includeSystemAttributes)</code>
                    </entry>

                    <entry>
                        Holt alle Attribute des Nodes. Wenn
                        <varname>$includeSystemAttributes</varname> <constant>FALSE</constant> ist
                        (der Standardwert ist <constant>TRUE</constant>) dann werden die System
                        spezifischen Attribute vom Array entfernt.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node setAttribute(string $name, mixed $value)</code>
                    </entry>

                    <entry>
                        Setzt ein <acronym>LDAP</acronym> Attribut. Die Datenkonvertierung wird
                        angewendet durch Verwendung von
                        <methodname>Zend_Ldap_Attribute::setAttribute()</methodname>.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node appendToAttribute(string $name, mixed $value)</code>
                    </entry>

                    <entry>
                        Hängt etwas an ein <acronym>LDAP</acronym> Attribut an. Die
                        Datenkonvertierung wird angewendet durch Verwendung von
                        <methodname>Zend_Ldap_Attribute::setAttribute()</methodname>.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>array|integer getDateTimeAttribute(string $name,
                            integer|null $index)</code>
                    </entry>

                    <entry>
                        Holt ein <acronym>LDAP</acronym> Date/Time Attribut. Die Datenkonvertierung
                        wird angewendet durch Verwendung von
                        <methodname>Zend_Ldap_Attribute::setDateTimeAttribute()</methodname>.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node setDateTimeAttribute(string $name,
                            integer|array $value, boolean $utc)</code>
                    </entry>

                    <entry>
                        Setzt ein <acronym>LDAP</acronym> Date/Time Attribut. Die Datenkonvertierung
                        wird angewendet durch Verwendung von
                        <methodname>Zend_Ldap_Attribute::setDateTimeAttribute()</methodname>.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node appendToDateTimeAttribute(string $name,
                            integer|array $value, boolean $utc)</code>
                    </entry>

                    <entry>
                        Hängt etwas an ein <acronym>LDAP</acronym> Date/Time Attribut an. Die
                        Datenkonvertierung wird angewendet durch Verwendung von
                        <methodname>Zend_Ldap_Attribute::setDateTimeAttribute()</methodname>.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node setPasswordAttribute(string $password,
                            string $hashType, string $attribName)</code>
                    </entry>

                    <entry>
                        Setzt ein <acronym>LDAP</acronym> Passwort bei
                        <varname>$attribName</varname> (der Standardwert ist
                        <code>'userPassword'</code>) auf <varname>$password</varname> mit dem
                        Hashtyp <varname>$hashType</varname> (der Standardwert ist
                        <constant>Zend_Ldap_Attribute::PASSWORD_HASH_MD5</constant>).
                    </entry>
                </row>

                <row>
                    <entry><code>Zend_Ldap_Node deleteAttribute(string $name)</code></entry>
                    <entry>Löscht ein <acronym>LDAP</acronym> Attribut.</entry>
                </row>

                <row>
                    <entry><code>void removeDuplicatesFromAttribute(string $name)</code></entry>

                    <entry>
                        Entfernt doppelte Werte von einem <acronym>LDAP</acronym> Attribut.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>void removeFromAttribute(string $attribName,
                            mixed|array $value)</code>
                    </entry>

                    <entry>
                        Entfernt die angegebenen Werte von einem <acronym>LDAP</acronym> Attribut.
                    </entry>
                </row>

                <row>
                    <entry><code>boolean exists(Zend_Ldap $ldap)</code></entry>

                    <entry>
                        Prüft ob der aktuelle Node im angegebenen <acronym>LDAP</acronym> Server
                        existiert (der aktuelle Server wird verwendet wenn
                        <constant>NULL</constant> übergeben wird).
                    </entry>
                </row>

                <row>
                    <entry><code>Zend_Ldap_Node reload(Zend_Ldap $ldap)</code></entry>

                    <entry>
                        Lädt die Attribute des aktuellen Nodes nochmalig vom angegebenen
                        <acronym>LDAP</acronym> Server (der aktuelle Server wird verwendet wenn
                        <constant>NULL</constant> übergeben wird).
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node_Collection
                            searchSubtree(string|Zend_Ldap_Filter_Abstract $filter, integer
                            $scope, string $sort)</code>
                    </entry>

                    <entry>
                        Sucht den Unterbaum des Nodes mit dem angegebenen <varname>$filter</varname>
                        und den angegebenen Suchparametern ab. Siehe
                        <methodname>Zend_Ldap::search()</methodname> für Details über die
                        Parameter <varname>$scope</varname> und <varname>$sort</varname>.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>integer countSubtree(string|Zend_Ldap_Filter_Abstract
                            $filter, integer $scope)</code>
                    </entry>

                    <entry>
                        Zählt die Elemente des Unterbaums vom Node welche dem angegebenen
                        <varname>$filter</varname> entsprechen und dem angegebenen Suchbereich.
                        Siehe <methodname>Zend_Ldap::search()</methodname> für Details über den
                        <varname>$scope</varname> Parameter.
                    </entry>
                </row>

                <row>
                    <entry><code>integer countChildren()</code></entry>
                    <entry>Zählt die Kinder des Nodes.</entry>
                </row>

                <row>
                    <entry>
                        <code>Zend_Ldap_Node_Collection
                            searchChildren(string|Zend_Ldap_Filter_Abstract $filter, string
                            $sort)</code>
                    </entry>

                    <entry>
                        Sucht nach Kindern des Nodes die dem angegebenen <varname>$filter</varname>
                        entsprechen. Siehe <methodname>Zend_Ldap::search()</methodname> für Details
                        über den <varname>$sort</varname> Parameter.
                    </entry>
                </row>

                <row>
                    <entry><code>boolean hasChildren()</code></entry>
                    <entry>Gibt zurück ob der aktuelle Node Kinder hat.</entry>
                </row>

                <row>
                    <entry><code>Zend_Ldap_Node_ChildrenIterator getChildren()</code></entry>
                    <entry>Gibt alle Kinder des aktuellen Nodes zurück.</entry>
                </row>

                <row>
                    <entry><code>Zend_Ldap_Node getParent(Zend_Ldap $ldap)</code></entry>

                    <entry>
                        Gibt den Elternteil des aktuellen Nodes zurück wobei die
                        <acronym>LDAP</acronym> Verbindung <varname>$ldap</varname> verwendet wird
                        (verwendet die aktuelle <acronym>LDAP</acronym> Verbindung wenn diese nicht
                        angegeben wird).
                    </entry>
                </row>
            </tbody>
        </tgroup>
    </table>
</sect3>
