1  <?php
 2  /* Copyright (c) 2012, Geert Bergman (geert@scrivo.nl)
 3   * All rights reserved.
 4   *
 5   * Redistribution and use in source and binary forms, with or without
 6   * modification, are permitted provided that the following conditions are met:
 7   *
 8   * 1. Redistributions of source code must retain the above copyright notice,
 9   *    this list of conditions and the following disclaimer.
10   * 2. Redistributions in binary form must reproduce the above copyright notice,
11   *    this list of conditions and the following disclaimer in the documentation
12   *    and/or other materials provided with the distribution.
13   * 3. Neither the name of "Scrivo" nor the names of its contributors may be
14   *    used to endorse or promote products derived from this software without
15   *    specific prior written permission.
16   *
17   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27   * POSSIBILITY OF SUCH DAMAGE.
28   *
29   * $Id: SelectList.php 841 2013-08-19 22:19:47Z geert $
30   */
31  
32  /**
33   * Implementation of the \Scrivo\PageProperty\SelectList class.
34   */
35  
36  namespace Scrivo\PageProperty;
37  
38  /**
39   * Property to hold the selected value(s) of a select list.
40   *
41   * @property mixed $value The select list value, can be an array in case of
42   *    a multiple select list).
43   */
44  class SelectList extends \Scrivo\PageProperty {
45  
46      /**
47       * Implementation of the readable properties using the PHP magic
48       * method __get().
49       *
50       * @param string $name The name of the property to get.
51       *
52       * @return mixed The value of the requested property.
53       */
54      public function __get($name) {
55          switch($name) {
56              // Get the value property.
57              case "value"$d =
58                  @unserialize((string)$this->data);
59                  return $d $d $this->data;
60          }
61          return parent::__get($name);
62      }
63  
64      /**
65       * Implementation of the writable properties using the PHP magic
66       * method __set().
67       *
68       * @param string $name The name of the property to set.
69       * @param mixed $value The value of the property to set.
70       */
71      public function __set($name$value) {
72          switch($name) {
73              // Set the value property.
74              case "value"$this->data is_array($value)
75                  ? new \Scrivo\String(serialize($value))
76                  : $data;
77                  return;
78          }
79          parent::__set($name$value);
80      }
81  
82  }
83  
84  ?>

Documentation generated by phpDocumentor 2.0.0a12 and ScrivoDocumentor on August 29, 2013