/** * * @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(); }