Source for file class.SEEN.php

Documentation is available at class.SEEN.php

  1. <?php
  2.  
  3.  
  4. /**
  5.  * Stellt die Verbindung zur Datenbank 'see' her
  6.  *
  7.  * Stellt Methoden zur Verfügung, die Informationen über alle Seen liefern und
  8.  * aktuellen See allen Klassen zur Verfügung stellt.
  9.  *
  10.  * @author Kay Koch
  11.  * @package src
  12.  * @since 21.12.04
  13.  * @subpackage foundation_tables
  14.  * @version 1.1
  15.  */
  16.  
  17. if (version_compare(PHP_VERSION'5')) {
  18.     die('This file was generated for PHP 5');
  19. }
  20.  
  21. /**
  22.  * Basisklasse aller Klassen mit Datenbankzugriff.
  23.  *
  24.  * stellt Methoden und Objekte zur Fehlermeldung und zum Datenbankzugriff zur
  25.  *
  26.  * @author Kay Koch
  27.  * @since 1.12.04
  28.  * @version 1.1
  29.  */
  30. require_once('src/foundation/tables/class.PARENTTABLES.php');
  31.  
  32. /**
  33.  * Interface für die Klassen zur Manipulation der Datenbanktabellen
  34.  *
  35.  * @author Kay Koch, <kay.koch@gmx.de>
  36.  */
  37. require_once('src/interfaces/interface.TABLEINTERFACE.php');
  38.  
  39. /* user defined includes */
  40. // section -64--88-122--2-1328c7a:100f136ad5a:-7ffe-includes begin
  41. // section -64--88-122--2-1328c7a:100f136ad5a:-7ffe-includes end
  42.  
  43. /* user defined constants */
  44. // section -64--88-122--2-1328c7a:100f136ad5a:-7ffe-constants begin
  45. // section -64--88-122--2-1328c7a:100f136ad5a:-7ffe-constants end
  46.  
  47. /**
  48.  * Stellt die Verbindung zur Datenbank 'see' her
  49.  *
  50.  * Stellt Methoden zur Verfügung, die Informationen über alle Seen liefern und
  51.  * aktuellen See allen Klassen zur Verfügung stellt.
  52.  *
  53.  * @access public
  54.  * @author Kay Koch
  55.  * @package src
  56.  * @since 21.12.04
  57.  * @subpackage foundation_tables
  58.  * @version 1.1
  59.  */
  60.         implements src_interfaces_TABLEINTERFACE
  61. {
  62.     // --- ATTRIBUTES ---
  63.  
  64.     
  65.     /**
  66.      * array mit allen Seen
  67.      *
  68.      * @access private
  69.      * @since 1.12.04
  70.      * @var array 
  71.      */
  72.     protected $data = array();
  73.  
  74.     /**
  75.      * Beinhaltet den Datenbanknamen (see)
  76.      *
  77.      * @access protected
  78.      * @var string 
  79.      */
  80.     protected $dbTableName = 'see';
  81.  
  82.     /**
  83.      * aktuelle See_id
  84.      *
  85.      * @access public
  86.      * @var int 
  87.      */
  88.     public $see_id = 0;
  89.  
  90.     /**
  91.      * Gibt an ob alle Seen oder nur die aktiven angezeigt werden sollen
  92.      *
  93.      * @access private
  94.      * @var boolean 
  95.      */
  96.     private static $showAll false;
  97.  
  98.     // --- OPERATIONS ---
  99.  
  100.     
  101.     /**
  102.      * liefert einen (mehrere) Datensatz die durch setzen ser Parameter
  103.      * werden
  104.      *
  105.      * @access public
  106.      * @author Kay Koch, <kay.koch@gmx.de>
  107.      * @return array 
  108.      */
  109.     public function getRow()
  110.     {
  111.         $returnValue "";
  112.  
  113.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7fab begin
  114.         if (!empty($this->see_id))
  115.             $returnValue $this->data[$this->see_id];
  116.         else
  117.             $returnValue $this->data;
  118.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7fab end
  119.  
  120.         return $returnValue;
  121.     }
  122.  
  123.     /**
  124.      * veranlasst ein Update
  125.      *
  126.      * @access public
  127.      * @author Kay Koch, <kay.koch@gmx.de>
  128.      * @param array 
  129.      * @return boolean 
  130.      */
  131.     public function updateRow($data)
  132.     {
  133.         $returnValue = (bool) false;
  134.  
  135.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7fa9 begin
  136.         try {
  137.             $sql "UPDATE IGNORE $this->dbTableName
  138.                     SET name = '$data['name'"',
  139.                         isActive  = '" $data['isActive'"',
  140.                         vorOrtKontakt_id  = '" $data['vorOrtKontakt_id'"',
  141.                         ansprechpartner_id  = '" $data['ansprechpartner_id'"',
  142.                         wochenImVorraus  = '" $data['wochenImVorraus'"',
  143.                         uhrzeitBeginnWoche = '" $data['uhrzeitBeginnWoche'"',
  144.                         uhrzeitEndeWoche  = '" $data['uhrzeitEndeWoche'"',
  145.                         buchbarProTag  = '" $data['buchbarProTag'"',
  146.                         uhrzeitBeginnWochenende = '" $data['uhrzeitBeginnWochenende'"',
  147.                         uhrzeitEndeWochenende  = '" $data['uhrzeitEndeWochenende'"',
  148.                         saisonStart  = '" $data['saisonStart'"',
  149.                         saisonEnde  = '" $data['saisonEnde'"',
  150.                         maxPerOrder  = '" $data['maxPerOrder'"',
  151.                         info = '" $data['info'"'
  152.                     WHERE see_id = '$this->see_id'";
  153.             if (!$this->update($sql))
  154.                 throw new Exception ();
  155.             $this->updateData();
  156.             $returnValue true;
  157.         }
  158.         catch (Exception $e{;
  159.         }
  160.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7fa9 end
  161.  
  162.         return (bool) $returnValue;
  163.     }
  164.  
  165.     /**
  166.      * fügt einen neuen Datensatz ein
  167.      *
  168.      * @access public
  169.      * @author Kay Koch, <kay.koch@gmx.de>
  170.      * @param array 
  171.      * @return boolean 
  172.      */
  173.     public function insertRow($data)
  174.     {
  175.         $returnValue = (bool) false;
  176.  
  177.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7fa6 begin
  178.         try {
  179.             $sql "INSERT IGNORE INTO $this->dbTableName
  180.                     SET name = '$data['name'"',
  181.                         isActive  = '" $data['isActive'"',
  182.                         vorOrtKontakt_id  = '" $data['vorOrtKontakt_id'"',
  183.                         ansprechpartner_id  = '" $data['ansprechpartner_id'"',
  184.                         wochenImVorraus  = '" $data['wochenImVorraus'"',
  185.                         uhrzeitBeginnWoche = '" $data['uhrzeitBeginnWoche'"',
  186.                         uhrzeitEndeWoche  = '" $data['uhrzeitEndeWoche'"',
  187.                         buchbarProTag  = '" $data['buchbarProTag'"',
  188.                         uhrzeitBeginnWochenende = '" $data['uhrzeitBeginnWochenende'"',
  189.                         uhrzeitEndeWochenende  = '" $data['uhrzeitEndeWochenende'"',
  190.                         saisonStart  = '" $data['saisonStart'"',
  191.                         saisonEnde  = '" $data['saisonEnde'"',
  192.                         maxPerOrder  = '" $data['maxPerOrder'"',
  193.                         info = '" $data['info'"'";
  194.             $this->see_id = $this->insert($sql);
  195.             if (!$this->see_id)
  196.                 throw new Exception ();
  197.             $this->updateData($data);
  198.             $returnValue true;
  199.         }
  200.         catch (Exception $e{;
  201.         }
  202.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7fa6 end
  203.  
  204.         return (bool) $returnValue;
  205.     }
  206.  
  207.     /**
  208.      * löscht einen Datensatz
  209.      *
  210.      * @access public
  211.      * @author Kay Koch, <kay.koch@gmx.de>
  212.      * @return boolean 
  213.      */
  214.     public function deleteRow()
  215.     {
  216.         $returnValue = (bool) false;
  217.  
  218.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7f9e begin
  219.         try {
  220.             $sql "DELETE FROM $this->dbTableName WHERE see_id = '$this->see_id";
  221.             if (!$this->delete($sql))
  222.                 throw new Exception ();
  223.             $this->updateData();
  224.             $returnValue true;
  225.         }
  226.         catch (Exception $e{;
  227.         }
  228.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7f9e end
  229.  
  230.         return (bool) $returnValue;
  231.     }
  232.  
  233.     /**
  234.      * aktualisiert die Daten im gegenwertigen Objekt
  235.      *
  236.      * @access public
  237.      * @author Kay Koch, <kay.koch@gmx.de>
  238.      * @return boolean 
  239.      */
  240.     public function updateData()
  241.     {
  242.         $returnValue = (bool) false;
  243.  
  244.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7f9c begin
  245.         $sql "SELECT * FROM  $this->dbTableName ORDER by name ASC";
  246.         $arrSeen $this->select($sqltrue"see_id");
  247.         foreach ($arrSeen as $see_id=>$arrSee)
  248.             $this->data[$see_idnew src_foundation_datatypes_EINSEE ($arrSee);
  249.         parent::setSeen($this);
  250.         $returnValue true;
  251.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7f9c end
  252.  
  253.         return (bool) $returnValue;
  254.     }
  255.  
  256.     /**
  257.      * löscht die Parameter, die den gegenwärtigen Datensatz identifizieren
  258.      *
  259.      * @access public
  260.      * @author Kay Koch, <kay.koch@gmx.de>
  261.      * @return void 
  262.      */
  263.     public function unsetParams()
  264.     {
  265.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7f97 begin
  266.         unset($this->see_id);
  267.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7f97 end
  268.     }
  269.  
  270.     /**
  271.      * liefert eine Optionslist mit allen Seen
  272.      *
  273.      * @access public
  274.      * @author Kay Koch, <kay.koch@gmx.de>
  275.      * @param void 
  276.      * @return string 
  277.      */
  278.     public function getOptionList($index '')
  279.     {
  280.         $returnValue = (string) '';
  281.  
  282.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7f84 begin
  283.         foreach($this->data as $see{
  284.             $selected ($see->see_id == $index"SELECTED" "";
  285.             $returnValue .= "<option $selected value='$see->see_id "'>" $see->name "</option>\n";
  286.         }
  287.         // section -64--88-122--2--3d9a0b58:1040f000f1b:-7f84 end
  288.  
  289.         return (string) $returnValue;
  290.     }
  291.  
  292.     /**
  293.      * setzt die Daten für die aktuelle Bearbeitung
  294.      *
  295.      * @access public
  296.      * @author Kay Koch, <kay.koch@gmx.de>
  297.      * @param int 
  298.      * @return void 
  299.      */
  300.     public function setParams($see_id)
  301.     {
  302.         // section -64--88-122--2-339007d5:1043cd4e8c9:-7f9b begin
  303.         try {
  304.             if (!empty($see_id)) {
  305.                 if (!isset($this->data[$see_id]))
  306.                     throw new Exception (7);
  307.                 $this->see_id = $see_id;
  308.             }
  309.         }
  310.         catch (Exception $e{
  311.             src_tools_ERROR::setError($e__METHOD__);
  312.         }
  313.         // section -64--88-122--2-339007d5:1043cd4e8c9:-7f9b end
  314.     }
  315.  
  316.     /**
  317.      * liefert ein Array mit den Start- bzw. Endzeiten eines Sees
  318.      *
  319.      * [0]: erste Tauchzeit
  320.      * [1]: letzte Tauchzeit
  321.      *
  322.      * @access public
  323.      * @author Kay Koch, <kay.koch@gmx.de>
  324.      * @return array 
  325.      */
  326.     public function getTimeRanges()
  327.     {
  328.         $returnValue array();
  329.  
  330.         // section -64--88-122--2-556c3468:1044bd6a64b:-7fae begin
  331.         $returnValue[025;
  332.         $returnValue[10;
  333.         foreach($this->data as $see{
  334.             $returnValue[0min($returnValue[0]$see->uhrzeitBeginnWoche$see->uhrzeitBeginnWochenende);
  335.             $returnValue[1max($returnValue[1]$see->uhrzeitEndeWoche$see->uhrzeitEndeWochenende);
  336.         }
  337.         // section -64--88-122--2-556c3468:1044bd6a64b:-7fae end
  338.  
  339.         return (array) $returnValue;
  340.     }
  341.     /**
  342.      * liefert eine Tabelle mit den Anfangsterminen der Seen
  343.      *
  344.      * @access public
  345.      * @author Kay Koch, <kay.koch@gmx.de>
  346.      * @param boolean 
  347.      * @return string 
  348.      */
  349.     public function getSaisonTable ()
  350.     {
  351.         $returnValue = (string) '';
  352.  
  353.         //
  354.         $returnValue"<table style='width:60%' class ='schedule'>\n<tr><th class ='schedule'>Seename</th><th class ='schedule'>SaisonStart</th><th class ='schedule'>SaisonEnde</th></tr>";
  355.             $tr "\n<tr><td class ='schedule'>%s</td><td class ='schedule'>%s</td><td class ='schedule'>%s</td></tr>";
  356.             foreach ($this->data as $oSee)
  357.                 $returnValue.= sprintf($tr$oSee->namesrc_tools_TIME :: sqlT2realT($oSee->saisonStart"%A, %d. %B %Y")src_tools_TIME :: sqlT2realT($oSee->saisonEnde"%A, %d. %B %Y"));
  358.             $returnValue .= "</tr>\n</table>";
  359.         //
  360.  
  361.         return (string) $returnValue;
  362.     }
  363.     /**
  364.      * Konstruktor
  365.      *
  366.      * lädt alle Vereine
  367.      *
  368.      * @access public
  369.      * @author Kay Koch, <kay.koch@gmx.de>
  370.      * @param boolean 
  371.      * @return void 
  372.      */
  373.     public function __construct($showAll false)
  374.     {
  375.         // section -64--88-122--2-7471698e:1046ab3b89c:-7ff1 begin
  376.         parent::__construct();
  377.         self::$showAll $showAll;
  378.         if (empty($this->data)or $showAll)
  379.             $this->updateData();
  380.         $this->setSeen($this);
  381.         $this->setFlags(new src_foundation_tables_FLAGS());
  382.         // section -64--88-122--2-7471698e:1046ab3b89c:-7ff1 end
  383.     }
  384.     /**
  385.      * liefert den Inhalt eines Feldes mit Namen Index aus dem Array $data
  386.      *
  387.      * @access public
  388.      * @author Kay Koch, <kay.koch@gmx.de>
  389.      * @param string 
  390.      * @return string 
  391.      */
  392.     private function __get ($index)
  393.     {
  394.         $returnValue = (string) '';
  395.         //
  396.         try {
  397.             if (empty ($index))
  398.                 throw new Exception(4);
  399.             if ($index=="all")
  400.                 $returnValue $this->data;
  401.             if (isset ($this->data[$index]))
  402.                 $returnValue $this->data[$index];
  403.         }
  404.         catch (Exception $e{
  405.             src_tools_ERROR::setError($e__METHOD__);
  406.         }
  407.           //
  408.         return ($returnValue);
  409.     }
  410.     /**
  411.      *
  412.      * getMinStartTime
  413.      *
  414.      * @author kaykoch
  415.      * @access public
  416.      * @since 1 - 02.03.2007
  417.      * @param datatype paramname description
  418.      * @return string frühster Tauchbeginn
  419.      *
  420.      */
  421.     public function getMinStartTime ({
  422.         $returnValue="24:00";
  423.         foreach ($this->data as $oSee)
  424.             $returnValue min($returnValue,$oSee->uhrzeitBeginnWochenende,$oSee->uhrzeitBeginnWoche);
  425.         return $returnValue;
  426.     }
  427.     /**
  428.      *
  429.      * getMinStartTime
  430.      *
  431.      * @author kaykoch
  432.      * @access public
  433.      * @since 1 - 02.03.2007
  434.      * @param datatype paramname description
  435.      * @return string spätester Tauchbeginn
  436.      *
  437.      */
  438.     public function getMaxStartTime ({
  439.         $returnValue="00:00";
  440.         foreach ($this->data as $oSee)
  441.             $returnValue max($returnValue,$oSee->uhrzeitEndeWochenende,$oSee->uhrzeitEndeWoche);
  442.         return $returnValue;
  443.     }
  444. /* end of class src_foundation_tables_SEEN */
  445.  
  446. ?>

Documentation generated on Sat, 24 Mar 2007 10:00:01 +0100 by phpDocumentor 1.3.1