start copy from cimac web

This commit is contained in:
2026-05-14 08:47:13 +02:00
commit dfc6ed40ae
3624 changed files with 899295 additions and 0 deletions
+154
View File
@@ -0,0 +1,154 @@
<?php
/**
* FileMaker API for PHP
*
* @package FileMaker
*
* Copyright © 2005-2009, 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 Include delegate.
*/
require_once dirname(__FILE__) . '/Implementation/CommandImpl.php';
/**#@-*/
/**
* Base Command class. Represents commands that add records, delete records,
* duplicate records, edit records, perform find requests, and perform
* ScriptMaker scripts.
*
* @package FileMaker
*/
class FileMaker_Command
{
/**
* Implementation. This is the object that actually implements the
* command base.
*
* @var FileMaker_Command_Implementation
* @access private
*/
var $_impl;
/**
* Requests that the command's result be returned in a layout different
* from the current layout.
*
* @param string $layout Layout to return results in.
*/
function setResultLayout($layout)
{
$this->_impl->setResultLayout($layout);
}
/**
* Sets a ScriptMaker script to be run after the Find result set is
* generated and sorted.
*
* @param string $scriptName Name of the ScriptMaker script to run.
* @param string $scriptParameters Any parameters to pass to the script.
*/
function setScript($scriptName, $scriptParameters = null)
{
$this->_impl->setScript($scriptName, $scriptParameters);
}
/**
* Sets a ScriptMaker script to be run before performing a command.
*
* @param string $scriptName Name of the ScriptMaker script to run.
* @param string $scriptParameters Any parameters to pass to the script.
*/
function setPreCommandScript($scriptName, $scriptParameters = null)
{
$this->_impl->setPreCommandScript($scriptName, $scriptParameters);
}
/**
* Sets a ScriptMaker script to be run after performing a Find command,
* but before sorting the result set.
*
* @param string $scriptName Name of the ScriptMaker script to run.
* @param string $scriptParameters Any parameters to pass to the script.
*/
function setPreSortScript($scriptName, $scriptParameters = null)
{
$this->_impl->setPreSortScript($scriptName, $scriptParameters);
}
/**
* Sets the PHP class that the API instantiates to represent records
* returned in any result set.
*
* The default is to use the provided FileMaker_Record class. Any
* substitute classes must provide the same API that FileMaker_Record does,
* either by extending it or re-implementing the necessary methods. The
* user is responsible for defining any custom class before the API
* needs to instantiate it.
*
* @param string $className Name of the class to represent records.
*/
function setRecordClass($className)
{
$this->_impl->setRecordClass($className);
}
/**
* Pre-validates either a single field or the entire command.
*
* 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 command is pre-validated as if execute()
* 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 command.
*
* @return boolean|FileMaker_Error_Validation TRUE, if pre-validation
* passes. Otherwise, an Error Validation object.
*/
function validate($fieldName = null)
{
return $this->_impl->validate($fieldName);
}
/**
* Executes the command.
*
* @return FileMaker_Result Result object.
*/
function execute()
{
return $this->_impl->execute();
}
/**
* Sets the record ID for this command.
*
* For Edit, Delete, and Duplicate commands, a record ID must be specified.
* It is also possible to find a single record by specifying its record
* ID. This method is ignored by Add and FindAny commands.
*
* @param string $recordId ID of record this command acts upon.
*/
function setRecordId($recordId)
{
$this->_impl->setRecordId($recordId);
}
}
+88
View File
@@ -0,0 +1,88 @@
<?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 Include parent and delegate classes.
*/
require_once dirname(__FILE__) . '/../Command.php';
require_once dirname(__FILE__) . '/../Implementation/Command/AddImpl.php';
/**#@-*/
/**
* Command class that adds a new record.
* Create this command with {@link FileMaker::newAddCommand()}.
*
* @package FileMaker
*/
class FileMaker_Command_Add extends FileMaker_Command
{
/**
* Implementation
*
* @var FileMaker_Command_Add_Implementation
* @access private
*/
var $_impl;
/**
* Add command constructor.
*
* @ignore
* @param FileMaker_Implementation $fm FileMaker_Implementation object the command was created by.
* @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.
*/
function FileMaker_Command_Add($fm, $layout, $values = array())
{
$this->_impl = new FileMaker_Command_Add_Implementation($fm, $layout, $values);
}
/**
* Sets the new value for a field.
*
* @param string $field Name of field to set.
* @param string $value Value to set for this 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 this method returns
* an Error object. 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);
}
}
@@ -0,0 +1,149 @@
<?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 Include parent and delegate classes.
*/
require_once dirname(__FILE__) . '/../Command.php';
require_once dirname(__FILE__) . '/../Implementation/Command/CompoundFindImpl.php';
/**#@-*/
/**
* Command class that performs multiple find requests, also known as a compound
* find set.
* Requests are executed in the order specified in the add() method. The found
* set includes the results of the entire compound find request.
* Create this command with {@link FileMaker::newCompoundFindCommand()}.
*
* @package FileMaker
*/
class FileMaker_Command_CompoundFind extends FileMaker_Command
{
/**
* Implementation
*
* @var FileMaker_Command_CompoundFind_Implementation
* @access private
*/
var $_impl;
/**
* Compound find set constructor.
*
* @ignore
* @param FileMaker_Implementation $fm FileMaker_Implementation object the
* request was created by.
* @param string $layout Layout to find records in.
*/
function FileMaker_Command_CompoundFind($fm, $layout)
{
$this->_impl = new FileMaker_Command_CompoundFind_Implementation($fm, $layout);
}
/**
* Adds a Find Request object to this Compound Find command.
*
* @param int $precedence Priority in which the find requests are added to
* this compound find set.
* @param findrequest $findrequest {@link FileMaker_FindRequest} object
* to add to this compound find set.
*/
function add($precedence, $findrequest)
{
$this->_impl->add($precedence, $findrequest);
}
/**
* Adds a sorting rule to this Compound Find command.
*
* @param string $fieldname Name of the field to sort by.
* @param integer $precedence Integer from 1 to 9, inclusive. A value
* of 1 sorts records based on this sorting rule first, a value of
* 2 sorts records based on this sorting rule only when two or more
* records have the same value after the first sorting rule is
* applied, and so on.
* @param mixed $order Direction of the sort. Specify the
* FILEMAKER_SORT_ASCEND constant, the FILEMAKER_SORT_DESCEND
* constant, or the name of a value list specified as a string.
*/
function addSortRule($fieldname, $precedence, $order = null)
{
$this->_impl->addSortRule($fieldname, $precedence, $order);
}
/**
* Clears all existing sorting rules from this Compound Find command.
*/
function clearSortRules()
{
$this->_impl->clearSortRules();
}
/**
* Sets a range to request only part of the result set.
*
* @param integer $skip Number of records to skip past. Default is 0.
* @param integer $max Maximum number of records to return.
* Default is all.
*/
function setRange($skip = 0, $max = null)
{
$this->_impl->setRange($skip, $max);
}
/**
* Returns the current range settings.
*
* @return array Associative array with two keys: 'skip' for
* the current skip setting, and 'max' for the current maximum
* number of records. If either key does not have a value, the
* returned value for that key is NULL.
*/
function getRange()
{
return $this->_impl->getRange();
}
/**
* Sets a filter to restrict the number of related records to return from
* a portal.
*
* For more information, see the description for the
* {@link FileMaker_Command_Find::setRelatedSetsFilters()} method.
*
* @param string $relatedsetsfilter Specify either 'layout' or 'none' to
* control filtering.
* @param string $relatedsetsmax Maximum number of portal records
* to return.
*/
function setRelatedSetsFilters($relatedsetsfilter, $relatedsetsmax = null)
{
return $this->_impl->setRelatedSetsFilters($relatedsetsfilter, $relatedsetsmax);
}
/**
* Returns the current settings for the related records filter and
* the maximum number of related records to return.
*
* @return array Associative array with two keys: 'relatedsetsfilter' for
* the portal filter setting, and 'relatedsetsmax' for the maximum
* number of records. If either key does not have a value, the returned
* for that key is NULL.
*/
function getRelatedSetsFilters()
{
return $this->_impl->getRelatedSetsFilters();
}
}
+53
View File
@@ -0,0 +1,53 @@
<?php
/**
* FileMaker API for PHP
*
* @package FileMaker
*
* Copyright © 2005-2009, 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 Include parent and delegate classes.
*/
require_once dirname(__FILE__) . '/../Command.php';
require_once dirname(__FILE__) . '/../Implementation/Command/DeleteImpl.php';
/**#@-*/
/**
* Command class that deletes a single record.
* Create this command with {@link FileMaker::newDeleteCommand()}.
*
* @package FileMaker
*/
class FileMaker_Command_Delete extends FileMaker_Command
{
/**
* Implementation
*
* @var FileMaker_Command_Delete_Implementation
* @access private
*/
var $_impl;
/**
* Delete command constructor.
*
* @ignore
* @param FileMaker_Implementation $fm FileMaker_Implementation object the
* command was created by.
* @param string $layout Layout to delete record from.
* @param string $recordId ID of the record to delete.
*/
function FileMaker_Command_Delete($fm, $layout, $recordId)
{
$this->_impl = new FileMaker_Command_Delete_Implementation($fm, $layout, $recordId);
}
}
+53
View File
@@ -0,0 +1,53 @@
<?php
/**
* FileMaker API for PHP
*
* @package FileMaker
*
* Copyright © 2005-2009, 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 Include parent and delegate classes.
*/
require_once dirname(__FILE__) . '/../Command.php';
require_once dirname(__FILE__) . '/../Implementation/Command/DuplicateImpl.php';
/**#@-*/
/**
* Command class that duplicates a single record.
* Create this command with {@link FileMaker::newDuplicateCommand()}.
*
* @package FileMaker
*/
class FileMaker_Command_Duplicate extends FileMaker_Command
{
/**
* Implementation
*
* @var FileMaker_Command_Duplicate_Implementation
* @access private
*/
var $_impl;
/**
* Duplicate command constructor.
*
* @ignore
* @param FileMaker_Implementation $fm FileMaker_Implementation object the
* command was created by.
* @param string $layout Layout the record to duplicate is in.
* @param string $recordId ID of the record to duplicate.
*/
function FileMaker_Command_Duplicate($fm, $layout, $recordId)
{
$this->_impl = new FileMaker_Command_Duplicate_Implementation($fm, $layout, $recordId);
}
}
+109
View File
@@ -0,0 +1,109 @@
<?php
/**
* FileMaker API for PHP
*
* @package FileMaker
*
* Copyright © 2005-2009, 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 Include parent and delegate classes.
*/
require_once dirname(__FILE__) . '/../Command.php';
require_once dirname(__FILE__) . '/../Implementation/Command/EditImpl.php';
/**#@-*/
/**
* Command class that edits a single record.
* Create this command with {@link FileMaker::newEditCommand()}.
*
* @package FileMaker
*/
class FileMaker_Command_Edit extends FileMaker_Command
{
/**
* Implementation
*
* @var FileMaker_Command_Edit_Implementation
* @access private
*/
var $_impl;
/**
* Edit command constructor.
*
* @ignore
* @param FileMaker_Implementation $fm FileMaker_Implementation object the
* command was created by.
* @param string $layout Layout the record is part of.
* @param string $recordId ID of the record to edit.
* @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.
*/
function FileMaker_Command_Edit($fm, $layout, $recordId, $updatedValues = array())
{
$this->_impl = new FileMaker_Command_Edit_Implementation($fm, $layout, $recordId, $updatedValues);
}
/**
* Sets the new value for a field.
*
* @param string $field Name of the field to set.
* @param string $value Value for 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 this method returns
* an Error object. 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);
}
/**
* Sets the modification ID for this command.
*
* Before you edit a record, you can use the
* {@link FileMaker_Record::getModificationId()} method to get the record's
* modification ID. By specifying a modification ID when you execute an
* Edit command, you can make sure that you are editing the current version
* of a record. If the modification ID value you specify does not match the
* current modification ID value in the database, the Edit command is not
* allowed and an error code is returned.
*
* @param integer $modificationId Modification ID.
*/
function setModificationId($modificationId)
{
$this->_impl->setModificationId($modificationId);
}
}
+182
View File
@@ -0,0 +1,182 @@
<?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 Include parent and delegate classes.
*/
require_once dirname(__FILE__) . '/../Command.php';
require_once dirname(__FILE__) . '/../Implementation/Command/FindImpl.php';
/**#@-*/
/**
* Command class that finds records using the specified criteria.
* Create this command with {@link FileMaker::newFindCommand()}.
*
* @package FileMaker
*/
class FileMaker_Command_Find extends FileMaker_Command
{
/**
* Implementation
*
* @var FileMaker_Command_Find_Implementation
* @access private
*/
var $_impl;
/**
* Find command constructor.
*
* @ignore
* @param FileMaker_Implementation $fm FileMaker_Implementation object the
* command was created by.
* @param string $layout Layout to find records in.
*/
function FileMaker_Command_Find($fm, $layout)
{
$this->_impl = new FileMaker_Command_Find_Implementation($fm, $layout);
}
/**
* Adds a criterion to this Find command.
*
* @param string $fieldname Name of the field being tested.
* @param string $testvalue Value of field to test against.
*/
function addFindCriterion($fieldname, $testvalue)
{
$this->_impl->addFindCriterion($fieldname, $testvalue);
}
/**
* Clears all existing criteria from this Find command.
*/
function clearFindCriteria()
{
$this->_impl->clearFindCriteria();
}
/**
* Adds a sorting rule to this Find command.
*
* @param string $fieldname Name of the field to sort by.
* @param integer $precedence Integer from 1 to 9, inclusive. A value
* of 1 sorts records based on this sorting rule first, a value of
* 2 sorts records based on this sorting rule only when two or more
* records have the same value after the first sorting rule is
* applied, and so on.
* @param mixed $order Direction of the sort. Specify the
* FILEMAKER_SORT_ASCEND constant, the FILEMAKER_SORT_DESCEND
* constant, or the name of a value list specified as a string.
*/
function addSortRule($fieldname, $precedence, $order = null)
{
$this->_impl->addSortRule($fieldname, $precedence, $order);
}
/**
* Clears all existing sorting rules from this Find command.
*/
function clearSortRules()
{
$this->_impl->clearSortRules();
}
/**
* Specifies how the find criteria in this Find command are combined
* as either a logical AND or OR search.
*
* If not specified, the default is a logical AND.
*
* @param integer $operator Specify the FILEMAKER_FIND_AND or
* FILEMAKER_FIND_OR constant.
*/
function setLogicalOperator($operator)
{
$this->_impl->setLogicalOperator($operator);
}
/**
* Sets a range to request only part of the result set.
*
* @param integer $skip Number of records to skip past. Default is 0.
* @param integer $max Maximum number of records to return.
* Default is all.
*/
function setRange($skip = 0, $max = null)
{
$this->_impl->setRange($skip, $max);
}
/**
* Returns the current range settings.
*
* @return array Associative array with two keys: 'skip' for
* the current skip setting, and 'max' for the current maximum
* number of records. If either key does not have a value, the
* returned value for that key is NULL.
*/
function getRange()
{
return $this->_impl->getRange();
}
/**
* Sets a filter to restrict the number of related records to return from
* a portal.
*
* The filter limits the number of related records returned by respecting
* the settings specified in the FileMaker Pro Portal Setup dialog box.
*
* @param string $relatedsetsfilter Specify one of these values to
* control filtering:
* - 'layout': Apply the settings specified in the FileMaker Pro
* Portal Setup dialog box. The records are sorted based
* on the sort defined in the Portal Setup dialog box,
* with the record set filtered to start with the
* specified "Initial row."
* - 'none': Return all related records in the portal without
* filtering or presorting them.
*
* @param string $relatedsetsmax If the "Show vertical scroll bar" setting
* is enabled in the Portal Setup dialog box, specify one of these
* values:
* - an integer value: Return this maximum number of related records
* after the initial record.
* - 'all': Return all of the related records in the portal.
* If "Show vertical scroll bar" is disabled, the Portal
* Setup dialog box's "Number of rows" setting determines
* the maximum number of related records to return.
*/
function setRelatedSetsFilters($relatedsetsfilter, $relatedsetsmax = null)
{
return $this->_impl->setRelatedSetsFilters($relatedsetsfilter, $relatedsetsmax);
}
/**
* Returns the current settings for the related records filter and
* the maximum number of related records to return.
*
* @return array Associative array with two keys: 'relatedsetsfilter' for
* the portal filter setting, and 'relatedsetsmax' for the maximum
* number of records. If either key does not have a value, the returned
* for that key is NULL.
*/
function getRelatedSetsFilters()
{
return $this->_impl->getRelatedSetsFilters();
}
}
+52
View File
@@ -0,0 +1,52 @@
<?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 Include parent and delegate classes.
*/
require_once dirname(__FILE__) . '/Find.php';
require_once dirname(__FILE__) . '/../Implementation/Command/FindAllImpl.php';
/**#@-*/
/**
* Command class that finds all records from a layout.
* Create this command with {@link FileMaker::newFindAllCommand()}.
*
* @package FileMaker
*/
class FileMaker_Command_FindAll extends FileMaker_Command_Find
{
/**
* Implementation
*
* @var FileMaker_Command_FindAll_Implementation
* @access private
*/
var $_impl;
/**
* FindAll command constructor.
*
* @ignore
* @param FileMaker_Implementation $fm FileMaker_Implementation object the
* command was created by.
* @param string $layout Layout to find all records in.
*/
function FileMaker_Command_FindAll($fm, $layout)
{
$this->_impl = new FileMaker_Command_FindAll_Implementation($fm, $layout);
}
}
+52
View File
@@ -0,0 +1,52 @@
<?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 Include parent and delegate classes.
*/
require_once dirname(__FILE__) . '/Find.php';
require_once dirname(__FILE__) . '/../Implementation/Command/FindAnyImpl.php';
/**#@-*/
/**
* Command class that finds one random record.
* Create this command with {@link FileMaker::newFindAnyCommand()}.
*
* @package FileMaker
*/
class FileMaker_Command_FindAny extends FileMaker_Command_Find
{
/**
* Implementation
*
* @var FileMaker_Command_FindAny_Implementation
* @access private
*/
var $_impl;
/**
* FindAny command constructor.
*
* @ignore
* @param FileMaker_Implementation $fm FileMaker_Implementation object the
* command was created by.
* @param string $layout Layout to find a random record from.
*/
function FileMaker_Command_FindAny($fm, $layout)
{
$this->_impl = new FileMaker_Command_FindAny_Implementation($fm, $layout);
}
}
@@ -0,0 +1,85 @@
<?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 Include parent and delegate classes.
*/
require_once dirname(__FILE__) . '/../Command.php';
require_once dirname(__FILE__) . '/../Implementation/Command/FindRequestImpl.php';
/**#@-*/
/**
* Find Request class. Contains all the information about a single find request
* for a Compound Find command.
* Create this command with {@link FileMaker::newFindRequest()}.
*
* @package FileMaker
*/
class FileMaker_Command_FindRequest
{
/**
* Implementation
*
* @var FileMaker_Command_Find_Implementation
* @access private
*/
var $_impl;
/**
* Find request constructor.
*
* @ignore
* @param FileMaker_Implementation $fm FileMaker_Implementation object the
* request was created by.
* @param string $layout Layout to find records in.
*/
function FileMaker_Command_FindRequest($fm, $layout)
{
$this->_impl = new FileMaker_Command_FindRequest_Implementation($fm, $layout);
}
/**
* Sets whether this request is an omit request.
*
* An omit request removes the matching records from the final result set.
*
* @param boolean $value TRUE if this is an omit request. Otherwise, FALSE.
*/
function setOmit($value)
{
$this->_impl->setOmit($value);
}
/**
* Adds a criterion to this find request.
*
* @param string $fieldname Name of the field being tested.
* @param string $testvalue Value of the field to test against.
*/
function addFindCriterion($fieldname, $testvalue)
{
$this->_impl->addFindCriterion($fieldname, $testvalue);
}
/**
* Clears all existing criteria from this find request.
*/
function clearFindCriteria()
{
$this->_impl->clearFindCriteria();
}
}
@@ -0,0 +1,54 @@
<?php
/**
* FileMaker API 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 Include parent and delegate classes.
*/
require_once dirname(__FILE__) . '/../Command.php';
require_once dirname(__FILE__) . '/../Implementation/Command/PerformScriptImpl.php';
/**#@-*/
/**
* Command class that performs a ScriptMaker script.
* Create this command with {@link FileMaker::newPerformScriptCommand()}.
*
* @package FileMaker
*/
class FileMaker_Command_PerformScript extends FileMaker_Command
{
/**
* Implementation
*
* @var FileMaker_Command_PerformScript_Implementation
* @access private
*/
var $_impl;
/**
* PerformScript command constructor.
*
* @ignore
* @param FileMaker_Implementation $fm FileMaker_Implementation object the
* command was created by.
* @param string $layout Layout to use for script context.
* @param string $scriptName Name of the script to run.
* @param string $scriptParameters Any parameters to pass to the script.
*/
function FileMaker_Command_PerformScript($fm, $layout, $scriptName, $scriptParameters = null)
{
$this->_impl = new FileMaker_Command_PerformScript_Implementation($fm, $layout, $scriptName, $scriptParameters);
}
}
+118
View File
@@ -0,0 +1,118 @@
<?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 Makes sure that the PEAR base class is loaded. Falls back to a
* bundled version if it's not found in the include_path.
*/
@include_once 'PEAR.php';
if (!class_exists('PEAR_Error')) {
include_once 'FileMaker/PEAR.php';
}
/**#@-*/
/**
* Extension of the PEAR_Error class for use in all FileMaker classes.
*
* @package FileMaker
*/
class FileMaker_Error extends PEAR_Error
{
/**
* FileMaker object the error was generated from.
*
* @var FileMaker
* @access private
*/
var $_fm;
/**
* Overloaded FileMaker_Error constructor.
*
* @param FileMaker_Delegate &$fm FileMaker_Delegate object this error
* came from.
* @param string $message Error message.
* @param integer $code Error code.
*/
function FileMaker_Error(&$fm, $message = null, $code = null)
{
$this->_fm =& $fm;
parent::PEAR_Error($message, $code);
// Log the error.
$fm->log($this->getMessage(), FILEMAKER_LOG_ERR);
}
/**
* Overloads getMessage() to return an equivalent FileMaker Web Publishing
* Engine error if no message is explicitly set and this object has an
* error code.
*
* @return string Error message.
*/
function getMessage()
{
if ($this->message === null && $this->getCode() !== null) {
return $this->getErrorString();
}
return parent::getMessage();
}
/**
* Returns the string representation of $this->code in the language
* currently set for PHP error messages in FileMaker Server Admin
* Console.
*
* You should call getMessage() in most cases, if you are not sure whether
* the error is a FileMaker Web Publishing Engine error with an error code.
*
* @return string Error description.
*/
function getErrorString()
{
// Default to English.
$lang = basename($this->_fm->getProperty('locale'));
if (!$lang) {
$lang = 'en';
}
static $strings = array();
if (empty($strings[$lang])) {
if (!@include_once dirname(__FILE__) . '/Error/' . $lang . '.php') {
include_once dirname(__FILE__) . '/Error/en.php';
}
$strings[$lang] = $__FM_ERRORS;
}
if (isset($strings[$lang][$this->getCode()])) {
return $strings[$lang][$this->getCode()];
}
return $strings[$lang][-1];
}
/**
* Indicates whether the error is a detailed pre-validation error
* or a FileMaker Web Publishing Engine error.
*
* @return boolean FALSE, to indicate that this is an error from the
* Web Publishing Engine.
*/
function isValidationError()
{
return false;
}
}
+110
View File
@@ -0,0 +1,110 @@
<?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 Include parent class.
*/
require_once dirname(__FILE__) . '/../Error.php';
/**#@-*/
/**
* Extension of the FileMaker_Error class that adds information about
* pre-validation errors.
*
* @package FileMaker
*/
class FileMaker_Error_Validation extends FileMaker_Error
{
/**
* Error array.
*
* @var array
* @access private
*/
var $_errors = array();
/**
* Adds an error.
*
* @param FileMaker_Field $field Field object that failed pre-validation.
* @param integer $rule Pre-validation rule that failed specified as one
* of the FILEMAKER_RULE_* constants.
* @param string $value Value that failed pre-validation.
*/
function addError($field, $rule, $value)
{
$this->_errors[] = array($field, $rule, $value);
}
/**
* Indicates whether the error is a detailed pre-validation error
* or a FileMaker Web Publishing Engine error.
*
* @return boolean TRUE, to indicate that this is a pre-validation
* error object.
*/
function isValidationError()
{
return true;
}
/**
* Returns the number of pre-validation rules that failed.
*
* @return integer Number of failures.
*/
function numErrors()
{
return count($this->_errors);
}
/**
* Returns an array of arrays describing the pre-validation errors that
* occurred.
*
* Each entry in the outer array represents a pre-validation failure.
* Each failure is represented by a three-element array with the
* following members:
*
* - 0 => The field object for the field that failed pre-validation.
* - 1 => The pre-validation rule that failed specified as a
* FILEMAKER_RULE_* constant.
* - 2 => The value entered for the field that failed pre-validation.
*
* Multiple pre-validation rules can fail on a single field. If you set the
* optional $fieldName parameter, then failures for only the specified
* field are returned.
*
* @param string $fieldName Name of the field to get errors for.
*
* @return array Pre-validation error details.
*/
function getErrors($fieldName = null)
{
if ($fieldName === null) {
return $this->_errors;
}
$errors = array();
foreach ($this->_errors as $error) {
if ($error[0]->getName() == $fieldName) {
$errors[] = $error;
}
}
return $errors;
}
}
+220
View File
@@ -0,0 +1,220 @@
<?php
/**
* FileMaker error codes - German translations.
*
* @package FileMaker
*
* Copyright © 2005-2009, 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.
*/
$__FM_ERRORS = array(
-1 => 'Unbekannter Fehler',
0 => 'Kein Fehler',
1 => 'Aktion durch Benutzer abgebrochen',
2 => 'Speicherfehler',
3 => 'Befehl nicht verfügbar (z. B. falsches Betriebssystem, falscher Modus etc.)',
4 => 'Befehl unbekannt.',
5 => 'Befehl ungültig (z. B. ist für den Scriptschritt „Feldwert setzen“ keine Formel angegeben).',
6 => 'Datei ist schreibgeschützt.',
7 => 'Speicherüberlauf',
8 => 'Leeres Ergebnis',
9 => 'Ungenügende Berechtigungen',
10 => 'Angeforderte Daten fehlen.',
11 => 'Name ist nicht gültig.',
12 => 'Name existiert bereits.',
13 => 'Datei oder Objekt ist in Gebrauch.',
14 => 'Außerhalb des gültigen Bereichs',
15 => 'Teilen durch null nicht möglich.',
16 => 'Operation fehlgeschlagen, Anfrage wiederholen (z. B. eine Benutzeranfrage).',
17 => 'Konvertierung von fremdem Zeichensatz in UTF-16 fehlgeschlagen.',
18 => 'Client muss Kontoinformationen liefern, um fortzufahren.',
19 => 'Zeichenfolge enthält andere Zeichen als A-Z, a-z, 0-9 (ASCII).',
20 => 'Befehl oder Vorgang durch ausgelöstes Script abgebrochen.',
100 => 'Datei fehlt.',
101 => 'Datensatz fehlt.',
102 => 'Feld fehlt.',
103 => 'Beziehung fehlt.',
104 => 'Script fehlt.',
105 => 'Layout fehlt.',
106 => 'Tabelle fehlt.',
107 => 'Index fehlt.',
108 => 'Werteliste nicht vorhanden.',
109 => 'Berechtigung fehlt.',
110 => 'Bezugstabellen fehlen.',
111 => 'Feldwiederholung ist ungültig.',
112 => 'Fenster fehlt.',
113 => 'Funktion fehlt.',
114 => 'Dateiverweis fehlt.',
130 => 'Dateien sind beschädigt oder fehlen und müssen neu installiert werden.',
131 => 'Dateien des Sprachpakets fehlen (z. B. Vorlagendateien).',
200 => 'Zugriff auf Datensatz verweigert.',
201 => 'Feld kann nicht geändert werden.',
202 => 'Zugriff auf Feld verweigert.',
203 => 'Keine zu druckenden Datensätze in der Datei bzw. Passwort erlaubt kein Drucken.',
204 => 'Kein Zugriff auf Feld(er) in Sortierfolge',
205 => 'Benutzer hat keine Zugriffsrechte, um neue Datensätze zu erstellen; Import überschreibt bestehende Daten.',
206 => 'Benutzer hat keine Zugriffsrechte, um das Passwort zu ändern, oder die Datei ist schreibgeschützt.',
207 => 'Benutzer hat nicht genügend Zugriffsrechte, um das Datenbankschema zu ändern, oder die Datei ist schreibgeschützt.',
208 => 'Passwort enthält zu wenige Zeichen.',
209 => 'Neues Passwort muss sich vom bestehenden unterscheiden.',
210 => 'Benutzerkonto ist inaktiv.',
211 => 'Passwort ist abgelaufen.',
212 => 'Ungültiges Benutzerkonto und/oder Passwort. Versuchen Sie es erneut.',
213 => 'Benutzerkonto und/oder Passwort existiert nicht.',
214 => 'Zu viele Anmeldeversuche',
215 => 'Administratorrechte können nicht dupliziert werden.',
216 => 'Gastkonto kann nicht dupliziert werden.',
217 => 'Benutzer hat nicht genügend Zugriffsrechte, um Administratorkonto zu ändern.',
300 => 'Datei ist geschützt oder in Gebrauch.',
301 => 'Datei ist blockiert durch anderen Anwender.',
302 => 'Tabelle ist blockiert durch anderen Anwender.',
303 => 'Datenbankschema ist blockiert durch anderen Anwender.',
304 => 'Layout ist blockiert durch anderen Anwender.',
306 => 'Datensatzänderungs-ID stimmt nicht überein.',
400 => 'Suchkriterien sind leer.',
401 => 'Kein Datensatz entspricht der Abfrage.',
402 => 'Kein Vergleichsfeld für eine Referenz',
403 => 'Maximales Datensatzlimit für FileMaker Pro-Demo wird überschritten.',
404 => 'Ungültige Sortierfolge',
405 => 'Angegebene Datensatzzahl übersteigt die Anzahl der ausschließbaren Datensätze.',
406 => 'Ungültige Kriterien für Ersetzen/Neunummerierung',
407 => 'Ein oder beide Gruppierfeld(er) fehlen (ungültige Beziehung).',
408 => 'Angegebenes Feld hat ein Datenformat, das diesem Befehl nicht entspricht.',
409 => 'Ungültige Importfolge',
410 => 'Ungültige Exportfolge',
412 => 'Falsche Version von FileMaker Pro verwendet, um die Datei wiederherzustellen',
413 => 'Angegebenes Feld hat ungeeigneten Feldtyp.',
414 => 'Layout kann das Ergebnis nicht anzeigen.',
415 => 'Ein oder mehrere erforderliche Bezugsdatensätze sind nicht verfügbar.',
500 => 'Datumswert entspricht nicht den Überprüfungskriterien.',
501 => 'Zeitwert entspricht nicht den Überprüfungskriterien.',
502 => 'Zahlenwert entspricht nicht den Überprüfungskriterien.',
503 => 'Feldwert entspricht nicht der Bereichsüberprüfung.',
504 => 'Feldwert entspricht nicht der Eindeutigkeitsüberprüfung.',
505 => 'Feldwert existiert nicht in der Datenbank und entspricht nicht der Existenzüberprüfung.',
506 => 'Feldwert entspricht nicht der Überprüfung nach Bestandteil einer Werteliste.',
507 => 'Feldwert entspricht nicht der Überprüfung durch Berechnung.',
508 => 'Ungültiger Wert wurde in Suchenmodus eingegeben.',
509 => 'Feld verlangt gültigen Wert.',
510 => 'Bezugswert ist leer oder nicht verfügbar.',
511 => 'Der Wert im Feld überschreitet die maximale Anzahl der zulässigen Zeichen.',
600 => 'Druckerfehler aufgetreten.',
601 => 'Kombination von Kopf- und Fußbereich übersteigt eine Seitenlänge.',
602 => 'Datenbereich passt für aktuelle Spalteneinstellung nicht auf eine Seite.',
603 => 'Verbindung zum Drucker getrennt.',
700 => 'Datei hat falschen Dateityp für Import.',
706 => 'EPSF-Datei hat keine Übersichtsgrafik.',
707 => 'Grafikfilter nicht vorhanden.',
708 => 'Dateiimport nicht möglich bzw. Farbmonitor für Import erforderlich.',
709 => 'Import des QuickTime-Films fehlgeschlagen.',
710 => 'QuickTime-Dateiverweis konnte nicht aktualisiert werden, da für Datenbankdatei nur Lesezugriff besteht.',
711 => 'Importfilter nicht vorhanden.',
714 => 'Zugriffsrechte reichen für diesen Befehl nicht aus.',
715 => 'Benannter Bereich oder Tabellenblatt von Excel konnte nicht gefunden werden.',
716 => 'Eine SQL Anfrage mit DELETE, INSERT oder UPDATE ist nicht für ODBC Import erlaubt.',
717 => 'Zum Fortsetzen des Imports bzw. Exports sind nicht genügend XML/XSL-Daten vorhanden.',
718 => 'XML-Parsingfehler (von Xerces)',
719 => 'Fehler beim Transformieren von XML mit XSL (von Xalan)',
720 => 'Fehler beim Export: Das vorgesehene Format unterstützt keine Wiederholfelder.',
721 => 'Im Parser oder Transformer ist ein unbekannter Fehler aufgetreten.',
722 => 'Daten können nicht in eine Datei importiert werden, die keine Felder hat.',
723 => 'Sie sind nicht berechtigt, Datensätze in der Zieltabelle hinzuzufügen oder zu ändern.',
724 => 'Sie sind nicht berechtigt, Datensätze in der Zieltabelle hinzuzufügen.',
725 => 'Sie sind nicht berechtigt, Datensätze in der Zieltabelle zu ändern.',
726 => 'In der Importdatei sind mehr Datensätze vorhanden als in der Zieltabelle. Nicht alle Datensätze werden importiert.',
727 => 'In der Zieltabelle sind mehr Datensätze vorhanden als in der Importdatei. Nicht alle Datensätze werden aktualisiert.',
729 => 'Fehler beim Import. Datensätze konnten nicht importiert werden.',
730 => 'Nicht unterstützte Excel-Version. Konvertieren Sie die Datei in Excel 7.0 (Excel 95), Excel 97, 2000, XP oder 2007 und versuchen Sie es erneut.',
731 => 'Die für den Import ausgewählte Datei enthält keine Daten.',
732 => 'Diese Datei kann nicht eingefügt werden, weil sie selbst weitere Dateien enthält.',
733 => 'Eine Tabelle kann nicht in sich selbst importiert werden.',
734 => 'Dieser Dateityp kann nicht als Bild dargestellt werden.',
735 => 'Dieser Dateityp kann nicht als Bild dargestellt werden. Er wird eingefügt und dann als Datei dargestellt.',
800 => 'Datei konnte auf Datenträger nicht erstellt werden.',
801 => 'Temporärdatei konnte auf Systemdatenträger nicht erstellt werden.',
802 => 'Datei konnte nicht geöffnet werden.',
803 => 'Datei in Einzelbenutzer-Status oder Host nicht vorhanden.',
804 => 'Datei konnte in ihrem aktuellen Status nicht mit Nur-Lese-Zugriff geöffnet werden.',
805 => 'Datei ist beschädigt; stellen Sie die Datei wieder her.',
806 => 'Datei kann mit dieser Version von FileMaker Pro nicht geöffnet werden.',
807 => 'Datei ist keine FileMaker Pro-Datei oder ist schwer beschädigt.',
808 => 'Datei kann wegen beschädigter Zugriffsrechte nicht geöffnet werden.',
809 => 'Datenträger voll',
810 => 'Datenträger fixiert',
811 => 'Temporärdatei kann nicht als FileMaker Pro-Datei geöffnet werden.',
813 => 'Fehler bei Datensatz-Synchronisation im Netzwerk',
814 => 'Datei(en) kann (können) nicht geöffnet werden, da die maximale Anzahl an Dateien geöffnet ist.',
815 => 'Referenzdatei konnte nicht geöffnet werden.',
816 => 'Datei konnte nicht konvertiert werden.',
817 => 'Der Bindungsschlüssel der Datei stimmt nicht mit dieser Laufzeitanwendung überein.',
819 => 'Lokale Kopie einer remote Datei kann nicht gespeichert werden.',
820 => 'Datei wird geschlossen.',
821 => 'Host hat die Verbindung getrennt.',
822 => 'FMI-Dateien nicht gefunden; fehlende Dateien neu installieren.',
823 => 'Datei kann nicht auf Einzelbenutzer gesetzt werden, da Gäste verbunden sind.',
824 => 'Datei ist beschädigt oder keine FileMaker-Datei.',
900 => 'Allgemeiner Fehler in der Rechtschreibprüfung',
901 => 'Standardwörterbuch nicht installiert.',
902 => 'Hilfe-System konnte nicht gestartet werden.',
903 => 'Befehl kann nicht in einer gemeinsam genutzten Datei verwendet werden.',
904 => 'Befehl kann nur in einer Datei verwendet werden, die von FileMaker Pro Server freigegeben wurde.',
905 => 'Kein aktives Feld ausgewählt, Befehl kann nur mit aktivem Feld verwendet werden.',
920 => 'Initialisierung der Rechtschreibprüfung nicht möglich.',
921 => 'Anwenderwörterbuch kann nicht zur Bearbeitung geladen werden.',
922 => 'Anwenderwörterbuch existiert nicht.',
923 => 'Anwenderwörterbuch ist schreibgeschützt.',
951 => 'Ein unerwarteter Fehler ist aufgetreten.',
954 => 'Nicht unterstützte XML-Grammatik',
955 => 'Kein Datenbankname',
956 => 'Maximale Anzahl von Datenbanksitzungen überschritten.',
957 => 'Widersprüchliche Befehle',
958 => 'Parameter fehlt in Query',
1200 => 'Generischer Rechenfehler',
1201 => 'In dieser Funktion gibt es zu wenige Parameter.',
1202 => 'In dieser Funktion gibt es zu viele Parameter.',
1203 => 'Unerwartetes Ende der Berechnung',
1204 => 'Es wird eine Zahl, eine Textkonstante, ein Feldname bzw. „(“ erwartet.',
1205 => 'Kommentar ist nicht mit „*/“ beendet.',
1206 => 'Textkonstante muss mit einem Anführungszeichen enden.',
1207 => 'Klammer unvollständig',
1208 => 'Operator fehlt, Funktion nicht gefunden oder „(“ nicht erwartet.',
1209 => 'Name (z. B. Feldname oder Layoutname) fehlt.',
1210 => 'Plugin-Funktion wurde bereits registriert.',
1211 => 'In dieser Funktion ist die Listennutzung nicht zulässig.',
1212 => 'Hier wird ein Operator (z. B. +, -, * ) erwartet.',
1213 => 'Diese Variable wurde bereits in der SetzeVars-Funktion definiert.',
1214 => 'MITTELWERT, ANZAHL, ERWEITERN, HOLEWIEDERHOLFELDWERT, MAX, MIN, NBW, STABW, SUMME und HOLEERGEBNISWERT: Ausdruck gefunden, wo nur ein Feld benötigt wird.',
1215 => 'Dieser Parameter ist ein ungültiger Statusfunktionsparameter.',
1216 => 'Als erstes Argument einer HOLEERGEBNISWERT-Funktion können nur Statistikfelder angegeben werden.',
1217 => 'Gruppierfeld ist ungültig.',
1218 => 'Zahl kann nicht berechnet werden.',
1219 => 'Ein Feld kann nicht in seiner eigenen Formel benutzt werden.',
1220 => 'Feldtyp muss normal oder berechnet sein.',
1221 => 'Datentyp muss Zahl, Datum, Zeit oder Zeitstempel sein.',
1222 => 'Formel kann nicht gespeichert werden.',
1223 => 'Die angegebene Funktion existiert nicht.',
1400 => 'ODBC-Client-Treiberinitialisierung fehlgeschlagen. Stellen Sie sicher, dass die ODBC-Client-Treiber richtig installiert sind. Hinweis Die Plugin-Komponente für das Bereitstellen von Daten über ODBC wird automatisch zusammen mit FileMaker Server installiert. Die ODBC-Client-Treiber werden über die FileMaker Server Web Publishing-CD installiert. Weitere Informationen finden Sie in Installation der FileMaker ODBC- und JDBC-Client-Treiber.',
1401 => 'Umgebung konnte nicht zugeteilt werden (ODBC).',
1402 => 'Umgebung konnte nicht freigegeben werden (ODBC).',
1403 => 'Verbindung trennen fehlerhaft (ODBC).',
1404 => 'Verbindung konnte nicht zugeteilt werden (ODBC).',
1405 => 'Verbindung konnte nicht freigegeben werden (ODBC).',
1406 => 'Überprüfung von SQL API fehlgeschlagen (ODBC).',
1407 => 'Anweisung konnte nicht zugeteilt werden (ODBC).',
1408 => 'Erweiterter Fehler (ODBC)',
1450 => 'Aktion erfordert PHP-Berechtigungserweiterung.',
1451 => 'Aktion erfordert, dass die aktuelle Datei remote ist.',
1501 => 'SMTP-Authentifizierung fehlgeschlagen.',
1502 => 'Verbindung durch SMTP-Server abgelehnt.',
1503 => 'SSL-Fehler',
1504 => 'Der SMTP-Server verlangt eine verschlüsselte Verbindung.',
1505 => 'Die angegebene Authentifizierung wird vom SMTP-Server nicht unterstützt.',
1506 => 'E-Mail(s) konnte(n) nicht erfolgreich versendet werden.',
1507 => 'Anmeldung am SMTP-Server nicht möglich'
);
+220
View File
@@ -0,0 +1,220 @@
<?php
/**
* FileMaker error codes - English translations.
*
* @package FileMaker
*
* Copyright © 2005-2009, 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.
*/
$__FM_ERRORS = array(
-1 => 'Unknown error',
0 => 'No error',
1 => 'User canceled action',
2 => 'Memory error',
3 => 'Command is unavailable (for example, wrong operating system, wrong mode, etc.)',
4 => 'Command is unknown',
5 => 'Command is invalid (for example, a Set Field script step does not have a calculation specified)',
6 => 'File is read-only',
7 => 'Running out of memory',
8 => 'Empty result',
9 => 'Insufficient privileges',
10 => 'Requested data is missing',
11 => 'Name is not valid',
12 => 'Name already exists',
13 => 'File or object is in use',
14 => 'Out of range',
15 => 'Can\'t divide by zero',
16 => 'Operation failed, request retry (for example, a user query) ',
17 => 'Attempt to convert foreign character set to UTF-16 failed',
18 => 'Client must provide account information to proceed',
19 => 'String contains characters other than A-Z, a-z, 0-9 (ASCII)',
20 => 'Command or operation cancelled by triggered script',
100 => 'File is missing',
101 => 'Record is missing',
102 => 'Field is missing',
103 => 'Relationship is missing',
104 => 'Script is missing',
105 => 'Layout is missing',
106 => 'Table is missing',
107 => 'Index is missing',
108 => 'Value list is missing',
109 => 'Privilege set is missing',
110 => 'Related tables are missing',
111 => 'Field repetition is invalid',
112 => 'Window is missing',
113 => 'Function is missing',
114 => 'File reference is missing',
130 => 'Files are damaged or missing and must be reinstalled',
131 => 'Language pack files are missing (such as template files)',
200 => 'Record access is denied',
201 => 'Field cannot be modified',
202 => 'Field access is denied',
203 => 'No records in file to print, or password doesn\'t allow print access',
204 => 'No access to field(s) in sort order',
205 => 'User does not have access privileges to create new records; import will overwrite existing data',
206 => 'User does not have password change privileges, or file is not modifiable',
207 => 'User does not have sufficient privileges to change database schema, or file is not modifiable',
208 => 'Password does not contain enough characters',
209 => 'New password must be different from existing one',
210 => 'User account is inactive',
211 => 'Password has expired ',
212 => 'Invalid user account and/or password. Please try again',
213 => 'User account and/or password does not exist',
214 => 'Too many login attempts',
215 => 'Administrator privileges cannot be duplicated',
216 => 'Guest account cannot be duplicated',
217 => 'User does not have sufficient privileges to modify administrator account',
300 => 'File is locked or in use',
301 => 'Record is in use by another user',
302 => 'Table is in use by another user',
303 => 'Database schema is in use by another user',
304 => 'Layout is in use by another user',
306 => 'Record modification ID does not match',
400 => 'Find criteria are empty',
401 => 'No records match the request',
402 => 'Selected field is not a match field for a lookup',
403 => 'Exceeding maximum record limit for trial version of FileMaker Pro',
404 => 'Sort order is invalid',
405 => 'Number of records specified exceeds number of records that can be omitted',
406 => 'Replace/Reserialize criteria are invalid',
407 => 'One or both match fields are missing (invalid relationship)',
408 => 'Specified field has inappropriate data type for this operation',
409 => 'Import order is invalid ',
410 => 'Export order is invalid',
412 => 'Wrong version of FileMaker Pro used to recover file',
413 => 'Specified field has inappropriate field type',
414 => 'Layout cannot display the result',
415 => 'One or more required related records are not available',
500 => 'Date value does not meet validation entry options',
501 => 'Time value does not meet validation entry options',
502 => 'Number value does not meet validation entry options',
503 => 'Value in field is not within the range specified in validation entry options',
504 => 'Value in field is not unique as required in validation entry options ',
505 => 'Value in field is not an existing value in the database file as required in validation entry options',
506 => 'Value in field is not listed on the value list specified in validation entry option',
507 => 'Value in field failed calculation test of validation entry option',
508 => 'Invalid value entered in Find mode',
509 => 'Field requires a valid value ',
510 => 'Related value is empty or unavailable ',
511 => 'Value in field exceeds maximum number of allowed characters',
600 => 'Print error has occurred',
601 => 'Combined header and footer exceed one page ',
602 => 'Body doesn\'t fit on a page for current column setup',
603 => 'Print connection lost',
700 => 'File is of the wrong file type for import',
706 => 'EPSF file has no preview image ',
707 => 'Graphic translator cannot be found ',
708 => 'Can\'t import the file or need color monitor support to import file',
709 => 'QuickTime movie import failed ',
710 => 'Unable to update QuickTime file reference because the database file is read-only',
711 => 'Import translator cannot be found ',
714 => 'Password privileges do not allow the operation',
715 => 'Specified Excel worksheet or named range is missing',
716 => 'A SQL query using DELETE, INSERT, or UPDATE is not allowed for ODBC import',
717 => 'There is not enough XML/XSL information to proceed with the import or export',
718 => 'Error in parsing XML file (from Xerces)',
719 => 'Error in transforming XML using XSL (from Xalan)',
720 => 'Error when exporting; intended format does not support repeating fields',
721 => 'Unknown error occurred in the parser or the transformer',
722 => 'Cannot import data into a file that has no fields',
723 => 'You do not have permission to add records to or modify records in the target table',
724 => 'You do not have permission to add records to the target table',
725 => 'You do not have permission to modify records in the target table',
726 => 'There are more records in the import file than in the target table. Not all records were imported',
727 => 'There are more records in the target table than in the import file. Not all records were updated',
729 => 'Errors occurred during import. Records could not be imported',
730 => 'Unsupported Excel version. Convert file to Excel 7.0 (Excel 95), 97, 2000, XP, or 2007 format and try again.',
731 => 'The file you are importing from contains no data',
732 => 'This file cannot be inserted because it contains other files',
733 => 'A table cannot be imported into itself',
734 => 'This file type cannot be displayed as a picture',
735 => 'This file type cannot be displayed as a picture. It will be inserted and displayed as a file',
800 => 'Unable to create file on disk',
801 => 'Unable to create temporary file on System disk',
802 => 'Unable to open file',
803 => 'File is single user or host cannot be found',
804 => 'File cannot be opened as read-only in its current state',
805 => 'File is damaged; use Recover command',
806 => 'File cannot be opened with this version of FileMaker Pro',
807 => 'File is not a FileMaker Pro file or is severely damaged',
808 => 'Cannot open file because access privileges are damaged',
809 => 'Disk/volume is full',
810 => 'Disk/volume is locked',
811 => 'Temporary file cannot be opened as FileMaker Pro file',
813 => 'Record Synchronization error on network',
814 => 'File(s) cannot be opened because maximum number is open',
815 => 'Couldn\'t open lookup file ',
816 => 'Unable to convert file',
817 => 'Unable to open file because it does not belong to this solution',
819 => 'Cannot save a local copy of a remote file',
820 => 'File is in the process of being closed',
821 => 'Host forced a disconnect',
822 => 'FMI files not found; reinstall missing files',
823 => 'Cannot set file to single-user, guests are connected',
824 => 'File is damaged or not a FileMaker file',
900 => 'General spelling engine error',
901 => 'Main spelling dictionary not installed',
902 => 'Could not launch the Help system ',
903 => 'Command cannot be used in a shared file ',
904 => 'Command can only be used in a file hosted under FileMaker Server',
905 => 'No active field selected; command can only be used if there is an active field',
920 => 'Can\'t initialize the spelling engine',
921 => 'User dictionary cannot be loaded for editing',
922 => 'User dictionary cannot be found',
923 => 'User dictionary is read-only',
951 => 'An unexpected error occurred',
954 => 'Unsupported XML grammar',
955 => 'No database name',
956 => 'Maximum number of database sessions exceeded',
957 => 'Conflicting commands',
958 => 'Parameter missing in query',
1200 => 'Generic calculation error',
1201 => 'Too few parameters in the function',
1202 => 'Too many parameters in the function',
1203 => 'Unexpected end of calculation',
1204 => 'Number, text constant, field name or "(" expected',
1205 => 'Comment is not terminated with "*/"',
1206 => 'Text constant must end with a quotation mark',
1207 => 'Unbalanced parenthesis',
1208 => 'Operator missing, function not found or "(" not expected',
1209 => 'Name (such as field name or layout name) is missing',
1210 => 'Plug-in function has already been registered',
1211 => 'List usage is not allowed in this function',
1212 => 'An operator (for example, +, -, *) is expected here',
1213 => 'This variable has already been defined in the Let function',
1214 => 'AVERAGE, COUNT, EXTEND, GETREPETITION, MAX, MIN, NPV, STDEV, SUM and GETSUMMARY: expression found where a field alone is needed',
1215 => 'This parameter is an invalid Get function parameter',
1216 => 'Only Summary fields allowed as first argument in GETSUMMARY',
1217 => 'Break field is invalid ',
1218 => 'Cannot evaluate the number',
1219 => 'A field cannot be used in its own formula',
1220 => 'Field type must be normal or calculated ',
1221 => 'Data type must be number, date, time, or timestamp ',
1222 => 'Calculation cannot be stored',
1223 => 'The function referred to does not exist',
1400 => 'ODBC client driver initialization failed; make sure the ODBC client drivers are properly installed. Note: The plug-in component for sharing data via ODBC is installed automatically with FileMaker Server; the ODBC client drivers are installed using the FileMaker Server Web Publishing CD. For information, see Installing FileMaker ODBC and JDBC Client Drivers.',
1401 => 'Failed to allocate environment (ODBC)',
1402 => 'Failed to free environment (ODBC)',
1403 => 'Failed to disconnect (ODBC)',
1404 => 'Failed to allocate connection (ODBC)',
1405 => 'Failed to free connection (ODBC)',
1406 => 'Failed check for SQL API (ODBC)',
1407 => 'Failed to allocate statement (ODBC)',
1408 => 'Extended error (ODBC)',
1450 => 'Action requires PHP privilege extension',
1451 => 'Action requires that current file be remote',
1501 => 'SMTP authentication failed',
1502 => 'Connection refused by SMTP server',
1503 => 'Error with SSL',
1504 => 'SMTP server requires the connection to be encrypted',
1505 => 'Specified authentication is not supported by SMTP server',
1506 => 'Email message(s) could not be sent successfully',
1507 => 'Unable to log in to the SMTP server'
);
+220
View File
@@ -0,0 +1,220 @@
<?php
/**
* FileMaker error codes - French translations.
*
* @package FileMaker
*
* Copyright © 2005-2009, 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.
*/
$__FM_ERRORS = array(
-1 => 'Erreur inconnue',
0 => 'Pas d\'erreur',
1 => 'L\'utilisateur a annulé l\'action',
2 => 'Erreur de mémoire',
3 => 'Commande non disponible (par exemple, système d\'exploitation incorrect, mode incorrect, etc.)',
4 => 'Commande inconnue',
5 => 'Commande incorrecte (par exemple, un calcul n\'a pas été indiqué pour une action de script Définir rubrique)',
6 => 'Fichier accessible en lecture seule',
7 => 'Mémoire insuffisante',
8 => 'Résultat vide',
9 => 'Autorisations d\'accès insuffisantes',
10 => 'Données requises manquantes',
11 => 'Nom incorrect',
12 => 'Ce nom existe déjà',
13 => 'Le fichier ou l\'objet est déjà utilisé',
14 => 'En dehors de l\'intervalle',
15 => 'Division par zéro impossible',
16 => 'Echec de l\'opération, réessayez (par exemple une requête utilisateur)',
17 => 'Echec de la tentative de conversion d\'un jeu de caractères étranger en UTF-16',
18 => 'Le client doit fournir les données du compte pour poursuivre',
19 => 'La chaîne contient des caractères autres que A-Z, a-z, 0-9 (ASCII)',
20 => 'Commande ou opération annulée par le script déclenché',
100 => 'Fichier manquant',
101 => 'Enregistrement manquant',
102 => 'Rubrique manquante',
103 => 'Lien manquant',
104 => 'Script manquant',
105 => 'Modèle manquant',
106 => 'Table manquante',
107 => 'Index manquant',
108 => 'Liste de valeurs manquante',
109 => 'Jeu de privilèges manquant',
110 => 'Tables liées manquantes',
111 => 'Valeur de rubrique incorrecte',
112 => 'Fenêtre manquante',
113 => 'Fonction manquante',
114 => 'Référence de fichier manquante',
130 => 'Les fichiers sont endommagés ou manquants et doivent être réinstallés',
131 => 'Les fichiers des modules de langue sont manquants (par exemple les modèles)',
200 => 'L\'accès à l\'enregistrement est interdit',
201 => 'Impossible de modifier la rubrique',
202 => 'L\'accès à la rubrique est interdit',
203 => 'Aucun enregistrement à imprimer, ou bien un mot de passe est nécessaire pour imprimer',
204 => 'Aucun accès aux rubriques dans l\'ordre de tri',
205 => 'Impossible de créer de nouveaux enregistrements ; l\'importation peut remplacer les données existantes',
206 => 'Impossible de modifier le mot de passe ou bien le fichier ne peut pas être modifié',
207 => 'Impossible d\'accéder au schéma de base de données ou bien le fichier ne peut pas être modifié',
208 => 'Nombre de caractères insuffisant dans le mot de passe',
209 => 'Le nouveau mot de passe doit être différent du mot de passe existant',
210 => 'Compte utilisateur inactif',
211 => 'Mot de passe expiré',
212 => 'Compte utilisateur et/ou mot de passe incorrect. Réessayez',
213 => 'Le compte utilisateur et/ou le mot de passe existe déjà',
214 => 'Tentatives de connexion trop nombreuses',
215 => 'Impossible de dupliquer les droits administrateur',
216 => 'Impossible de dupliquer un compte Invité',
217 => 'L\'utilisateur ne dispose pas de droits suffisants pour modifier le compte administrateur',
300 => 'Fichier verrouillé ou en cours d\'utilisation',
301 => 'L\'enregistrement est déjà utilisé par un autre utilisateur',
302 => 'La table est déjà utilisée par un autre utilisateur',
303 => 'Le schéma de base de données est déjà utilisé par un autre utilisateur',
304 => 'Le modèle est déjà utilisé par un autre utilisateur',
306 => 'L\'ID de modification d\'enregistrement ne correspond pas',
400 => 'Les critères de recherche sont vides',
401 => 'Aucun enregistrement ne correspond à cette requête',
402 => 'Ceci n\'est pas une rubrique clé pour une référence externe',
403 => 'Le nombre maximal d\'enregistrements indiqué est atteint pour la version de démonstration FileMaker Pro',
404 => 'Ordre de tri incorrect',
405 => 'Le nombre d\'enregistrements indiqué dépasse le nombre d\'enregistrements pouvant être ignorés',
406 => 'Les critères de remplacement et de renumérotation sont incorrects',
407 => 'Une ou les deux rubriques clés manquent (lien incorrect)',
408 => 'Le type de la rubrique indiquée est incorrect pour ce type d\'opération',
409 => 'Ordre d\'importation incorrect',
410 => 'Ordre d\'exportation incorrect',
412 => 'Version de FileMaker Pro incorrecte pour récupérer le fichier',
413 => 'Le type de la rubrique indiquée est incorrect',
414 => 'Résultat impossible à afficher sur le modèle',
415 => 'Un ou plusieurs enregistrements liés requis ne sont pas disponibles',
500 => 'La date indiquée ne correspond pas aux options d\'entrée définies',
501 => 'L\'heure indiquée ne correspond pas aux options d\'entrée définies',
502 => 'Le numéro indiqué ne correspond pas aux options d\'entrée définies',
503 => 'La valeur de la rubrique n\'est pas comprise dans la fourchette de valeurs définies',
504 => 'La valeur de la rubrique ne correspond pas à la valeur définie dans les options d\'entrée',
505 => 'La valeur de la rubrique ne correspond à aucune donnée existante contenue dans le fichier de base de données des options d\'entrée',
506 => 'La valeur de la rubrique n\'est pas incluse dans la liste des valeurs définies',
507 => 'La valeur de la rubrique n\'est pas conforme aux critères de contrôle de calcul des options d\'entrée',
508 => 'Valeur incorrecte saisie en mode Recherche',
509 => 'La rubrique requiert une valeur correcte',
510 => 'La valeur liée est vide ou non disponible',
511 => 'La valeur de la rubrique dépasse le nombre maximal de caractères autorisés',
600 => 'Une erreur d\'impression s\'est produite',
601 => 'L\'en-tête et le pied de page combinés sont plus longs qu\'une page',
602 => 'Le corps de la page ne tient pas sur une page pour la disposition en colonnes active',
603 => 'Connexion d\'imprimante perdue',
700 => 'Le fichier ne possède pas le bon format d\'importation',
706 => 'Le fichier EPSF est dépourvu d\'images de prévisualisation',
707 => 'Le traducteur graphique est introuvable',
708 => 'Impossible d\'importer le fichier, ou bien un moniteur gérant les couleurs est nécessaire pour effectuer cette opération',
709 => 'L\'importation d\'une séquence QuickTime a échoué',
710 => 'Impossible de mettre à jour la référence du fichier QuickTime car le fichier de base de données est accessible en lecture seule',
711 => 'Le traducteur d\'importation est introuvable',
714 => 'Les autorisations d\'accès associées à votre mot de passe ne vous permettent pas d\'effectuer cette opération',
715 => 'Feuille de calcul ou plage nommée Excel spécifiée manquante',
716 => 'Une requête SQL utilisant les instructions DELETE, INSERT ou UPDATE n\'est pas autorisée dans l\'importation ODBC',
717 => 'Les informations XML/XSL sont insuffisantes pour procéder à l\'importation ou àl\'exportation',
718 => 'Erreur lors de l\'analyse du fichier XML (à partir de Xerces)',
719 => 'Erreur lors de la transformation du fichier XML en fichier XSL (à partir de Xalan)',
720 => 'Erreur lors de l\'exportation ; le format souhaité ne prend pas en charge les rubriques multivaluées',
721 => 'Une erreur inconnue s\'est produite dans l\'analyseur ou le transformateur',
722 => 'Impossible d\'importer des données dans un fichier dépourvu de rubriques',
723 => 'Vous ne disposez pas des droits nécessaires pour ajouter des enregistrements ou les modifier dans la table cible',
724 => 'Vous ne disposez pas des droits nécessaires pour ajouter des enregistrements à la table cible',
725 => 'Vous ne disposez pas des droits nécessaires pour modifier les enregistrements dans la table cible',
726 => 'Le fichier d\'importation contient davantage d\'enregistrements que la table cible. Les enregistrements n\'ont pas tous été importés',
727 => 'La table cible contient davantage d\'enregistrements que le fichier d\'importation. Les enregistrements n\'ont pas tous été mis à jour',
729 => 'Erreur lors de l\'importation. Des enregistrements n\'ont pas été importés',
730 => 'Version d\'Excel non prise en charge. Convertir fichier en Excel 7.0 (Excel 95), Excel 97, 2000 ou au format XP, puis réessayer.',
731 => 'Le fichier servant à l\'importation ne contient aucune donnée',
732 => 'Impossible d\'insérer ce fichier car il contient d\'autres fichiers',
733 => 'Une table ne peut être importée en elle-même',
734 => 'Ce type de fichier n\'a pu être affiché sous la forme d\'une image',
735 => 'Ce type de fichier n\'a pu être affiché sous la forme d\'une image. Il sera inséré et affiché sous forme de fichier',
800 => 'Impossible de créer le fichier sur le disque',
801 => 'Impossible de créer un fichier temporaire sur le disque',
802 => 'Impossible d\'ouvrir le fichier',
803 => 'Le fichier est mono-utilisateur ou bien l\'hôte est introuvable',
804 => 'Le fichier ne peut être ouvert en lecture seule dans son état actuel',
805 => 'Le fichier est endommagé. Utilisez la commande Récupérer.',
806 => 'Le fichier ne peut être ouvert avec cette version de FileMaker Pro',
807 => 'Le fichier n\'est pas un fichier FileMaker Pro ou est sérieusement endommagé',
808 => 'Impossible d\'ouvrir le fichier car les autorisations d\'accès sont endommagées',
809 => 'Le disque/volume est saturé',
810 => 'Le disque/volume est verrouillé',
811 => 'Un fichier temporaire ne peut être ouvert en tant que fichier FileMaker Pro',
813 => 'Erreur de synchronisation d\'enregistrements sur le réseau',
814 => 'Impossible d \'ouvrir le(s) fichier(s), car le nombre maximal de fichiers ouverts est atteint',
815 => 'Impossible d\'ouvrir le fichier de référence externe',
816 => 'Impossible de convertir le fichier',
817 => 'Impossible d\'ouvrir le fichier, car il n\'appartient pas à cette solution',
819 => 'Impossible d\'enregistrer une copie locale d\'un fichier distant',
820 => 'Fichier en cours de fermeture',
821 => 'Déconnexion forcée par l\'hôte',
822 => 'Fichiers FMI introuvables ; réinstallez les fichiers manquants',
823 => 'Impossible de définir le fichier en mode mono-utilisateur, des invités sont connectés',
824 => 'Le fichier est endommagé ou n\'est pas un fichier FileMaker',
900 => 'Erreur générale de vérification orthographique',
901 => 'Le dictionnaire principal n\'est pas installé',
902 => 'Impossible de lancer le système d\'aide',
903 => 'Cette commande ne peut pas être utilisée dans un fichier partagé',
904 => 'Cette commande ne peut être utilisée que dans un fichier se trouvant sur le serveur FileMaker Server',
905 => 'Aucune rubrique active sélectionnée ; la commande ne peut être utilisée que si une rubrique est active',
920 => 'Impossible d\'initialiser le correcteur orthographique',
921 => 'Impossible de charger le dictionnaire de l\'utilisateur pour modification',
922 => 'Dictionnaire de l\'utilisateur introuvable',
923 => 'Dictionnaire de l\'utilisateur en lecture seule',
951 => 'Une erreur inattendue s\'est produite',
954 => 'Grammaire XML non prise en charge',
955 => 'Aucun nom de base de données',
956 => 'Le nombre maximal de sessions de base de données a été dépassé',
957 => 'Commandes en conflit',
958 => 'Paramètre manquant dans la requête',
1200 => 'Erreur de calcul générique',
1201 => 'Paramètres trop peu nombreux dans la fonction',
1202 => 'Paramètres trop nombreux dans la fonction',
1203 => 'Fin de calcul non conforme',
1204 => 'Nombre, chaîne, nom de rubrique ou parenthèse ouvrante',
1205 => 'Commentaire non terminé par "*/"',
1206 => 'La chaîne doit se terminer par un guillemet',
1207 => 'Parenthèses non équilibrées',
1208 => 'Opérateur manquant, fonction introuvable ou parenthèse ouvrante non nécessaire',
1209 => 'Nom (nom de rubrique ou de modèle) manquant',
1210 => 'Fonction module déjà enregistrée',
1211 => 'L\'utilisation de listes n\'est pas autorisée dans cette fonction',
1212 => 'Entrez ici un opérateur (+, -, *,).',
1213 => 'Cette variable a déjà été définie dans la fonction Permettre',
1214 => 'MOYENNE, NOMBRE, MULTIVALUEE, NOMBREVALEURS, MAX, MIN, NPV, ECARTECH, SOMME et RECAPITULATIF : le programme a rencontré une expression requérant une seule rubrique',
1215 => 'Ce paramètre est incorrect pour la fonction Obtenir',
1216 => 'Seules les rubriques Récapitulatif sont autorisées comme premier argument dans RECAPITULATIF',
1217 => 'Rubrique de regroupement incorrecte',
1218 => 'Evaluation du nombre impossible',
1219 => 'Impossible d\'utiliser une rubrique dans sa propre formule',
1220 => 'Le type de la rubrique doit être de type normal ou calculé',
1221 => 'Le type de données doit être un nombre, une date, une heure ou un horodatage',
1222 => 'Impossible d\'enregistrer le calcul',
1223 => 'La fonction à laquelle il est fait référence n\'existe pas',
1400 => 'L\'initialisation du pilote ODBC a échoué ; assurez-vous que les pilotes ODBC sont correctement installés. Remarque Le module de partage des données via ODBC s\'installe automatiquement avec FileMaker Server ; les pilotes clients ODBC s\'installent à l\'aide du CD-ROM de la Publication Web de FileMaker Server. Pour plus d\'informations, consultez la rubrique Installation des pilotes FileMaker sur les clients ODBC et JDBC.',
1401 => 'Echec de l\'allocation d\'environnement (ODBC)',
1402 => 'Echec de la libération d\'environnement (ODBC)',
1403 => 'Echec de la déconnexion (ODBC)',
1404 => 'Echec de l\'allocation de connexion (ODBC)',
1405 => 'Echec de la libération de connexion (ODBC)',
1406 => 'Echec de la vérification de SQL API (ODBC)',
1407 => 'Echec de l\'allocation d\'instruction (ODBC)',
1408 => 'Erreur étendue (ODBC)',
1450 => 'L\'action nécessite une extension des privilèges PHP',
1451 => 'L\'action nécessite que le fichier en cours soit situé à distance',
1501 => 'Echec de l\'authentification SMTP',
1502 => 'Connexion refusée par le serveur SMTP',
1503 => 'Erreur avec SSL',
1504 => 'Le serveur SMTP requiert le cryptage de la connexion.',
1505 => 'L\'authentification spécifiée n\'est pas prise en charge par le serveur SMTP',
1506 => 'L\'envoi du ou des courriers électroniques a échoué',
1507 => 'Impossible de se connecter au serveur SMTP'
);
+220
View File
@@ -0,0 +1,220 @@
<?php
/**
* FileMaker error codes - Italian translations.
*
* @package FileMaker
*
* Copyright © 2005-2009, 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.
*/
$__FM_ERRORS = array(
-1 => 'Errore sconosciuto',
0 => 'Nessun errore',
1 => 'Azione annullata dall\'utente',
2 => 'Errore di memoria',
3 => 'Comando non disponibile (ad esempio, sistema operativo non appropriato, modo errato e così via)',
4 => 'Comando sconosciuto',
5 => 'Comando non valido (ad esempio, un\'istruzione di script Definisci il campo (Set Field) priva di calcolo)',
6 => 'File di sola lettura',
7 => 'Memoria esaurita',
8 => 'Risultato vuoto',
9 => 'Privilegi insufficienti',
10 => 'Dati richiesti non disponibili',
11 => 'Nome non valido',
12 => 'Il nome esiste già',
13 => 'File o oggetto in uso',
14 => 'Fuori intervallo',
15 => 'Impossibile dividere per zero',
16 => 'Operazione non riuscita, nuovo tentativo richiesta (ad esempio una query dell\'utente)',
17 => 'Tentativo di convertire il set di caratteri stranieri in UTF-16 non riuscito',
18 => 'Il client deve fornire le informazioni sull\'account per procedere',
19 => 'La stringa contiene caratteri diversi da A-Z, a-z, 0-9 (ASCII)',
20 => 'Comando o operazione annullata dallo script attivato',
100 => 'Manca un file',
101 => 'Manca un record',
102 => 'Manca un campo',
103 => 'Manca una relazione',
104 => 'Manca uno script',
105 => 'Manca un formato',
106 => 'Manca una tabella',
107 => 'Manca un indice',
108 => 'Manca una lista valori',
109 => 'Manca un set di privilegi',
110 => 'Mancano tabelle correlate',
111 => 'Ripetizione campo non valida',
112 => 'Manca una finestra',
113 => 'Manca una funzione',
114 => 'Manca un riferimento al file',
130 => 'File danneggiati o non presenti; reinstallarli',
131 => 'Impossibile trovare i file del supporto per la lingua (come i file modello)',
200 => 'Accesso al record negato',
201 => 'Impossibile modificare il campo',
202 => 'Accesso al campo negato',
203 => 'Nel file non c\'è nessun record da stampare o la password non consente l\'accesso alla stampa',
204 => 'Nessun accesso ai campi nei criteri di ordinamento',
205 => 'L\'utente non dispone dei privilegi di accesso per creare nuovi record; l\'importazione sovrascriverà i dati esistenti',
206 => 'L\'utente non dispone del privilegio per cambiare la password o il file non è modificabile',
207 => 'L\'utente non ha privilegi sufficienti per cambiare lo schema del database, oppure il file non è modificabile',
208 => 'La password non contiene abbastanza caratteri',
209 => 'La nuova password deve essere diversa da quella esistente',
210 => 'L\'account utente è inattivo',
211 => 'La password è scaduta',
212 => 'Nome utente e/o password non validi. Riprovare',
213 => 'Il nome utente e/o la password non esistono',
214 => 'Troppi tentativi di accesso',
215 => 'I privilegi di amministratore non possono essere duplicati',
216 => 'L\'account Ospite non può essere duplicato',
217 => 'L\'utente non dispone di privilegi sufficienti per modificare l\'account Admin',
300 => 'File bloccato o in uso',
301 => 'Record usato da un altro utente',
302 => 'Tabella usata da un altro utente',
303 => 'Schema database usato da un altro utente',
304 => 'Formato usato da un altro utente',
306 => 'ID modifica del record non corrispondente',
400 => 'Criteri di ricerca vuoti',
401 => 'Nessun record soddisfa la richiesta',
402 => 'Il campo selezionato non è un campo di confronto per un riferimento',
403 => 'Limite massimo di record per la versione di prova di FileMaker Pro superato',
404 => 'Criterio di ordinamento non valido',
405 => 'Il numero di record specificato supera il numero di record che possono essere omessi',
406 => 'Criteri di sostituzione/riserializzazione non validi',
407 => 'Manca uno o entrambi i campi di confronto (relazione non valida)',
408 => 'Tipo di dati associato al campo specificato non valido per questa operazione',
409 => 'Ordine di importazione non valido',
410 => 'Ordine di esportazione non valido',
412 => 'Per recuperare il file è stata usata una versione errata di FileMaker Pro',
413 => 'Tipo di campo non valido',
414 => 'Il formato non può visualizzare il risultato',
415 => 'Uno o più record correlati richiesti non sono disponibili',
500 => 'Il valore della data non soddisfa le opzioni di verifica',
501 => 'Il valore dell\'ora non soddisfa le opzioni di verifica',
502 => 'Il valore del numero non soddisfa le opzioni di verifica',
503 => 'Il valore nel campo non è compreso nell\'intervallo specificato nelle opzioni di verifica',
504 => 'Il valore del campo non è univoco come richiesto dalle opzioni di verifica',
505 => 'Il valore del campo non esiste nel file di database come richiesto dalle opzioni di verifica',
506 => 'Il valore nel campo non è elencato nella lista di valori specificata nelle opzioni di verifica',
507 => 'Il valore nel campo non ha superato il test del calcolo dell\'opzione di verifica',
508 => 'Valore non valido immesso in modo Trova',
509 => 'Il campo richiede un valore valido',
510 => 'Valore correlato vuoto o non disponibile',
511 => 'Il valore immesso nel campo supera il numero massimo di caratteri consentiti',
600 => 'Errore di stampa',
601 => 'La combinazione di intestazione e piè di pagina supera una pagina',
602 => 'Il corpo non rientra in una pagina per l\'impostazione della colonna corrente',
603 => 'Connessione di stampa interrotta',
700 => 'Tipo di file errato per l\'importazione',
706 => 'File EPSF privo di immagine di anteprima',
707 => 'Impossibile trovare traduttore per immagini',
708 => 'Impossibile importare il file. È necessario un computer a colori',
709 => 'Non è riuscita l\'importazione del filmato QuickTime',
710 => 'Impossibile aggiornare il riferimento al file QuickTime. Il file di database è di sola lettura.',
711 => 'Impossibile trovare il traduttore per l\'importazione',
714 => 'Operazione non consentita dai privilegi della password',
715 => 'È stato specificato un foglio di lavoro di Excel o un intervallo con nome mancante',
716 => 'Una query SQL che impiega istruzioni DELETE, INSERT o UPDATE non è consentita per l\'importazione ODBC',
717 => 'Informazioni XML/XSL insufficienti per procedere con l\'importazione o l\'esportazione',
718 => 'Errore di analisi del file XML (da Xerces)',
719 => 'Errore di conversione XML usando XSL (da Xalan)',
720 => 'Errore durante l\'esportazione; il formato desiderato non supporta i campi multipli',
721 => 'Errore sconosciuto nel parser o nel convertitore',
722 => 'Impossibile importare dati in un file che non ha campi',
723 => 'Non si dispone dell\'autorizzazione per aggiungere o modificare record nella tabella di destinazione',
724 => 'Non si dispone dell\'autorizzazione per aggiungere record alla tabella di destinazione',
725 => 'Non si dispone dell\'autorizzazione per modificare record nella tabella di destinazione',
726 => 'Vi sono più record nel file di importazione che nella tabella di destinazione. Non tutti i record sono stati importati',
727 => 'Vi sono più record nella tabella di destinazione che nel file di importazione. Non tutti i record sono stati aggiornati',
729 => 'Errori durante l\'importazione. Impossibile importare i record',
730 => 'Versione Excel non supportata. Convertire il file in formato Excel 7.0 (Excel 95), 97, 2000, XP o 2007 e riprovare.',
731 => 'Il file da importare non contiene dati',
732 => 'Questo file non può essere inserito perché contiene altri file',
733 => 'Una tabella non può essere importata in se stessa',
734 => 'I file di questo tipo non possono essere visualizzati come immagine',
735 => 'I file di questo tipo non possono essere visualizzati come immagine. Verranno inseriti e visualizzati come file',
800 => 'Impossibile creare il file su disco',
801 => 'Impossibile creare il file temporaneo sul disco di sistema',
802 => 'Impossibile aprire il file',
803 => 'Il file è per un singolo utente oppure non è stato possibile trovare l\'host',
804 => 'Impossibile aprire il file.',
805 => 'Usare il comando Recupera',
806 => 'Impossibile aprire il file con questa versione di FileMaker Pro',
807 => 'Il file non è un file FileMaker Pro oppure è gravemente danneggiato',
808 => 'Impossibile aprire il file. I privilegi di accesso sono danneggiati',
809 => 'Il disco o il volume è pieno',
810 => 'Il disco o il volume è protetto',
811 => 'Impossibile aprire il file temporaneo come file di FileMaker Pro',
813 => 'Errore di sincronizzazione del record in rete',
814 => 'Impossibile aprire i file. È già aperto il numero massimo',
815 => 'Impossibile aprire il file di riferimento',
816 => 'Impossibile convertire il file',
817 => 'Impossibile aprire il file poiché non fa parte di questa soluzione',
819 => 'Impossibile salvare una copia locale di un file remoto',
820 => 'File in fase di chiusura',
821 => 'L\'host ha forzato una disconnessione',
822 => 'File FMI non trovati; reinstallare i file non presenti',
823 => 'Impossibile impostare il file su utente singolo; alcuni ospiti sono connessi',
824 => 'Il file è danneggiato o non è un file FileMaker',
900 => 'Errore generico del modulo di gestione del controllo ortografico',
901 => 'Dizionario principale non installato',
902 => 'Impossibile avviare la Guida',
903 => 'Impossibile usare il comando in un file condiviso',
904 => 'Il comando può essere usato solo in un file che si trova in FileMaker Server',
905 => 'Non è selezionato nessun campo attivo; il comando può essere usato solo se un campo è attivo',
920 => 'Impossibile inizializzare il modulo di gestione del controllo ortografico',
921 => 'Impossibile caricare il dizionario utente per la modifica',
922 => 'Impossibile trovare il dizionario utente',
923 => 'Il dizionario utente è di sola lettura',
951 => 'Errore imprevisto',
954 => 'Grammatica XML non supportata',
955 => 'Nessun nome per il database',
956 => 'È stato superato il numero massimo di sessioni del database',
957 => 'Conflitto tra i comandi',
958 => 'Parametro mancante nella query',
1200 => 'Errore di calcolo generico',
1201 => 'Troppi pochi parametri nella funzione',
1202 => 'Troppi parametri nella funzione',
1203 => 'Fine calcolo non previsto',
1204 => 'Sono previsti un numero, una costante di testo, un nome di campo o una "("',
1205 => 'Il commento non termina con "*/"',
1206 => 'La costante di testo deve terminare con un punto interrogativo',
1207 => 'Parentesi mancante',
1208 => 'Operatore mancante, funzione non trovata o "(" non prevista',
1209 => 'Nome (come fieldname o nome formato) mancante',
1210 => 'La funzione del plug-in è già stata registrata',
1211 => 'Utilizzo della lista valori non consentito in questa funzione',
1212 => 'Qui è previsto un operatore (ad esempio, +, -, *)',
1213 => 'Questa variabile è già stata definita nella funzione Consenti',
1214 => 'MEDIO, CONTEGGIO, ESTENSO, RICAVARIPETIZIONI, MAX, MIN, VPN, DEVST, SOMMA e RICAVARIASSUNTO: espressione trovata dove è necessario un campo solo',
1215 => 'Questo parametro è un parametro non valido per la funzione Get',
1216 => 'Solo i campi Riassunto sono consentiti come primo argomento in RICAVARIASSUNTO',
1217 => 'Il campo di separazione non è valido',
1218 => 'Impossibile valutare il numero',
1219 => 'Non è possibile usare un campo nella propria formula',
1220 => 'Il campo deve essere di tipo normale o Calcolo',
1221 => 'I dati devono essere di tipo Numero, Data, Ora o Indicatore data e ora',
1222 => 'Impossibile memorizzare il calcolo',
1223 => 'La funzione a cui si fa riferimento non esiste',
1400 => 'Errore nell\'inizializzazione del driver client ODBC; assicurarsi che i driver ODBC siano installati correttamente. Nota Il componente plug-in per la condivisione dei dati attraverso ODBC è installato automaticamente con FileMaker Server; i driver client ODBC sono installati utilizzando il CD Pubblicazione sul Web di FileMaker Server. Per informazioni, vedere Installazione dei driver client ODBC e JDBC FileMaker.',
1401 => 'Allocazione ambiente fallita (ODBC)',
1402 => 'Impossibile liberare l\'ambiente (ODBC)',
1403 => 'Impossibile disconnettersi (ODBC)',
1404 => 'Impossibile allocare la connessione (ODBC)',
1405 => 'Impossibile liberare la connessione ( ODBC)',
1406 => 'Controllo SQL API (ODBC) fallito',
1407 => 'Impossibile allocare l\'istruzione (ODBC)',
1408 => 'Errore esteso (ODBC)',
1450 => 'L\'azione richiede un\'estensione dei privilegi PHP',
1451 => 'L\'azione richiede che il file corrente sia remoto',
1501 => 'Errore autenticazione SMTP',
1502 => 'Connessione rifiutata da server SMTP',
1503 => 'Errore SSL',
1504 => 'Il Server SMTP richiede che la connessione sia crittografata',
1505 => 'Autenticazione specificata non supportata dal server SMTP',
1506 => 'Impossibile inviare messaggio/i e-mail',
1507 => 'Impossibile accedere al server SMTP'
);
+220
View File
@@ -0,0 +1,220 @@
<?php
/**
* FileMaker error codes - Japanese translations.
*
* @package FileMaker
*
* Copyright © 2005-2009, 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.
*/
$__FM_ERRORS = array(
-1 => '原因不明のエラー',
0 => 'エラーなし',
1 => 'ユーザによるキャンセル',
2 => 'メモリエラー',
3 => 'コマンドが使用できません(たとえば誤ったオペレーティングシステム、誤ったモードなど)',
4 => 'コマンドが見つかりません',
5 => 'コマンドが無効です(たとえば、[フィールド設定] スクリプトステップに計算式が指定されていない場合など)',
6 => 'ファイルが読み取り専用です',
7 => 'メモリ不足',
8 => '空白の結果',
9 => 'アクセス権が不十分です',
10 => '要求されたデータが見つかりません',
11 => '名前が有効ではありません',
12 => '名前がすでに存在します',
13 => 'ファイルまたはオブジェクトが使用中です',
14 => '範囲外',
15 => '0で割ることができません',
16 => '処理に失敗したため、再試行が必要です(たとえば、ユーザクエリーなど)',
17 => '外国語の文字セットの UTF-16 への変換に失敗しました',
18 => '続行するには、クライアントはアカウント情報を指定する必要があります',
19 => '文字列に A から Z、a から z、0 から 9(ASCII)以外の文字が含まれています',
20 => 'コマンドまたは操作がスクリプトトリガによってキャンセルされました',
100 => 'ファイルが見つかりません',
101 => 'レコードが見つかりません',
102 => 'フィールドが見つかりません',
103 => 'リレーションシップが見つかりません',
104 => 'スクリプトが見つかりません',
105 => 'レイアウトが見つかりません',
106 => 'テーブルが見つかりません',
107 => '索引が見つかりません',
108 => '値一覧が見つかりません',
109 => 'アクセス権セットが見つかりません',
110 => '関連テーブルが見つかりません',
111 => 'フィールドの繰り返しが無効です',
112 => 'ウインドウが見つかりません',
113 => '関数が見つかりません',
114 => 'ファイル参照が見つかりません',
130 => 'ファイルが損傷しているか見つからないため、再インストールする必要があります',
131 => '言語パックファイルが見つかりません(テンプレートなど)',
200 => 'レコードアクセスが拒否されました',
201 => 'フィールドを変更できません',
202 => 'フィールドアクセスが拒否されました',
203 => 'ファイルに印刷するレコードがないか、入力したパスワードでは印刷できません',
204 => 'ソート優先順位に指定されたフィールドにアクセスできません',
205 => 'ユーザに新規レコードを作成するアクセス権がありません。既存のデータはインポートしたデータで上書きされます',
206 => 'ユーザにパスワードの変更アクセス権がないか、変更可能なファイルではありません',
207 => 'ユーザにデータベーススキーマを変更する十分なアクセス権がないか、変更可能なファイルではありません',
208 => 'パスワードに十分な文字が含まれていません',
209 => '既存のパスワードと新規パスワードを同一にすることはできません',
210 => 'ユーザアカウントが非アクティブです',
211 => 'パスワードが期限切れです',
212 => 'ユーザアカウントまたはパスワードが無効です。再試行してください',
213 => 'ユーザアカウントまたはパスワードが存在しません',
214 => 'ログイン試行回数が多すぎます',
215 => '管理者権限は複製できません',
216 => 'ゲストアカウントは複製できません',
217 => 'ユーザに管理者アカウントを変更する十分なアクセス権がありません',
300 => 'ファイルがロックされているか、使用中です',
301 => '別のユーザがレコードを使用中です',
302 => '別のユーザがテーブルを使用中です',
303 => '別のユーザがデータベーススキーマを使用中です',
304 => '別のユーザがレイアウトを使用中です',
306 => 'レコード修正 ID が一致しません',
400 => '検索条件が空です',
401 => '検索条件に一致するレコードがありません',
402 => '選択したフィールドはルックアップの照合フィールドではありません',
403 => '評価版の FileMaker Pro に設定されている最大レコード数の制限を超過しています',
404 => 'ソート優先順位が無効です',
405 => '指定したレコード数が除外可能なレコード数を超過しています',
406 => '全置換またはシリアル番号の再入力に指定された条件が無効です',
407 => '片方または両方の照合フィールドが欠けています(無効なリレーションシップ)',
408 => '指定されたフィールドのデータが不適切なため、この処理を実行できません',
409 => 'インポート順が無効です',
410 => 'エクスポート順が無効です',
412 => 'ファイルの修復に、誤ったバージョンの FileMaker Pro が使用されました',
413 => '指定されたフィールドのフィールドタイプが不適切です',
414 => 'レイアウトに結果を表示できません',
415 => '必要な1つまたは複数の関連テーブルが使用できません',
500 => '日付の値が入力値の制限を満たしていません',
501 => '時刻の値が入力値の制限を満たしていません',
502 => '数字の値が入力値の制限を満たしていません',
503 => 'フィールドの値が入力値の制限オプションに指定されている範囲内に入っていません',
504 => 'フィールドの値が入力値の制限オプションで要求されているようにユニークな値になっていません',
505 => 'フィールドの値が入力値の制限オプションで要求されているようにデータベースファイル内の既存値になっていません',
506 => 'フィールドの値が入力値の制限オプションに指定されている値一覧に含まれていません',
507 => 'フィールドの値が入力値の制限オプションに指定されている計算式を満たしません',
508 => '検索モードに無効な値が入力されました',
509 => 'フィールドに有効な値が必要です',
510 => '関連する値が空であるか、使用できません',
511 => 'フィールド内の値が最大文字数を超過しました',
600 => '印刷エラーが発生しました',
601 => 'ヘッダとフッタの高さを加算するとページの高さを超えます',
602 => '現在の段数設定ではボディ部分がページ内に収まりません',
603 => '印刷接続が遮断されました',
700 => 'インポートできないファイルタイプです',
706 => 'EPSF ファイルにプレビューイメージがありません',
707 => 'グラフィックの変換ファイルが見つかりません',
708 => 'ファイルをインポートできないか、ファイルをインポートするにはカラーのコンピュータが必要です',
709 => 'QuickTime ムービーのインポートに失敗しました',
710 => 'データベースファイルが読み取り専用になっているため QuickTime ファイルの参照を更新できません',
711 => 'インポートの変換ファイルが見つかりません',
714 => '入力したパスワードでは設定されている権限が不足しているためこの操作は認められていません',
715 => '指定された Excel ワークシートまたは名前の付いた範囲がありません',
716 => 'ODBC インポートでは、DELETE、INSERT、または UPDATE を使用する SQL クエリーは使用できません',
717 => 'インポートまたはエクスポートを続行するための十分な XML/XSLT 情報がありません',
718 => 'Xerces からの)XML ファイルの解析エラーです',
719 => 'Xalan からの)XSL を使用したXML 変換エラーです',
720 => 'エクスポート時のエラー。対象のドキュメントフォーマットでは繰り返しフィールドはサポートされていません',
721 => 'パーサまたはトランスフォーマで原因不明のエラーが発生しました',
722 => 'フィールドのないファイルにデータをインポートすることはできません',
723 => 'インポート先のテーブルでレコードを追加または変更する権限がありません',
724 => 'インポート先のテーブルにレコードを追加する権限がありません',
725 => 'インポート先のテーブルでレコードを変更する権限がありません',
726 => 'インポートファイルのレコードの方がインポート先のテーブルのレコードよりも多くなっています。一部のレコードはインポートされません',
727 => 'インポート先のテーブルのレコードの方がインポートファイルのレコードよりも多くなっています。一部のレコードは更新されません',
729 => 'インポート中にエラーが発生しました。レコードをインポートすることができません',
730 => 'サポートされていない Excel バージョンです。ファイルを Excel 7.0 (Excel 95)、97、2000、XP または 2007 に変換してから再試行してください',
731 => 'インポート元のファイルにデータが含まれていません',
732 => 'このファイルには内部に他のファイルが含まれているため、挿入できません',
733 => 'テーブルをテーブル自体にインポートすることはできません',
734 => 'このファイルタイプをピクチャとして表示することはできません',
735 => 'このファイルタイプをピクチャとして表示することはできません。ファイルとして挿入および表示されます',
800 => 'ファイルをディスク上に作成できません',
801 => 'システムディスクにテンポラリファイルを作成できません',
802 => 'ファイルを開くことができません',
803 => 'ファイルが単独使用に設定されているか、またはホストが見つかりません',
804 => 'ファイルは現在の状態では読み取り専用として開くことができません',
805 => 'ファイルが損傷しています。修復コマンドを使用してください',
806 => 'このバージョンの FileMaker Pro ではファイルを開くことができません',
807 => 'ファイルが FileMaker Pro のファイルではないか、重大な損傷があります',
808 => 'アクセス権情報が壊れているため、ファイルを開くことができません',
809 => 'ディスク/ボリュームがいっぱいです',
810 => 'ディスク/ボリュームがロックされています',
811 => 'テンポラリファイルを FileMaker Pro ファイルとして開くことができません',
813 => 'ネットワーク上でレコードの同期エラーが発生しました',
814 => '最大数のファイルがすでに開いているため、ファイルを開くことができません',
815 => 'ルックアップファイルを開くことができません',
816 => 'ファイルを変換できません',
817 => 'このソリューションに属していないため、ファイルを開くことができません',
819 => 'リモートファイルのローカルコピーを保存できません',
820 => 'ファイルを閉じる途中です',
821 => 'ホストによって接続解除されました',
822 => 'FMI ファイルが見つかりません。見つからないファイルを再インストールしてください',
823 => 'ファイルをシングルユーザに設定できません。ゲストが接続しています',
824 => 'ファイルが損傷しているか、FileMaker のファイルではありません',
900 => 'スペルチェックのエンジンにエラーが発生しています',
901 => 'スペルチェック用のメイン辞書がインストールされていません',
902 => 'ヘルプシステムを起動できませんでした',
903 => '共有ファイルではコマンドを使用できません',
904 => 'コマンドは、FileMaker Server がホスト管理しているファイル内でのみ使用できます',
905 => 'アクティブなフィールドが選択されていません。アクティブなフィールドが存在する場合のみコマンドを使用することができます',
920 => 'スペルチェックエンジンを初期化できません',
921 => '編集するユーザ辞書をロードできません',
922 => 'ユーザ辞書が見つかりません',
923 => 'ユーザ辞書が読み取り専用です',
951 => '予期しないエラーが発生しました',
954 => 'サポートされていない XML 文法です',
955 => 'データベース名がありません',
956 => 'データベースセッションが最大数を超過しました',
957 => 'コマンドが競合しています',
958 => 'クエリーに引数がありません',
1200 => '一般的な計算エラーです',
1201 => '関数の引数が足りません',
1202 => '関数の引数が多すぎます',
1203 => '計算式が未完了です',
1204 => '数字、テキスト、フィールド名、または「(」を入れてください',
1205 => 'コメントは「*/」で終了できません',
1206 => 'テキストは半角のダブルクォーテーションマークで終わらなければなりません',
1207 => 'カッコが一致していません',
1208 => '演算子または関数が見つからないか、「(」は指定できません',
1209 => '名前(フィールド名またはレイアウト名)が見つかりません',
1210 => 'プラグイン関数はすでに登録されています',
1211 => 'この関数では一覧を使用できません',
1212 => '演算子(+、-、* など)を入れてください',
1213 => 'この変数はすでに Let 関数で定義されています',
1214 => 'AVERAGE、COUNT、EXTEND、GETREPETITION、MAX、MIN、NPV、STDEV、SUM、および GETSUMMARY 関数で、フィールドの値を指定できない部分に式が使われています',
1215 => 'この引数は Get 関数の無効な引数です',
1216 => 'GetSummary 関数の1番目の引数は、集計フィールドのみに限られます',
1217 => '区分けフィールドが無効です',
1218 => '数字を評価できません',
1219 => 'フィールド固有の式にフィールドは使用できません',
1220 => 'フィールドタイプは標準にするか、計算する必要があります',
1221 => 'データタイプは数字、日付、時刻、またはタイムスタンプでなければなりません',
1222 => '計算式を保存できません',
1223 => '指定された関数は存在しません',
1400 => 'ODBC クライアントドライバの初期化に失敗しました。ODBC クライアントドライバが適切にインストールされていることを確認してください。 注意 ODBC 経由でデータを共有するプラグインコンポーネントは、FileMaker Server によって自動的にインストールされます。ODBC クライアントドライバは、FileMaker Server Web Publishing CD を使用してインストールされます。詳細については、『FileMaker ODBC および JDBC クライアントドライバのインストール』を参照してください。',
1401 => '環境の割り当てに失敗しました(ODBC)',
1402 => '環境の解放に失敗しました(ODBC)',
1403 => '切断に失敗しました(ODBC',
1404 => '接続の割り当てに失敗しました(ODBC)',
1405 => '接続の解放に失敗しました(ODBC)',
1406 => 'SQL API のチェックに失敗しました(ODBC)',
1407 => 'ステートメントの割り当てに失敗しました(ODBC)',
1408 => '拡張エラー(ODBC',
1450 => 'PHP アクセス権を拡張する操作が必要です',
1451 => '現在のファイルをリモートにする操作が必要です',
1501 => 'SMTP の認証に失敗しました',
1502 => 'SMTP サーバーによって接続が拒否されました',
1503 => 'SSL でエラーが発生しました',
1504 => 'SMTP サーバーの接続を暗号化する必要があります',
1505 => '指定された認証方法は SMTP サーバーではサポートされていません',
1506 => 'E メールは正常に送信されませんでした',
1507 => 'SMTP サーバーにログインできませんでした'
);
Binary file not shown.
+268
View File
@@ -0,0 +1,268 @@
<?php
/**
* FileMaker API for PHP
*
* @package FileMaker
*
* Copyright © 2005-2009, 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 Load delegate.
*/
require_once dirname(__FILE__) . '/Implementation/FieldImpl.php';
/**#@-*/
/**
* Field description class. Contains all the information about a
* specific field on a layout.
*
* @package FileMaker
*/
class FileMaker_Field
{
/**
* Implementation. This is the object that actually implements the
* layout functionality.
*
* @var FileMaker_Layout_Implementation
* @access private
*/
var $_impl;
/**
* Field object constructor.
*
* @param FileMaker_Layout &$layout Parent Layout object.
*/
function FileMaker_Field(&$layout)
{
$this->_impl = new FileMaker_Field_Implementation($layout);
}
/**
* Returns the name of this field.
*
* @return string Field name.
*/
function getName()
{
return $this->_impl->getName();
}
/**
* Returns the FileMaker_Layout object that contains this field.
*
* @return FileMaker_Layout Layout object.
*/
function &getLayout()
{
return $layout =& $this->_impl->getLayout();
}
/**
* Returns TRUE if data in this field is auto-entered or FALSE
* if it is entered manually.
*
* @return boolean Auto-entered status of this field.
*/
function isAutoEntered()
{
return $this->_impl->isAutoEntered();
}
/**
* Returns TRUE if this field is global or FALSE if it is not.
*
* @return boolean Global status of this field.
*/
function isGlobal()
{
return $this->_impl->isGlobal();
}
/**
* Returns the maximum number of repetitions for this field.
*
* @return integer Maximum repetitions of this field.
*/
function getRepetitionCount()
{
return $this->_impl->getRepetitionCount();
}
/**
* Returns TRUE if $value is valid for this field, or a
* FileMaker_Error_Validation object describing how pre-validation
* failed.
*
* @param mixed $value Value to pre-validate.
* @param FileMaker_Error_Validation $error If pre-validation is being
* done on more than one field, you may pass validate() an existing
* error object to add pre-validation failures to.$error is not
* passed by reference, though, so you must catch the return value
* of validate() and use it as the new $error object. This method
* never overwrites an existing $error object with boolean TRUE.
*
* @return boolean|FileMaker_Error_Validation Result of field
* pre-validation on $value.
*/
function validate($value, $error = null)
{
return $this->_impl->validate($value, $error);
}
/**
* Returns an array of FILEMAKER_RULE_* constants for each rule
* set on this field that can be evaluated by the PHP engine.
*
* Rules such as "unique" and "exists" can only be pre-validated on the
* Database Server and are not included in this list.
*
* @return array Local rule array.
*/
function getLocalValidationRules()
{
return $this->_impl->getLocalValidationRules();
}
/**
* Returns an array of FILEMAKER_RULE_* constants for each rule
* set on this field.
*
* @return array Rule array.
*/
function getValidationRules()
{
return $this->_impl->getValidationRules();
}
/**
* Returns the full additive bitmask of pre-validation rules for this
* field.
*
* @return integer Rule bitmask.
*/
function getValidationMask()
{
return $this->_impl->getValidationMask();
}
/**
* Returns TRUE if the specified FILEMAKER_RULE_* constant matches the
* field's pre-validation bitmask. Otherwise, returns FALSE.
*
* @param integer $validationRule Pre-validation rule constant to test.
*
* @return boolean
*/
function hasValidationRule($validationRule)
{
return $this->_impl->hasValidationRule($validationRule);
}
/**
* Returns any additional information for the specified pre-validation
* rule.
*
* Used for range rules and other rules that have additional
* pre-validation parameters.
*
* @param integer $validationRule FILEMAKER_RULE_* constant
* to get information for.
*
* @return array Any extra information for $validationRule.
*/
function describeValidationRule($validationRule)
{
return $this->_impl->describeValidationRule($validationRule);
}
/**
* Return an array of arrays containing the extra information for
* all pre-validation rules on this field that can be evaluated by the
* PHP engine.
*
* Rules such as "unique" and "exists" can be validated only
* on the Database Server and are not included in this list.
* Indexes of the outer array are FILEMAKER_RULE_* constants,
* and values are the same array returned by describeValidationRule().
*
* @return array An associative array of all extra pre-validation
* information, with rule constants as indexes and extra
* information as the values.
*/
function describeLocalValidationRules()
{
return $this->_impl->describeLocalValidationRules();
}
/**
* Returns any additional information for all pre-validation rules.
*
* @return array An associative array of all extra pre-validation
* information, with FILEMAKER_RULE_* constants
* as keys and extra information as the values.
*/
function describeValidationRules()
{
return $this->_impl->describeValidationRules();
}
/**
* Returns the result type of this field -- for example, 'text',
* 'number', 'date', 'time', 'timestamp', or 'container'.
*
* @return string Result type.
*/
function getResult()
{
return $this->_impl->getResult();
}
/**
* Returns the type of this field -- for example, 'normal',
* 'calculation', or 'summary'.
*
* @return string Type.
*/
function getType()
{
return $this->_impl->getType();
}
/**
* Returns the list of choices from the value list associated with this
* field.
*
* If this field is not associated with a value list, this method returns
* NULL.
*
* @param string $recid Record from which to display the value list.
*
* @return array Value list array.
*/
function getValueList($recid = null)
{
return $this->_impl->getValueList($recid);
}
/**
* Returns the control style type of this field -- for example,
* 'EDITTEXT', 'POPUPLIST', 'POPUPMENU', 'CHECKBOX', 'RADIOBUTTONS' or
* 'CALENDAR'.
*
* @return string Style type.
*/
function getStyleType()
{
return $this->_impl->getStyleType();
}
}
+470
View File
@@ -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);
}
}
@@ -0,0 +1,81 @@
<?php
require_once dirname(__FILE__) . '/../CommandImpl.php';
class FileMaker_Command_Add_Implementation extends FileMaker_Command_Implementation
{
var $_fields = array();
function FileMaker_Command_Add_Implementation($V0ab34ca9, $Vc6140495, $Vf09cc7ee = array())
{
FileMaker_Command_Implementation::FileMaker_Command_Implementation($V0ab34ca9, $Vc6140495);
foreach ($Vf09cc7ee as $V06e3d36f => $V2063c160) {
if (!is_array($V2063c160)) {
$V2063c160 = array($V2063c160);
}
$this->_fields[$V06e3d36f] = $V2063c160;
}
}
function &execute()
{
if ($this->_fm->getProperty('prevalidate')) {
$V9f7d0ee8 = $this->validate();
if (FileMaker::isError($V9f7d0ee8)) {
return $V9f7d0ee8;
}
}
$Vc6140495 =& $this->_fm->getLayout($this->_layout);
if (FileMaker::isError($Vc6140495)) {
return $Vc6140495;
}
$V21ffce5b = $this->_getCommandParams();
$V21ffce5b['-new'] = true;
foreach ($this->_fields as $V972bf3f0 => $Vee0525e4) {
if (strpos($V972bf3f0, '.') !== false) {
list($Vb068931c, $V11e868ac) = explode('.', $V972bf3f0, 2);
$V11e868ac = '.' . $V11e868ac;
} else {
$Vb068931c = $V972bf3f0;
$V06e3d36f = $Vc6140495->getField($V972bf3f0);
if (FileMaker::isError($V06e3d36f)) {
return $V06e3d36f;
}
if ($V06e3d36f->isGlobal()) {
$V11e868ac = '.global';
} else {
$V11e868ac = '';
}
}
foreach ($Vee0525e4 as $V6a992d55 => $V3a6d0284) {
$V21ffce5b[$Vb068931c . '(' . ($V6a992d55 + 1) . ')' . $V11e868ac] = $V3a6d0284;
}
}
$V0f635d0e = $this->_fm->_execute($V21ffce5b);
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
return $this->_getResult($V0f635d0e);
}
function setField($V06e3d36f, $V2063c160, $V6d786dc7 = 0)
{
$this->_fields[$V06e3d36f][$V6d786dc7] = $V2063c160;
return $V2063c160;
}
function setFieldFromTimestamp($V972bf3f0, $Vd7e6d55b, $V6d786dc7 = 0)
{
$Vc6140495 =& $this->_fm->getLayout($this->_layout);
if (FileMaker::isError($Vc6140495)) {
return $Vc6140495;
}
$V06e3d36f = $Vc6140495->getField($V972bf3f0);
if (FileMaker::isError($V06e3d36f)) {
return $V06e3d36f;
}
switch ($V06e3d36f->getResult()) {
case 'date':
return $this->setField($V972bf3f0, date('m/d/Y', $Vd7e6d55b), $V6d786dc7);
case 'time':
return $this->setField($V972bf3f0, date('H:i:s', $Vd7e6d55b), $V6d786dc7);
case 'timestamp':
return $this->setField($V972bf3f0, date('m/d/Y H:i:s', $Vd7e6d55b), $V6d786dc7);
}
return new FileMaker_Error($this->_fm, 'Only time, date, and timestamp fields can be set to the value of a timestamp.');
}
}
@@ -0,0 +1,133 @@
<?php
require_once dirname(__FILE__) . '/../CommandImpl.php';
class FileMaker_Command_CompoundFind_Implementation extends FileMaker_Command_Implementation
{
var $_findCriteria = array();
var $Vd65662c5 = array();
var $Va9136a07 = array();
var $V83f28691;
var $V85fd701e;
var $V6da136ea;
var $V568aa2ec;
var $Vad2bfd5a = array();
function FileMaker_Command_CompoundFind_Implementation($V0ab34ca9, $Vc6140495)
{
FileMaker_Command_Implementation::FileMaker_Command_Implementation($V0ab34ca9, $Vc6140495);
}
function &execute()
{
$V090cbceb= null;
$V8ac10dab = 0;
$V31c3c8cf = 0;
$V40677621 = 1;
$Ve2942a04 = 1;
$V21ffce5b = $this->_getCommandParams();
$this->_setSortParams($V21ffce5b);
$this->_setRangeParams($V21ffce5b);
$this->_setRelatedSetsFilters($V21ffce5b);
ksort($this->Vad2bfd5a);
$V31c3c8cf=count($this->Vad2bfd5a);
foreach ($this->Vad2bfd5a as $V70a17ffa => $V9a7aa128)
{
$V15c46c6e = $V9a7aa128->_impl->_findCriteria;
$V8ac10dab = count($V15c46c6e);
$V090cbceb = $V090cbceb.'(';
$V4111477f = 0;
foreach ($V15c46c6e as $Vd1148ee8 => $Ve9de89b0) {
$V21ffce5b['-q'.$Ve2942a04] = $Vd1148ee8;
$V21ffce5b['-q'.$Ve2942a04.'.'."value"] = $Ve9de89b0;
$V090cbceb=$V090cbceb.'q'.$Ve2942a04;
$Ve2942a04++;
$V4111477f++;
if($V4111477f < $V8ac10dab){
$V090cbceb = $V090cbceb.',';
}
}
$V090cbceb=$V090cbceb.")";
$V40677621++;
if($V40677621 <= $V31c3c8cf){
$V4b22ce92 = $this->Vad2bfd5a[$V40677621];
if($V4b22ce92->_impl->_omit == true){
$V090cbceb = $V090cbceb.';!';
}else{
$V090cbceb = $V090cbceb.';';
}
}
}
$V21ffce5b['-query'] = $V090cbceb;
$V21ffce5b['-findquery'] = true;
$V0f635d0e = $this->_fm->_execute($V21ffce5b);
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
return $this->_getResult($V0f635d0e);
}
function add($Vffbd028a, $Vd0dff0df)
{
$this->Vad2bfd5a[$Vffbd028a] = $Vd0dff0df;
}
function addSortRule($Vd1148ee8, $Vffbd028a, $V70a17ffa = null)
{
$this->Vd65662c5[$Vffbd028a] = $Vd1148ee8;
if ($V70a17ffa !== null) {
$this->Va9136a07[$Vffbd028a] = $V70a17ffa;
}
}
function clearSortRules()
{
$this->Vd65662c5= array();
$this->Va9136a07= array();
}
function setRange($V08b43519 = 0, $V2ffe4e77 = null)
{
$this->V83f28691= $V08b43519;
$this->V85fd701e= $V2ffe4e77;
}
function getRange()
{
return array('skip' => $this->V83f28691,
'max' => $this->V85fd701e);
}
function setRelatedSetsFilters($Vdba51d08, $V01a8ebbf = null)
{
$this->V6da136ea= $Vdba51d08;
$this->V568aa2ec= $V01a8ebbf;
}
function getRelatedSetsFilters()
{
return array('relatedsetsfilter' => $this->V6da136ea,
'relatedsetsmax' => $this->V568aa2ec);
}
function _setRelatedSetsFilters(&$V21ffce5b)
{
if ($this->V6da136ea) {
$V21ffce5b['-relatedsets.filter'] = $this->V6da136ea;
}
if ($this->V568aa2ec) {
$V21ffce5b['-relatedsets.max'] = $this->V568aa2ec;
}
}
function _setSortParams(&$V21ffce5b)
{
foreach ($this->Vd65662c5 as $Vffbd028a => $Vd1148ee8) {
$V21ffce5b['-sortfield.' . $Vffbd028a] = $Vd1148ee8;
}
foreach ($this->Va9136a07 as $Vffbd028a => $V70a17ffa) {
$V21ffce5b['-sortorder.' . $Vffbd028a] = $V70a17ffa;
}
}
function _setRangeParams(&$V21ffce5b)
{
if ($this->V83f28691) {
$V21ffce5b['-skip'] = $this->V83f28691;
}
if ($this->V85fd701e) {
$V21ffce5b['-max'] = $this->V85fd701e;
}
}
}
@@ -0,0 +1,25 @@
<?php
require_once dirname(__FILE__) . '/../CommandImpl.php';
class FileMaker_Command_Delete_Implementation extends FileMaker_Command_Implementation
{
function FileMaker_Command_Delete_Implementation($V0ab34ca9, $Vc6140495, $Va6ec9c02)
{
FileMaker_Command_Implementation::FileMaker_Command_Implementation($V0ab34ca9, $Vc6140495);
$this->_recordId = $Va6ec9c02;
}
function &execute()
{
if (empty($this->_recordId)) {
$Vcb5e100e = new FileMaker_Error($this->_fm, 'Delete commands require a record id.');
return $Vcb5e100e;
}
$V21ffce5b = $this->_getCommandParams();
$V21ffce5b['-delete'] = true;
$V21ffce5b['-recid'] = $this->_recordId;
$V0f635d0e = $this->_fm->_execute($V21ffce5b);
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
return $this->_getResult($V0f635d0e);
}
}
@@ -0,0 +1,25 @@
<?php
require_once dirname(__FILE__) . '/../CommandImpl.php';
class FileMaker_Command_Duplicate_Implementation extends FileMaker_Command_Implementation
{
function FileMaker_Command_Duplicate_Implementation($V0ab34ca9, $Vc6140495, $Va6ec9c02)
{
FileMaker_Command_Implementation::FileMaker_Command_Implementation($V0ab34ca9, $Vc6140495);
$this->_recordId = $Va6ec9c02;
}
function &execute()
{
if (empty($this->_recordId)) {
$Vcb5e100e = new FileMaker_Error($this->_fm, 'Duplicate commands require a record id.');
return $Vcb5e100e;
}
$V21ffce5b = $this->_getCommandParams();
$V21ffce5b['-dup'] = true;
$V21ffce5b['-recid'] = $this->_recordId;
$V0f635d0e = $this->_fm->_execute($V21ffce5b);
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
return $this->_getResult($V0f635d0e);
}
}
@@ -0,0 +1,118 @@
<?php
require_once dirname(__FILE__) . '/../CommandImpl.php';
class FileMaker_Command_Edit_Implementation extends FileMaker_Command_Implementation {
var $_fields = array ();
var $_modificationId = null;
var $V6d6e1fd2;
function FileMaker_Command_Edit_Implementation($V0ab34ca9, $Vc6140495, $Va6ec9c02, $Va0af1e2b = array ()) {
FileMaker_Command_Implementation::FileMaker_Command_Implementation($V0ab34ca9, $Vc6140495);
$this->_recordId = $Va6ec9c02;
$this->V6d6e1fd2= null;
foreach ($Va0af1e2b as $V06e3d36f => $V2063c160) {
if (!is_array($V2063c160)) {
$V2063c160 = array (
$V2063c160
);
}
$this->_fields[$V06e3d36f] = $V2063c160;
}
}
function & execute() {
$V21ffce5b = $this->_getCommandParams();
if (empty ($this->_recordId)) {
$Vcb5e100e = new FileMaker_Error($this->_fm, 'Edit commands require a record id.');
return $Vcb5e100e;
}
if (!count($this->_fields)) {
if ($this->V6d6e1fd2== null) {
$Vcb5e100e = new FileMaker_Error($this->_fm, 'There are no changes to make.');
return $Vcb5e100e;
}
}
if ($this->_fm->getProperty('prevalidate')) {
$Vcb5e111f = & $this->_fm->getLayout($this->_layout);
$Vb0689411 = new FileMaker_Error_Validation($this->_fm);
foreach ($Vcb5e111f->getFields() as $V9f7d0ff7 => $Vc6140945) {
if (isset ($this->_fields[$V9f7d0ff7])) {
$V6d6e1ff1 = $this->_fields[$V9f7d0ff7];
foreach ($V6d6e1ff1 as $V6d6e1ff2) {
$Vb0689411 = $Vc6140945->validate($V6d6e1ff2);
if (FileMaker :: isError($Vb0689411)) {
return $Vb0689411;
}
}
}
}
}
$Vc6140495 = & $this->_fm->getLayout($this->_layout);
if (FileMaker :: isError($Vc6140495)) {
return $Vc6140495;
}
$V21ffce5b['-edit'] = true;
if ($this->V6d6e1fd2== null) {
foreach ($this->_fields as $V972bf3f0 => $Vee0525e4) {
if (strpos($V972bf3f0, '.') !== false) {
list ($Vb068931c, $V11e868ac) = explode('.', $V972bf3f0, 2);
$V11e868ac = '.' . $V11e868ac;
} else {
$Vb068931c = $V972bf3f0;
$V06e3d36f = $Vc6140495->getField($V972bf3f0);
if (FileMaker :: isError($V06e3d36f)) {
return $V06e3d36f;
}
if ($V06e3d36f->isGlobal()) {
$V11e868ac = '.global';
} else {
$V11e868ac = '';
}
}
foreach ($Vee0525e4 as $V6a992d55 => $V3a6d0284) {
$V21ffce5b[$Vb068931c . '(' . ($V6a992d55 +1) . ')' . $V11e868ac] = $V3a6d0284;
}
}
}
if ($this->V6d6e1fd2!= null) {
$V21ffce5b['-delete.related'] = $this->V6d6e1fd2;
}
$V21ffce5b['-recid'] = $this->_recordId;
if ($this->_modificationId) {
$V21ffce5b['-modid'] = $this->_modificationId;
}
$V0f635d0e = $this->_fm->_execute($V21ffce5b);
if (FileMaker :: isError($V0f635d0e)) {
return $V0f635d0e;
}
return $this->_getResult($V0f635d0e);
}
function setField($V06e3d36f, $V2063c160, $V6d786dc7 = 0) {
$this->_fields[$V06e3d36f][$V6d786dc7] = $V2063c160;
return $V2063c160;
}
function setFieldFromTimestamp($V06e3d36f, $Vd7e6d55b, $V6d786dc7 = 0) {
$Vc6140495 = & $this->_fm->getLayout($this->_layout);
if (FileMaker :: isError($Vc6140495)) {
return $Vc6140495;
}
$V06e3d36f = & $Vc6140495->getField($V06e3d36f);
if (FileMaker :: isError($V06e3d36f)) {
return $V06e3d36f;
}
switch ($V06e3d36f->getResult()) {
case 'date' :
return $this->setField($V972bf3f0, date('m/d/Y', $Vd7e6d55b), $V6d786dc7);
case 'time' :
return $this->setField($V972bf3f0, date('H:i:s', $Vd7e6d55b), $V6d786dc7);
case 'timestamp' :
return $this->setField($V972bf3f0, date('m/d/Y H:i:s', $Vd7e6d55b), $V6d786dc7);
}
return new FileMaker_Error($this->_fm, 'Only time, date, and timestamp fields can be set to the value of a timestamp.');
}
function setModificationId($Vf048d909) {
$this->_modificationId = $Vf048d909;
}
function _setdeleteRelated($V2063c160) {
$this->V6d6e1fd2= $V2063c160;
}
}
@@ -0,0 +1,21 @@
<?php
require_once dirname(__FILE__) . '/FindImpl.php';
class FileMaker_Command_FindAll_Implementation extends FileMaker_Command_Find_Implementation
{
function FileMaker_Command_FindAll_Implementation($V0ab34ca9, $Vc6140495) {
FileMaker_Command_Find_Implementation::FileMaker_Command_Find_Implementation($V0ab34ca9, $Vc6140495);
}
function &execute()
{
$V21ffce5b = $this->_getCommandParams();
$V21ffce5b['-findall'] = true;
$this->_setSortParams($V21ffce5b);
$this->_setRangeParams($V21ffce5b);
$V0f635d0e = $this->_fm->_execute($V21ffce5b);
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
return $this->_getResult($V0f635d0e);
}
}
@@ -0,0 +1,19 @@
<?php
require_once dirname(__FILE__) . '/FindImpl.php';
class FileMaker_Command_FindAny_Implementation extends FileMaker_Command_Find_Implementation
{
function FileMaker_Command_FindAny_Implementation($V0ab34ca9, $Vc6140495) {
FileMaker_Command_Find_Implementation::FileMaker_Command_Find_Implementation($V0ab34ca9, $Vc6140495);
}
function &execute()
{
$V21ffce5b = $this->_getCommandParams();
$V21ffce5b['-findany'] = true;
$V0f635d0e = $this->_fm->_execute($V21ffce5b);
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
return $this->_getResult($V0f635d0e);
}
}
@@ -0,0 +1,120 @@
<?php
require_once dirname(__FILE__) . '/../CommandImpl.php';
class FileMaker_Command_Find_Implementation extends FileMaker_Command_Implementation
{
var $_findCriteria = array();
var $Vd65662c5 = array();
var $Va9136a07 = array();
var $Vf951bdce;
var $V83f28691;
var $V85fd701e;
var $V6da136ea;
var $V568aa2ec;
function FileMaker_Command_Find_Implementation($V0ab34ca9, $Vc6140495)
{
FileMaker_Command_Implementation::FileMaker_Command_Implementation($V0ab34ca9, $Vc6140495);
}
function &execute()
{
$V21ffce5b = $this->_getCommandParams();
$this->_setSortParams($V21ffce5b);
$this->_setRangeParams($V21ffce5b);
$this->_setRelatedSetsFilters($V21ffce5b);
if (count($this->_findCriteria) || $this->_recordId) {
$V21ffce5b['-find'] = true;
} else {
$V21ffce5b['-findall'] = true;
}
if ($this->_recordId) {
$V21ffce5b['-recid'] = $this->_recordId;
}
if ($this->Vf951bdce) {
$V21ffce5b['-lop'] = $this->Vf951bdce;
}
foreach ($this->_findCriteria as $Vd1148ee8 => $Ve9de89b0) {
$V21ffce5b[$Vd1148ee8] = $Ve9de89b0;
}
$V0f635d0e = $this->_fm->_execute($V21ffce5b);
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
return $this->_getResult($V0f635d0e);
}
function addFindCriterion($Vd1148ee8, $Ve9de89b0)
{
$this->_findCriteria[$Vd1148ee8] = $Ve9de89b0;
}
function clearFindCriteria()
{
$this->_findCriteria = array();
}
function addSortRule($Vd1148ee8, $Vffbd028a, $V70a17ffa = null)
{
$this->Vd65662c5[$Vffbd028a] = $Vd1148ee8;
if ($V70a17ffa !== null) {
$this->Va9136a07[$Vffbd028a] = $V70a17ffa;
}
}
function clearSortRules()
{
$this->Vd65662c5= array();
$this->Va9136a07= array();
}
function setLogicalOperator($V4b583376)
{
switch ($V4b583376) {
case FILEMAKER_FIND_AND:
case FILEMAKER_FIND_OR:
$this->Vf951bdce= $V4b583376;
break;
}
}
function setRange($V08b43519 = 0, $V2ffe4e77 = null)
{
$this->V83f28691= $V08b43519;
$this->V85fd701e= $V2ffe4e77;
}
function getRange()
{
return array('skip' => $this->V83f28691,
'max' => $this->V85fd701e);
}
function setRelatedSetsFilters($Vdba51d08, $V01a8ebbf = null)
{
$this->V6da136ea= $Vdba51d08;
$this->V568aa2ec= $V01a8ebbf;
}
function getRelatedSetsFilters()
{
return array('relatedsetsfilter' => $this->V6da136ea,
'relatedsetsmax' => $this->V568aa2ec);
}
function _setRelatedSetsFilters(&$V21ffce5b)
{
if ($this->V6da136ea) {
$V21ffce5b['-relatedsets.filter'] = $this->V6da136ea;
}
if ($this->V568aa2ec) {
$V21ffce5b['-relatedsets.max'] = $this->V568aa2ec;
}
}
function _setSortParams(&$V21ffce5b)
{
foreach ($this->Vd65662c5 as $Vffbd028a => $Vd1148ee8) {
$V21ffce5b['-sortfield.' . $Vffbd028a] = $Vd1148ee8;
}
foreach ($this->Va9136a07 as $Vffbd028a => $V70a17ffa) {
$V21ffce5b['-sortorder.' . $Vffbd028a] = $V70a17ffa;
}
}
function _setRangeParams(&$V21ffce5b)
{
if ($this->V83f28691) {
$V21ffce5b['-skip'] = $this->V83f28691;
}
if ($this->V85fd701e) {
$V21ffce5b['-max'] = $this->V85fd701e;
}
}
}
@@ -0,0 +1,26 @@
<?php
require_once dirname(__FILE__) . '/../CommandImpl.php';
class FileMaker_Command_FindRequest_Implementation
{
var $_findCriteria = array();
var $_omit;
function FileMaker_Command_FindRequest_Implementation()
{
$this->_omit = false;
}
function addFindCriterion($Vd1148ee8, $Ve9de89b0)
{
$this->_findCriteria[$Vd1148ee8] = $Ve9de89b0;
}
function setOmit($V2063c160)
{
$this->_omit = $V2063c160;
}
function clearFindCriteria()
{
$this->_findCriteria = array();
}
}
@@ -0,0 +1,21 @@
<?php
require_once dirname(__FILE__) . '/../CommandImpl.php';
class FileMaker_Command_PerformScript_Implementation extends FileMaker_Command_Implementation
{
function FileMaker_Command_PerformScript_Implementation($V0ab34ca9, $Vc6140495, $V2550889a, $V9b479e5e = null)
{
FileMaker_Command_Implementation::FileMaker_Command_Implementation($V0ab34ca9, $Vc6140495);
$this->_script = $V2550889a;
$this->_scriptParams = $V9b479e5e;
}
function execute()
{
$V21ffce5b = $this->_getCommandParams();
$V21ffce5b['-findany'] = true;
$V0f635d0e = $this->_fm->_execute($V21ffce5b);
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
return $this->_getResult($V0f635d0e);
}
}
@@ -0,0 +1,117 @@
<?php
require_once dirname(__FILE__) . '/../Error/Validation.php';
require_once dirname(__FILE__) . '/../Result.php';
class FileMaker_Command_Implementation {
var $_fm;
var $_layout;
var $V7a2db0ea;
var $_script;
var $_scriptParams;
var $_preReqScript;
var $_preReqScriptParams;
var $_preSortScript;
var $_preSortScriptParams;
var $V0b9a204c;
var $_recordId;
function FileMaker_Command_Implementation($V0ab34ca9, $Vc6140495) {
$this->_fm =& $V0ab34ca9;
$this->_layout = $Vc6140495;
$this->V0b9a204c= $V0ab34ca9->getProperty('recordClass');
}
function setResultLayout($Vc6140495) {
$this->V7a2db0ea= $Vc6140495;
}
function setScript($V2550889a, $V9b479e5e = null) {
$this->_script = $V2550889a;
$this->_scriptParams = $V9b479e5e;
}
function setPreCommandScript($V2550889a, $V9b479e5e = null) {
$this->_preReqScript = $V2550889a;
$this->_preReqScriptParams = $V9b479e5e;
}
function setPreSortScript($V2550889a, $V9b479e5e = null) {
$this->_preSortScript = $V2550889a;
$this->_preSortScriptParams = $V9b479e5e;
}
function setRecordClass($V6f66e878) {
$this->V0b9a204c= $V6f66e878;
}
function setRecordId($Va6ec9c02) {
$this->_recordId = $Va6ec9c02;
}
function validate($V972bf3f0 = null) {
if (!is_a($this, 'FileMaker_Command_Add_Implementation') && !is_a($this, 'FileMaker_Command_Edit_Implementation')) {
return true;
}
$Vc6140495 = & $this->_fm->getLayout($this->_layout);
if (FileMaker :: isError($Vc6140495)) {
return $Vc6140495;
}
$Vcb5e100e = new FileMaker_Error_Validation($this->_fm);
if ($V972bf3f0 === null) {
foreach ($Vc6140495->getFields() as $V972bf3f0 => $V06e3d36f) {
if (!isset ($this->_fields[$V972bf3f0]) || !count($this->_fields[$V972bf3f0])) {
$Vf09cc7ee = array (
0 => null
);
} else {
$Vf09cc7ee = $this->_fields[$V972bf3f0];
}
foreach ($Vf09cc7ee as $V2063c160) {
$Vcb5e100e = $V06e3d36f->validate($V2063c160, $Vcb5e100e);
}
}
} else {
$V06e3d36f = & $Vc6140495->getField($V972bf3f0);
if (FileMaker :: isError($V06e3d36f)) {
return $V06e3d36f;
}
if (!isset ($this->_fields[$V972bf3f0]) || !count($this->_fields[$V972bf3f0])) {
$Vf09cc7ee = array (
0 => null
);
} else {
$Vf09cc7ee = $this->_fields[$V972bf3f0];
}
foreach ($Vf09cc7ee as $V2063c160) {
$Vcb5e100e = $V06e3d36f->validate($V2063c160, $Vcb5e100e);
}
}
return $Vcb5e100e->numErrors() ? $Vcb5e100e : true;
}
function & _getResult($V0f635d0e) {
$V3643b863 = new FileMaker_Parser_FMResultSet($this->_fm);
$Vb4a88417 = $V3643b863->parse($V0f635d0e);
if (FileMaker :: isError($Vb4a88417)) {
return $Vb4a88417;
}
$Vd1fc8eaf = new FileMaker_Result($this->_fm);
$Vb4a88417 = $V3643b863->setResult($Vd1fc8eaf, $this->V0b9a204c);
if (FileMaker :: isError($Vb4a88417)) {
return $Vb4a88417;
}
return $Vd1fc8eaf;
}
function _getCommandParams() {
$V21ffce5b = array (
'-db' => $this->_fm->getProperty('database'
), '-lay' => $this->_layout);
foreach (array (
'_script' => '-script',
'_preReqScript' => '-script.prefind',
'_preSortScript' => '-script.presort'
) as $Vb2145aac => $Veca07335) {
if ($this-> $Vb2145aac) {
$V21ffce5b[$Veca07335] = $this-> $Vb2145aac;
$Vb2145aac .= 'Params';
if ($this-> $Vb2145aac !== null) {
$V21ffce5b[$Veca07335 . '.param'] = $this-> $Vb2145aac;
}
}
}
if ($this->V7a2db0ea) {
$V21ffce5b['-lay.response'] = $this->V7a2db0ea;
}
return $V21ffce5b;
}
}
@@ -0,0 +1,344 @@
<?php
require_once dirname(__FILE__) . '/../Error/Validation.php';
class FileMaker_Field_Implementation
{
var $_layout;
var $_name;
var $_autoEntered = false;
var $_global = false;
var $_maxRepeat = 1;
var $_validationMask = 0;
var $_validationRules = array();
var $_result;
var $_type;
var $_valueList = null;
var $_styleType;
var $_maxCharacters = 0;
function FileMaker_Field_Implementation(&$Vc6140495)
{
$this->_layout =& $Vc6140495;
}
function getName()
{
return $this->_name;
}
function &getLayout()
{
return $this->_layout;
}
function isAutoEntered()
{
return $this->_autoEntered;
}
function isGlobal()
{
return $this->_global;
}
function getRepetitionCount()
{
return $this->_maxRepeat;
}
function validate($V2063c160, $Vcb5e100e = null)
{
$V1c0c74f6 = true;
if ($Vcb5e100e === null) {
$V1c0c74f6 = false;
$Vcb5e100e = new FileMaker_Error_Validation($this->_layout->_impl->_fm);
}
foreach ($this->getValidationRules() as $V981c1e7b) {
switch ($V981c1e7b) {
case FILEMAKER_RULE_NOTEMPTY:
if (empty($V2063c160)) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
}
break;
case FILEMAKER_RULE_NUMERICONLY :
if (!empty ($V2063c160)) {
if ($this->checkNumericOnly($V2063c160)) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
}
}
break;
case FILEMAKER_RULE_MAXCHARACTERS :
if (!empty ($V2063c160)) {
$V2fa47f7c = strlen($V2063c160);
if ($V2fa47f7c > $this->_maxCharacters) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
}
}
break;
case FILEMAKER_RULE_TIME_FIELD :
if (!empty ($V2063c160)) {
if (!$this->checkTimeFormat($V2063c160)) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
} else {
$this->checkTimeValidity($V2063c160, $V981c1e7b, $Vcb5e100e, FALSE);
}
}
break;
case FILEMAKER_RULE_TIMESTAMP_FIELD :
if (!empty ($V2063c160)) {
if (!$this->checkTimeStampFormat($V2063c160)) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
} else {
$this->checkDateValidity($V2063c160, $V981c1e7b, $Vcb5e100e);
$this->checkTimeValidity($V2063c160, $V981c1e7b, $Vcb5e100e, FALSE);
}
}
break;
case FILEMAKER_RULE_DATE_FIELD :
if (!empty ($V2063c160)) {
if (!$this->checkDateFormat($V2063c160)) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
} else {
$this->checkDateValidity($V2063c160, $V981c1e7b, $Vcb5e100e);
}
}
break;
case FILEMAKER_RULE_FOURDIGITYEAR :
if (!empty ($V2063c160)) {
switch ($this->_result) {
case 'timestamp' :
if ($this->checkTimeStampFormatFourDigitYear($V2063c160)) {
preg_match('#^([0-9]{1,2})[-,/,\\\\]([0-9]{1,2})[-,/,\\\\]([0-9]{4})#', $V2063c160, $V9c28d32d);
$V7436f942 = $V9c28d32d[1];
$V628b7db0 = $V9c28d32d[2];
$V84cdc76c = $V9c28d32d[3];
if ($V84cdc76c < 1 || $V84cdc76c > 4000) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
} else
if (!checkdate($V7436f942, $V628b7db0, $V84cdc76c)) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
} else {
$this->checkTimeValidity($V2063c160, $V981c1e7b, $Vcb5e100e, FALSE);
}
} else {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
}
break;
default :
preg_match('#([0-9]{1,2})[-,/,\\\\]([0-9]{1,2})[-,/,\\\\]([0-9]{1,4})#', $V2063c160, $V78f0805f);
if (count($V78f0805f) != 3) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
} else {
$V6c8f3f79 = strlen($V78f0805f[2]);
if ($V6c8f3f79 != 4) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
} else {
if ($V78f0805f[2] < 1 || $V78f0805f[2] > 4000) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
} else {
if (!checkdate($V78f0805f[0], $V78f0805f[1], $V78f0805f[2])) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
}
}
}
}
break;
}
}
break;
case FILEMAKER_RULE_TIMEOFDAY :
if (!empty ($V2063c160)) {
if ($this->checkTimeFormat($V2063c160)) {
$this->checkTimeValidity($V2063c160, $V981c1e7b, $Vcb5e100e, TRUE);
} else {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
}
}
break;
}
}
if ($V1c0c74f6) {
return $Vcb5e100e;
} else {
return $Vcb5e100e->numErrors() ? $Vcb5e100e : true;
}
}
function getLocalValidationRules()
{
$V6b55d9ec = array ();
foreach (array_keys($this->_validationRules) as $V981c1e7b) {
switch ($V981c1e7b) {
case FILEMAKER_RULE_NOTEMPTY :
$V6b55d9ec[] = $V981c1e7b;
break;
case FILEMAKER_RULE_NUMERICONLY :
$V6b55d9ec[] = $V981c1e7b;
break;
case FILEMAKER_RULE_MAXCHARACTERS :
$V6b55d9ec[] = $V981c1e7b;
break;
case FILEMAKER_RULE_FOURDIGITYEAR :
$V6b55d9ec[] = $V981c1e7b;
break;
case FILEMAKER_RULE_TIMEOFDAY :
$V6b55d9ec[] = $V981c1e7b;
break;
case FILEMAKER_RULE_TIMESTAMP_FIELD :
$V6b55d9ec[] = $V981c1e7b;
break;
case FILEMAKER_RULE_DATE_FIELD :
$V6b55d9ec[] = $V981c1e7b;
break;
case FILEMAKER_RULE_TIME_FIELD :
$V6b55d9ec[] = $V981c1e7b;
break;
}
}
return $V6b55d9ec;
}
function checkTimeStampFormatFourDigitYear($V2063c160)
{
return (preg_match('#^[ ]*([0-9]{1,2})[-,/,\\\\]([0-9]{1,2})[-,/,\\\\]([0-9]{4})[ ]*([0-9]{1,2})[:]([0-9]{1,2})([:][0-9]{1,2})?([ ]*((AM|PM)|(am|pm)))?[ ]*$#', $V2063c160));
}
function checkTimeStampFormat($V2063c160)
{
return (preg_match('#^[ ]*([0-9]{1,2})[-,/,\\\\]([0-9]{1,2})([-,/,\\\\]([0-9]{1,4}))?[ ]*([0-9]{1,2})[:]([0-9]{1,2})([:][0-9]{1,2})?([ ]*((AM|PM)|(am|pm)))?[ ]*$#', $V2063c160));
}
function checkDateFormat($V2063c160)
{
return (preg_match('#^[ ]*([0-9]{1,2})[-,/,\\\\]([0-9]{1,2})([-,/,\\\\]([0-9]{1,4}))?[ ]*$#', $V2063c160));
}
function checkTimeFormat($V2063c160)
{
return (preg_match('#^[ ]*([0-9]{1,2})[:]([0-9]{1,2})([:][0-9]{1,2})?([ ]*((AM|PM)|(am|pm)))?[ ]*$#', $V2063c160));
}
function checkNumericOnly($V2063c160)
{
return (!is_numeric($V2063c160));
}
function checkDateValidity($V2063c160, $V981c1e7b, $Vcb5e100e)
{
preg_match('#([0-9]{1,2})[-,/,\\\\]([0-9]{1,2})([-,/,\\\\]([0-9]{1,4}))?#', $V2063c160, $V78f0805f);
if ($V78f0805f[4]) {
$V6c8f3f79 = strlen($V78f0805f[4]);
$V84cdc76c = $V78f0805f[4];
if ($V6c8f3f79 != 4) {
$V84cdc76c = $V84cdc76c +2000;
}
if ($V78f0805f[4] < 1 || $V78f0805f[4] > 4000) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
} else {
if (!checkdate($V78f0805f[1], $V78f0805f[2], $V78f0805f[4])) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
}
}
} else {
$V84cdc76c = date('Y');
if (!checkdate($V78f0805f[1], $V78f0805f[2], $V84cdc76c)) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
}
}
}
function checkTimeValidity($V2063c160, $V981c1e7b, $Vcb5e100e, $Vcaf85b7b)
{
$V52124c01 = 0;
if ($Vcaf85b7b) {
$V52124c01 = 12;
} else {
$V52124c01 = 24;
}
preg_match('#([0-9]{1,2})[:]([0-9]{1,2})[:]?([0-9]{1,2})?#', $V2063c160, $V9c28d32d);
$V896c55cc = $V9c28d32d[1];
$V640fd0cc = $V9c28d32d[2];
if (count($V9c28d32d) >= 4) {
$V783e8e29 = $V9c28d32d[3];
}
if ($V896c55cc < 0 || $V896c55cc > $V52124c01) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
} else if ($V640fd0cc < 0 || $V640fd0cc > 59) {
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
} else
if (isset($V783e8e29)) {
if ($V783e8e29 < 0 || $V783e8e29 > 59)
$Vcb5e100e->addError($this, $V981c1e7b, $V2063c160);
}
}
function getValidationRules()
{
return array_keys($this->_validationRules);
}
function getValidationMask()
{
return $this->_validationMask;
}
function hasValidationRule($Ve289cc97)
{
return $Ve289cc97 & $this->_validationMask;
}
function describeValidationRule($Ve289cc97)
{
if (is_array($this->_validationRules[$Ve289cc97])) {
return $this->_validationRules[$Ve289cc97];
}
return null;
}
function describeLocalValidationRules()
{
$V6b55d9ec = array ();
foreach ($this->_validationRules as $V981c1e7b => $V1dee80c7) {
switch ($V981c1e7b) {
case FILEMAKER_RULE_NOTEMPTY :
$V6b55d9ec[$V981c1e7b] = $V1dee80c7;
break;
case FILEMAKER_RULE_NUMERICONLY :
$V6b55d9ec[$V981c1e7b] = $V1dee80c7;
break;
case FILEMAKER_RULE_MAXCHARACTERS :
$V6b55d9ec[$V981c1e7b] = $V1dee80c7;
break;
case FILEMAKER_RULE_FOURDIGITYEAR :
$V6b55d9ec[$V981c1e7b] = $V1dee80c7;
break;
case FILEMAKER_RULE_TIMEOFDAY :
$V6b55d9ec[$V981c1e7b] = $V1dee80c7;
break;
case FILEMAKER_RULE_TIMESTAMP_FIELD :
$V6b55d9ec[$V981c1e7b] = $V1dee80c7;
break;
case FILEMAKER_RULE_DATE_FIELD :
$V6b55d9ec[$V981c1e7b] = $V1dee80c7;
break;
case FILEMAKER_RULE_TIME_FIELD :
$V6b55d9ec[$V981c1e7b] = $V1dee80c7;
break;
}
}
return $V6b55d9ec;
}
function describeValidationRules()
{
return $this->_validationRules;
}
function getResult()
{
return $this->_result;
}
function getType()
{
return $this->_type;
}
function getValueList($Vd33e904c = null)
{
$Vb4a88417 = $this->_layout->loadExtendedInfo($Vd33e904c);
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
return $this->_layout->getValueList($this->_valueList);
}
function getStyleType()
{
$Vb4a88417 = $this->_layout->loadExtendedInfo();
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
return $this->_styleType;
}
}
@@ -0,0 +1,466 @@
<?php
require_once dirname(__FILE__) . '/Parser/FMResultSet.php';
class FileMaker_Implementation
{
var $V73ee434e = array('charset' => 'utf-8');
var $Vea4b3413 = null;
var $V9a3dcbce;
function getAPIVersion()
{
return '1.1';
}
static function getMinServerVersion()
{
return '10.0.0.0';
}
function FileMaker_Implementation($V11e0eed8, $Vccd0e374, $V14c4b06b, $V5f4dcc3b)
{
$V07cc694b = time();
if ((@include dirname(__FILE__) . '/../conf/filemaker-api.php') && isset($__FM_CONFIG)) {
foreach ($__FM_CONFIG as $V23a5b8ab => $V2063c160) {
$this->setProperty($V23a5b8ab, $V2063c160);
}
}
if (!is_null($Vccd0e374)) {
$this->setProperty('hostspec', $Vccd0e374);
}
if (!is_null($V11e0eed8)) {
$this->setProperty('database', $V11e0eed8);
}
if (!is_null($V14c4b06b)) {
$this->setProperty('username', $V14c4b06b);
}
if (!is_null($V5f4dcc3b)) {
$this->setProperty('password', $V5f4dcc3b);
}
}
function setProperty($V23a5b8ab, $V2063c160)
{
$this->V73ee434e[$V23a5b8ab] = $V2063c160;
}
function getProperty($V23a5b8ab)
{
return isset($this->V73ee434e[$V23a5b8ab]) ? $this->V73ee434e[$V23a5b8ab] : null;
}
function getProperties()
{
return $this->V73ee434e;
}
function setLogger(&$V6db435f3)
{
if (!is_a($V6db435f3, 'Log')) {
return new FileMaker_Error($this, 'setLogger() must be passed an instance of PEAR::Log');
}
$this->Vea4b3413=& $V6db435f3;
}
function log($V78e73102, $Vc9e9a848)
{
if ($this->Vea4b3413=== null) {
return;
}
$Ve4aa4dcd = $this->getProperty('logLevel');
if ($Ve4aa4dcd === null || $Vc9e9a848 > $Ve4aa4dcd) {
return;
}
switch ($Vc9e9a848) {
case FILEMAKER_LOG_DEBUG:
$this->Vea4b3413->log($V78e73102, PEAR_LOG_DEBUG);
break;
case FILEMAKER_LOG_INFO:
$this->Vea4b3413->log($V78e73102, PEAR_LOG_INFO);
break;
case FILEMAKER_LOG_ERR:
$this->Vea4b3413->log($V78e73102, PEAR_LOG_ERR);
break;
}
}
function toOutputCharset($V1d770934)
{
if (strtolower($this->getProperty('charset')) != 'iso-8859-1') {
return $V1d770934;
}
if (is_array($V1d770934)) {
$Vfa816edb = array();
foreach ($V1d770934 as $V3c6e0b8a => $V3a6d0284) {
$Vfa816edb[$this->toOutputCharset($V3c6e0b8a)] = $this->toOutputCharset($V3a6d0284);
}
return $Vfa816edb;
}
if (!is_string($V1d770934)) {
return $V1d770934;
}
return utf8_decode($V1d770934);
}
function &newAddCommand($Vc6140495, $Vf09cc7ee = array())
{
require_once dirname(__FILE__) . '/../Command/Add.php';
$Vab4d0a65 = new FileMaker_Command_Add($this, $Vc6140495, $Vf09cc7ee);
return $Vab4d0a65;
}
function &newEditCommand($Vc6140495, $Va6ec9c02, $Va0af1e2b = array())
{
require_once dirname(__FILE__) . '/../Command/Edit.php';
$Vab4d0a65 = new FileMaker_Command_Edit($this, $Vc6140495, $Va6ec9c02, $Va0af1e2b);
return $Vab4d0a65;
}
function &newDeleteCommand($Vc6140495, $Va6ec9c02)
{
require_once dirname(__FILE__) . '/../Command/Delete.php';
$Vab4d0a65 = new FileMaker_Command_Delete($this, $Vc6140495, $Va6ec9c02);
return $Vab4d0a65;
}
function &newDuplicateCommand($Vc6140495, $Va6ec9c02)
{
require_once dirname(__FILE__) . '/../Command/Duplicate.php';
$Vab4d0a65 = new FileMaker_Command_Duplicate($this, $Vc6140495, $Va6ec9c02);
return $Vab4d0a65;
}
function &newFindCommand($Vc6140495)
{
require_once dirname(__FILE__) . '/../Command/Find.php';
$Vab4d0a65 = new FileMaker_Command_Find($this, $Vc6140495);
return $Vab4d0a65;
}
function &newCompoundFindCommand($Vc6140495)
{
require_once dirname(__FILE__) . '/../Command/CompoundFind.php';
$Vcdaeeeba = new FileMaker_Command_CompoundFind($this, $Vc6140495);
return $Vcdaeeeba;
}
function &newFindRequest($Vc6140495)
{
require_once dirname(__FILE__) . '/../Command/FindRequest.php';
$Vab4d0a65 = new FileMaker_Command_FindRequest($this, $Vc6140495);
return $Vab4d0a65;
}
function &newFindAnyCommand($Vc6140495)
{
require_once dirname(__FILE__) . '/../Command/FindAny.php';
$Vab4d0a65 = new FileMaker_Command_FindAny($this, $Vc6140495);
return $Vab4d0a65;
}
function &newFindAllCommand($Vc6140495)
{
require_once dirname(__FILE__) . '/../Command/FindAll.php';
$Vab4d0a65 = new FileMaker_Command_FindAll($this, $Vc6140495);
return $Vab4d0a65;
}
function &newPerformScriptCommand($Vc6140495, $V2550889a, $V9b479e5e = null)
{
require_once dirname(__FILE__) . '/../Command/PerformScript.php';
$Vab4d0a65 = new FileMaker_Command_PerformScript($this, $Vc6140495, $V2550889a, $V9b479e5e);
return $Vab4d0a65;
}
function &createRecord($Vf43ac2d2, $Vfe0f78a8 = array())
{
$Vc6140495 =& $this->getLayout($Vf43ac2d2);
if (FileMaker::isError($Vc6140495)) {
return $Vc6140495;
}
$Vde17f0f2 = new $this->V73ee434e['recordClass']($Vc6140495);
if (is_array($Vfe0f78a8)) {
foreach ($Vfe0f78a8 as $V3c6e0b8a => $V2063c160) {
if (is_array($V2063c160)) {
foreach ($V2063c160 as $V6d786dc7 => $Vb5528fe6) {
$Vde17f0f2->setField($V3c6e0b8a, $Vb5528fe6, $V6d786dc7);
}
} else {
$Vde17f0f2->setField($V3c6e0b8a, $V2063c160);
}
}
}
return $Vde17f0f2;
}
function &getRecordById($Vc6140495, $Va6ec9c02)
{
$V10573b87 =& $this->newFindCommand($Vc6140495);
$V10573b87->setRecordId($Va6ec9c02);
$Vd1fc8eaf = $V10573b87->execute();
if (FileMaker::isError($Vd1fc8eaf)) {
return $Vd1fc8eaf;
}
$V6e52c40b =& $Vd1fc8eaf->getRecords();
if (!$V6e52c40b) {
$Vcb5e100e = new FileMaker_Error($this, 'Record . ' . $Va6ec9c02 . ' not found in layout "' . $Vc6140495 . '".');
return $Vcb5e100e;
}
return $V6e52c40b[0];
}
function &getLayout($Vf43ac2d2)
{
static $V34d59fda = array();
if (isset($V34d59fda[$Vf43ac2d2])) {
return $V34d59fda[$Vf43ac2d2];
}
$V0f635d0e = $this->_execute(array('-db' => $this->getProperty('database'),
'-lay' => $Vf43ac2d2,
'-view' => true));
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
$V3643b863 = new FileMaker_Parser_FMResultSet($this);
$Vb4a88417 = $V3643b863->parse($V0f635d0e);
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
$Vc6140495 = new FileMaker_Layout($this);
$Vb4a88417 = $V3643b863->setLayout($Vc6140495);
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
$V34d59fda[$Vf43ac2d2] =& $Vc6140495;
return $Vc6140495;
}
function listDatabases()
{
$V0f635d0e = $this->_execute(array('-dbnames' => true));
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
$V3643b863 = new FileMaker_Parser_fmresultset($this);
$Vb4a88417 = $V3643b863->parse($V0f635d0e);
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
$Ve61ce306 = array();
foreach ($V3643b863->V6e52c40b as $V0b2c082c) {
$Ve61ce306[] = $V0b2c082c['fields']['DATABASE_NAME'][0];
}
return $Ve61ce306;
}
function listScripts()
{
$V0f635d0e = $this->_execute(array('-db' => $this->getProperty('database'),
'-scriptnames' => true));
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
$V3643b863 = new FileMaker_Parser_FMResultSet($this);
$Vb4a88417 = $V3643b863->parse($V0f635d0e);
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
$Vd6c5855a = array();
foreach ($V3643b863->V6e52c40b as $V0b2c082c) {
$Vd6c5855a[] = $V0b2c082c['fields']['SCRIPT_NAME'][0];
}
return $Vd6c5855a;
}
function listLayouts()
{
$V0f635d0e = $this->_execute(array('-db' => $this->getProperty('database'),
'-layoutnames' => true));
if (FileMaker::isError($V0f635d0e)) {
return $V0f635d0e;
}
$V3643b863 = new FileMaker_Parser_FMResultSet($this);
$Vb4a88417 = $V3643b863->parse($V0f635d0e);
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
$V34d59fda = array();
foreach ($V3643b863->V6e52c40b as $V0b2c082c) {
$V34d59fda[] = $V0b2c082c['fields']['LAYOUT_NAME'][0];
}
return $V34d59fda;
}
function getContainerData($V9305b73d)
{
if (!function_exists('curl_init')) {
return new FileMaker_Error($this, 'cURL is required to use the FileMaker API.');
}
if (strncasecmp($V9305b73d, '/fmi/xml/cnt', 11) != 0) {
return new FileMaker_Error($this, 'getContainerData() does not support remote containers');
}
else {
$V572d4e42 = $this->getProperty('hostspec');
if (substr($V572d4e42, -1, 1) == '/') {
$V572d4e42 = substr($V572d4e42, 0, -1);
}
$V572d4e42 .= $V9305b73d;
$V572d4e42 = htmlspecialchars_decode($V572d4e42);
$V572d4e42 = str_replace(" ", "%20", $V572d4e42);
}
$this->log('Request for ' . $V572d4e42, FILEMAKER_LOG_INFO);
$Vd88fc6ed = curl_init($V572d4e42);
curl_setopt($Vd88fc6ed, CURLOPT_RETURNTRANSFER, true);
curl_setopt($Vd88fc6ed, CURLOPT_FAILONERROR, true);
$V81c939b1 = FALSE;
if (!headers_sent())
{
$V81c939b1 = TRUE;
curl_setopt($Vd88fc6ed, CURLOPT_HEADER, true);
}
$this->_setCurlWPCSessionCookie($Vd88fc6ed);
if ($this->getProperty('username')) {
$V313225f0 = base64_encode($this->getProperty('username'). ':' . $this->getProperty('password'));
$V44914468 = array('Authorization: Basic ' . $V313225f0, 'X-FMI-PE-ExtendedPrivilege: IrG6U+Rx0F5bLIQCUb9gOw==');
curl_setopt($Vd88fc6ed, CURLOPT_HTTPHEADER, $V44914468);
}
else {
curl_setopt($Vd88fc6ed, CURLOPT_HTTPHEADER, array('X-FMI-PE-ExtendedPrivilege: IrG6U+Rx0F5bLIQCUb9gOw=='));
}
if ($V93da65a9 = $this->getProperty('curlOptions')) {
foreach ($V93da65a9 as $Vef3e30e0 => $V2063c160) {
curl_setopt($Vd88fc6ed, $Vef3e30e0, $V2063c160);
}
}
$Vd1fc8eaf = curl_exec($Vd88fc6ed);
$this->_setClientWPCSessionCookie($Vd1fc8eaf);
if ($V81c939b1)
{
$Vd1fc8eaf = $this->_eliminateContainerHeader($Vd1fc8eaf);
}
$this->log($Vd1fc8eaf, FILEMAKER_LOG_DEBUG);
if ($V70106d0d = curl_errno($Vd88fc6ed)) {
return new FileMaker_Error($this, 'Communication Error: (' . $V70106d0d . ') ' . curl_error($Vd88fc6ed));
}
curl_close($Vd88fc6ed);
return $Vd1fc8eaf;
}
function _execute($Vf7cc8e48, $Vb3d1bd6a = 'fmresultset')
{
if (!function_exists('curl_init')) {
return new FileMaker_Error($this, 'cURL is required to use the FileMaker API.');
}
$Ve0c6dcf8 = array();
foreach ($Vf7cc8e48 as $V3c6e0b8a => $V3a6d0284) {
if (strtolower($this->getProperty('charset')) != 'utf-8' && $V3a6d0284 !== true) {
$V3a6d0284 = utf8_encode($V3a6d0284);
}
$Ve0c6dcf8[] = urlencode($V3c6e0b8a) . ($V3a6d0284 === true ? '' : '=' . urlencode($V3a6d0284));
}
$V572d4e42 = $this->getProperty('hostspec');
if (substr($V572d4e42, -1, 1) != '/') {
$V572d4e42 .= '/';
}
$V572d4e42 .= 'fmi/xml/' . $Vb3d1bd6a . '.xml';
$this->log('Request for ' . $V572d4e42, FILEMAKER_LOG_INFO);
$Vd88fc6ed = curl_init($V572d4e42);
curl_setopt($Vd88fc6ed, CURLOPT_POST, true);
curl_setopt($Vd88fc6ed, CURLOPT_RETURNTRANSFER, true);
curl_setopt($Vd88fc6ed, CURLOPT_FAILONERROR, true);
$V81c939b1 = FALSE;
if (!headers_sent())
{
$V81c939b1 = TRUE;
curl_setopt($Vd88fc6ed, CURLOPT_HEADER, true);
}
$this->_setCurlWPCSessionCookie($Vd88fc6ed);
if ($this->getProperty('username')) {
$V313225f0 = base64_encode(utf8_decode($this->getProperty('username')). ':' . utf8_decode($this->getProperty('password')));
$V44914468 = 'Authorization: Basic ' . $V313225f0;
curl_setopt($Vd88fc6ed, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded; charset=utf-8', 'X-FMI-PE-ExtendedPrivilege: IrG6U+Rx0F5bLIQCUb9gOw==', $V44914468));
}else{
curl_setopt($Vd88fc6ed, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded; charset=utf-8', 'X-FMI-PE-ExtendedPrivilege: IrG6U+Rx0F5bLIQCUb9gOw=='));
}
curl_setopt($Vd88fc6ed, CURLOPT_POSTFIELDS, implode('&', $Ve0c6dcf8));
if ($V93da65a9 = $this->getProperty('curlOptions')) {
foreach ($V93da65a9 as $Vef3e30e0 => $V2063c160) {
curl_setopt($Vd88fc6ed, $Vef3e30e0, $V2063c160);
}
}
$Vd1fc8eaf = curl_exec($Vd88fc6ed);
$this->_setClientWPCSessionCookie($Vd1fc8eaf);
if ($V81c939b1)
{
$Vd1fc8eaf = $this->_eliminateXMLHeader($Vd1fc8eaf);
}
$this->log($Vd1fc8eaf, FILEMAKER_LOG_DEBUG);
if ($V70106d0d = curl_errno($Vd88fc6ed)) {
if($V70106d0d == 52){
return new FileMaker_Error($this, 'Communication Error: (' . $V70106d0d . ') ' . curl_error($Vd88fc6ed) . ' - The Web Publishing Core and/or FileMaker Server services are not running.', $V70106d0d);
}else if($V70106d0d == 22){
if (stristr("50", curl_error($Vd88fc6ed))) {
return new FileMaker_Error($this, 'Communication Error: (' . $V70106d0d . ') ' . curl_error($Vd88fc6ed) . ' - The Web Publishing Core and/or FileMaker Server services are not running.', $V70106d0d);
}else{
return new FileMaker_Error($this, 'Communication Error: (' . $V70106d0d . ') ' . curl_error($Vd88fc6ed) . ' - This can be due to an invalid username or password, or if the FMPHP privilege is not enabled for that user.', $V70106d0d);
}
}else{
return new FileMaker_Error($this, 'Communication Error: (' . $V70106d0d . ') ' . curl_error($Vd88fc6ed), $V70106d0d);
}
}
curl_close($Vd88fc6ed);
return $Vd1fc8eaf;
}
function getContainerDataURL($V781b3578)
{
if (strncasecmp($V781b3578, '/fmi/xml/cnt', 11) != 0) {
$Va351dce6 = htmlspecialchars_decode($V781b3578);
}
else {
$Va351dce6 = $this->getProperty('hostspec');
if (substr($Va351dce6, -1, 1) == '/') {
$Va351dce6 = substr($Va351dce6, 0, -1);
}
$Va351dce6 .= $V781b3578;
$Va351dce6 = htmlspecialchars_decode($Va351dce6);
}
return $Va351dce6;
}
function _setCurlWPCSessionCookie($Vd88fc6ed)
{
if (isset($_COOKIE["WPCSessionID"])) {
$Vd06f6e6e = $_COOKIE["WPCSessionID"];
if (!is_null($Vd06f6e6e)) {
$V0fbf52c7 = "WPCSessionID=".$Vd06f6e6e;
curl_setopt($Vd88fc6ed, CURLOPT_COOKIE, $V0fbf52c7);
}
}
}
function _setClientWPCSessionCookie($Vd1fc8eaf)
{
$V81c939b1 = preg_match('/WPCSessionID=(\d+?);/m', $Vd1fc8eaf, $V6da3345e);
if ($V81c939b1) {
setcookie("WPCSessionID", $V6da3345e[1]);
}
}
function _getContentLength($Vd1fc8eaf)
{
$V81c939b1 = preg_match('/Content-Length: (\d+)/', $Vd1fc8eaf, $V6da3345e);
if ($V81c939b1) {
return $V6da3345e[1];
}
else
{
return -1;
}
}
function _eliminateXMLHeader($Vd1fc8eaf)
{
$V81c939b1 = strpos($Vd1fc8eaf, "<?xml");
if ($V81c939b1 !== false)
{
return substr($Vd1fc8eaf, $V81c939b1);
}
else
{
return $Vd1fc8eaf;
}
}
function _eliminateContainerHeader($Vd1fc8eaf)
{
$V04d77ddd = strlen("\r\n\r\n");
$V81c939b1 = strpos($Vd1fc8eaf, "\r\n\r\n");
if ($V81c939b1 !== false)
{
return substr($Vd1fc8eaf, $V81c939b1+$V04d77ddd);
}
else
{
return $Vd1fc8eaf;
}
}
}
@@ -0,0 +1,131 @@
<?php
require_once dirname(__FILE__) . '/../Field.php';
require_once dirname(__FILE__) . '/Parser/FMPXMLLAYOUT.php';
class FileMaker_Layout_Implementation
{
var $_fm;
var $_name;
var $_fields = array();
var $_relatedSets = array();
var $_valueLists = array();
var $Vab234ad8 = array();
var $_database;
var $_extended = false;
function FileMaker_Layout_Implementation(&$V0ab34ca9)
{
$this->_fm =& $V0ab34ca9;
}
function getName()
{
return $this->_name;
}
function getDatabase()
{
return $this->_database;
}
function listFields()
{
return array_keys($this->_fields);
}
function getField($V972bf3f0)
{
if (isset($this->_fields[$V972bf3f0])) {
return $this->_fields[$V972bf3f0];
}
return $Vcb5e100e = new FileMaker_Error($this->_fm, 'Field Not Found');
}
function &getFields()
{
return $this->_fields;
}
function listRelatedSets()
{
return array_keys($this->_relatedSets);
}
function &getRelatedSet($Vaca007a7)
{
if (isset($this->_relatedSets[$Vaca007a7])) {
return $this->_relatedSets[$Vaca007a7];
}
return $Vcb5e100e = new FileMaker_Error($this->_fm, 'RelatedSet Not Found');
}
function &getRelatedSets()
{
return $this->_relatedSets;
}
function listValueLists()
{
$Vb4a88417 = $this->loadExtendedInfo();
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
return array_keys($this->_valueLists);
}
function getValueListTwoFields($V993fcb1e, $Vd33e904c = null){
$Vb4a88417 = $this->loadExtendedInfo($Vd33e904c);
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
return isset($this->_valueLists[$V993fcb1e]) ?
$this->Vab234ad8[$V993fcb1e] : null;
}
function getValueList($V993fcb1e, $Vd33e904c = null)
{
$Vb4a88417 = $this->loadExtendedInfo($Vd33e904c);
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
return isset($this->_valueLists[$V993fcb1e]) ?
$this->_valueLists[$V993fcb1e] : null;
}
function getValueListsTwoFields($Vd33e904c = null)
{
$Vb4a88417 = $this->loadExtendedInfo($Vd33e904c);
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
return $this->Vab234ad8;
}
function getValueLists($Vd33e904c = null)
{
$Vb4a88417 = $this->loadExtendedInfo($Vd33e904c);
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
return $this->_valueLists;
}
function loadExtendedInfo($Vd33e904c = null)
{
if (!$this->_extended) {
if($Vd33e904c != null){
$V0f635d0e = $this->_fm->_execute(array('-db' => $this->_fm->getProperty('database'),
'-lay' => $this->getName(),
'-recid' => $Vd33e904c,
'-view' => null),
'FMPXMLLAYOUT');
}else{
$V0f635d0e = $this->_fm->_execute(array('-db' => $this->_fm->getProperty('database'),
'-lay' => $this->getName(),
'-view' => null),
'FMPXMLLAYOUT');
}
$V3643b863 = new FileMaker_Parser_FMPXMLLAYOUT($this->_fm);
$Vb4a88417 = $V3643b863->parse($V0f635d0e);
if (FileMaker::isError($Vb4a88417)) {
return $Vb4a88417;
}
$V3643b863->setExtendedInfo($this);
$this->_extended = true;
}
return $this->_extended;
}
}
@@ -0,0 +1,118 @@
<?php
class FileMaker_Parser_FMPXMLLAYOUT
{
var $Vd05b6ed7;
var $Ve3ad9440;
var $V6a45a325;
var $_fm;
var $V5431b8d4;
var $V6de51026 = false;
var $V191be3bd;
var $V32e51cce;
var$V582ddd29;
function FileMaker_Parser_FMPXMLLAYOUT(&$V0ab34ca9)
{
$this->_fm =& $V0ab34ca9;
}
function parse($V0f635d0e)
{
if (empty($V0f635d0e)) {
return new FileMaker_Error($this->_fm, 'Did not receive an XML document from the server.');
}
$this->V5431b8d4= xml_parser_create();
xml_set_object($this->V5431b8d4, $this);
xml_parser_set_option($this->V5431b8d4, XML_OPTION_CASE_FOLDING, false);
xml_parser_set_option($this->V5431b8d4, XML_OPTION_TARGET_ENCODING, 'UTF-8');
xml_set_element_handler($this->V5431b8d4, '_start', '_end');
xml_set_character_data_handler($this->V5431b8d4, '_cdata');
if (!@xml_parse($this->V5431b8d4, $V0f635d0e)) {
return new FileMaker_Error(sprintf('XML error: %s at line %d',
xml_error_string(xml_get_error_code($this->V5431b8d4)),
xml_get_current_line_number($this->V5431b8d4)));
}
xml_parser_free($this->V5431b8d4);
if (!empty($this->Vcb5e100e)) {
return new FileMaker_Error($this->_fm, null, $this->Vcb5e100e);
}
$this->V6de51026= true;
return true;
}
function setExtendedInfo(&$Vc6140495)
{
if (!$this->V6de51026) {
return new FileMaker_Error($this->_fm, 'Attempt to set extended information before parsing data.');
}
$Vc6140495->_valueLists = $this->Ve3ad9440;
$Vc6140495->Vab234ad8= $this->V6a45a325;
foreach ($this->Vd05b6ed7 as $V972bf3f0 => $V77be71a4) {
$V8fa14cdd =& $Vc6140495->getField($V972bf3f0);
$V8fa14cdd->_impl->_styleType = $V77be71a4['styleType'];
$V8fa14cdd->_impl->_valueList = $V77be71a4['valueList'] ? $V77be71a4['valueList'] : null;
}
}
function _start($V3643b863, $Vb068931c, $V5d06e8a3)
{
$V5d06e8a3 = $this->_fm->toOutputCharset($V5d06e8a3);
switch ($Vb068931c) {
case 'FIELD':
$this->V191be3bd= $V5d06e8a3['NAME'];
break;
case 'STYLE':
$this->Vd05b6ed7[$this->V191be3bd]['styleType'] = $V5d06e8a3['TYPE'];
$this->Vd05b6ed7[$this->V191be3bd]['valueList'] = $V5d06e8a3['VALUELIST'];
break;
case 'VALUELIST':
$this->Ve3ad9440[$V5d06e8a3['NAME']] = array();
$this->V6a45a325[$V5d06e8a3['NAME']] = array();
$this->V32e51cce= $V5d06e8a3['NAME'];
break;
case 'VALUE':
$this->V582ddd29= $V5d06e8a3['DISPLAY'];
$this->Ve3ad9440[$this->V32e51cce][] = '';
break;
}
$this->inside_data = false;
}
function _end($V3643b863, $Vb068931c)
{
switch ($Vb068931c) {
case 'FIELD':
$this->V191be3bd= null;
break;
case 'VALUELIST':
$this->V32e51cce= null;
break;
}
$this->inside_data = false;
}
function _cdata($V3643b863, $V8d777f38)
{
if ($this->V32e51cce!== null && preg_match('|\S|', $V8d777f38)) {
if($this->inside_data){
$V78656626 = $this->V6a45a325[$this->V32e51cce][$this->V582ddd29];
$V8d777f38 = $V78656626 . $V8d777f38;
}
$V83ee0926 = array( $this->V582ddd29=> $this->_fm->toOutputCharset($V8d777f38));
$this->associative_array_push($this->V6a45a325[$this->V32e51cce], $V83ee0926);
$this->Ve3ad9440[$this->V32e51cce][count($this->Ve3ad9440[$this->V32e51cce]) - 1] .= $this->_fm->toOutputCharset($V8d777f38);
$this->inside_data = true;
}
}
function associative_array_push(&$Vf1f713c9, $V34ec78fc) {
if (is_array($V34ec78fc)) {
foreach ($V34ec78fc as $V3c6e0b8a => $V2063c160) {
$Vf1f713c9[$V3c6e0b8a] = $V2063c160;
}
return $Vf1f713c9;
}
return false;
}
}
@@ -0,0 +1,281 @@
<?php
require_once dirname(__FILE__) . '/../../Layout.php';
require_once dirname(__FILE__) . '/../../RelatedSet.php';
require_once dirname(__FILE__) . '/../../Record.php';
require_once dirname(__FILE__) . '/../../Field.php';
class FileMaker_Parser_FMResultSet
{
var $Vcb5e100e;
var $Vf5bf48aa;
var $V1ea7e575;
var $V9f81f3c0 = array();
var $Vaae0d98d;
var $Vae581270 = array();
var $V6e52c40b = array();
var $Ve13f1c92;
var $V43432a31;
var $V51bc3e3b;
var $V26005321;
var $V6468d939;
var $_fm;
var $V5431b8d4;
var $V6de51026 = false;
var $_result;
var $_layout;
function FileMaker_Parser_FMResultSet(&$V0ab34ca9)
{
$this->_fm =& $V0ab34ca9;
}
function parse($V0f635d0e)
{
if (empty($V0f635d0e)) {
return new FileMaker_Error($this->_fm, 'Did not receive an XML document from the server.');
}
$this->V5431b8d4= xml_parser_create('UTF-8');
xml_set_object($this->V5431b8d4, $this);
xml_parser_set_option($this->V5431b8d4, XML_OPTION_CASE_FOLDING, false);
xml_parser_set_option($this->V5431b8d4, XML_OPTION_TARGET_ENCODING, 'UTF-8');
xml_set_element_handler($this->V5431b8d4, '_start', '_end');
xml_set_character_data_handler($this->V5431b8d4, '_cdata');
if (!@xml_parse($this->V5431b8d4, $V0f635d0e)) {
return new FileMaker_Error($this->_fm,
sprintf('XML error: %s at line %d',
xml_error_string(xml_get_error_code($this->V5431b8d4)),
xml_get_current_line_number($this->V5431b8d4)));
}
xml_parser_free($this->V5431b8d4);
if (!empty($this->Vcb5e100e)) {
return new FileMaker_Error($this->_fm, null, $this->Vcb5e100e);
}
if (version_compare($this->Vf5bf48aa['version'], FileMaker::getMinServerVersion(), '<')) {
return new FileMaker_Error($this->_fm, 'This API requires at least version ' . FileMaker::getMinServerVersion() . ' of FileMaker Server to run (detected ' . $this->Vf5bf48aa['version'] . ').');
}
$this->V6de51026= true;
return true;
}
function setResult(&$Vb4a88417, $V561b2299 = 'FileMaker_Record')
{
if (!$this->V6de51026) {
return new FileMaker_Error($this->_fm, 'Attempt to get a result object before parsing data.');
}
if ($this->_result) {
$Vb4a88417 =& $this->_result;
return true;
}
$Vb4a88417->_impl->_layout = new FileMaker_Layout($this->_fm);
$this->setLayout($Vb4a88417->_impl->_layout);
$Vb4a88417->_impl->_tableCount = $this->V1ea7e575['total-count'];
$Vb4a88417->_impl->_foundSetCount = $this->Vaae0d98d['count'];
$Vb4a88417->_impl->_fetchCount = $this->Vaae0d98d['fetch-size'];
$V6e52c40b = array();
foreach ($this->V6e52c40b as $Vde17f0f2) {
$V4b43b0ae = new $V561b2299($Vb4a88417->_impl->_layout);
$V4b43b0ae->_impl->_fields = $Vde17f0f2['fields'];
$V4b43b0ae->_impl->_recordId = $Vde17f0f2['record-id'];
$V4b43b0ae->_impl->_modificationId = $Vde17f0f2['mod-id'];
if ($Vde17f0f2['children']) {
foreach ($Vde17f0f2['children'] as $Vaca007a7 => $V268184c1) {
$V4b43b0ae->_impl->_relatedSets[$Vaca007a7] = array();
foreach ($V268184c1 as $V1b7d5726) {
$V4a8a08f0 = new $V561b2299($Vb4a88417->_impl->_layout->getRelatedSet($Vaca007a7));
$V4a8a08f0->_impl->_fields = $V1b7d5726['fields'];
$V4a8a08f0->_impl->_recordId = $V1b7d5726['record-id'];
$V4a8a08f0->_impl->_modificationId = $V1b7d5726['mod-id'];
$V4a8a08f0->_impl->_parent = $V4b43b0ae;
$V4b43b0ae->_impl->_relatedSets[$Vaca007a7][] = $V4a8a08f0;
}
}
}
$V6e52c40b[] = $V4b43b0ae;
}
$Vb4a88417->_impl->_records =& $V6e52c40b;
$this->_result =& $Vb4a88417;
true;
}
function setLayout(&$Vc6140495)
{
if (!$this->V6de51026) {
return new FileMaker_Error($this->_fm, 'Attempt to get a layout object before parsing data.');
}
if ($this->_layout) {
$Vc6140495 =& $this->_layout;
return true;
}
$Vc6140495->_impl->_name = $this->V1ea7e575['layout'];
$Vc6140495->_impl->_database = $this->V1ea7e575['database'];
foreach ($this->V9f81f3c0 as $V06e3d36f) {
$V8fa14cdd = new FileMaker_Field($Vc6140495);
$V8fa14cdd->_impl->_name = $V06e3d36f['name'];
$V8fa14cdd->_impl->_autoEntered = (bool)($V06e3d36f['auto-enter'] == 'yes');
$V8fa14cdd->_impl->_global = (bool)($V06e3d36f['global'] == 'yes');
$V8fa14cdd->_impl->_maxRepeat = (int)$V06e3d36f['max-repeat'];
$V8fa14cdd->_impl->_result = $V06e3d36f['result'];
$V8fa14cdd->_impl->_type = $V06e3d36f['type'];
if ($V06e3d36f['not-empty'] == 'yes') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_NOTEMPTY] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_NOTEMPTY;
}
if ($V06e3d36f['numeric-only'] == 'yes') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_NUMERICONLY] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_NUMERICONLY;
}
if (array_key_exists('max-characters', $V06e3d36f)) {
$V8fa14cdd->_impl->_maxCharacters = (int) $V06e3d36f['max-characters'];
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_MAXCHARACTERS] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_MAXCHARACTERS;
}
if ($V06e3d36f['four-digit-year'] == 'yes') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_FOURDIGITYEAR] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_FOURDIGITYEAR;
}
if ($V06e3d36f['time-of-day'] == 'yes') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_TIMEOFDAY] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_TIMEOFDAY;
}
if ($V06e3d36f['four-digit-year'] == 'no' && $V06e3d36f['result'] == 'timestamp') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_TIMESTAMP_FIELD] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_TIMESTAMP_FIELD;
}
if ($V06e3d36f['four-digit-year'] == 'no' && $V06e3d36f['result'] == 'date') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_DATE_FIELD] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_DATE_FIELD;
}
if ($V06e3d36f['time-of-day'] == 'no' && $V06e3d36f['result'] == 'time') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_TIME_FIELD] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_TIME_FIELD;
}
$Vc6140495->_impl->_fields[$V8fa14cdd->getName()] = $V8fa14cdd;
}
foreach ($this->Vae581270 as $Vaca007a7 => $V53256610) {
$V4b43b0ae = new FileMaker_RelatedSet($Vc6140495);
$V4b43b0ae->_impl->_name = $Vaca007a7;
foreach ($V53256610 as $V06e3d36f) {
$V8fa14cdd = new FileMaker_Field($V4b43b0ae);
$V8fa14cdd->_impl->_name = $V06e3d36f['name'];
$V8fa14cdd->_impl->_autoEntered = (bool)($V06e3d36f['auto-enter'] == 'yes');
$V8fa14cdd->_impl->_global = (bool)($V06e3d36f['global'] == 'yes');
$V8fa14cdd->_impl->_maxRepeat = (int)$V06e3d36f['max-repeat'];
$V8fa14cdd->_impl->_result = $V06e3d36f['result'];
$V8fa14cdd->_impl->_type = $V06e3d36f['type'];
if ($V06e3d36f['not-empty'] == 'yes') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_NOTEMPTY] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_NOTEMPTY;
}
if ($V06e3d36f['numeric-only'] == 'yes') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_NUMERICONLY] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_NUMERICONLY;
}
if (array_key_exists('max-characters', $V06e3d36f)) {
$V8fa14cdd->_impl->_maxCharacters = (int) $V06e3d36f['max-characters'];
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_MAXCHARACTERS] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_MAXCHARACTERS;
}
if ($V06e3d36f['four-digit-year'] == 'yes') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_FOURDIGITYEAR] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_FOURDIGITYEAR;
}
if ($V06e3d36f['time-of-day'] == 'yes' || $V06e3d36f['result'] == 'time') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_TIMEOFDAY] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_TIMEOFDAY;
}
if ($V06e3d36f['four-digit-year'] == 'no' && $V06e3d36f['result'] == 'timestamp') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_TIMESTAMP_FIELD] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_TIMESTAMP_FIELD;
}
if ($V06e3d36f['four-digit-year'] == 'no' && $V06e3d36f['result'] == 'date') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_DATE_FIELD] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_DATE_FIELD;
}
if ($V06e3d36f['time-of-day'] == 'no' && $V06e3d36f['result'] == 'time') {
$V8fa14cdd->_impl->_validationRules[FILEMAKER_RULE_TIME_FIELD] = true;
$V8fa14cdd->_impl->_validationMask |= FILEMAKER_RULE_TIME_FIELD;
}
$V4b43b0ae->_impl->_fields[$V8fa14cdd->getName()] = $V8fa14cdd;
}
$Vc6140495->_impl->_relatedSets[$V4b43b0ae->getName()] = $V4b43b0ae;
}
$this->_layout =& $Vc6140495;
return true;
}
function _start($V3643b863, $Vb068931c, $V5d06e8a3)
{
$V5d06e8a3 = $this->_fm->toOutputCharset($V5d06e8a3);
switch ($Vb068931c) {
case 'error':
$this->Vcb5e100e= $V5d06e8a3['code'];
break;
case 'product':
$this->Vf5bf48aa= $V5d06e8a3;
break;
case 'datasource':
$this->V1ea7e575= $V5d06e8a3;
break;
case 'relatedset-definition':
$this->Vae581270[$V5d06e8a3['table']] = array();
$this->Ve13f1c92= $V5d06e8a3['table'];
break;
case 'field-definition':
if ($this->Ve13f1c92) {
$this->Vae581270[$this->Ve13f1c92][] = $V5d06e8a3;
} else {
$this->V9f81f3c0[] = $V5d06e8a3;
}
break;
case 'resultset':
$this->Vaae0d98d= $V5d06e8a3;
break;
case 'relatedset':
$this->Ve13f1c92= $V5d06e8a3['table'];
$this->V51bc3e3b= $this->V43432a31;
$this->V51bc3e3b['children'][$this->Ve13f1c92] = array();
$this->V43432a31= null;
break;
case 'record':
$this->V43432a31=
array('record-id' => $V5d06e8a3['record-id'],
'mod-id' => $V5d06e8a3['mod-id'],
'fields' => array(),
'children' => array());
break;
case 'field':
$this->V26005321= $V5d06e8a3['name'];
$this->V43432a31['fields'][$this->V26005321] = array();
break;
case 'data':
$this->V6468d939= '';
break;
}
}
function _end($V3643b863, $Vb068931c)
{
switch ($Vb068931c) {
case 'relatedset-definition':
$this->Ve13f1c92= null;
break;
case 'relatedset':
$this->Ve13f1c92= null;
$this->V43432a31= $this->V51bc3e3b;
$this->V51bc3e3b= null;
break;
case 'record':
if ($this->Ve13f1c92) {
$this->V51bc3e3b['children'][$this->Ve13f1c92][] = $this->V43432a31;
} else {
$this->V6e52c40b[] = $this->V43432a31;
}
$this->V43432a31= null;
break;
case 'field':
$this->V26005321= null;
break;
case 'data':
$this->V43432a31['fields'][$this->V26005321][] = $this->V6468d939;
$this->V6468d939= null;
break;
}
}
function _cdata($V3643b863, $V8d777f38)
{
$this->V6468d939.= $this->_fm->toOutputCharset($V8d777f38);
}
}
@@ -0,0 +1,302 @@
<?php
class FileMaker_Record_Implementation
{
var $_fields = array();
var $V5e7ec2d5 = array();
var $_recordId;
var $_modificationId;
var $_layout;
var $_fm;
var $_relatedSets = array();
var $_parent = null;
function FileMaker_Record_Implementation(&$Vc6140495)
{
$this->_layout =& $Vc6140495;
$this->_fm =& $Vc6140495->_impl->_fm;
}
function &getLayout()
{
return $this->_layout;
}
function getFields()
{
return $this->_layout->listFields();
}
function getField($V06e3d36f, $V6d786dc7 = 0)
{
if (!isset($this->_fields[$V06e3d36f])) {
$this->_fm->log('Field "' . $V06e3d36f . '" not found.', FILEMAKER_LOG_INFO);
return "";
}
if (!isset($this->_fields[$V06e3d36f][$V6d786dc7])) {
$this->_fm->log('Repetition "' . (int)$V6d786dc7 . '" does not exist for "' . $V06e3d36f . '".', FILEMAKER_LOG_INFO);
return "";
}
return htmlspecialchars($this->_fields[$V06e3d36f][$V6d786dc7]);
}
function getFieldUnencoded($V06e3d36f, $V6d786dc7 = 0)
{
if (!isset($this->_fields[$V06e3d36f])) {
$this->_fm->log('Field "' . $V06e3d36f . '" not found.', FILEMAKER_LOG_INFO);
return "";
}
if (!isset($this->_fields[$V06e3d36f][$V6d786dc7])) {
$this->_fm->log('Repetition "' . (int)$V6d786dc7 . '" does not exist for "' . $V06e3d36f . '".', FILEMAKER_LOG_INFO);
return "";
}
return $this->_fields[$V06e3d36f][$V6d786dc7];
}
function getFieldAsTimestamp($V972bf3f0, $V6d786dc7 = 0)
{
$V2063c160 = $this->getField($V972bf3f0, $V6d786dc7);
if (FileMaker::isError($V2063c160)) {
return $V2063c160;
}
$V06e3d36f =& $this->_layout->getField($V972bf3f0);
if (FileMaker::isError($V06e3d36f)) {
return $V06e3d36f;
}
switch ($V06e3d36f->getResult()) {
case 'date':
$V78f0805f = explode('/', $V2063c160);
if (count($V78f0805f) != 3) {
return new FileMaker_Error($this->_fm, 'Failed to parse "' . $V2063c160 . '" as a FileMaker date value.');
}
$Vd7e6d55b = @mktime(0, 0, 0, $V78f0805f[0], $V78f0805f[1], $V78f0805f[2]);
if ($Vd7e6d55b === false) {
return new FileMaker_Error($this->_fm, 'Failed to convert "' . $V2063c160 . '" to a UNIX timestamp.');
}
break;
case 'time':
$V78f0805f = explode(':', $V2063c160);
if (count($V78f0805f) != 3) {
return new FileMaker_Error($this->_fm, 'Failed to parse "' . $V2063c160 . '" as a FileMaker time value.');
}
$Vd7e6d55b = @mktime($V78f0805f[0], $V78f0805f[1], $V78f0805f[2], 1, 1, 1970);
if ($Vd7e6d55b === false) {
return new FileMaker_Error($this->_fm, 'Failed to convert "' . $V2063c160 . '" to a UNIX timestamp.');
}
break;
case 'timestamp':
$Vd7e6d55b = @strtotime($V2063c160);
if ($Vd7e6d55b === false) {
return new FileMaker_Error($this->_fm, 'Failed to convert "' . $V2063c160 . '" to a UNIX timestamp.');
}
break;
default:
$Vd7e6d55b = new FileMaker_Error($this->_fm, 'Only time, date, and timestamp fields can be converted to UNIX timestamps.');
break;
}
return $Vd7e6d55b;
}
function setField($V06e3d36f, $V2063c160, $V6d786dc7 = 0)
{
$this->_fields[$V06e3d36f][$V6d786dc7] = $V2063c160;
$this->V5e7ec2d5[$V06e3d36f][$V6d786dc7] = true;
return $V2063c160;
}
function setFieldFromTimestamp($V972bf3f0, $Vd7e6d55b, $V6d786dc7 = 0)
{
$V06e3d36f = $this->_layout->getField($V972bf3f0);
if (FileMaker::isError($V06e3d36f)) {
return $V06e3d36f;
}
switch ($V06e3d36f->getResult()) {
case 'date':
return $this->setField($V972bf3f0, date('m/d/Y', $Vd7e6d55b), $V6d786dc7);
case 'time':
return $this->setField($V972bf3f0, date('H:i:s', $Vd7e6d55b), $V6d786dc7);
case 'timestamp':
return $this->setField($V972bf3f0, date('m/d/Y H:i:s', $Vd7e6d55b), $V6d786dc7);
}
return new FileMaker_Error($this->_fm, 'Only time, date, and timestamp fields can be set to the value of a timestamp.');
}
function getRecordId()
{
return $this->_recordId;
}
function getModificationId()
{
return $this->_modificationId;
}
function &getRelatedSet($Vaca007a7)
{
if (empty($this->_relatedSets[$Vaca007a7])) {
$Vcb5e100e = new FileMaker_Error($this->_fm, 'Related set "' . $Vaca007a7 . '" not present.');
return $Vcb5e100e;
}
return $this->_relatedSets[$Vaca007a7];
}
function &newRelatedRecord(&$Vd0e45878, $Vaca007a7)
{
$V3a2d7564 =& $this->_layout->getRelatedSet($Vaca007a7);
if (FileMaker::isError($V3a2d7564)) {
return $V3a2d7564;
}
$Vde17f0f2 = new FileMaker_Record($V3a2d7564);
$Vde17f0f2->_impl->_parent =& $Vd0e45878;
return $Vde17f0f2;
}
function &getParent()
{
return $this->_parent;
}
function validate($V972bf3f0 = null)
{
$V1dccadfe =& $this->_fm->newAddCommand($this->_layout->getName(), $this->_fields);
return $V1dccadfe->validate($V972bf3f0);
}
function commit()
{
if ($this->_fm->getProperty('prevalidate')) {
$V9f7d0ee8 = $this->validate();
if (FileMaker::isError($V9f7d0ee8)) {
return $V9f7d0ee8;
}
}
if (is_null($this->_parent)) {
if ($this->_recordId) {
return $this->_commitEdit();
} else {
return $this->_commitAdd();
}
} else {
if (!$this->_parent->getRecordId()) {
return new FileMaker_Error($this->_fm, 'You must commit the parent record first before you can commit its children.');
}
if ($this->_recordId) {
return $this->_commitEditChild();
} else {
return $this->_commitAddChild();
}
}
}
function delete()
{
if (empty($this->_recordId)) {
return new FileMaker_Error($this->_fm, 'You cannot delete a record that does not exist on the server.');
}
if ($this->_parent) {
$Vd05b6ed7 = array();
$V1dccadfe =& $this->_fm->newEditCommand($this->_parent->_impl->_layout->getName(),
$this->_parent->_impl->_recordId,
$Vd05b6ed7);
$V1dccadfe->_impl->_setdeleteRelated($this->_layout->getName().".".$this->_recordId);
return $V1dccadfe->execute();
}
else {
$Vc6140495 = $this->_layout->getName();
$V1dccadfe =& $this->_fm->newDeleteCommand($Vc6140495, $this->_recordId);
return $V1dccadfe->execute();
}
}
function _commitAdd()
{
$V1dccadfe =& $this->_fm->newAddCommand($this->_layout->getName(), $this->_fields);
$Vd1fc8eaf = $V1dccadfe->execute();
if (FileMaker::isError($Vd1fc8eaf)) {
return $Vd1fc8eaf;
}
$V6e52c40b =& $Vd1fc8eaf->getRecords();
return $this->_updateFrom($V6e52c40b[0]);
}
function _commitEdit()
{
foreach ($this->_fields as $V972bf3f0 => $Vd4680e80) {
foreach ($Vd4680e80 as $V6d786dc7 => $V2063c160) {
if (isset($this->V5e7ec2d5[$V972bf3f0][$V6d786dc7])) {
$V8977dfac[$V972bf3f0][$V6d786dc7] = $V2063c160;
}
}
}
$V1dccadfe =& $this->_fm->newEditCommand($this->_layout->getName(),
$this->_recordId,
$V8977dfac);
$Vd1fc8eaf = $V1dccadfe->execute();
if (FileMaker::isError($Vd1fc8eaf)) {
return $Vd1fc8eaf;
}
$V6e52c40b =& $Vd1fc8eaf->getRecords();
return $this->_updateFrom($V6e52c40b[0]);
}
function _commitAddChild()
{
$Vd05b6ed7 = array();
foreach ($this->_fields as $Vb068931c => $Vee0525e4) {
$Vd05b6ed7[$Vb068931c . '.0'] = $Vee0525e4;
}
$V1dccadfe =& $this->_fm->newEditCommand($this->_parent->_impl->_layout->getName(),
$this->_parent->getRecordId(),
$Vd05b6ed7);
$Vd1fc8eaf = $V1dccadfe->execute();
if (FileMaker::isError($Vd1fc8eaf)) {
return $Vd1fc8eaf;
}
$V6e52c40b =& $Vd1fc8eaf->getRecords();
$Vd0e45878 =& $V6e52c40b[0];
$V268184c1 =& $Vd0e45878->getRelatedSet($this->_layout->getName());
$V98bd1c45 = array_pop($V268184c1);
return $this->_updateFrom($V98bd1c45);
}
function _commitEditChild()
{
foreach ($this->_fields as $V972bf3f0 => $Vee0525e4) {
foreach ($Vee0525e4 as $V6d786dc7 => $V2063c160) {
if (!empty($this->V5e7ec2d5[$V972bf3f0][$V6d786dc7])) {
$V8977dfac[$V972bf3f0 . '.' . $this->_recordId][$V6d786dc7] = $V2063c160;
}
}
}
$V1dccadfe =& $this->_fm->newEditCommand($this->_parent->_impl->_layout->getName(),
$this->_parent->getRecordId(),
$V8977dfac);
$Vd1fc8eaf = $V1dccadfe->execute();
if (FileMaker::isError($Vd1fc8eaf)) {
return $Vd1fc8eaf;
}
$V6e52c40b =& $Vd1fc8eaf->getRecords();
$Vd0e45878 =& $V6e52c40b[0];
$V268184c1 =& $Vd0e45878->getRelatedSet($this->_layout->getName());
foreach ($V268184c1 as $V1b7d5726) {
if ($V1b7d5726->getRecordId() == $this->_recordId) {
return $this->_updateFrom($V1b7d5726);
break;
}
}
return new FileMaker_Error('Failed to find the updated child in the response.');
}
function _updateFrom(&$Vde17f0f2)
{
$this->_recordId = $Vde17f0f2->getRecordId();
$this->_modificationId = $Vde17f0f2->getModificationId();
$this->_fields = $Vde17f0f2->_impl->_fields;
$this->_layout =& $Vde17f0f2->_impl->_layout;
$this->_relatedSets =& $Vde17f0f2->_impl->_relatedSets;
$this->V5e7ec2d5= array();
return true;
}
function getRelatedRecordById($V97f7e518, $Va6ec9c02)
{
$Vaca007a7 = $this->getRelatedSet($V97f7e518);
if(FileMaker::IsError($Vaca007a7)){
$Vcb5e100e = new FileMaker_Error($this->_fm, 'Related set "' . $Vaca007a7 . '" not present.');
return $Vcb5e100e;
}else{
foreach ($Vaca007a7 as $V1b7d5726) {
if( $V1b7d5726->getRecordId() == $Va6ec9c02){
return $V1b7d5726;
}
}
$Vcb5e100e = new FileMaker_Error($this->_fm, 'Record not present.');
return $Vcb5e100e;
}
}
}
@@ -0,0 +1,37 @@
<?php
class FileMaker_RelatedSet_Implementation
{
var $_layout;
var $_fm;
var $_name;
var $_fields = array();
function FileMaker_RelatedSet_Implementation(&$Vc6140495)
{
$this->_layout =& $Vc6140495;
$this->_fm =& $Vc6140495->_impl->_fm;
}
function getName()
{
return $this->_name;
}
function listFields()
{
return array_keys($this->_fields);
}
function &getField($V972bf3f0)
{
if (isset($this->_fields[$V972bf3f0])) {
return $this->_fields[$V972bf3f0];
}
$Vcb5e100e = new FileMaker_Error($this->_fm, 'Field Not Found');
return $Vcb5e100e;
}
function &getFields()
{
return $this->_fields;
}
function loadExtendedInfo()
{
return new FileMaker_Error($this->_fm, 'Related sets do not support extended information.');
}
}
@@ -0,0 +1,52 @@
<?php
class FileMaker_Result_Implementation
{
var $_fm;
var $_layout;
var $_records;
var $_tableCount;
var $_foundSetCount;
var $_fetchCount;
function FileMaker_Result_Implementation(&$V0ab34ca9)
{
$this->_fm = &$V0ab34ca9;
}
function &getLayout()
{
return $this->_layout;
}
function &getRecords()
{
return $this->_records;
}
function getFields()
{
return $this->_layout->listFields();
}
function getRelatedSets()
{
return $this->_layout->listRelatedSets();
}
function getTableRecordCount()
{
return $this->_tableCount;
}
function getFoundSetCount()
{
return $this->_foundSetCount;
}
function getFetchCount()
{
return $this->_fetchCount;
}
function getFirstRecord()
{
return $this->_records[0];
}
function getLastRecord()
{
return $this->_records[sizeof($this->_records)-1];
}
}
+270
View File
@@ -0,0 +1,270 @@
<?php
/**
* FileMaker API for PHP
*
* @package FileMaker
*
* Copyright © 2005-2009, 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 Load delegate and field classes.
*/
require_once dirname(__FILE__) . '/Implementation/LayoutImpl.php';
require_once dirname(__FILE__) . '/Field.php';
/**#@-*/
/**
* Layout description class. Contains all the information about a
* specific layout. Can be requested directly or returned as part of
* a result set.
*
* @package FileMaker
*/
class FileMaker_Layout
{
/**
* Implementation. This is the object that actually implements the
* layout functionality.
*
* @var FileMaker_Layout_Implementation
* @access private
*/
var $_impl;
/**
* Layout object constructor.
*
* @param FileMaker_Implementation &$fm FileMaker_Implementation object
* that this layout was created through.
*/
function FileMaker_Layout(&$fm)
{
$this->_impl = new FileMaker_Layout_Implementation($fm);
}
/**
* Returns the name of this layout.
*
* @return string Layout name.
*/
function getName()
{
return $this->_impl->getName();
}
/**
* Returns the name of the database that this layout is in.
*
* @return string Database name.
*/
function getDatabase()
{
return $this->_impl->getDatabase();
}
/**
* Returns an array with the names of all fields in this layout.
*
* @return array List of field names as strings.
*/
function listFields()
{
return $this->_impl->listFields();
}
/**
* Returns a FileMaker_Field object that describes the specified field.
*
* @param string $fieldName Name of field.
*
* @return FileMaker_Field|FileMaker_Error Field object, if successful.
* Otherwise, an Error object.
*/
function getField($fieldName)
{
return $this->_impl->getField($fieldName);
}
/**
* Returns an associative array with the names of all fields as
* keys and FileMaker_Field objects as the array values.
*
* @return array Array of {@link FileMaker_Field} objects.
*/
function &getFields()
{
return $this->_impl->getFields();
}
/**
* Returns an array of related table names for all portals on
* this layout.
*
* @return array List of related table names as strings.
*/
function listRelatedSets()
{
return $this->_impl->listRelatedSets();
}
/**
* Returns a FileMaker_RelatedSet object that describes the specified
* portal.
*
* @param string $relatedSet Name of the related table for a portal.
*
* @return FileMaker_RelatedSet|FileMaker_Error RelatedSet object, if
* successful. Otherwise, an Error object.
*/
function &getRelatedSet($relatedSet)
{
return $this->_impl->getRelatedSet($relatedSet);
}
/**
* Returns an associative array with the related table names of all
* portals as keys and FileMaker_RelatedSet objects as the array values.
*
* @return array Array of {@link FileMaker_RelatedSet} objects.
*/
function &getRelatedSets()
{
return $this->_impl->getRelatedSets();
}
/**
* Returns the names of any value lists associated with this
* layout.
*
* @return array List of value list names as strings.
*/
function listValueLists()
{
return $this->_impl->listValueLists();
}
/**
* Returns the list of defined values in the specified value list.
*
* @param string $valueList Name of value list.
* @param string $recid Record from which the value list should be
* displayed.
*
* @return array List of defined values.
* @deprecated Use getValueListTwoFields instead.
* @see getValueListTwoFields
*/
function getValueList($valueList, $recid = null)
{
return $this->_impl->getValueList($valueList, $recid);
}
/**
* Returns the list of defined values in the specified value list.
* This method supports single, 2nd only, and both fields value lists.
*
* @param string $valueList Name of value list.
* @param string $recid Record from which the value list should be
* displayed.
*
* @return array of display names and its corresponding
* value from the value list.
*/
function getValueListTwoFields($valueList, $recid = null)
{
return $this->_impl->getValueListTwoFields($valueList, $recid);
}
/**
* Returns a multi-level associative array of value lists.
* The top-level array has names of value lists as keys and arrays as
* values. The second level arrays are the lists of defined values from
* each value list.
*
* @param string $recid Record from which the value list should be
* displayed.
*
* @return array Array of value-list arrays.
* @deprecated Use getValueListTwoFields instead.
* @see getValueListsTwoFields
*/
function getValueLists($recid = null)
{
return $this->_impl->getValueLists($recid);
}
/**
* Returns a multi-level associative array of value lists.
* The top-level array has names of value lists as keys and associative arrays as
* values. The second level associative arrays are lists of display name and its corresponding
* value from the value list.
*
* @param string $recid Record from which the value list should be
* displayed.
*
* @return array Array of value-list associative arrays.
*/
function getValueListsTwoFields($recid = null)
{
return $this->_impl->getValueListsTwoFields($recid);
}
/**
* Loads extended (FMPXMLLAYOUT) layout information.
*
* @access private
*
* @param string $recid Record from which to load extended information.
*
* @return boolean|FileMaker_Error TRUE, if successful. Otherwise, an
* Error object.
*/
function loadExtendedInfo($recid = null)
{
return $this->_impl->loadExtendedInfo($recid);
}
}
File diff suppressed because it is too large Load Diff
+301
View File
@@ -0,0 +1,301 @@
<?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 Load delegate.
*/
require_once dirname(__FILE__) . '/Implementation/RecordImpl.php';
/**#@-*/
/**
* Default Record class that represents each record of a result set.
*
* From a Record object, you can get field data, edit and delete the record,
* get its parent record, get its related record set, and create related
* records.
*
* Instead of this class, you can specify a different class to use for Record
* objects. To specify the record class to use, open the
* FileMaker/conf/filemaker-api.php configuration file where the API is
* installed. Then set $__FM_CONFIG['recordClass'] to the name of the record
* class to use. The class you specify should be a subclass of the
* FileMaker_Record base class or encapsulate its functionality. In PHP 5,
* this class would implement an interface that alternate classes would be
* required to implement as well.
*
* @package FileMaker
*/
class FileMaker_Record
{
/**
* The Implementation that implements this record.
*
* @var FileMaker_Record_Implementation
* @access private
*/
var $_impl;
/**
* Record object constructor.
*
* @param FileMaker_Layout|FileMaker_RelatedSet Specify either the Layout
* object associated with this record or the Related Set object
* that this record is a member of.
*/
function FileMaker_Record(&$layout)
{
$this->_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
* '&amp;', '&quot;', '&lt;', and '&gt;', 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);
}
}
+3
View File
@@ -0,0 +1,3 @@
Timestamp Filename Error Message
2016-09-20 15:07:37.317 +0900 FMPHP_Sample.fmp12 0 *** Started consistency check, total of 216 block(s) to check
2016-09-20 15:07:37.323 +0900 FMPHP_Sample.fmp12 0 *** Completed consistency check, checked 216 block(s)
+108
View File
@@ -0,0 +1,108 @@
<?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 Include delegate.
*/
require_once dirname(__FILE__) . '/Implementation/RelatedSetImpl.php';
/**#@-*/
/**
* Portal description class. Contains all the information about a
* specific set of related records defined by a portal on a layout.
*
* @package FileMaker
*/
class FileMaker_RelatedSet
{
/**
* Implementation. This is the object that actually implements the
* portal functionality.
*
* @var FileMaker_RelatedSet_Implementation
* @access private
*/
var $_impl;
/**
* Portal constructor.
*
* @param FileMaker_Layout &$layout FileMaker_Layout object that this
* portal is on.
*/
function FileMaker_RelatedSet(&$layout)
{
$this->_impl = new FileMaker_RelatedSet_Implementation($layout);
}
/**
* Returns the name of the related table from which this portal displays
* related records.
*
* @return string Name of related table for this portal.
*/
function getName()
{
return $this->_impl->getName();
}
/**
* Returns an array of the names of all fields in this portal.
*
* @return array List of field names as strings.
*/
function listFields()
{
return $this->_impl->listFields();
}
/**
* Returns a FileMaker_Field object that describes the specified field.
*
* @param string $fieldName Name of field.
*
* @return FileMaker_Field|FileMaker_Error Field object, if successful.
* Otherwise, an Error object.
*/
function &getField($fieldName)
{
return $this->_impl->getField($fieldName);
}
/**
* Returns an associative array with the names of all fields as keys and
* FileMaker_Field objects as the array values.
*
* @return array Array of {@link FileMaker_Field} objects.
*/
function &getFields()
{
return $this->_impl->getFields();
}
/**
* Loads extended (FMPXMLLAYOUT) layout information.
*
* @access private
*
* @return boolean|FileMaker_Error TRUE, if successful. Otherwise, an Error
* object.
*/
function loadExtendedInfo()
{
return $this->_impl->loadExtendedInfo();
}
}
+156
View File
@@ -0,0 +1,156 @@
<?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 Include delegate.
*/
require_once dirname(__FILE__) . '/Implementation/ResultImpl.php';
/**#@-*/
/**
* Result set description class. Contains all the information about a set of
* records returned by a command.
*
* @package FileMaker
*/
class FileMaker_Result
{
/**
* The delegate that implements this response.
*
* @var FileMaker_Result_Implementation
* @access private
*/
var $_impl;
/**
* Result object constructor.
*
* @param FileMaker_Implementation &$fm FileMaker_Implementation object
* that this result came from.
*/
function FileMaker_Result(&$fm)
{
$this->_impl = new FileMaker_Result_Implementation($fm);
}
/**
* Returns a FileMaker_Layout object that describes the layout of this
* result set.
*
* @return FileMaker_Layout Layout object.
*/
function &getLayout()
{
return $this->_impl->getLayout();
}
/**
* Returns an array containing each record in the result set.
*
* Each member of the array is a FileMaker_Record object, or an
* instance of the alternate class you specified to use for records
* (see {@link FileMaker_Record}. The array may be empty if
* the result set contains no records.
*
* @return array Record objects.
*/
function &getRecords()
{
return $this->_impl->getRecords();
}
/**
* Returns a list of the names of all fields in the records in
* this result set.
*
* Only the field names are returned. If you need additional
* information, examine the Layout object provided by the
* {@link getLayout()} method.
*
* @return array List of field names as strings.
*/
function getFields()
{
return $this->_impl->getFields();
}
/**
* Returns the names of related tables for all portals present in records
* in this result set.
*
* @return array List of related table names as strings.
*/
function getRelatedSets()
{
return $this->_impl->getRelatedSets();
}
/**
* Returns the number of records in the table that was accessed.
*
* @return integer Total record count in table.
*/
function getTableRecordCount()
{
return $this->_impl->getTableRecordCount();
}
/**
* Returns the number of records in the entire found set.
*
* @return integer Found record count.
*/
function getFoundSetCount()
{
return $this->_impl->getFoundSetCount();
}
/**
* Returns the number of records in the filtered result set.
*
* If no range parameters were specified on the Find command,
* then this value is equal to the result of the {@link getFoundSetCount()}
* method. It is always equal to the value of
* count($response->{@link getRecords()}).
*
* @return integer Filtered record count.
*/
function getFetchCount()
{
return $this->_impl->getFetchCount();
}
/**
* Returns the first record in this result set.
*
* @return FileMaker_Record First record.
*/
function getFirstRecord()
{
return $this->_impl->getFirstRecord();
}
/**
* Returns the last record in this result set.
*
* @return FileMaker_Record Last record.
*/
function getLastRecord()
{
return $this->_impl->getLastRecord();
}
}
+96
View File
@@ -0,0 +1,96 @@
<html>
<head>
<!-- declare charset as UTF-8 -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<?php
/**
* compoundFind.php
*
* Copyright © 2005-2006, 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.
*
* Example PHP script to illustrate how to use compound find to find records in a database.
*
* Requirements:
* 1. Working FileMaker Server installation
* 2. 'FMPHP_Sample' database hosted in FileMaker Server
*
*/
// Include FileMaker API
require_once("FileMaker.php");
// Create a new connection to FMPHP_Sample database.
// Location of FileMaker Server is assumed to be on the same machine,
// thus we assume hostspec is api default of 'http://localhost' as specified
// in filemaker-api.php.
// If FMSA web server is on another machine, specify 'hostspec' as follows:
// $fm = new FileMaker('FMPHP_Sample', 'http://10.0.0.1');
$fm = new FileMaker('FMPHP_Sample');
// Create FileMaker_Command_CompoundFind object on layout to search
$compoundFind =& $fm->newCompoundFindCommand('Form View');
// Create first find request on layout
$findreq =& $fm->newFindRequest('Form View');
// Create second find request on layout
$findreq2 =& $fm->newFindRequest('Form View');
// Create third find request on layout
$findreq3 =& $fm->newFindRequest('Form View');
// Specify search criterion for first find request
$findreq->addFindCriterion('Quantity in Stock', '<100');
// Specify search criterion for second find request
$findreq2->addFindCriterion('Quantity in Stock', '0');
$findreq2->setOmit(true);
// Specify search criterion for third find request
$findreq3->addFindCriterion('Cover Photo Credit', 'The Dallas Morning News');
$findreq3->setOmit(true);
// Add find requests to compound find command
$compoundFind->add(1,$findreq);
$compoundFind->add(2,$findreq2);
$compoundFind->add(3,$findreq3);
// Set sort order
$compoundFind->addSortRule('Title', 1, FILEMAKER_SORT_DESCEND);
// Execute compound find command
$result = $compoundFind->execute();
// If an error is found, return a message and exit.
if (FileMaker::isError($result)) {
echo "Error: " . $result->getMessage(). "<br>";
exit;
}
// Get records from found set
$records = $result->getRecords();
// Print number of records found
echo 'Found ' . count($records) . " results.<br><br>";
// Print out records
foreach ($records as $record) {
echo $record->getField('Title') . "<br>";
}
?>
</body>
</html>
@@ -0,0 +1,46 @@
<?php
/**
* FileMaker API for PHP configuration file.
*
* All settings are in the $__FM_CONFIG array to maintain a
* clean global namespace.
*/
/**
* The default character encoding ('UTF-8' or 'ISO-8859-1', case matters).
*/
$__FM_CONFIG['charset'] = 'UTF-8';
/**
* The default locale for providing string translations of error
* codes. Options are: 'en'
*/
$__FM_CONFIG['locale'] = 'en';
/**
* The log level, if a logging object is provided.
*/
$__FM_CONFIG['logLevel'] = FILEMAKER_LOG_ERR;
/**
* The default hostspec (http://127.0.0.1:80, for example). Avoid using http://localhost:80/
* as it can cause peformance loss. DO NOT include /fmi/xml in this string.
*/
$__FM_CONFIG['hostspec'] = 'http://127.0.0.1';
/**
* Specify any additional curl options - SSL certificates, etc. - in
* an associative array, with curl option names as the keys, and
* option values as the values.
*/
// $__FM_CONFIG['curlOptions'] = array(CURLOPT_SSL_VERIFYPEER => false);
/**
* The PHP class to use for representing Records
*/
$__FM_CONFIG['recordClass'] = 'FileMaker_Record';
/**
* Do pre-validation (validate in PHP engine) on Record data?
*/
$__FM_CONFIG['prevalidate'] = false;
+27
View File
@@ -0,0 +1,27 @@
<?php
/**
* ContainerBridge.php
*
* Copyright © 2005-2006, 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.
*
* This is a bridge script to call FileMaker::getContainerData given a url.
*/
require_once("FileMaker.php");
// Location of FileMaker Server is assumed to be on the same machine,
// thus we assume hostspec is api default of 'http://localhost' as specified
// in filemaker-api.php.
// If FMSA web server is on another machine, specify 'hostspec' as follows:
// $fm = new FileMaker('FMPHP_Sample', 'http://10.0.0.1');
$fm = new FileMaker('FMPHP_Sample');
echo $fm->getContainerData($_GET['path']);
?>
+52
View File
@@ -0,0 +1,52 @@
<html>
<head>
<title>Delete Record</title>
</head>
<?php
/**
* deleteRecord.php
*
* Copyright © 2005-2006, 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.
*
* This is a script to delete a record given recid via GET parameter.
*/
// Turn on output buffering so that we can set Location: HTTP Header later on
ob_start();
require_once("FileMaker.php");
// Create FileMaker object
// Location of FileMaker Server is assumed to be on the same machine,
// thus we assume hostspec is api default of 'http://localhost' as specified
// in filemaker-api.php.
// If FMSA web server is on another machine, specify 'hostspec' as follows:
// $fm = new FileMaker('FMPHP_Sample', 'http://10.0.0.1');
$fm = new FileMaker('FMPHP_Sample');
// declare $rec
$rec = null;
// check to see that 'recid' got passed in
if (array_key_exists('recid', $_GET)) {
// get record object
$rec = $fm->getRecordById('Form View', $_GET['recid']);
// delete record
if (!$rec->delete()) {
echo 'Record deletion failed';
exit;
}
}
// set Location: HTTP header to force redirect
header("Location: displayRecords.php");
// End output buffering and flush output
ob_end_flush();
?>
+80
View File
@@ -0,0 +1,80 @@
<?php
/*
* Copyright © 2005-2006, 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.
*/
require_once dirname(__FILE__) . '/../../FileMaker.php';
$fm =& new FileMaker();
$req =& $fm->newFindRequest('test');
$req->addFindCriterion('join','catty');
$result = $req->execute();
if (FileMaker::isError($result)) {
echo $result->getMessage();
}else{
list($record) = $result->getRecords();
}
//$child =& $record->newRelatedRecord('test2changed');
//create child
/*
$child->setField('test2::name', 'CommitAddChildTest');
$result = $child->commit();
if (FileMaker::isError($result)) {
return $this->fail($result->getMessage());
}
echo "done";
*/
/*
//edit child
// Get the first child record.
list($child) = $record->getRelatedSet('test2');
$child->setField('test2::name', 'CommitEditChildTest');
$result = $child->commit();
if (FileMaker::isError($result)) {
return $this->fail($result->getMessage());
}
echo "done";
*/
//delete a child
$parent =& $fm->getRecordById('test', $record->getRecordId());
$children =& $parent->getRelatedSet('test2changed');
if (FileMaker::isError($children)) {
echo $children->getMessage();
exit ;
}
/* Runs through each of the children */
foreach ($children as $newchild) {
// Examples of what can be done.
// echo $newchild->getRecordId();
// echo $child->getRecordId();
// echo $newchild->getField('test2::name');
}
//Delete related record.
$result = $newchild->delete();
if (FileMaker::isError($result)) {
echo $result->getMessage();
}
?>
+82
View File
@@ -0,0 +1,82 @@
<html>
<head>
<title>Display All Records</title>
<!-- declare charset as UTF-8 -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="style.css">
</head>
<body>
<table id="main">
<tr><th id="table-title" colspan="3">America 24/7 Collection</th></tr>
<tr><th>Title</th><th>Publisher</th><th>Qty Available</th></tr>
<?php
/**
* displayRecords.php
*
* Copyright © 2005-2006, 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.
*
* Example PHP script to illustrate how to display records in a database using PHP API.
*
* Requirements:
* 1. Working FileMaker Server installation
* 2. 'FMPHP_Sample' database hosted in FileMaker Server
*
*/
// Include FileMaker API
require_once ('FileMaker.php');
// Create a new connection to FMPHP_Sample database.
// Location of FileMaker Server is assumed to be on the same machine,
// thus we assume hostspec is api default of 'http://localhost' as specified
// in filemaker-api.php.
// If FMSA web server is on another machine, specify 'hostspec' as follows:
// $fm = new FileMaker('FMPHP_Sample', 'http://10.0.0.1');
$fm = new FileMaker('FMPHP_Sample');
// Create FileMaker_Command_Find on layout to search
$findCommand =& $fm->newFindAllCommand('Form View');
// Sort records in descending 'Title' order
$findCommand->addSortRule('Title', 1, FILEMAKER_SORT_ASCEND);
// Execute find command
$result = $findCommand->execute();
if (FileMaker::isError($result)) {
echo "Error: " . $result->getMessage() . "\n";
exit;
}
// Get array of found records
$records = $result->getRecords();
// Print out found records
// Setup row count variable to alternate row background color
$row = 0;
foreach ($records as $record) {
// if $row is odd, set class of <tr> to alt-row-color
if ($row % 2 == 0) {
echo "<tr class=\"alt-row-color\">";
} else {
echo "<tr>";
}
echo "<td class=\"align-left\"><a href=\"viewRecord.php?recid=" . $record->getRecordId() . "\">" . $record->getField('Title') . "</td>";
echo "<td>" . $record->getField('Publisher') . "</td>";
echo "<td>" . $record->getField('Quantity in Stock') . "</td>";
echo "</tr>";
$row++;
}
?>
<tr><td colspan="3"><a href="editRecord.php">Create New Record</a></tr>
</table>
</body>
</html>
+102
View File
@@ -0,0 +1,102 @@
<html>
<head>
<?php
/**
* viewRecord.php
*
* Copyright © 2005-2006, 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.
*
* Example PHP script to illustrate how to view a particular record in a database using PHP API.
*
* Requirements:
* 1. Working FileMaker Server installation
* 2. 'FMPHP_Sample' database hosted in FileMaker Server
*
*/
// Include FileMaker API
require_once ('FileMaker.php');
// If there was a 'recid' parameter passed in, then we're editing a particular record.
// Otherwise, we're creating a new record
// Set <title> accordingly
$record = null;
?>
<title>
<?php
if (array_key_exists('recid', $_GET)) {
// 'recid' parameter was passed in, use it to grab record object
// Create a new connection to FMPHP_Sample database.
// Location of FileMaker Server is assumed to be on the same machine,
// thus we assume hostspec is api default of 'http://localhost' as specified
// in filemaker-api.php.
// If FMSA web server is on another machine, specify 'hostspec' as follows:
// $fm = new FileMaker('FMPHP_Sample', 'http://10.0.0.1');
$fm = new FileMaker('FMPHP_Sample');
// Since we're passed in recid via param (i.e. viewRecord.php?recid=n), use
// FileMaker::getRecordById() to directly get record object with recid accessed
// via $_GET[] array
$record = $fm->getRecordById('Form View', $_GET['recid']);
if (FileMaker::isError($record)) {
echo "Error: {$result->getMessage()}\n";
exit;
}
echo "Editing " . $record->getField('Title');
} else {
// no 'recid', so we're creating a new record
?>
Create New Record
<?php
}
?>
</title>
<!-- declare charset as UTF-8 -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="style.css">
</head>
<body>
<form action="handleForm.php" method="post">
<table>
<tr><th id="table-title" colspan="3">America 24/7 Collection</th></tr>
<tr><th>Title</th><td><input type="text" size="80" name="Title" value="<?php echo $record != null ? $record->getField('Title') : null; ?>"></td></tr>
<tr><th>Author</th><td><input type="text" size="80" name="Author" value="<?php echo $record != null ? $record->getField('Author') : null; ?>"></td></tr>
<tr><th>Publisher</th><td><input type="text" size="80" name="Publisher" value="<?php echo $record != null ? $record->getField('Publisher') : null; ?>"></td></tr>
<tr><th>Cover Photo Credit</th><td><input type="text" size="80" name="Cover Photo Credit" value="<?php echo $record != null ? $record->getField('Cover Photo Credit') : null; ?>"></td></tr>
<tr><th>Number of Pages</th><td><input type="text" size="80" name="Number of Pages" value="<?php echo $record != null ? $record->getField('Number of Pages') : null; ?>"></td></tr>
<tr><th>Status</th><td><input type="text" size="80" name="Status" value="<?php echo $record != null ? $record->getField('Status') : null; ?>"></td></tr>
<tr><th>Quantity in Stock</th><td><input type="text" size="80" name="Quantity in Stock" value="<?php echo $record != null ? $record->getField('Quantity in Stock') : null; ?>"></td></tr>
<tr><th>Description</th><td><textarea name="Description" cols="80" rows="10"><?php echo $record != null ? $record->getField('Description') : null; ?></textarea></td></tr>
<tr><td colspan=2>
<?php
// output OK (submit) and Cancel buttons
if ($record != null) {
// if we're editing a record, submit button is labeled "OK"
?>
<input type="hidden" name="recid" value="<?php echo $record->getRecordId(); ?>">
<button type="submit" name="action" value="edit">OK</button>
<?php
} else {
// otherwise, submit button is "Create New Record"
?>
<button type="submit" name="action" value="edit">Create New Record</button>
<?php
}
?>
<button type="submit" name="action" value="cancel">Cancel</button>
</td></tr>
</table>
</form>
</body>
</html>
+46
View File
@@ -0,0 +1,46 @@
<?php
/**
* FileMaker API for PHP configuration file.
*
* All settings are in the $__FM_CONFIG array to maintain a
* clean global namespace.
*/
/**
* The default character encoding ('UTF-8' or 'ISO-8859-1', case matters).
*/
$__FM_CONFIG['charset'] = 'UTF-8';
/**
* The default locale for providing string translations of error
* codes. Options are: 'en'
*/
$__FM_CONFIG['locale'] = 'en';
/**
* The log level, if a logging object is provided.
*/
$__FM_CONFIG['logLevel'] = FILEMAKER_LOG_ERR;
/**
* The default hostspec (http://127.0.0.1:80, for example). Avoid using http://localhost:80/
* as it can cause peformance loss. DO NOT include /fmi/xml in this string.
*/
$__FM_CONFIG['hostspec'] = 'http://185.186.14.34:4443';
/**
* Specify any additional curl options - SSL certificates, etc. - in
* an associative array, with curl option names as the keys, and
* option values as the values.
*/
// $__FM_CONFIG['curlOptions'] = array(CURLOPT_SSL_VERIFYPEER => false);
/**
* The PHP class to use for representing Records
*/
$__FM_CONFIG['recordClass'] = 'FileMaker_Record';
/**
* Do pre-validation (validate in PHP engine) on Record data?
*/
$__FM_CONFIG['prevalidate'] = false;
+100
View File
@@ -0,0 +1,100 @@
<html>
<head>
<title>Add/Edit Record</title>
</head>
<?php
/**
* handleForm.php
*
* Copyright © 2005-2006, 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.
*
* This is a script to handle the form submit for a new record or editing a record.
*/
// Turn on output buffering so that we can set Location: HTTP Header later on
ob_start();
require_once("FileMaker.php");
// Create FileMaker object
// Location of FileMaker Server is assumed to be on the same machine,
// thus we assume hostspec is api default of 'http://localhost' as specified
// in filemaker-api.php.
// If FMSA web server is on another machine, specify 'hostspec' as follows:
// $fm = new FileMaker('FMPHP_Sample', 'http://10.0.0.1');
$fm = new FileMaker('FMPHP_Sample');
// Field names we expect as keys in $_POST[]
$keys = array(
'Title',
'Author',
'Publisher',
'Cover Photo Credit',
'Number of Pages',
'Status',
'Quantity in Stock',
'Description'
);
// utility function to set field values from posted data
function setFieldData($record)
{
// declare $keys as a global variable
global $keys;
// loop over each field value and append to array
$result = array();
foreach ($keys as $fieldname) {
$value = null;
// workaround PHP's insistence that spaces in
// form variables be replaced by "_"
if (!strpos($fieldname, " ")) {
$value = $_POST[$fieldname];
} else {
$value = $_POST[str_replace(" ", "_", $fieldname)];
}
if (strlen($value) > 0) {
$record->setField($fieldname, $value);
} elseif (strlen($record->getField($fieldname)) > 0) {
$record->setField($fieldname, null);
}
}
return $result;
}
// declare $rec
$rec = null;
// check to see that user didn't hit 'cancel' button
if (!array_key_exists('cancel', $_POST)) {
// Check for recid parameter which determines if this is a create new or edit
if (array_key_exists('recid', $_POST)) {
$rec = $fm->getRecordById('Form View', $_POST['recid']);
} else {
$rec =& $fm->createRecord('Form View');
}
if (FileMaker::isError($rec)) {
echo 'Record addition failed: (' . $rec->getCode() . ') ' . $rec->getMessage() . "\n";
exit;
}
// set field data from form data
setFieldData($rec);
// commit record to database
$result = $rec->commit();
if (FileMaker::isError($result)) {
echo 'Record addition failed: (' . $result->getCode() . ') ' . $result->getMessage() . "\n";
exit;
}
}
// set Location: HTTP header to force redirect
header("Location: displayRecords.php");
// End output buffering and flush output
ob_end_flush();
?>
+54
View File
@@ -0,0 +1,54 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>FileMaker API for PHP Examples</title>
</head>
<body>
<h1>FileMaker API for PHP Examples</h1>
<p>
<ul>
<li><p><a href="displayRecords.php">America 24/7 Example</a><br>
A basic site to view, create, edit, and delete records from the associated FMPHP_Sample database.<br>
Files used in example:
<ul>
<li>containerBridge.php</li>
<li>deleteRecord.php</li>
<li>displayRecords.php</li>
<li>editRecord.php</li>
<li>handleForm.php</li>
<li>style.css</li>
<li>viewRecord.php</li>
</ul>
</p></li>
<li><p><a href="compoundFind.php">Compound Find Example</a><br>
Example to illustrate using the CompoundFindCommand class.<br>
Files used in example:
<ul>
<li>compoundFind.php</li>
</ul>
</p></li>
<li><p><a href="listDatabases.php">List Databases Example</a><br>
Basic example of FileMaker::listDatabases() method.<br>
Files used in example:
<ul>
<li>listDatabases.php</li>
</ul>
</p></li>
<li><p><a href="listLayouts.php">List Layouts Example</a><br>
Basic example of FileMaker::listLayouts() method.<br>
Files used in example:
<ul>
<li>listLayouts.php</li>
</ul>
</p></li>
<li><p><a href="listScripts.php">List Scripts Example</a><br>
Basic example of FileMaker::listScripts() method.<br>
Files used in example:
<ul>
<li>listScripts.php</li>
</ul>
</p></li>
</p>
</body>
</html>
+57
View File
@@ -0,0 +1,57 @@
<html>
<head>
<!-- declare charset as UTF-8 -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<?php
/**
* listDatabases.php
*
* Copyright © 2005-2006, 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.
*
* Example PHP script to illustrate how to list databases on the server.
*
* Requirements:
* 1. Working FileMaker Server installation
* 2. 'FMPHP_Sample' database hosted in FileMaker Server
*
*/
// Include FileMaker API
require_once ('FileMaker.php');
// Create a new connection to server without specifying database or hostspec.
$fm = new FileMaker();
// Set 'hostspec' property using setProperty()
$fm->setProperty('hostspec', 'https://fm.cesoft.srl');
$fm->setProperty('database', 'leanLIMS');
$fm->setProperty('username', 'testAPI');
$fm->setProperty('password', 'mEda2023!!!');
$databases = $fm->listDatabases();
// If an error is found, return a message and exit.
if (FileMaker::isError($databases)) {
printf("Error %s: %s\n", $databases->getCode());
"<br>";
printf($databases->getMessage());
exit;
}
// Print out layout names
foreach ($databases as $db) {
echo "$db<br>";
}
?>
</body>
</html>
+63
View File
@@ -0,0 +1,63 @@
<html>
<head>
<!-- declare charset as UTF-8 -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<?php
/**
* listLayouts.php
*
* Copyright © 2005-2006, 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.
*
* Example PHP script to illustrate how to list layouts in a database.
*
* Requirements:
* 1. Working FileMaker Server installation
* 2. 'FMPHP_Sample' database hosted in FileMaker Server
*
*/
// Include FileMaker API
require_once ('FileMaker.php');
// Create a new connection to FMPHP_Sample database.
// Location of FileMaker Server is assumed to be on the same machine,
// thus we assume hostspec is api default of 'http://localhost' as specified
// in filemaker-api.php.
// If FMSA web server is on another machine, specify 'hostspec' as follows:
// $fm = new FileMaker('FMPHP_Sample', 'http://10.0.0.1');
$fm = new FileMaker('FMPHP_Sample');
$fm->setProperty('hostspec', 'https://185.186.14.34:4443');
$fm->setProperty('database', 'leanLIMS');
$fm->setProperty('username', 'testAPI');
$fm->setProperty('password', 'mEda2023!!!');
// Call listLayouts() to get array of layout names.
$layouts = $fm->listLayouts();
// If an error is found, return a message and exit.
if (FileMaker::isError($layouts)) {
printf("Error %s: %s\n", $layouts->getCode());
"<br>";
printf($layouts->getMessage());
exit;
}
// Print out layout names
foreach ($layouts as $layout) {
echo $layout . "<br>";
}
?>
</body>
</html>
+51
View File
@@ -0,0 +1,51 @@
<html>
<head>
<!-- declare charset as UTF-8 -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<?php
/**
* listScripts.php
*
* Copyright © 2005-2006, 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.
*
* Example PHP script to illustrate how to list scripts in a database.
*
* Requirements:
* 1. Working FileMaker Server installation
* 2. 'FMPHP_Sample' database hosted in FileMaker Server
*
*/
// Include FileMaker API
require_once("FileMaker.php");
// Create a new connection to FMPHP_Sample database.
// Location of FileMaker Server is assumed to be on the same machine,
// thus we assume hostspec is api default of 'http://localhost' as specified
// in filemaker-api.php.
// If FMSA web server is on another machine, specify 'hostspec' as follows:
// $fm = new FileMaker('FMPHP_Sample', 'http://10.0.0.1');
$fm = new FileMaker('FMPHP_Sample');
// Call listScripts() to get array of script names.
$scripts = $fm->listScripts();
// If an error is found, return a message and exit.
if (FileMaker::isError($scripts)) {
printf("Error %s: %s\n", $scripts->getCode(), $scripts->getMessage());
exit;
}
// Print out script names
foreach ($scripts as $script) {
echo "$script<br>";
}
+3
View File
@@ -0,0 +1,3 @@
[22-Jun-2023 14:14:56 UTC] PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; FileMaker has a deprecated constructor in /home/customer/www/cimac.it/public_html/modulo_certificazione/fmlink/API Examples/FileMaker.php on line 87
[22-Jun-2023 14:14:56 UTC] PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; FileMaker_Error has a deprecated constructor in /home/customer/www/cimac.it/public_html/modulo_certificazione/fmlink/API Examples/Error.php on line 31
[22-Jun-2023 14:14:56 UTC] PHP Parse error: syntax error, unexpected 'new' (T_NEW) in /home/customer/www/cimac.it/public_html/modulo_certificazione/fmlink/API Examples/PEAR.php on line 557
+35
View File
@@ -0,0 +1,35 @@
BODY {
font-family: verdana;
}
TABLE#main {
text-align: center;
padding: 8px;
border: solid 1px;
}
TH {
padding-top: 4px;
padding-bottom: 4px;
padding-left: 8px;
padding-right: 8px;
}
TD {
padding-top: 2px;
padding-bottom: 2px;
padding-left: 8px;
padding-right: 8px;
}
.align-left {
text-align: left;
}
.alt-row-color {
background-color: aqua;
}
#table-title {
font-size: 16pt;
}
+66
View File
@@ -0,0 +1,66 @@
<html>
<?php
/**
* viewRecord.php
*
* Copyright © 2005-2006, 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.
*
* Example PHP script to illustrate how to view a particular record in a database using PHP API.
*
* Requirements:
* 1. Working FileMaker Server installation
* 2. 'FMPHP_Sample' database hosted in FileMaker Server
*
*/
// Include FileMaker API
require_once ('FileMaker.php');
// Create a new connection to FMPHP_Sample database.
// Location of FileMaker Server is assumed to be on the same machine,
// thus we assume hostspec is api default of 'http://localhost' as specified
// in filemaker-api.php.
// If FMSA web server is on another machine, specify 'hostspec' as follows:
// $fm = new FileMaker('FMPHP_Sample', 'http://10.0.0.1');
$fm = new FileMaker('FMPHP_Sample');
// Since we're passed in recid via param (i.e. viewRecord.php?recid=n), use
// FileMaker::getRecordById() to directly get record object with recid accessed
// via $_GET[] array
$record = $fm->getRecordById('Form View', $_GET['recid']);
if (FileMaker::isError($record)) {
echo "<body>Error: " . $record->getMessage(). "</body>";
exit;
}
?>
<head>
<title><?php echo $record->getField('Title'); ?></title>
<!-- declare charset as UTF-8 -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="style.css">
</head>
<body>
<table>
<tr><th id="table-title" colspan="3">America 24/7 Collection</th></tr>
<tr><th>Title</th><td><?php echo $record->getField('Title'); ?></td></tr>
<tr><th>Author</th><td><?php echo $record->getField('Author'); ?></td></tr>
<tr><th>Publisher</th><td><?php echo $record->getField('Publisher'); ?></td></tr>
<tr><th>Cover Photo Credit</th><td><?php echo $record->getField('Cover Photo Credit'); ?></td></tr>
<tr><th>Number of Pages</th><td><?php echo $record->getField('Number of Pages'); ?></td></tr>
<tr><th>Status</th><td><?php echo $record->getField('Status'); ?></td></tr>
<tr><th>Quantity in Stock</th><td><?php echo $record->getField('Quantity in Stock'); ?></td></tr>
<tr><th>Description</th><td><?php echo $record->getField('Description'); ?></td></tr>
<tr><th>Cover Image</th><td><?php if ($record->getField('Cover Image')) {?> <IMG src="containerBridge.php?path=<?php echo urlencode($record->getField('Cover Image')); ?>"> <?php } ?></td></tr>
<tr><td colspan="2" style="text-align: center"><a href="editRecord.php?recid=<?php echo $record->getRecordId(); ?>">Edit this record</a></td></tr>
<tr><td colspan="2" style="text-align: center"><a href="deleteRecord.php?recid=<?php echo $record->getRecordId(); ?>">Delete this record</a></td></tr>
<tr><td colspan="2" style="text-align: center"><a href="displayRecords.php">Back to Record List</a></td></tr>
</table>
</body>
</html>