public function testDataAsObjectProperties() { $this->assertFalse(isset($this->object->test2)); $this->assertTrue(isset($this->object->test)); $this->assertEquals('testValue', $this->object->test); $this->assertFalse($this->object->__isset('test2')); $this->assertTrue($this->object->__isset('test')); $this->assertEquals('testValue', $this->object->__get('test')); $this->object->__set('test2', 'testValue2'); $this->assertTrue($this->object->__isset('test2')); }
public function __set($name, $value) { switch ($name) { case "start": // Set start time to 23:59:59 $dateArr = getdate($value); $value = mktime(23, 59, 59, $dateArr['mon'], $dateArr['mday'], $dateArr['year']); $this->{$name} = $value; break; case "showWithWalks": case "showWithSocials": case "showWithWeekends": $this->{$name} = (bool) $value; break; default: parent::__set($name, $value); } }
public function __set($name, $value) { switch ($name) { case "name": case "description": case "bookingsInfo": case "clipartFilename": case "cost": case "location": $this->{$name} = $value; break; case "okToPublish": case "showNormal": case "showNewMember": $this->{$name} = (bool) $value; break; case "start": case "newMemberStart": case "end": case "newMemberEnd": if (!empty($value) && is_numeric($value)) { $this->{$name} = $value; } else { if ($value == "") { $this->{$name} = null; } else { var_dump($name); var_dump($value); } } break; case "latLng": if ($value instanceof LatLng) { $this->{$name} = $value; } else { if (is_string($value)) { // Is it in JSON? if (substr($value, 0, 2) == "[{") { $value = json_decode($value); $value = $value[0]; $this->{$name} = new LatLng($value->lat, $value->lon); } else { $this->{$name} = SWG::parseLatLongTuple($this->value); } } else { if (is_array($value)) { // Convert to LatLng - deliberate fallthrough if (isset($value['lat']) && isset($value['lng'])) { if (is_numeric($value['lat']) && isset($value['lng']) && is_numeric($value['lng'])) { $this->{$name} = new LatLng($value['lat'], $value['lng']); } else { if ($value['lat'] == "" && $value['lng'] == "") { $this->{$name} = null; } } } } else { if ($value == null) { $this->{$name} = null; } } } } break; case "postcode": // Geolocate this postcode // TODO: This will wipe any existing latLng... // Get the postcode passed in if (preg_match("/^([A-Z]{1,2}[0-9]{1,2}[A-Z]?[ ]?[0-9][A-Z]{2})\$/", $value)) { $postcode = str_replace(" ", "", $value); $curl = curl_init("http://www.uk-postcodes.com/postcode/" . $postcode . ".json"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $res = json_decode(curl_exec($curl)); if (isset($res->geo)) { $this->latLng = new LatLng($res->geo->lat, $res->geo->lng); } } $this->postcode = $value; break; default: // All others - fall through to Event parent::__set($name, $value); } }
function __set($var, $value) { if ($var === 'thisown') { return swig_uscxmlNativePHP_alter_newobject($this->_cPtr, $value); } Event::__set($var, $value); }
public function __set($name, $value) { switch ($name) { // Strings - just save them (TODO: Safety checks?) case "startPlaceName": case "endPlaceName": $this->{$name} = $value; break; // Integer // Integer case "headCount": case "distance": $this->{$name} = (int) $value; break; // Booleans // Booleans case "isLinear": case "dogFriendly": case "childFriendly": case "speedy": case "challenge": $this->{$name} = (bool) $value; break; // More specific processing // More specific processing case "distanceGrade": $value = strtoupper($value); if (empty($value)) { $this->{$name} = null; } else { if ($value == "A" || $value == "B" || $value == "C") { $this->{$name} = $value; } else { throw new UnexpectedValueException("Distance grade must be A, B or C"); } } break; case "difficultyGrade": $value = (int) $value; if (empty($value)) { $this->{$name} = null; } else { if ($value == 1 || $value == 2 || $value == 3) { $this->{$name} = $value; } else { throw new UnexpectedValueException("Difficulty grade must be 1, 2 or 3"); } } break; case "miles": $value = (double) $value; if ($value >= 0) { $this->{$name} = $value; $this->distanceGrade = $this->getDistanceGrade($value); } else { throw new UnexpectedValueException("Distance must be positive"); } // TODO: Validate >0 when saving break; // Grid references - start with two letters, then an even number of digits - at least 6 // Grid references - start with two letters, then an even number of digits - at least 6 case "startGridRef": case "endGridRef": $value = strtoupper(str_replace(" ", "", $value)); if (empty($value)) { $this->{$name} = null; if ($name == "startGridRef") { $this->startLatLng = null; } else { $this->endLatLng = null; } } else { if (preg_match("/[A-Z][A-Z]([0-9][0-9]){3,}/", $value)) { $this->{$name} = $value; // Also set the lat/lng $osRef = getOSRefFromSixFigureReference($value); $latLng = $osRef->toLatLng(); $latLng->OSGB36ToWGS84(); if ($name == "startGridRef") { $this->startLatLng = $latLng; } else { $this->endLatLng = $latLng; } } else { throw new UnexpectedValueException("Grid references must be at least 6-figures, with the grid square letters before (e.g. SK123456)"); } } break; // Connected objects // Connected objects case "leader": case "leaderId": if (empty($value)) { $this->leader = null; $this->leaderId = null; } else { if ($value instanceof Leader) { $this->leader = $value; $this->leaderId = $value->id; } else { if (is_int($value) || ctype_digit($value)) { $this->leaderId = (int) $value; $this->leader = null; // Will be loaded when needed } else { throw new UnexpectedValueException("Leader or Leader ID must be a Leader or an integer"); } } } break; case "backmarker": case "backmarkerId": if (empty($value)) { $this->backmarker = null; $this->backmarkerId = null; } if ($value instanceof Leader) { $this->backmarker = $value; $this->backmarkerId = $value->id; } else { if (is_int($value) || ctype_digit($value)) { $this->backmarkerId = (int) $value; $this->backmarker = null; // Will be loaded when needed } else { throw new UnexpectedValueException("Backmarker or backmarker ID must be a Leader or an integer"); } } break; case "meetPoint": case "meetPointId": if (empty($value)) { $this->meetPoint = null; $this->meetPointId = null; } elseif ($value instanceof WalkMeetingPoint) { $this->meetPoint = $value; $this->meetPointId = $value->id; } else { if (is_int($value) || ctype_digit($value)) { $this->meetPointId = (int) $value; $this->meetPoint = null; } else { throw new UnexpectedValueException("Meetpoint or MeetPointID must be a WalkMeetingPoint or an integer"); } } if (isset($this->meetPoint) && !empty($this->meetPlaceTime)) { $this->meetPoint->setExtra($this->meetPlaceTime); } break; case "walkid": $this->walkid = (int) $value; break; case "meetPlaceTime": $this->meetPlaceTime = $value; if (isset($this->meetPoint)) { $this->meetPoint->setExtra($value); } break; // Checks TODO // Checks TODO case "location": case "suggestedBy": case "status": case "specialTBC": $this->{$name} = $value; break; case "routeVisibility": $this->{$name} = (int) $value; break; default: // All others - fall through to Event parent::__set($name, $value); } }
public function __set($name, $value) { switch ($name) { case "name": case "placeName": case "area": case "description": case "url": case "contact": case "bookingsOpen": case "cost": $this->{$name} = $value; break; case "places": $this->{$name} = (int) $value; break; case "okToPublish": case "challenge": case "swg": $this->{$name} = (bool) $value; break; case "start": if (!empty($value)) { $this->{$name} = $value; // Calculate the payment due date. // Payment is due by the end of the month before the date 2 weeks before the weekend // Looks like "last day of -1 month" is only supported by PHP 5.3, so let's do this the old-fashioned way $threeWeeksBefore = $value - 86400 * 14; // Looks like "last day of -1 month" is only supported by PHP 5.3, so let's do this the old-fashioned way $this->paymentDue = strtotime(strftime("%Y-%m-01", $threeWeeksBefore)) - 86400; } else { $this->{$name} = null; $this->paymentDue = null; } break; case "endDate": if (!empty($value)) { $this->{$name} = $value; } else { $this->{$name} = null; } break; case "latLng": if ($value instanceof LatLng) { $this->{$name} = $value; } else { if (is_string($value)) { // Is it in JSON? if (substr($value, 0, 2) == "[{") { $value = json_decode($value); $value = $value[0]; $this->{$name} = new LatLng($value->lat, $value->lon); } else { $this->{$name} = SWG::parseLatLongTuple($this->value); } } else { if (is_array($value)) { // Convert to LatLng if (isset($value['lat']) && isset($value['lng'])) { if (is_numeric($value['lat']) && is_numeric($value['lng'])) { $this->{$name} = new LatLng($value['lat'], $value['lng']); } else { $this->{$name} = null; } } } } } break; default: // All others - fall through to Event parent::__set($name, $value); } }