Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Sat, Feb 1, 7:59 PM

in-portal

Index: branches/5.0.x/core/units/form_fields/form_fields_tp.php
===================================================================
--- branches/5.0.x/core/units/form_fields/form_fields_tp.php (revision 13535)
+++ branches/5.0.x/core/units/form_fields/form_fields_tp.php (revision 13536)
@@ -1,51 +1,61 @@
<?php
/**
* @version $Id$
* @package In-Portal
* @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved.
* @license GNU/GPL
* In-Portal is Open Source software.
* This means that this software may have been modified pursuant
* the GNU General Public License, and as distributed it includes
* or is derivative of works licensed under the GNU General Public License
* or other free or open source software licenses.
* See http://www.in-portal.org/license for copyright notices and details.
*/
defined('FULL_PATH') or die('restricted access!');
class FormFieldsTagProcessor extends kDBTagProcessor{
function CustomInputName($params)
{
$object =& $this->getObject($params);
$source_prefix = $this->Application->Parser->GetParam('SourcePrefix');
$source_tp =& $this->Application->recallTagProcessor($source_prefix);
$params['name'] = 'fld_'.$object->GetDBField('FormFieldId');
if (isset($params['verify'])) $params['name'] .= '_verify';
return $source_tp->InputName($params);
}
function SubmissionTag($params)
{
$object =& $this->getObject($params);
$params['field'] = 'fld_'.$object->GetDBField('FormFieldId');
$source_prefix = $this->Application->Parser->GetParam('SourcePrefix');
return $this->Application->ProcessParsedTag($source_prefix, $params['tag'], $params);
}
/**
* Allows to modify block params & current list record before PrintList parses record
*
* @param kDBList $object
* @param Array $block_params
*/
function PrepareListElementParams(&$object, &$block_params)
{
- $object->SetDBField('DirectOptions', false);
+ if (!array_key_exists('SourcePrefix', $block_params)) {
+ // don't have source prefix in administrative console
+ $object->SetDBField('DirectOptions', false);
+ return ;
+ }
+
+ $submission =& $this->Application->recallObject( $block_params['SourcePrefix'] );
+ /* @var $submission kDBItem */
+
+ $options = $submission->GetFieldOptions('fld_' . $object->GetID());
+ $object->SetDBField('DirectOptions', array_key_exists('options', $options) ? $options['options'] : false);
}
}
\ No newline at end of file

Event Timeline