Вход Регистрация
Файл: base-sys/base/classes/user_question_form.php
Строк: 191
<?php

class BASE_CLASS_UserQuestionForm extends Form
{

    
/**
     * Return form element presentation class
     *
     * @param string $presentation
     * @param string $questionName
     *
     * @return FormElement
     */
    
protected function getPresentationClass$presentation$questionName$configs null )
    {
        return 
BOL_QuestionService::getInstance()->getPresentationClass($presentation$questionName$configs);
    }

    
/**
     * Set question label
     *
     * @param FormElement $formField
     * @param array $question
     */
    
protected function setLabel$formField$question )
    {
        
$label $formField->getLabel();

        if ( empty(
$label) )
        {
            
$formField->setLabel(PEEP::getLanguage()->text('base''questions_question_' $question['name'] . '_label'));
        }
    }

    
/**
     * Add user questions to form
     *
     * $questionList[section_name][question]
     * @param array $questionList
     * @param array $questionValueList
     *
     * @return BASE_UserQuestionForm
     */
    
public function addQuestions$questionList$questionValueList = array(), $questionData = array() )
    {
        foreach ( 
$questionList as $key => $question )
        {
            
$custom = isset($question['custom']) ? $question['custom'] : null;

            
$formField $this->getPresentationClass($question['presentation'], $question['name'], $custom);


            
$formField->setLabel(PEEP::getLanguage()->text('base''questions_question_' $question['name'] . '_label'));
            
$this->setLabel($formField$question);

            if ( 
in_array($question['type'], array( BOL_QuestionService::QUESTION_VALUE_TYPE_MULTISELECTBOL_QuestionService::QUESTION_VALUE_TYPE_SELECT) ) 
                && 
method_exists($formField'setColumnCount') )
            {
                
$this->setColumnCount($formField$question);
            }

            
// set field options
            
if ( isset($questionValueList[$question['name']]) && method_exists($formField'setOptions') )
            {
                
$this->setFieldOptions($formField$question['name'], $questionValueList[$question['name']]);
            }

            
// set field value
            
if ( isset($questionData[$question['name']]) && $question['presentation'] !== BOL_QuestionService::QUESTION_PRESENTATION_PASSWORD )
            {
                
$this->setFieldValue($formField$question['presentation'], $questionData[$question['name']]);
            }

            
$this->addFieldValidator($formField$question);

            
$formField->setRequired((string) $question['required'] === '1');

            
$this->addElement($formField);
        }

        return 
$this;
    }

    
/**
     * Set field value
     *
     * @param FormElement $formField
     * @param string $presentation
     * @param string $value
     */
    
protected function setFieldValue$formField$presentation$value )
    {
        
$value BOL_QuestionService::getInstance()->prepareFieldValue($presentation$value);
        
$formField->setValue($value);
    }

    
/**
     * Set field options
     *
     * @param FormElement $formField
     * @param string $questionName
     * @param array<BOL_QuestionValue> $questionValues
     */
    
protected function setFieldOptions$formField$questionName, array $questionValues )
    {
        
$valuesArray = array();

        foreach ( 
$questionValues as $values )
        {
            if ( 
is_array($values) )
            {
                foreach ( 
$values as $value )
                {
                    
$valuesArray[($value->value)] = BOL_QuestionService::getInstance()->getQuestionValueLang($value->questionName$value->value);
                }
            }
        }

        
$formField->setOptions($valuesArray);
    }

    
/**
     * Return acount types array
     *
     * @param FormElement $formField
     * @param array $question
     */
    
protected function getAccountTypes()
    {
        
// get available account types from DB
        
$accountTypes BOL_QuestionService::getInstance()->findAllAccountTypes();

        
$accounts = array();



        
/* @var $value BOL_QuestionAccount */
        
foreach ( $accountTypes as $key => $value )
        {
            
$accounts[$value->name] = PEEP::getLanguage()->text('base''questions_account_type_' $value->name);
        }

        return 
$accounts;
    }

    public function 
setColumnCount$formElement$question )
    {
        
$formElement->setColumnCount($question['columnCount']);
    }

    
/**
     * Set field validator
     *
     * @param FormElement $formField
     * @param array $question
     */
    
protected function addFieldValidator$formField$question )
    {

    }
}
Онлайн: 0
Реклама