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