baseline 7.4 as-is produzione
This commit is contained in:
@@ -0,0 +1,470 @@
|
||||
<?php␍
|
||||
/**␍
|
||||
* FileMaker API for PHP␍
|
||||
*␍
|
||||
* @package FileMaker␍
|
||||
*␍
|
||||
* Copyright © 2005-2007, FileMaker, Inc. All rights reserved.␍
|
||||
* NOTE: Use of this source code is subject to the terms of the FileMaker␍
|
||||
* Software License which accompanies the code. Your use of this source code␍
|
||||
* signifies your agreement to such license terms and conditions. Except as␍
|
||||
* expressly granted in the Software License, no other copyright, patent, or␍
|
||||
* other intellectual property license or right is granted, either expressly or␍
|
||||
* by implication, by FileMaker.␍
|
||||
*/␍
|
||||
␍
|
||||
/**#@+␍
|
||||
* @ignore Always load the error class and the implementation delegate.␍
|
||||
*/␍
|
||||
require_once dirname(__FILE__) . '/Error.php';␍
|
||||
require_once dirname(__FILE__) . '/Implementation/FileMakerImpl.php';␍
|
||||
/**#@-*/␍
|
||||
␍
|
||||
/**#@+␍
|
||||
* Find constants.␍
|
||||
*/␍
|
||||
define('FILEMAKER_FIND_LT', '<');␍
|
||||
define('FILEMAKER_FIND_LTE', '<=');␍
|
||||
define('FILEMAKER_FIND_GT', '>');␍
|
||||
define('FILEMAKER_FIND_GTE', '>=');␍
|
||||
define('FILEMAKER_FIND_RANGE', '...');␍
|
||||
define('FILEMAKER_FIND_DUPLICATES', '!');␍
|
||||
define('FILEMAKER_FIND_TODAY', '//');␍
|
||||
define('FILEMAKER_FIND_INVALID_DATETIME', '?');␍
|
||||
define('FILEMAKER_FIND_CHAR', '@');␍
|
||||
define('FILEMAKER_FIND_DIGIT', '#');␍
|
||||
define('FILEMAKER_FIND_CHAR_WILDCARD', '*');␍
|
||||
define('FILEMAKER_FIND_LITERAL', '""');␍
|
||||
define('FILEMAKER_FIND_RELAXED', '~');␍
|
||||
define('FILEMAKER_FIND_FIELDMATCH', '==');␍
|
||||
/**#@-*/␍
|
||||
␍
|
||||
/**#@+␍
|
||||
* Find logical operator constants.␍
|
||||
* Use with the {@link FileMaker_Command_Find::setLogicalOperator()} ␍
|
||||
* method.␍
|
||||
*/␍
|
||||
define('FILEMAKER_FIND_AND', 'and');␍
|
||||
define('FILEMAKER_FIND_OR', 'or');␍
|
||||
/**#@-*/␍
|
||||
␍
|
||||
/**#@+␍
|
||||
* Pre-validation rule constants.␍
|
||||
*/␍
|
||||
define('FILEMAKER_RULE_NOTEMPTY', 1);␍
|
||||
define('FILEMAKER_RULE_NUMERICONLY', 2);␍
|
||||
define('FILEMAKER_RULE_MAXCHARACTERS', 3);␍
|
||||
define('FILEMAKER_RULE_FOURDIGITYEAR', 4);␍
|
||||
define('FILEMAKER_RULE_TIMEOFDAY', 5);␍
|
||||
define('FILEMAKER_RULE_TIMESTAMP_FIELD', 6);␍
|
||||
define('FILEMAKER_RULE_DATE_FIELD', 7);␍
|
||||
define('FILEMAKER_RULE_TIME_FIELD', 8);␍
|
||||
/**#@-*/␍
|
||||
␍
|
||||
/**#@+␍
|
||||
* Sort direction constants. ␍
|
||||
* Use with the {@link FileMaker_Command_Find::addSortRule()} and␍
|
||||
* {@link FileMaker_Command_CompoundFind::addSortRule()} methods.␍
|
||||
*/␍
|
||||
define('FILEMAKER_SORT_ASCEND', 'ascend');␍
|
||||
define('FILEMAKER_SORT_DESCEND', 'descend');␍
|
||||
/**#@-*/␍
|
||||
␍
|
||||
/**#@+␍
|
||||
* Logging level constants.␍
|
||||
*/␍
|
||||
define('FILEMAKER_LOG_ERR', 3);␍
|
||||
define('FILEMAKER_LOG_INFO', 6);␍
|
||||
define('FILEMAKER_LOG_DEBUG', 7);␍
|
||||
/**#@-*/␍
|
||||
␍
|
||||
/**␍
|
||||
* Base FileMaker class. Defines database properties, connects to a database, ␍
|
||||
* and gets information about the API.␍
|
||||
*␍
|
||||
* @package FileMaker␍
|
||||
*/␍
|
||||
class FileMaker␍
|
||||
{␍
|
||||
/**␍
|
||||
* Implementation. This is the object that actually implements the API.␍
|
||||
*␍
|
||||
* @var FileMaker_Implementation␍
|
||||
* @access private␍
|
||||
*/␍
|
||||
var $_impl;␍
|
||||
␍
|
||||
/**␍
|
||||
* Tests whether a variable is a FileMaker API Error.␍
|
||||
*␍
|
||||
* @param mixed $variable Variable to test.␍
|
||||
* @return boolean TRUE, if the variable is a {@link FileMaker_Error} object.␍
|
||||
* @static␍
|
||||
*␍
|
||||
*/␍
|
||||
static function isError($variable)␍
|
||||
{␍
|
||||
return is_a($variable, 'FileMaker_Error');␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Returns the version of the FileMaker API for PHP.␍
|
||||
*␍
|
||||
* @return string API version.␍
|
||||
* @static␍
|
||||
*/␍
|
||||
function getAPIVersion()␍
|
||||
{␍
|
||||
return FileMaker_Implementation::getAPIVersion();␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Returns the minimum version of FileMaker Server that this API works with.␍
|
||||
*␍
|
||||
* @return string Minimum FileMaker Server version.␍
|
||||
* @static␍
|
||||
*/␍
|
||||
static function getMinServerVersion()␍
|
||||
{␍
|
||||
return FileMaker_Implementation::getMinServerVersion();␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* FileMaker object constructor. ␍
|
||||
* ␍
|
||||
* If you want to use the constructor without specifying all the ␍
|
||||
* parameters, pass in NULL for the parameters you want to omit. ␍
|
||||
* For example, to specify only the database name, username, and ␍
|
||||
* password, but omit the hostspec, call the constructor as follows:␍
|
||||
* ␍
|
||||
* <samp>␍
|
||||
* new FileMaker('DatabaseName', NULL, 'username', 'password');␍
|
||||
* </samp>␍
|
||||
* ␍
|
||||
* @param string $database Name of the database to connect to.␍
|
||||
* @param string $hostspec Hostspec of web server in FileMaker Server ␍
|
||||
* deployment. Defaults to http://localhost, if set to NULL.␍
|
||||
* @param string $username Account name to log into database.␍
|
||||
* @param string $password Password for account.␍
|
||||
*/␍
|
||||
function FileMaker($database = NULL, $hostspec = NULL, $username = NULL, $password = NULL)␍
|
||||
{␍
|
||||
$this->_impl = new FileMaker_Implementation($database, $hostspec, $username, $password);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Sets a property to a new value for all API calls.␍
|
||||
*␍
|
||||
* @param string $prop Name of the property to set.␍
|
||||
* @param string $value Property's new value.␍
|
||||
*/␍
|
||||
function setProperty($prop, $value)␍
|
||||
{␍
|
||||
$this->_impl->setProperty($prop, $value);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Returns the current value of a property.␍
|
||||
*␍
|
||||
* @param string $prop Name of the property.␍
|
||||
*␍
|
||||
* @return string Property's current value.␍
|
||||
*/␍
|
||||
function getProperty($prop)␍
|
||||
{␍
|
||||
return $this->_impl->getProperty($prop);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Returns an associative array of property name => property value for␍
|
||||
* all current properties and their current values. ␍
|
||||
*␍
|
||||
* This array enables PHP object introspection and debugging when necessary.␍
|
||||
*␍
|
||||
* @return array All current properties.␍
|
||||
*/␍
|
||||
function getProperties()␍
|
||||
{␍
|
||||
return $this->_impl->getProperties();␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Associates a PEAR Log object with the API for logging requests␍
|
||||
* and responses.␍
|
||||
*␍
|
||||
* @param Log &$logger PEAR Log object.␍
|
||||
*/␍
|
||||
function setLogger(&$logger)␍
|
||||
{␍
|
||||
$this->_impl->setLogger($logger);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Creates a new FileMaker_Command_Add object.␍
|
||||
*␍
|
||||
* @param string $layout Layout to add a record to.␍
|
||||
* @param array $values Associative array of field name => value pairs. ␍
|
||||
* To set field repetitions, use a numerically indexed array for ␍
|
||||
* the value of a field, with the numeric keys corresponding to the ␍
|
||||
* repetition number to set.␍
|
||||
*␍
|
||||
* @return FileMaker_Command_Add New Add command object.␍
|
||||
*/␍
|
||||
function &newAddCommand($layout, $values = array())␍
|
||||
{␍
|
||||
return $this->_impl->newAddCommand($layout, $values);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Creates a new FileMaker_Command_Edit object.␍
|
||||
*␍
|
||||
* @param string $layout Layout that the record is part of.␍
|
||||
* @param string $recordId ID of the record to edit.␍
|
||||
* @param array $updatedValues Associative array of field name => value ␍
|
||||
* pairs that contain the updated field values. To set field ␍
|
||||
* repetitions, use a numerically indexed array for the value of a ␍
|
||||
* field, with the numeric keys corresponding to the repetition ␍
|
||||
* number to set.␍
|
||||
*␍
|
||||
* @return FileMaker_Command_Edit New Edit command object.␍
|
||||
*/␍
|
||||
function &newEditCommand($layout, $recordId, $updatedValues = array())␍
|
||||
{␍
|
||||
return $this->_impl->newEditCommand($layout, $recordId, $updatedValues);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Creates a new FileMaker_Command_Delete object.␍
|
||||
*␍
|
||||
* @param string $layout Layout to delete record from.␍
|
||||
* @param string $recordId ID of the record to delete.␍
|
||||
*␍
|
||||
* @return FileMaker_Command_Delete New Delete command object.␍
|
||||
*/␍
|
||||
function &newDeleteCommand($layout, $recordId)␍
|
||||
{␍
|
||||
return $this->_impl->newDeleteCommand($layout, $recordId);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Creates a new FileMaker_Command_Duplicate object.␍
|
||||
*␍
|
||||
* @param string $layout Layout that the record to duplicate is in.␍
|
||||
* @param string $recordId ID of the record to duplicate.␍
|
||||
*␍
|
||||
* @return FileMaker_Command_Duplicate New Duplicate command object.␍
|
||||
*/␍
|
||||
function &newDuplicateCommand($layout, $recordId)␍
|
||||
{␍
|
||||
return $this->_impl->newDuplicateCommand($layout, $recordId);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Creates a new FileMaker_Command_Find object.␍
|
||||
*␍
|
||||
* @param string $layout Layout to find records in.␍
|
||||
*␍
|
||||
* @return FileMaker_Command_Find New Find command object.␍
|
||||
*/␍
|
||||
function &newFindCommand($layout)␍
|
||||
{␍
|
||||
return $this->_impl->newFindCommand($layout);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* ␍
|
||||
* Creates a new FileMaker_Command_CompoundFind object.␍
|
||||
*␍
|
||||
* @param string $layout Layout to find records in.␍
|
||||
*␍
|
||||
* @return FileMaker_Command_CompoundFind New Compound Find Set command ␍
|
||||
* object.␍
|
||||
*/␍
|
||||
function &newCompoundFindCommand($layout)␍
|
||||
{␍
|
||||
return $this->_impl->newCompoundFindCommand($layout);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* ␍
|
||||
* Creates a new FileMaker_Command_FindRequest object. Add one or more ␍
|
||||
* Find Request objects to a {@link FileMaker_Command_CompoundFind} object, ␍
|
||||
* then execute the Compound Find command.␍
|
||||
*␍
|
||||
* @param string $layout Layout to find records in.␍
|
||||
*␍
|
||||
* @return FileMaker_Command_FindRequest New Find Request command object.␍
|
||||
*/␍
|
||||
function &newFindRequest($layout)␍
|
||||
{␍
|
||||
return $this->_impl->newFindRequest($layout);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Creates a new FileMaker_Command_FindAny object.␍
|
||||
*␍
|
||||
* @param string $layout Layout to find one random record from.␍
|
||||
*␍
|
||||
* @return FileMaker_Command_FindAny New Find Any command object.␍
|
||||
*/␍
|
||||
function &newFindAnyCommand($layout)␍
|
||||
{␍
|
||||
return $this->_impl->newFindAnyCommand($layout);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Creates a new FileMaker_Command_FindAll object.␍
|
||||
*␍
|
||||
* @param string $layout Layout to find all records in.␍
|
||||
*␍
|
||||
* @return FileMaker_Command_FindAll New Find All command object.␍
|
||||
*/␍
|
||||
function &newFindAllCommand($layout)␍
|
||||
{␍
|
||||
return $this->_impl->newFindAllCommand($layout);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Creates a new FileMaker_Command_PerformScript object.␍
|
||||
*␍
|
||||
* @param string $layout Layout to use for script context.␍
|
||||
* @param string $scriptName Name of the ScriptMaker script to run.␍
|
||||
* @param string $scriptParameters Any parameters to pass to the script.␍
|
||||
*␍
|
||||
* @return FileMaker_Command_PerformScript New Perform Script command ␍
|
||||
* object.␍
|
||||
*/␍
|
||||
function &newPerformScriptCommand($layout, $scriptName, $scriptParameters = null)␍
|
||||
{␍
|
||||
return $this->_impl->newPerformScriptCommand($layout, $scriptName, $scriptParameters);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Creates a new FileMaker_Record object. ␍
|
||||
* ␍
|
||||
* This method does not save the new record to the database. ␍
|
||||
* The record is not created on the Database Server until you call ␍
|
||||
* this record's commit() method. You must specify a layout name, ␍
|
||||
* and you can optionally specify an array of field values. ␍
|
||||
* Individual field values can also be set in the new record object.␍
|
||||
* ␍
|
||||
*␍
|
||||
* @param string $layout Layout to create a new record for.␍
|
||||
* @param array $fieldValues Initial values for the new record's fields.␍
|
||||
*␍
|
||||
* @return FileMaker_Record New Record object.␍
|
||||
*/␍
|
||||
function &createRecord($layout, $fieldValues = array())␍
|
||||
{␍
|
||||
return $this->_impl->createRecord($layout, $fieldValues);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Returns a single FileMaker_Record object matching the given␍
|
||||
* layout and record ID, or a FileMaker_Error object, if this operation␍
|
||||
* fails.␍
|
||||
*␍
|
||||
* @param string $layout Layout that $recordId is in.␍
|
||||
* @param string $recordId ID of the record to get.␍
|
||||
*␍
|
||||
* @return FileMaker_Record|FileMaker_Error Record or Error object.␍
|
||||
*/␍
|
||||
function &getRecordById($layout, $recordId)␍
|
||||
{␍
|
||||
return $this->_impl->getRecordById($layout, $recordId);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Returns a Layout object that describes the specified layout.␍
|
||||
*␍
|
||||
* @param string $layout Name of the layout to describe.␍
|
||||
*␍
|
||||
* @return FileMaker_Layout|FileMaker_Error Layout or Error object.␍
|
||||
*/␍
|
||||
function &getLayout($layout)␍
|
||||
{␍
|
||||
return $this->_impl->getLayout($layout);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Returns an array of databases that are available with the current␍
|
||||
* server settings and the current user name and password␍
|
||||
* credentials.␍
|
||||
*␍
|
||||
* @return array|FileMaker_Error List of database names or an Error object.␍
|
||||
*/␍
|
||||
function listDatabases()␍
|
||||
{␍
|
||||
return $this->_impl->listDatabases();␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Returns an array of ScriptMaker scripts from the current database that ␍
|
||||
* are available with the current server settings and the current user ␍
|
||||
* name and password credentials.␍
|
||||
*␍
|
||||
* @return array|FileMaker_Error List of script names or an Error object.␍
|
||||
*/␍
|
||||
function listScripts()␍
|
||||
{␍
|
||||
return $this->_impl->listScripts();␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Returns an array of layouts from the current database that are␍
|
||||
* available with the current server settings and the current␍
|
||||
* user name and password credentials.␍
|
||||
*␍
|
||||
* @return array|FileMaker_Error List of layout names or an Error object.␍
|
||||
*/␍
|
||||
function listLayouts()␍
|
||||
{␍
|
||||
return $this->_impl->listLayouts();␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Returns the data for the specified container field.␍
|
||||
* Pass in a URL string that represents the file path for the container ␍
|
||||
* field contents. For example, get the image data from a container field ␍
|
||||
* named 'Cover Image'. For a FileMaker_Record object named $record, ␍
|
||||
* URL-encode the path returned by the getField() method. For example:␍
|
||||
* ␍
|
||||
* <samp>␍
|
||||
* <IMG src="img.php?-url=<?php echo urlencode($record->getField('Cover Image')); ?>">␍
|
||||
* </samp>␍
|
||||
* ␍
|
||||
* Then as shown below in a line from img.php, pass the URL into ␍
|
||||
* getContainerData() for the FileMaker object named $fm:␍
|
||||
* ␍
|
||||
* <samp>␍
|
||||
* echo $fm->getContainerData($_GET['-url']);␍
|
||||
* </samp>␍
|
||||
*␍
|
||||
* @param string $url URL of the container field contents to get.␍
|
||||
*␍
|
||||
* @return string Raw field data|FileMaker_Error if remote container field.␍
|
||||
*/␍
|
||||
function getContainerData($url)␍
|
||||
{␍
|
||||
return $this->_impl->getContainerData($url);␍
|
||||
}␍
|
||||
␍
|
||||
/**␍
|
||||
* Returns the fully qualified URL for the specified container field.␍
|
||||
* Pass in a URL string that represents the file path for the container ␍
|
||||
* field contents. For example, get the URL for a container field ␍
|
||||
* named 'Cover Image'. For example:␍
|
||||
* ␍
|
||||
* <samp>␍
|
||||
* <IMG src="<?php echo $fm->getContainerDataURL($record->getField('Cover Image')); ?>">␍
|
||||
* </samp>␍
|
||||
*␍
|
||||
* @param string $url URL of the container field contents to get.␍
|
||||
*␍
|
||||
* @return string Fully qualified URL to container field contents␍
|
||||
*/␍
|
||||
function getContainerDataURL($url)␍
|
||||
{␍
|
||||
return $this->_impl->getContainerDataURL($url);␍
|
||||
}␍
|
||||
}␍
|
||||
Reference in New Issue
Block a user