/**
     *
     * @param EE_Question_Group $question_group
     * @param EE_Registration   $registration
     * @return \EE_Form_Section_Proper
     * @throws \EE_Error
     */
    public function build_subform_from_question_group($question_group, $registration)
    {
        if (!$question_group instanceof EE_Question_Group || !$registration instanceof EE_Registration) {
            throw new EE_Error(__('A valid question group and registration must be passed to EE_Registration_Custom_Question_Form', 'event_espresso'));
        }
        $parts_of_subsection = array('title' => new EE_Form_Section_HTML(EEH_HTML::h5($question_group->name(), $question_group->identifier(), 'espresso-question-group-title-h5 section-title')));
        foreach ($question_group->questions(array(array('QST_system' => ''))) as $question) {
            $parts_of_subsection[$question->ID()] = $question->generate_form_input($registration);
        }
        $parts_of_subsection['edit_link'] = new EE_Form_Section_HTML('<tr><th/><td class="reg-admin-edit-attendee-question-td"><a class="reg-admin-edit-attendee-question-lnk" href="#" title="' . esc_attr__('click to edit question', 'event_espresso') . '">
					<span class="reg-admin-edit-question-group-spn lt-grey-txt">' . __('edit the above question group', 'event_espresso') . '</span>
					<div class="dashicons dashicons-edit"></div>
				</a></td></tr>');
        return new EE_Form_Section_Proper(array('subsections' => $parts_of_subsection, 'html_class' => 'question-group-questions'));
    }
 /**
  * @param EE_Registration   $registration
  * @param EE_Question_Group $question_group
  * @return EE_Form_Section_Proper
  */
 public function question_group_reg_form(EE_Registration $registration, EE_Question_Group $question_group)
 {
     // array of params to pass to parent constructor
     $form_args = array('html_id' => 'ee-reg-form-qstn-grp-' . $question_group->identifier(), 'html_class' => $this->checkout->admin_request ? 'form-table ee-reg-form-qstn-grp-dv' : 'ee-reg-form-qstn-grp-dv', 'html_label_id' => 'ee-reg-form-qstn-grp-' . $question_group->identifier() . '-lbl', 'subsections' => array('reg_form_qstn_grp_hdr' => $this->question_group_header($question_group)), 'layout_strategy' => $this->checkout->admin_request ? new EE_Admin_Two_Column_Layout() : new EE_Div_Per_Section_Layout());
     // where params
     $query_params = array('QST_deleted' => 0);
     // don't load admin only questions on the frontend
     if (!$this->checkout->admin_request) {
         $query_params['QST_admin_only'] = array('!=', TRUE);
     }
     $questions = $question_group->get_many_related('Question', array($query_params, 'order_by' => array('Question_Group_Question.QGQ_order' => 'ASC')));
     // filter for additional content before questions
     $form_args['subsections']['reg_form_questions_before'] = new EE_Form_Section_HTML(apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions', '', $registration, $question_group, $this));
     // loop thru questions
     foreach ($questions as $question) {
         if ($question instanceof EE_Question) {
             $identifier = $question->is_system_question() ? $question->system_ID() : $question->ID();
             $form_args['subsections'][$identifier] = $this->reg_form_question($registration, $question);
         }
     }
     $form_args['subsections'] = apply_filters('FHEE__EE_SPCO_Reg_Step_Attendee_Information__question_group_reg_form__subsections_array', $form_args['subsections'], $registration, $question_group, $this);
     // filter for additional content after questions
     $form_args['subsections']['reg_form_questions_after'] = new EE_Form_Section_HTML(apply_filters('FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions', '', $registration, $question_group, $this));
     //		d( $form_args );
     $question_group_reg_form = new EE_Form_Section_Proper($form_args);
     return apply_filters('FHEE__EE_SPCO_Reg_Step_Attendee_Information___question_group_reg_form__question_group_reg_form', $question_group_reg_form, $registration, $question_group, $this);
 }
 public function column_identifier(EE_Question_Group $item)
 {
     return $item->identifier();
 }