Location: PHPKode > scripts > PDOM > pdom/Attribut.php
<?
define( "ATTRIBUT", "attribut" );

/*========================================================================================
*  Autor: Reiner Entzminger            Telefon  (0 63 41) 8 43 69
*         Südring 10                   Telefax  (0 63 41) 8 43 69
*         D-76829 Landau               Mobil +49(0)170 7 34 62 72
*
*  http://www.team-entzminger.de       Mail hide@address.com
*=========================================================================================
*  Attribut Version 1.00.0002          Datum: 26.02.2002
*=========================================================================================
*  Enthält alle Attribute  eines Elements in einem assoziativen Array
*=======================================================================================*/

   class Attribut {
      var $attributes         = array();

      /**-----------------------------------------------------------------------
      * Attribut instanziiert das Objekt Attribut und legt ein neues Attribut an
      * @param  attributes - (obtional) ein assoziatives Array mit den Attributen
      * eines Elements. Dieser Parameter schließt die zwei folgend genannten aus.
      * @param  attribut   - (obtional) das anzulegende Attribut
      * @param  value      - (obtional) der Wert des Attributs
      * Die letzten Paremter schließen den zuerst genannten Parameter aus.
      *-----------------------------------------------------------------------*/
      function Attribut() {
      // $this->pro->Method( "class Attribut()" );

         $GLOBALS['error']    = 0;

         $arga                = func_num_args();
         $args                = func_get_args();

      // prüfen, ob Parameter an den Konstruktor übergeben wurden
      //
         if ( $arga > 0 ) {
         // prüfen, ob nur ein Parameter übergeben wurde. Ist dies der Fall, dann
         // muss der Parameter ein assoziativer Array sein.
         //
            if ( $arga == 1 ) {
            // prüfen, ob der angegebene Parameter den korrekten Datentyp enthält
            //
               if ( is_array( $args[0] ) ) {
                  $keys                = array_keys( $args[0] );

               // falls der Parameter nicht leer ist, dann sollten indizes assoziativ
               // sein (sie dürfen keine numerischen Werte enthalten).
               //
                  if ( ! empty( $keys ) ) {
                     if ( is_string( $keys[0] ) ) {
                        $this->attributes    = $args[0];
                     } else {
                        $GLOBALS['error']    = 2;           // kein assoziativer Array
                     }  // if ( is_string( $keys[0] ) )
                  }  // if ( ! empty( $keys ) )
               } else {
                  $GLOBALS['error']    = 1;                 // falscher Datentyp
               }  // if ( is_array( $args[0] ) )
            }  // if ( $arga == 1 && is_array( $args[0] ) )

         // prüfen, ob zwei Parameter übergeben wurden. Der erste Parameter muss vom
         // Datentyp String sein. Der erste enthält den Namen des Attributs und der
         // zweite den Wert des Attributs
         //
            else if ( $arga == 2 ) {
               if ( is_string( $args[0] ) ) {
                  $this->attributes[$args[0]]   = $args[1];
               } else {
                  $GLOBALS['error']    = 1;                 // falscher Datentyp
               }  // if ( is_string( $arga[0] )
            }  // if ( $arga == 2 )
         }  // if ( $arga > 0 )

      // $this->pro->Returns( "class Attribut()" );
      }  // function Methode()


      /**-----------------------------------------------------------------------
      * setAttributes setzt die Attribute eines Elements aus einem assoziativen
      * array
      * @param  $attributes   - ein assoziatives Array mit den Attributen eines
      * Elements.
      * @retrun wurde ein korrekter Parameter übergeben und konnten die Attribute
      * gesetzt werden, wird true zurückgegeben, sonst false.
      *-----------------------------------------------------------------------*/
      function setAttributes( $attributes ) {
      // $this->pro->Method( "Attribut: setAttributes()" );

         $GLOBALS['error']    = 0;
         $result              = false;

      // prüfen, ob der angegebene Parameter den korrekten Datentyp enthält
      //
         if ( is_array( $attributes ) ) {
            $keys                = array_keys( $attributes );

         // falls der Parameter nicht leer ist, dann sollten indizess assoziativ
         // sein (sie dürfen keine numerischen Werte enthalten).
         //
            if ( ! empty( $keys ) ) {
               if ( is_string( $keys[0] ) ) {
                  $this->attributes    = $attributes;
                  $result              = true;
               } else {
                  $GLOBALS['error']    = 2;                 // kein assoziativer Array
			      }  // if ( is_string( $keys[0] ) )
            }  // if ( ! empty( $keys ) )
         } else {
            $GLOBALS['error']    = 1;                       // falscher Datentyp
         }  // if ( is_array( $attributes ) )

      // $this->pro->Returns( "Attribut: setAttributes()" );

         return $result;
      }  // function setAttributes()


      /**-----------------------------------------------------------------------
      * setAttribut setzt ein neues Attribut in der Auflistung der Attribute
      * @param  attribut   - das neu anzulegende Attribut
      * @param  value      - der Wert des Attributs
      *-----------------------------------------------------------------------*/
      function setAttribut( $attribut, $value ) {
      // $this->pro->Method( "Attribut: setAttribut()" );

         $GLOBALS['error']    = 0;
         $result              = false;

      // prüfen, ob der erste Parameter vom Datentyp String ist
      //
         if ( is_string( $attribut ) ) {
            $this->attributes[$attribut]  = $value;

            $result              = true;
         } else {
            $GLOBALS['error']    = 1;                       // falscher Datentyp
         }  // if ( is_string( $attribut ) )

      // $this->pro->Returns( "Attribut: setAttribut()" );

         return $result;
      }  // function setAttribut()


      /**-----------------------------------------------------------------------
      * getAttribut gibt das benannte Attribut (Index oder Name) zurück
      * @param  index   - Index innerhalb der Sammlung der Attribute
      * @param  name    - der Name des Attributs
      * @return den Wert des abgefragten Attributs oder false, falls dieser nicht
      * gefunden werden konnte.
      *-----------------------------------------------------------------------*/
      function getAttribut( $attribut ) {
      // $this->pro->Method( "Attribut: getAttribut()" );

         $GLOBALS['error']    = 0;

      // prüfen, von welchem Datentyp der Parameter ist
      // String, Attribut nach dem Namen abfragen
      // Long, Attribut über den Index ermitteln
      //
         if ( is_string( $attribut ) ) {
            if ( isset( $this->attributes[$attribut] ) ) {
               $result              = $this->attributes[$attribut];
            } else {
               $GLOBALS['error']    = 3;                    // Attribut nicht in der Sammlung
               $result              = false;
            }  // if ( isset( $this->attributes[$attribut] ) )
         } else {
            $keys                = array_keys( $this->attributes );

            if ( $attribut < count( $keys ) ) {
               if ( $attribut > -1 ) {
                  $result              = $this->attributes[$keys[$attribut]];
               } else {
                  $GLOBALS['error']    = 4;                 // Index out of bounds
                  $result              = false;
               }  // if ( $attribut > -1 )
            } else {
               $GLOBALS['error']    = 4;                    // Index out of bounds
               $result              = false;
            }  // if ( $attribut < count( $keys ) )
         }  // if ( is_string( $attribut ) )

      // $this->pro->Returns( "Attribut: getAttribut()" );

         return $result;
      }  // function getAttribut()


      /**-----------------------------------------------------------------------
      * getKeys gibt die Attributnamen in einer Indizierten Tabelle zurück
      * @return die Namen der Attribute eines Elements
      *-----------------------------------------------------------------------*/
      function getKeys() {
      // $this->pro->Method( "Attribut: getKeys()" );
      // $this->pro->Returns( "Attribut: getKeys()" );

         return array_keys( $this->attributes );
      }  // function getKeys()


      /**-----------------------------------------------------------------------
      * toString gibt eine Liste der Attribute mit Namen und deren Werte, zurück
      * @return Liste der Attribute
      *-----------------------------------------------------------------------*/
      function toString() {
      // $this->pro->Method( "Attribut: toString()" );

         $result              = "Attribute:<br><br>\n\n";

         $keys                = array_keys( $this->attributes );

         for( $i=0; $i< count( $keys ); $i++ ) {
            $result             .= "&nbps;&nbsp;&nbsp;" . $keys[$i] . " = " . $this->attributes[$keys[$i]] . "<br>\n";
         }  // for( $i=0; $i< count( $keys ); $i++ )

      // $this->pro->Returns( "Attribut: toString()" );

         return $result;
      }  // function Methode()

   }  // class Attribut
?>
Return current item: PDOM