LimeSurvey1m9Database is a Source interface that enables the use of LimeSurvey 1.9.x installation as survey/answer source for Gems projects.
package | Gems |
---|---|
subpackage | Tracker |
copyright | Copyright (c) 2011 Erasmus MC |
license | New BSD License |
since | Class available since version 1.2 |
inherited_from | \Gems_Tracker_Source_SourceAbstract |
__construct(array $sourceData, \Zend_Db_Adapter_Abstract $gemsDb)
inherited_from | \Gems_Tracker_Source_SourceInterface::__construct() |
---|
array
The information from gems__sources for this source.
\Zend_Db_Adapter_Abstract
Do not want to copy db using registry because that is public and this should be private
checkSourceActive(integer $userId) : boolean
integer
Id of the user who takes the action (for logging)
boolean
True if the source is activecheckSurvey(string $sourceSurveyId, integer $surveyId, integer $userId) : mixed
string
integer
integer
mixed
message string or array of messagescopyTokenToSource(\Gems_Tracker_Token $token, string $language, integer $surveyId, string $sourceSurveyId = null
) : integer
\Gems_Tracker_Token
string
integer
Gems Survey Id
string
Optional Survey Id used by source
\Gems_Tracker_Source_SurveyNotFoundException |
---|
integer
1 of the token was inserted or changed, 0 otherwisegetAnswerDateTime(string $fieldName, \Gems_Tracker_Token $token, integer $surveyId, string $sourceSurveyId = null
) : \MUtil_Date
A seperate function as only the source knows what format the date/time value has.
string
Name of answer field
\Gems_Tracker_Token
Gems token object
integer
Gems Survey Id
string
Optional Survey Id used by source
\MUtil_Date
date time or nullgetAttributes()
getCompletedTokens(array $tokenIds, integer $sourceSurveyId) : array
Returns all tokens from the input array that are completed, by doing this in bulk we saved overhead and only do a deep check on the completed tokens.
array
integer
array
getCompletionTime(\Gems_Tracker_Token $token, integer $surveyId, string $sourceSurveyId = null
) : \MUtil_Date
A source always return null when it does not know this time (or does not know it well enough). In the case \Gems_Tracker_Token will do it's best to keep track by itself.
\Gems_Tracker_Token
Gems token object
integer
Gems Survey Id
string
Optional Survey Id used by source
\MUtil_Date
date time or nullgetDatesList(string $language, integer $surveyId, string $sourceSurveyId = null
) : array
Used in dropdown list etc..
string
(ISO) language string
integer
Gems Survey Id
string
Optional Survey Id used by source
array
fieldname => labelgetFullQuestionList(string $language, integer $surveyId, string $sourceSurveyId = null
) : array
string
(ISO) language string
integer
Gems Survey Id
string
Optional Survey Id used by source
array
Nested arraygetId() : integer
inherited_from | \Gems_Tracker_Source_SourceInterface::getId() |
---|
integer
The source Id of this sourcegetQuestionInformation(string $language, integer $surveyId, string $sourceSurveyId = null
) : array
string
(ISO) language string
integer
Gems Survey Id
string
Optional Survey Id used by source
array
Nested arraygetQuestionList(string $language, integer $surveyId, string $sourceSurveyId = null
) : array
Used in dropdown list etc..
string
(ISO) language string
integer
Gems Survey Id
string
Optional Survey Id used by source
array
fieldname => labelgetRawTokenAnswerRow(string $tokenId, integer $surveyId, string $sourceSurveyId = null
) : array
Function may return more fields than just the answers.
string
Gems Token Id
integer
Gems Survey Id
string
Optional Survey Id used by source
array
Field => Value arraygetRawTokenAnswerRows(array $filter, integer $surveyId, string $sourceSurveyId = null
) : array
Function may return more fields than just the answers.
array
XXXXX
integer
Gems Survey Id
string
Optional Survey Id used by source
array
Of nested Field => Value arrays indexed by tokenIdgetRawTokenAnswerRowsCount(array $filter, integer $surveyId, string $sourceSurveyId = null
) : integer
Abstract implementation is not efficient, sources should handle this as efficient as possible.
inherited_from | \Gems_Tracker_Source_SourceAbstract::getRawTokenAnswerRowsCount() |
---|
array
filter array
integer
Gems Survey Id
string
Optional Survey Id used by source
integer
getRawTokenAnswerRowsCount(array $filter, integer $surveyId, string $sourceSurveyId = null
) : integer
Abstract implementation is not efficient, sources should handle this as efficient as possible.
inherited_from | \Gems_Tracker_Source_SourceInterface::getRawTokenAnswerRowsCount() |
---|
array
filter array
integer
Gems Survey Id
string
Optional Survey Id used by source
integer
getRawTokenAnswerRowsSelect(array $filter, \type $surveyId, \type $sourceSurveyId = null
) : \Zend_Db_Select
array
\type
\type
\Zend_Db_Select
getSourceDatabase() : \Zend_Db_Adapter_Abstract
inherited_from | \Gems_Tracker_Source_SourceInterface::getSourceDatabase() |
---|
\Zend_Db_Adapter_Abstract
getStartTime(\Gems_Tracker_Token $token, integer $surveyId, string $sourceSurveyId = null
) : \MUtil_Date
A source always return null when it does not know this time (or does not know it well enough). In the case \Gems_Tracker_Token will do it's best to keep track by itself.
\Gems_Tracker_Token
Gems token object
integer
Gems Survey Id
string
Optional Survey Id used by source
\MUtil_Date
date time or nullgetSurveyAnswerModel(\Gems_Tracker_Survey $survey, string $language= null
, string $sourceSurveyId= null
) : \MUtil_Model_ModelAbstract
\Gems_Tracker_Survey
string
Optional (ISO) language string
string
Optional Survey Id used by source
\MUtil_Model_ModelAbstract
getTokenInfo(\Gems_Tracker_Token $token, \type $surveyId, \type $sourceSurveyId, array $fields = null
) : \type
\Gems_Tracker_Token
\type
\type
array
\type
getTokenUrl(\Gems_Tracker_Token $token, string $language, integer $surveyId, string $sourceSurveyId) : string
\Gems_Tracker_Token
Gems token object
string
integer
Gems Survey Id
string
Optional Survey Id used by source
string
The url to start the surveyinSource(\Gems_Tracker_Token $token, integer $surveyId, string $sourceSurveyId = null
) : boolean
\Gems_Tracker_Token
Gems token object
integer
Gems Survey Id
string
Optional Survey Id used by source
boolean
isCompleted(\Gems_Tracker_Token $token, integer $surveyId, string $sourceSurveyId = null
) : boolean
\Gems_Tracker_Token
Gems token object
integer
Gems Survey Id
string
Optional Survey Id used by source
boolean
True if the token has completedsetRawTokenAnswers(\Gems_Tracker_Token $token, array $answers, integer $surveyId, string $sourceSurveyId = null
) : true
\Gems_Tracker_Token
Gems token object
array
Field => Value array
integer
Gems Survey Id
string
Optional Survey Id used by source
true
When answers changedsetTokenCompletionTime(\Gems_Tracker_Token $token, \Zend_Date|null $completionTime, integer $surveyId, string $sourceSurveyId = null
)
\Gems_Tracker_Token
Gems token object
\Zend_Date
null
\Zend_Date or null
integer
Gems Survey Id (actually required)
string
Optional Survey Id used by source
synchronizeSurveyBatch(\Gems_Task_TaskRunnerBatch $batch, integer $userId) : array
inherited_from | \Gems_Tracker_Source_SourceInterface::synchronizeSurveyBatch() |
---|
\Gems_Task_TaskRunnerBatch
integer
Id of the user who takes the action (for logging)
array
Returns an array of messagesupdateConsent(\Gems_Tracker_Token $token, integer $surveyId, string $sourceSurveyId= null
, string $consentCode= null
) : integer
\Gems_Tracker_Token
integer
Gems Survey Id
string
Optional Survey Id used by source
string
Optional consent code, otherwise code from token is used.
integer
1 of the token was inserted or changed, 0 otherwise_checkReturnURI(string $sourceSurveyId, \Gems_Tracker_Survey $survey, array $messages)
_checkTokenTable(array $tokenTable) : array
array
array
Fieldname => change field commands_fillAttributeMap(\Gems_Tracker_Token $token) : array
\Gems_Tracker_Token
array
Of fieldname => value type_filterAnswersOnly(integer $sourceSurveyId, array $answers) : array
integer
Survey ID
array
array
_getFieldMap(integer $sourceSurveyId, string $language = null
) : \Gems_Tracker_Source_LimeSurvey1m9FieldMap
integer
Survey ID
string
Optional (ISO) Language, uses default language for survey when null
\Gems_Tracker_Source_LimeSurvey1m9FieldMap
_getGemsSurveysForSynchronisation() : array
array
Pairs gemsId => sourceId_getLanguage(integer $sourceSurveyId, string $language) : string
Uses the requested language if it exists for the survey, the default language for the survey otherwise
integer
Survey ID
string
(ISO) Language
string
(ISO) Language_getReturnURI() : string
string
_getReturnURIDescription(string $language) : string
string
string
_getSid(integer $surveyId) : integer
integer
integer
_getSourceSurveysForSynchronisation() : array
inherited_from | \Gems_Tracker_Source_SourceAbstract::_getSourceSurveysForSynchronisation() |
---|
array
of sourceId values or false_getSourceSurveysForSynchronisation() : array
array
of sourceId values or false_getSurveyLanguagesTableName() : string
string
Name of survey languages table_getSurveyTableName(integer $sourceSurveyId) : string
integer
Survey ID
string
Name of survey table for this survey_getSurveysTableName() : string
string
Name of survey table_getToken($tokenId, boolean $reverse = false
) : string
boolean
Reverse the action to go from limesurvey to GemsTracker token (default is false)
string
_getTokenFromSqlWhere(string $from, string $fieldName) : string
string
The tokens that should not occur
string
Name of database field to use
string
_getTokenFromToSql(string $from, string $to, string $fieldName) : string
string
The tokens that should not occur
string
The tokens that replace them
string
Name of database field to use
string
_getTokenTableName(integer $sourceSurveyId) : string
integer
Survey ID
string
Name of token table for this survey_isLanguage(integer $sourceSurveyId, string $language) : boolean
integer
Survey ID
string
(ISO) Language
boolean
True when the language is an existing language_updateGemsSurveyExists(array $surveyorSids, integer $userId) : array
array
The gsu_surveyor_id's that ARE in the source
integer
Id of the user who takes the action (for logging)
array
The names of the surveys that no longer exist_updateSource(array $values, integer $userId) : integer
array
The values that this source should be set to
integer
The current user
integer
1 if data changed, 0 otherwiseaddDatabasePrefix(\return $tableName, boolean $addDatabaseName = true
) : string
\return
boolean
Optional, when true (= default) and there is a database name then it is prepended to the name.
string
filterLimitOffset(array $filter, \Zend_Db_Select $select)
array
\Zend_Db_Select
getBaseUrl() : string
string
Base url for sourcegetSurveyData(integer $surveyId, string $field = null
) : array
Uses internal caching to prevent multiple db lookups during a program run (so no caching beyond page generation time)
integer
string
Optional field to retrieve data for
array
updateTokens(integer $userId, $updateTokens = true
) : integer
integer
Id of the user who takes the action (for logging)
integer
The number of tokens changed_extractFieldLength(string $typeDescr) : integer
string
E.g. int(11) or varchar(36)
integer
In case 11 or 36$_anonymizedField : string
'private'
$_attributeMap : array
array('respondentid' => 'attribute_1', 'organizationid' => 'attribute_2', 'consentcode' => 'attribute_3', 'resptrackid' => 'attribute_4')
Should contain maps for respondentid, organizationid and consentcode.
$attributeSize : integer
255
$locale : \Zend_Locale
$logger : \Gems_Log
$project : \Gems_Project_ProjectSettings
$request : \Zend_Controller_Request_Abstract
$tracker : \Gems_Tracker
$translate : \Zend_Translate
$util : \Gems_Util
$_fieldMaps : array
$_gemsDb : \Gems_Task_TaskRunnerBatch: \Zend_Db_Adapter_Abstract
$_languageMap : array
$_sourceData : array
$_sourceDb : \Zend_Db_Adapter_Abstract
CACHE_TOKEN_INFO = 'tokenInfo'
LS_DB_COMPLETION_FORMAT = 'yyyy-MM-dd HH:mm'
LS_DB_DATETIME_FORMAT = 'yyyy-MM-dd HH:mm:ss'
LS_DB_DATE_FORMAT = 'yyyy-MM-dd'
QUESTIONS_TABLE = 'questions'
SURVEYS_LANG_TABLE = 'surveys_languagesettings'
SURVEYS_TABLE = 'surveys'
SURVEY_TABLE = 'survey_'
TOKEN_TABLE = 'tokens_'