<?
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 reiner@team-entzminger.de
*=========================================================================================
* 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; " . $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
?>
|