/** * Maps array to the given {@link Todo}. * <p> * Expected properties are: * <ul> * <li>id</li> * <li>priority</li> * <li>created_on</li> * <li>due_on</li> * <li>last_modified_on</li> * <li>title</li> * <li>description</li> * <li>comment</li> * <li>status</li> * <li>deleted</li> * </ul> * @param Todo $todo * @param array $properties */ public static function map(Todo $todo, array $properties) { if (array_key_exists('id', $properties)) { $todo->setId($properties['id']); } if (array_key_exists('priority', $properties)) { $todo->setPriority($properties['priority']); } if (array_key_exists('created_on', $properties)) { $createdOn = self::createDateTime($properties['created_on']); if ($createdOn) { $todo->setCreatedOn($createdOn); } } if (array_key_exists('due_on', $properties)) { $dueOn = self::createDateTime($properties['due_on']); if ($dueOn) { $todo->setDueOn($dueOn); } } if (array_key_exists('last_modified_on', $properties)) { $lastModifiedOn = self::createDateTime($properties['last_modified_on']); if ($lastModifiedOn) { $todo->setLastModifiedOn($lastModifiedOn); } } if (array_key_exists('title', $properties)) { $todo->setTitle(trim($properties['title'])); } if (array_key_exists('description', $properties)) { $todo->setDescription(trim($properties['description'])); } if (array_key_exists('comment', $properties)) { $todo->setComment(trim($properties['comment'])); } if (array_key_exists('status', $properties)) { $todo->setStatus($properties['status']); } if (array_key_exists('deleted', $properties)) { $todo->setDeleted($properties['deleted']); } }
* made subject to such option by the copyright holder. * * Contributor(s): * * Portions Copyrighted 2011 Sun Microsystems, Inc. */ /* this is to do list */ $errors = array(); $todo = null; $edit = array_key_exists('id', $_GET); if ($edit) { $todo = Utils::getTodoByGetId(); } else { // set defaults $todo = new Todo(); $todo->setPriority(Todo::PRIORITY_MEDIUM); $dueOn = new DateTime("+1 day"); $dueOn->setTime(0, 0, 0); $todo->setDueOn($dueOn); } if (array_key_exists('cancel', $_POST)) { // redirect Utils::redirect('detail', array('id' => $todo->getId())); } elseif (array_key_exists('save', $_POST)) { // for security reasons, do not map the whole $_POST['todo'] $data = array('title' => $_POST['todo']['title'], 'due_on' => $_POST['todo']['due_on_date'] . ' ' . $_POST['todo']['due_on_hour'] . ':' . $_POST['todo']['due_on_minute'] . ':00', 'priority' => $_POST['todo']['priority'], 'description' => $_POST['todo']['description'], 'comment' => $_POST['todo']['comment']); // map TodoMapper::map($todo, $data); // validate $errors = TodoValidator::validate($todo); // validate