Location: PHPKode > scripts > PDOM > pdom/Comment.php
<?
define( "COMMENT", "comment" );

/*========================================================================================
*  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
*=========================================================================================
*  Comment Version 1.00.0001           Datum: 26.02.2002
*=========================================================================================
*  Enthält alle Kommentare des Documents oder eines Elements in einem assoziativen Array
*=======================================================================================*/

   class Comment {
      var $comments           = array();


      /**-----------------------------------------------------------------------
      * Comment instanziiert das Objekt Comment und legt ein neuen Kommentar an
      * @param comments - (obtional) ein indizierter Array mit den Kommentaren
      * eines Documents oder Elements (dieser Parameter schließt folgende aus).
      * @param comment  - (obtional) eine Auflistung neu anzulegender Kommentare
      * eines Documents oder Elements (diese(r) Parameter schließt den zuerst
      * genannten Parameter aus).
      *-----------------------------------------------------------------------*/
      function Comment() {
      // $this->pro->Method( "class Comment" );

         $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 angegeben wurde und dieser ein Array ist.
         //
            if ( $arga == 1 && is_array( $args[0] ) ) {
               $this->comments      = $args[0];
            } else {
               $this->comments      = $args;
            }  // if ( $arga == 1 && is_array( $args[0] )
         }  // if ( $arga > 0 )

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


      /**-----------------------------------------------------------------------
      * setComments setzt die Kommentare des Documents oder eines Elements aus
      * einer indizierten Tabelle
      * @param  comments ein indizierter Array mit den Kommentaren
      * eines Documents oder Elements
      * @return wurde ein korrekter Parameter übergeben und konnten die
      * Kommentare gesetzt werden, wird true zurückgegeben. Sonst false.
      *-----------------------------------------------------------------------*/
      function setComments( $comments ) {
      // $this->pro->Method( "Comment: setComments()" );

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

      // prüfen, ob der angegebene Parameter den korrekten Datentyp enthält
      //
         if ( is_array( $comments ) ) {
         // falls der Parameter nicht leer ist, dann sollte der Parameter auf
         // jeden Fall eine indizierte Tabelle sein.
         //
            if ( ! empty( $comments ) ) {
               if ( isset( $comments[0] ) ) {
                  $this->comments      = $comments;
                  $result              = true;
               } else {
                  $GLOBALS['error']    = 2;                 // kein indizierter Array
               }  // if ( isset( $comments[0] ) )
            }  // if ( ! empty( $comments ) )
         } else {
            $GLOBALS['error']    = 1;                       // falscher Datentüpe
         }  // if ( is_array( $comments ) )

      // $this->pro->Returns( "Comment: setComments()" );

         return $result;
      }  // function setComments()


      /**-----------------------------------------------------------------------
      * addComment setzt ein oder mehrere Kommentare für ein Dokument oder Element.
      * Die Liste der Kommentar wird dabei erweitert.
      * @param  comment - der oder die Kommentare, der oder die zur vorhandenen
      * Liste hinzugefügt werden soll.
      * @return Diese Funktion liefert immer true zurück.
      *-----------------------------------------------------------------------*/
      function addComment() {
      // $this->pro->Method( "Comment: addComment()" );

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

      // prüfen, ob Parameter an die Funktion übergeben wurden.
      //
         if ( $arga > 0 ) {
            for( $j=0; $j<$arga; $j++ ) {
               $i                   = count( $this->comments );
               $this->comments[$i]  = $args[$j];
            }  // for( $j=0; $j<$arga; $j++ )
         }  // if ( $arga > 0 )

      // $this->pro->Returns( "Comment: addComment()" );

         return true;
      }  // function addComment()


      /**-----------------------------------------------------------------------
      * getComments gibt die Kommentare zu einem Dokument oder Element in einer
      * indizierten Tabelle zurück.
      * @return eine indizierte Tabelle mit den Kommentaren zu einem Dokument
      * oder Element
      *-----------------------------------------------------------------------*/
      function getComments() {
      // $this->pro->Method( "getComments()" );
      // $this->pro->Returns( "getComments()" );

         return $this->comments;
      }  // function getComments()


      /**-----------------------------------------------------------------------
      * getComment gibt den über einen Index benannten Kommentar zurück
      * @param  index   - Index des Kommentars
      * @return wurde ein korrekter Index angegeben, wird der angeforderte
      * Kommentar zurückgegeben, sonst false.
      *-----------------------------------------------------------------------*/
      function getComment( $index ) {
      // $this->pro->Method( "Comment: getComment()" );

         $GLOBALS['error']    = 0;

      // prüfen, ob ein korrekter Datentyp angegeben wurde.
      //
         if ( is_long( $index ) ) {
         // prüfen, ob ein gültiger Index angegeben wurde.
         //
            if ( isset( $this->comments[$index] ) ) {
               $result              = $this->comments[$index];
            } else {
               $GLOBALS['error']    = 4;                    // Index out of bounds
               $result              = false;
            }  // if ( isset( $this->comments[$index] ) )
         } else {
            $GLOBALS['error']    = 1;                       // falscher Datentyp
            $result              = false;
         }  // if ( is_long( $index ) )

      // $this->pro->Returns( "Comment: getComment()" );

         return $result;
      }  // function getComment()


      /**-----------------------------------------------------------------------
      * toString gibt eine Liste der Kommentare zu einem Dokument oder Element
      * zurück.
      * @return Liste der Kommentare
      *-----------------------------------------------------------------------*/
      function toString() {
      // $this->pro->Method( "Comment: toString()" );

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

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

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

         return $result;
      }  // function toString()

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