_impl = new FileMaker_Record_Implementation($layout); } /** * Returns the layout this record is associated with. * * @return FileMaker_Layout This record's layout. */ function &getLayout() { return $this->_impl->getLayout(); } /** * Returns a list of the names of all fields in the record. * * Only the field names are returned. If you need additional * information, examine the Layout object provided by the * parent object's {@link FileMaker_Result::getLayout()} method. * * @return array List of field names as strings. */ function getFields() { return $this->_impl->getFields(); } /** * Returns the HTML-encoded value of the specified field. * * This method converts some special characters in the field value to * HTML entities. For example, '&', '"', '<', and '>' are converted to * '&', '"', '<', and '>', respectively. * * @param string $field Name of field. * @param integer $repetition Field repetition number to get. * Defaults to the first repetition. * * @return string Encoded field value. */ function getField($field, $repetition = 0) { return $this->_impl->getField($field, $repetition); } /** * Returns the unencoded value of the specified field. * * This method does not convert special characters in the field value to * HTML entities. * * @param string $field Name of field. * @param integer $repetition Field repetition number to get. * Defaults to the first repetition. * * @return string Unencoded field value. */ function getFieldUnencoded($field, $repetition = 0) { return $this->_impl->getFieldUnencoded($field, $repetition); } /** * Returns the value of the specified field as a UNIX * timestamp. * * If the field is a date field, the timestamp is * for the field date at midnight. It the field is a time field, * the timestamp is for that time on January 1, 1970. Timestamp * (date and time) fields map directly to the UNIX timestamp. If the * specified field is not a date or time field, or if the timestamp * generated would be out of range, then this method returns a * FileMaker_Error object instead. * * @param string $field Name of the field. * @param integer $repetition Field repetition number to get. * Defaults to the first repetition. * * @return integer Timestamp value. */ function getFieldAsTimestamp($field, $repetition = 0) { return $this->_impl->getFieldAsTimestamp($field, $repetition); } /** * Sets the value of $field. * * @param string $field Name of the field. * @param string $value New value of the field. * @param integer $repetition Field repetition number to set. * Defaults to the first repetition. */ function setField($field, $value, $repetition = 0) { return $this->_impl->setField($field, $value, $repetition); } /** * Sets the new value for a date, time, or timestamp field from a * UNIX timestamp value. * * If the field is not a date or time field, then returns an error. * Otherwise, returns TRUE. * * If layout data for the target of this command has not already * been loaded, calling this method loads layout data so that * the type of the field can be checked. * * @param string $field Name of the field to set. * @param string $timestamp Timestamp value. * @param integer $repetition Field repetition number to set. * Defaults to the first repetition. */ function setFieldFromTimestamp($field, $timestamp, $repetition = 0) { return $this->_impl->setFieldFromTimestamp($field, $timestamp, $repetition); } /** * Returns the record ID of this object. * * @return string Record ID. */ function getRecordId() { return $this->_impl->getRecordId(); } /** * Returns the modification ID of this record. * * The modification ID is an incremental counter that specifies the current * version of a record. See the {@link FileMaker_Command_Edit::setModificationId()} * method. * * @return integer Modification ID. */ function getModificationId() { return $this->_impl->getModificationId(); } /** * Returns any Record objects in the specified portal or a FileMaker_Error * object if there are no related records * * @param string $relatedSet Name of the portal to return records from. * * @return array Array of FileMaker_Record objects from $relatedSet|FileMaker_Error object. */ function &getRelatedSet($relatedSet) { return $this->_impl->getRelatedSet($relatedSet); } /** * Creates a new record in the specified portal. * * @param string $relatedSet Name of the portal to create a new record in. * * @return FileMaker_Record A new, blank record. */ function &newRelatedRecord($relatedSet) { return $this->_impl->newRelatedRecord($this, $relatedSet); } /** * Returns the parent record, if this record is a child record in a portal. * * @return FileMaker_Record Parent record. */ function &getParent() { return $this->_impl->getParent(); } /** * Pre-validates either a single field or the entire record. * * This method uses the pre-validation rules that are enforceable by the * PHP engine -- for example, type rules, ranges, and four-digit dates. * Rules such as "unique" or "existing," or validation by calculation * field, cannot be pre-validated. * * If you pass the optional $fieldName argument, only that field is * pre-validated. Otherwise, the record is pre-validated as if commit() * were called with "Enable record data pre-validation" selected in * FileMaker Server Admin Console. If pre-validation passes, validate() * returns TRUE. If pre-validation fails, then validate() returns a * FileMaker_Error_Validation object containing details about what failed * to pre-validate. * * @param string $fieldName Name of field to pre-validate. If empty, * pre-validates the entire record. * * @return boolean|FileMaker_Error_Validation TRUE, if pre-validation * passes for $value. Otherwise, an Error Validation object. */ function validate($fieldName = null) { return $this->_impl->validate($fieldName); } /** * Saves any changes to this record in the database on the Database Server. * * @return boolean|FileMaker_Error TRUE, if successful. Otherwise, an Error * object. */ function commit() { return $this->_impl->commit(); } /** * Deletes this record from the database on the Database Server. * * @return FileMaker_Result Response object. */ function delete() { return $this->_impl->delete(); } /** * Gets a specific related record. * * @access private * * @param string $relatedSetName Name of the portal. * @param string $recordId Record ID of the record in the portal. * * @return FileMaker_Response Response object. */ function getRelatedRecordById($relatedSetName, $recordId) { return $this->_impl->getRelatedRecordById($relatedSetName, $recordId); } }