本文整理汇总了PHP中data_entry_helper::website_id方法的典型用法代码示例。如果您正苦于以下问题:PHP data_entry_helper::website_id方法的具体用法?PHP data_entry_helper::website_id怎么用?PHP data_entry_helper::website_id使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类data_entry_helper
的用法示例。
在下文中一共展示了data_entry_helper::website_id方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: get_form
/**
* Return the generated form output.
* @param array $args List of parameter values passed through to the form depending on how the form has been configured.
* This array always contains a value for language.
* @param object $node The Drupal node object.
* @param array $response When this form is reloading after saving a submission, contains the response from the service call.
* Note this does not apply when redirecting (in this case the details of the saved object are in the $_GET data).
* @return Form HTML.
*/
public static function get_form($args, $node, $response = null)
{
if (!hostsite_get_user_field('indicia_user_id')) {
return 'Please ensure that you\'ve filled in your surname on your user profile before creating or editing groups.';
}
iform_load_helpers(array('report_helper', 'map_helper'));
$args = array_merge(array('include_code' => false, 'include_dates' => false, 'include_report_filter' => true, 'include_private_records' => false, 'include_administrators' => false, 'include_members' => false, 'filter_types' => '{"":"what,where,when","Advanced":"source,quality"}'), $args);
$args['filter_types'] = json_decode($args['filter_types'], true);
$reloadPath = self::getReloadPath();
data_entry_helper::$website_id = $args['website_id'];
$auth = data_entry_helper::get_read_write_auth($args['website_id'], $args['password']);
if (!empty($_GET['group_id'])) {
self::loadExistingGroup($_GET['group_id'], $auth, $args);
} else {
if (!empty($args['parent_group_relationship_type']) && empty($_GET['from_group_id'])) {
return 'This form should be called with a from_group_id parameter to define the parent when creating a new group';
}
}
$r = "<form method=\"post\" id=\"entry_form\" action=\"{$reloadPath}\">\n";
$r .= $auth['write'] . "<input type=\"hidden\" id=\"website_id\" name=\"website_id\" value=\"" . $args['website_id'] . "\" />\n";
$r .= data_entry_helper::hidden_text(array('fieldname' => 'group:id'));
if (!empty($args['group_type'])) {
$r .= '<input type="hidden" name="group:group_type_id" value="' . $args['group_type'] . '"/>';
$response = data_entry_helper::get_population_data(array('table' => 'termlists_term', 'extraParams' => $auth['read'] + array('id' => $args['group_type'])));
self::$groupType = strtolower($response[0]['term']);
}
if (!empty(data_entry_helper::$entity_to_load['group:title']) && function_exists('drupal_set_title')) {
drupal_set_title(lang::get('Edit {1}', data_entry_helper::$entity_to_load['group:title']));
}
$r .= data_entry_helper::text_input(array('label' => lang::get('{1} name', ucfirst(self::$groupType)), 'fieldname' => 'group:title', 'validation' => array('required'), 'class' => 'control-width-5', 'helpText' => lang::get('The full title of the {1}', self::$groupType)));
if ($args['include_code']) {
$r .= data_entry_helper::text_input(array('label' => lang::get('Code'), 'fieldname' => 'group:code', 'class' => 'control-width-4', 'helpText' => lang::get('A code or abbreviation identifying the {1}', self::$groupType)));
}
if (empty($args['group_type'])) {
$r .= data_entry_helper::select(array('label' => lang::get('Group type'), 'fieldname' => 'group:group_type_id', 'required' => true, 'table' => 'termlists_term', 'valueField' => 'id', 'captionField' => 'term', 'extraParams' => $auth['read'] + array('termlist_external_key' => 'indicia:group_types'), 'class' => 'control-width-4'));
}
$r .= self::joinMethodsControl($args);
$r .= data_entry_helper::textarea(array('label' => ucfirst(lang::get('{1} description', self::$groupType)), 'fieldname' => 'group:description', 'helpText' => lang::get('Description and notes about the {1}.', self::$groupType)));
$r .= self::dateControls($args);
if ($args['include_private_records']) {
$r .= data_entry_helper::checkbox(array('label' => lang::get('Records are private'), 'fieldname' => 'group:private_records', 'helpText' => lang::get('Tick this box if you want to withold the release of the records from this {1} until a ' . 'later point in time, e.g. when a project is completed.', self::$groupType)));
}
$r .= self::memberControls($args, $auth);
$r .= self::reportFilterBlock($args, $auth, $hiddenPopupDivs);
// auto-insert the creator as an admin of the new group, unless the admins are manually specified
if (!$args['include_administrators'] && empty($_GET['group_id'])) {
$r .= '<input type="hidden" name="groups_user:admin_user_id[]" value="' . hostsite_get_user_field('indicia_user_id') . '"/>';
}
$r .= '<input type="hidden" name="groups_user:administrator" value="t"/>';
$r .= '<input type="submit" class="indicia-button" id="save-button" value="' . (empty(data_entry_helper::$entity_to_load['group:id']) ? lang::get('Create {1}', self::$groupType) : lang::get('Update {1} settings', self::$groupType)) . "\" />\n";
$r .= '</form>';
$r .= $hiddenPopupDivs;
data_entry_helper::enable_validation('entry_form');
// JavaScript to grab the filter definition and store in the form for posting when the form is submitted
data_entry_helper::$javascript .= "\n\$('#entry_form').submit(function() {\n \$('#filter-title-val').val('" . lang::get('Filter for user group') . " ' + \$('#group\\\\:title').val());\n \$('#filter-def-val').val(JSON.stringify(indiciaData.filter.def));\n});\n";
return $r;
}
示例2: get_form
/**
* Return the generated form output.
* @return Form HTML.
*/
public static function get_form($args, $node)
{
data_entry_helper::$website_id = $args['website_id'];
if (!empty($args['high_volume']) && $args['high_volume']) {
// node level caching for most page hits
$cached = data_entry_helper::cache_get(array('node' => $node->nid), HIGH_VOLUME_CACHE_TIMEOUT);
if ($cached !== false) {
$cached = explode('|!|', $cached);
data_entry_helper::$javascript = $cached[1];
data_entry_helper::$late_javascript = $cached[2];
data_entry_helper::$onload_javascript = $cached[3];
data_entry_helper::$required_resources = json_decode($cached[4], true);
return $cached[0];
}
}
self::$node = $node;
self::$called_class = 'iform_' . $node->iform;
// Convert parameter, defaults, into structured array
self::parse_defaults($args);
// Supply parameters that may be missing after form upgrade
if (method_exists(self::$called_class, 'getArgDefaults')) {
$args = call_user_func(array(self::$called_class, 'getArgDefaults'), $args);
}
// Get authorisation tokens to update and read from the Warehouse. We allow child classes to generate this first if subclassed.
if (self::$auth) {
$auth = self::$auth;
} else {
$auth = data_entry_helper::get_read_write_auth($args['website_id'], $args['password']);
self::$auth = $auth;
}
// Determine how the form was requested and therefore what to output
$mode = method_exists(self::$called_class, 'getMode') ? call_user_func(array(self::$called_class, 'getMode'), $args, $node) : '';
self::$mode = $mode;
if ($mode === self::MODE_GRID) {
// Output a grid of existing records
$r = call_user_func(array(self::$called_class, 'getGrid'), $args, $node, $auth);
} else {
if (($mode === self::MODE_EXISTING || $mode === self::MODE_EXISTING_RO || $mode === self::MODE_CLONE) && is_null(data_entry_helper::$entity_to_load)) {
// only load if not in error situation.
call_user_func_array(array(self::$called_class, 'getEntity'), array(&$args, $auth));
}
// attributes must be fetched after the entity to load is filled in - this is because the id gets filled in then!
$attributes = method_exists(self::$called_class, 'getAttributes') ? call_user_func(array(self::$called_class, 'getAttributes'), $args, $auth) : array();
$r = call_user_func(array(self::$called_class, 'get_form_html'), $args, $auth, $attributes);
}
if (!empty($args['high_volume']) && $args['high_volume']) {
$c = $r . '|!|' . data_entry_helper::$javascript . '|!|' . data_entry_helper::$late_javascript . '|!|' . data_entry_helper::$onload_javascript . '|!|' . json_encode(data_entry_helper::$required_resources);
data_entry_helper::cache_set(array('node' => $node->nid), $c, HIGH_VOLUME_CACHE_TIMEOUT);
}
return $r;
}
示例3: get_form
/**
* Return the generated form output.
* @param array $args List of parameter values passed through to the form depending on how the form has been configured.
* This array always contains a value for language.
* @param object $node The Drupal node object.
* @param array $response When this form is reloading after saving a submission, contains the response from the service call.
* Note this does not apply when redirecting (in this case the details of the saved object are in the $_GET data).
* @return Form HTML.
*/
public static function get_form($args, $node, $response = null)
{
global $indicia_templates;
iform_load_helpers(array('map_helper', 'report_helper'));
// apply defaults
$args = array_merge(array(), $args);
$reloadPath = self::getReloadPath();
data_entry_helper::$website_id = $args['website_id'];
$auth = data_entry_helper::get_read_write_auth($args['website_id'], $args['password']);
if (!empty($_GET['user_trust_id'])) {
self::loadExistingUserTrust($_GET['user_trust_id'], $auth, $args);
}
$r = "<form method=\"post\" id=\"entry_form\" action=\"{$reloadPath}\">\n";
$r .= $auth['write'] . "<input type=\"hidden\" id=\"website_id\" name=\"website_id\" value=\"" . $args['website_id'] . "\" />\n";
$r .= data_entry_helper::hidden_text(array('fieldname' => 'user_trust:id'));
$r .= data_entry_helper::autocomplete(array('label' => lang::get('Recorder to trust'), 'fieldname' => 'user_trust:user_id', 'table' => 'user', 'valueField' => 'id', 'captionField' => 'person_name', 'extraParams' => $auth['read'] + array('view' => 'detail'), 'class' => 'control-width-4'));
$col1 = '<p>Define the combination of survey, taxon group and/or location that this recorder is trusted for below.</p>';
$col1 .= '<fieldset><legend>' . lang::get('Trust settings') . '</legend>';
$col1 .= data_entry_helper::autocomplete(array('label' => lang::get('Trust records in this survey'), 'fieldname' => 'user_trust:survey_id', 'table' => 'survey', 'valueField' => 'id', 'captionField' => 'title', 'blankText' => '<' . lang::get('any') . '>', 'extraParams' => $auth['read'] + array('sharing' => 'verification'), 'class' => 'control-width-4'));
$col1 .= data_entry_helper::autocomplete(array('label' => lang::get('Trust records in this taxon group'), 'fieldname' => 'user_trust:taxon_group_id', 'table' => 'taxon_group', 'valueField' => 'id', 'captionField' => 'title', 'blankText' => '<' . lang::get('any') . '>', 'extraParams' => $auth['read'], 'class' => 'control-width-4'));
$col1 .= data_entry_helper::autocomplete(array('label' => lang::get('Trust records in this location'), 'fieldname' => 'user_trust:location_id', 'table' => 'location', 'valueField' => 'id', 'captionField' => 'name', 'blankText' => '<' . lang::get('any') . '>', 'extraParams' => $auth['read'] + array('location_type_id' => variable_get('indicia_profile_location_type_id', '')), 'class' => 'control-width-4'));
$col2 = '<p>' . lang::get('Review this recorder\'s experience in the tabs below') . '</p>';
$col2 .= '<div id="summary-tabs">';
$col2 .= data_entry_helper::tab_header(array('tabs' => array('#tab-surveys' => lang::get('Surveys'), '#tab-taxon-groups' => lang::get('Taxon groups'), '#tab-locations' => lang::get('Locations'))));
data_entry_helper::enable_tabs(array('divId' => 'summary-tabs'));
$col2 .= '<div id="tab-surveys">';
$col2 .= report_helper::report_grid(array('id' => 'surveys-summary', 'readAuth' => $auth['read'], 'dataSource' => 'library/surveys/filterable_surveys_verification_breakdown', 'ajax' => TRUE, 'autoloadAjax' => FALSE, 'extraParams' => array('my_records' => 1)));
$col2 .= '</div>';
$col2 .= '<div id="tab-taxon-groups">';
$col2 .= report_helper::report_grid(array('id' => 'taxon-groups-summary', 'readAuth' => $auth['read'], 'dataSource' => 'library/taxon_groups/filterable_taxon_groups_verification_breakdown', 'ajax' => TRUE, 'autoloadAjax' => FALSE, 'extraParams' => array('my_records' => 1)));
$col2 .= '</div>';
$col2 .= '<div id="tab-locations">';
$col2 .= report_helper::report_grid(array('id' => 'locations-summary', 'readAuth' => $auth['read'], 'dataSource' => 'library/locations/filterable_locations_verification_breakdown', 'ajax' => TRUE, 'autoloadAjax' => FALSE, 'extraParams' => array('my_records' => 1, 'location_type_id' => variable_get('indicia_profile_location_type_id', ''))));
$col2 .= '</div>';
$col2 .= '</div>';
$r .= str_replace(array('{col-1}', '{col-2}'), array($col1, $col2), $indicia_templates['two-col-50']);
$r .= '</fieldset>';
$r .= '<input type="submit" class="indicia-button" id="save-button" value="' . (empty(data_entry_helper::$entity_to_load['user_trust_id:id']) ? lang::get('Grant trust') : lang::get('Update trust settings')) . "\" />\n";
if (!empty($_GET['user_trust_id'])) {
$r .= '<input type="submit" class="indicia-button" id="delete-button" name="delete-button" value="' . lang::get('Revoke this trust') . "\" />\n";
data_entry_helper::$javascript .= "\$('#delete-button').click(function(e) {\n if (!confirm(\"Are you sure you want to revoke this trust?\")) {\n e.preventDefault();\n return false;\n }\n });\n";
}
$r .= '</form>';
data_entry_helper::enable_validation('entry_form');
return $r;
}
示例4: get_form
/**
* Return the generated form output.
* @param array $args List of parameter values passed through to the form depending on how the form has been configured.
* This array always contains a value for language.
* @param object $node The Drupal node object.
* @param array $response When this form is reloading after saving a submission, contains the response from the service call.
* Note this does not apply when redirecting (in this case the details of the saved object are in the $_GET data).
* @return Form HTML.
*/
public static function get_form($args, $node, $response = null)
{
$reloadPath = self::getReloadPath();
data_entry_helper::$website_id = $args['website_id'];
$auth = data_entry_helper::get_read_write_auth($args['website_id'], $args['password']);
$group = self::loadGroup($auth);
if (!empty($_POST['invitee_emails'])) {
self::sendInvites($args, $auth);
}
$r = "<form method=\"post\" id=\"entry_form\" action=\"{$reloadPath}\">\n";
$r .= data_entry_helper::textarea(array('label' => lang::get('Send invites to'), 'helpText' => 'Enter email addresses for the people you want to invite, one per line', 'fieldname' => 'invitee_emails', 'validation' => array('required')));
$r .= data_entry_helper::textarea(array('label' => lang::get('Invitation message'), 'helpText' => 'What message would you like to send to your invitees?', 'fieldname' => 'invite_message', 'validation' => array('required'), 'default' => 'Would you like to join the ' . $group['title'] . '?'));
$r .= '<button type="submit" class="indicia-button" id="save-button">' . lang::get('Send Invites') . "</button>\n";
$r .= '<button type="button" class="indicia-button" id="not-now-button" ' . 'onclick="window.location.href=\'' . url($args['redirect_on_success']) . '\'">' . lang::get('Not Now') . "</button>\n";
$r .= '</form>';
data_entry_helper::enable_validation('entry_form');
return $r;
}
示例5: get_form
/**
* Return the generated form output.
* @param array $args List of parameter values passed through to the form depending on how the form has been configured.
* This array always contains a value for language.
* @param object $node The Drupal node object.
* @param array $response When this form is reloading after saving a submission, contains the response from the service call.
* Note this does not apply when redirecting (in this case the details of the saved object are in the $_GET data).
* @return Form HTML.
*/
public static function get_form($args, $node, $response = null)
{
if (!hostsite_get_user_field('indicia_user_id')) {
return 'Please ensure that you\'ve filled in your surname on your user profile before creating or editing groups.';
}
self::createBreadcrumb($args);
iform_load_helpers(array('report_helper', 'map_helper'));
$args = array_merge(array('include_code' => false, 'include_dates' => false, 'include_logo_controls' => true, 'include_sensitivity_controls' => true, 'include_report_filter' => true, 'include_linked_pages' => true, 'include_private_records' => false, 'include_administrators' => false, 'include_members' => false, 'filter_types' => '{"":"what,where,when","Advanced":"source,quality"}', 'indexed_location_type_ids' => '', 'other_location_type_ids' => '', 'data_inclusion_mode' => 'choose'), $args);
$args['filter_types'] = json_decode($args['filter_types'], true);
$reloadPath = self::getReloadPath();
data_entry_helper::$website_id = $args['website_id'];
$auth = data_entry_helper::get_read_write_auth($args['website_id'], $args['password']);
if (!empty($_GET['group_id'])) {
self::loadExistingGroup($_GET['group_id'], $auth, $args);
}
// maintain compatibility with form settings from before group type became multiselect.
if (empty($args['group_type'])) {
$args['group_type'] = array();
} elseif (!is_array($args['group_type'])) {
$args['group_type'] = array($args['group_type']);
}
if (count($args['group_type']) === 1) {
$response = data_entry_helper::get_population_data(array('table' => 'termlists_term', 'extraParams' => $auth['read'] + array('id' => $args['group_type'][0])));
self::$groupType = strtolower($response[0]['term']);
}
self::$groupType = lang::get(self::$groupType);
$r = "<form method=\"post\" id=\"entry_form\" action=\"{$reloadPath}\" enctype=\"multipart/form-data\">\n";
$r .= '<fieldset><legend>' . lang::get('Fill in details of your {1} below', self::$groupType) . '</legend>';
$r .= $auth['write'] . "<input type=\"hidden\" id=\"website_id\" name=\"website_id\" value=\"" . $args['website_id'] . "\" />\n";
$r .= data_entry_helper::hidden_text(array('fieldname' => 'group:id'));
// if a fixed choice of group type, can use a hidden input to put the value in the form.
if (count($args['group_type']) === 1) {
$r .= '<input type="hidden" name="group:group_type_id" value="' . $args['group_type'][0] . '"/>';
}
if (!empty(data_entry_helper::$entity_to_load['group:title'])) {
hostsite_set_page_title(lang::get('Edit {1}', data_entry_helper::$entity_to_load['group:title']));
}
$r .= data_entry_helper::text_input(array('label' => lang::get('{1} name', ucfirst(self::$groupType)), 'fieldname' => 'group:title', 'validation' => array('required'), 'class' => 'control-width-6', 'helpText' => lang::get('Provide the full title of the {1}', self::$groupType)));
if ($args['include_code']) {
$r .= data_entry_helper::text_input(array('label' => lang::get('Code'), 'fieldname' => 'group:code', 'class' => 'control-width-4', 'helpText' => lang::get('Provide a code or abbreviation identifying the {1}', self::$groupType)));
}
$r .= data_entry_helper::textarea(array('label' => ucfirst(lang::get('{1} description', self::$groupType)), 'fieldname' => 'group:description', 'helpText' => lang::get('LANG_Description_Field_Instruct', self::$groupType), 'class' => 'control-width-6'));
// If adding a new group which should have a parent group of some type or other, but no parent
// group is specified in the from_group_id parameter, then let the user pick a group to link as the parent.
if (empty($_GET['group_id']) && !empty($args['parent_group_type']) && !empty($args['parent_group_relationship_type']) && empty($_REQUEST['from_group_id'])) {
// There should be a parent group, but none provided, so allow the user to pick one.
$r .= data_entry_helper::select(array('label' => ucfirst(lang::get('{1} parent', self::$groupType)), 'fieldname' => 'from_group_id', 'table' => 'groups_user', 'captionField' => 'title', 'valueFields' => 'group_id', 'extraParams' => $auth['read'] + array('group_type_id' => $args['parent_group_type'], 'user_id' => hostsite_get_user_field('indicia_user_id'), 'view' => 'detail'), 'validation' => array('required'), 'blankText' => lang::get('<please select>')));
}
if (count($args['group_type']) !== 1) {
$params = array('termlist_external_key' => 'indicia:group_types', 'orderby' => 'sortorder,term');
if (!empty($args['group_type'])) {
$params['query'] = json_encode(array('in' => array('id' => array_values($args['group_type']))));
}
$r .= data_entry_helper::select(array('label' => ucfirst(lang::get('{1} type', self::$groupType)), 'fieldname' => 'group:group_type_id', 'validation' => array('required'), 'table' => 'termlists_term', 'valueField' => 'id', 'captionField' => 'term', 'extraParams' => $auth['read'] + $params, 'class' => 'control-width-4', 'blankText' => lang::get('<please select>'), 'helpText' => lang::get('What sort of {1} is it?', self::$groupType)));
}
$r .= self::groupLogoControl($args);
$r .= self::joinMethodsControl($args);
if ($args['include_sensitivity_controls']) {
$r .= data_entry_helper::checkbox(array('label' => lang::get('Show records at full precision'), 'fieldname' => 'group:view_full_precision', 'helpText' => lang::get('Any sensitive records added to the system are normally shown blurred to a lower grid reference precision. If this box ' . 'is checked, then group members can see sensitive records explicitly posted for the {1} at full precision.', self::$groupType)));
}
$r .= self::dateControls($args);
if ($args['include_private_records']) {
$r .= data_entry_helper::checkbox(array('label' => lang::get('Records are private'), 'fieldname' => 'group:private_records', 'helpText' => lang::get('Tick this box if you want to withold the release of the records from this {1} until a ' . 'later point in time, e.g. when a project is completed.', self::$groupType)));
// If an existing group with private records, then we might need to display a message warning the user about releasing the records.
// Initially hidden, we use JS to display it when appropriate.
if (!empty(data_entry_helper::$entity_to_load['group:id']) && data_entry_helper::$entity_to_load['group:private_records'] === 't') {
$r .= '<p class="warning" style="display: none" id="release-warning">' . lang::get('You are about to release the records belonging to this group. Do not proceed unless you intend to do this!') . '</p>';
}
}
$r .= self::memberControls($args, $auth);
$r .= '</fieldset>';
$r .= self::reportFilterBlock($args, $auth, $hiddenPopupDivs);
$r .= self::inclusionMethodControl($args);
$r .= self::formsBlock($args, $auth, $node);
// auto-insert the creator as an admin of the new group, unless the admins are manually specified
if (!$args['include_administrators'] && empty($_GET['group_id'])) {
$r .= '<input type="hidden" name="groups_user:admin_user_id[]" value="' . hostsite_get_user_field('indicia_user_id') . '"/>';
}
$r .= '<input type="hidden" name="groups_user:administrator" value="t"/>';
$r .= '<input type="submit" class="indicia-button" id="save-button" value="' . (empty(data_entry_helper::$entity_to_load['group:id']) ? lang::get('Create {1}', self::$groupType) : lang::get('Update {1} settings', self::$groupType)) . "\" />\n";
$r .= '</form>';
$r .= $hiddenPopupDivs;
data_entry_helper::enable_validation('entry_form');
// JavaScript to grab the filter definition and store in the form for posting when the form is submitted
data_entry_helper::$javascript .= "\r\n\$('#entry_form').submit(function() {\r\n \$('#filter-title-val').val('" . lang::get('Filter for user group') . " ' + \$('#group\\\\:title').val() + ' ' + new Date().getTime());\r\n \$('#filter-def-val').val(JSON.stringify(indiciaData.filter.def));\r\n});\n";
// for existing groups, prevent removal of yourself as a member. Someone else will have to do this for you so we don't orphan groups.
if (!empty(data_entry_helper::$entity_to_load['group:id'])) {
data_entry_helper::$javascript .= "\$('#groups_user\\\\:admin_user_id\\\\:sublist input[value=" . hostsite_get_user_field('indicia_user_id') . "]').closest('li').children('span').remove();\n";
}
return $r;
}
示例6: get_read_write_auth
/**
* Retrieves read and write nonce tokens from the warehouse.
* @param string $website_id Indicia ID for the website.
* @param string $password Indicia password for the website.
* @return Returns an array containing:
* 'read' => the read authorisation array,
* 'write' => the write authorisation input controls to insert into your form.
* 'writeTokens' => the write authorisation array, if needed as separate tokens rather than just placing in form.
*/
public static function get_read_write_auth($website_id, $password)
{
self::$website_id = $website_id;
/* Store this for use with data caching */
$postargs = "website_id={$website_id}";
$response = self::http_post(parent::$base_url . 'index.php/services/security/get_read_write_nonces', $postargs);
$nonces = json_decode($response['output'], true);
$write = '<input id="auth_token" name="auth_token" type="hidden" class="hidden" ' . 'value="' . sha1($nonces['write'] . ':' . $password) . '" />' . "\r\n";
$write .= '<input id="nonce" name="nonce" type="hidden" class="hidden" ' . 'value="' . $nonces['write'] . '" />' . "\r\n";
return array('write' => $write, 'read' => array('auth_token' => sha1($nonces['read'] . ':' . $password), 'nonce' => $nonces['read']), 'write_tokens' => array('auth_token' => sha1($nonces['write'] . ':' . $password), 'nonce' => $nonces['write']));
}
示例7: get_form
/**
* Return the generated form output.
* @param array $args The form settings.
* @param array $node
* @return string Form HTML.
*/
public static function get_form($args, $node)
{
iform_load_helpers(array('mobile_entry_helper'));
data_entry_helper::$website_id = $args['website_id'];
self::$node = $node;
self::$called_class = 'iform_' . $node->iform;
// Convert parameter, $args['defaults'], into structured array.
self::parse_defaults($args);
// Check permissions to access form.
$func = get_user_func(self::$called_class, 'enforcePermissions');
if ($func) {
if (call_user_func($func) && !user_access('IForm n' . $node->nid . ' admin') && !user_access('IForm n' . $node->nid . ' user')) {
return lang::get('LANG_no_permissions');
}
}
// Else add authorisation tokens to update and read from the Warehouse. We allow
// child classes to generate this first if subclassed.
if (self::$auth) {
$auth = self::$auth;
} else {
$auth = data_entry_helper::get_read_write_auth($args['website_id'], $args['password']);
self::$auth = $auth;
}
// Load custom attribute definitions from warehouse.
self::loadSmpAttrs($auth['read'], $args['survey_id']);
self::loadOccAttrs($auth['read'], $args['survey_id']);
// Build a structured array describing the form.
// Attribute definitions on the warehouse may specify some tabs.
$attrForm = get_attribute_tabs(self::$smpAttrs);
// They are combined with those in the Form Structure.
$form = self::structureForm($args['structure'], $attrForm);
// A second pass organises the content within the tabs
$structure = self::structureFormContent($form);
// Render the form
$renderedForm = self::renderForm($structure, $args, $auth);
$options = array();
//build options for form template
$options['content'] = $renderedForm;
//use mobile authentication
if ($args['mobileauth'] == 1) {
if (!empty($args['mobileauthpath'])) {
$options['action'] = $args['mobileauthpath'];
} else {
$options['action'] = 'mobile/submit';
}
} else {
//no mobile authentication
$options['action'] = "";
//use default action
}
$options['id'] = 'entry_form';
$options['method'] = 'post';
//output form
return mobile_entry_helper::apply_template('form', $options);
}
示例8: get_read_auth
/**
* Retrieves a read token and passes it back as an array suitable to drop into the
* 'extraParams' options for an Ajax call.
*
* @param string $website_id Indicia ID for the website.
* @param string $password Indicia password for the website.
*/
public static function get_read_auth($website_id, $password)
{
self::$website_id = $website_id;
/* Store this for use with data caching */
$postargs = "website_id={$website_id}";
$response = self::http_post(parent::$base_url . 'index.php/services/security/get_read_nonce', $postargs);
$nonce = $response['output'];
return array('auth_token' => sha1("{$nonce}:{$password}"), 'nonce' => $nonce);
}