admin_form_before(); $output .= $this->admin_form_start(); $output .= $this->default_fields(); $widget_saved_values = $this->get_settings(); $output .= $this->admin_language_tab(); //have to start language tab from here on $output .= $this->admin_language_tab_start(); $all_languages = LanguageHelper::all_languages(); foreach ($all_languages as $key => $lang) { $output .= $this->admin_language_tab_content_start([ 'class' => $key == 0 ? 'tab-pane fade show active' : 'tab-pane fade', 'id' => "nav-home-" . $lang->slug ]); $output .= Text::get([ 'name' => 'title_'.$lang->slug, 'label' => __('Title'), 'value' => $widget_saved_values['title_' . $lang->slug] ?? null, ]); $output .= Summernote::get([ 'name' => 'description_'.$lang->slug, 'label' => __('Description'), 'value' => $widget_saved_values['description_' . $lang->slug] ?? null, ]); $output .= Notice::get([ 'type' => 'secondary', 'text' => __('Vision Settings') ]); $output .= Text::get([ 'name' => 'vision_title_'.$lang->slug, 'label' => __('Vision Title'), 'value' => $widget_saved_values['vision_title_' . $lang->slug] ?? null, ]); $output .= Summernote::get([ 'name' => 'vision_description_'.$lang->slug, 'label' => __('Vision Description'), 'value' => $widget_saved_values['vision_description_' . $lang->slug] ?? null, ]); $output .= Image::get([ 'name' => 'vision_image_'.$lang->slug, 'label' => __('Vision Image'), 'value' => $widget_saved_values['vision_image_' . $lang->slug] ?? null, ]); $output .= Notice::get([ 'type' => 'secondary', 'text' => __('Mission Settings') ]); $output .= Text::get([ 'name' => 'mission_title_'.$lang->slug, 'label' => __('Mission Title'), 'value' => $widget_saved_values['mission_title_' . $lang->slug] ?? null, ]); $output .= Summernote::get([ 'name' => 'mission_description_'.$lang->slug, 'label' => __('Mission Description'), 'value' => $widget_saved_values['mission_description_' . $lang->slug] ?? null, ]); $output .= Image::get([ 'name' => 'mission_image_'.$lang->slug, 'label' => __('Mission Image'), 'value' => $widget_saved_values['mission_image_' . $lang->slug] ?? null, ]); $output .= $this->admin_language_tab_content_end(); } $output .= $this->admin_language_tab_end(); //have to end language tab $output .= Notice::get([ 'type' => 'secondary', 'text' => __('Feature List Settings') ]); $output .= Repeater::get([ 'multi_lang' => true, 'settings' => $widget_saved_values, 'id' => 'experience_area_feature_list_repeater_01', 'fields' => [ [ 'type' => RepeaterField::TEXT, 'name' => 'title', 'label' => __('Title') ], [ 'type' => RepeaterField::ICON_PICKER, 'name' => 'icon', 'label' => __('Icon') ] ] ]); $output .= Notice::get([ 'type' => 'secondary', 'text' => __('Section Settings') ]); $output .= ColorPicker::get([ 'name' => 'left_background_color', 'label' => __('Left Background Color'), 'value' => $widget_saved_values['left_background_color'] ?? null, ]); $output .= ColorPicker::get([ 'name' => 'mission_background_color', 'label' => __('Mission Background Color'), 'value' => $widget_saved_values['mission_background_color'] ?? null, ]); $output .= ColorPicker::get([ 'name' => 'vision_background_color', 'label' => __('Vision Background Color'), 'value' => $widget_saved_values['vision_background_color'] ?? null, ]); $output .= Slider::get([ 'name' => 'padding_top', 'label' => __('Padding Top'), 'value' => $widget_saved_values['padding_top'] ?? 120, 'max' => 500, ]); $output .= Slider::get([ 'name' => 'padding_bottom', 'label' => __('Padding Bottom'), 'value' => $widget_saved_values['padding_bottom'] ?? 20, 'max' => 500, ]); $output .= $this->admin_form_submit_button(); $output .= $this->admin_form_end(); $output .= $this->admin_form_after(); return $output; } /** * frontend_render * this method must have to implement by all widget to render frontend widget content * @since 1.0.0 * */ public function frontend_render(): string { $all_settings = $this->get_settings(); $current_lang = LanguageHelper::user_lang_slug(); $title = SanitizeInput::esc_html($all_settings['title_'.$current_lang]); $description = SanitizeInput::kses_basic($all_settings['description_'.$current_lang]); $mission_title = SanitizeInput::kses_basic($all_settings['mission_title_'.$current_lang]); $mission_description = SanitizeInput::kses_basic($all_settings['mission_description_'.$current_lang]); $mission_image = SanitizeInput::esc_html($all_settings['mission_image_'.$current_lang]); $mission_image = render_background_image_markup_by_attachment_id($mission_image); $vision_title = SanitizeInput::kses_basic($all_settings['vision_title_'.$current_lang]); $vision_description = SanitizeInput::kses_basic($all_settings['vision_description_'.$current_lang]); $vision_image = SanitizeInput::esc_html($all_settings['vision_image_'.$current_lang]); $vision_image = render_background_image_markup_by_attachment_id($vision_image); $padding_top = SanitizeInput::esc_html($all_settings['padding_top']); $padding_bottom = SanitizeInput::esc_html($all_settings['padding_bottom']); $left_background_color = SanitizeInput::esc_html($all_settings['left_background_color']); $left_background_color = !empty($left_background_color) ? 'style="background-color: '.$left_background_color.'"' : ''; $mission_background_color = SanitizeInput::esc_html($all_settings['mission_background_color']); $mission_background_color = !empty($mission_background_color) ? 'style="background-color: '.$mission_background_color.'"' : ''; $vision_background_color = SanitizeInput::esc_html($all_settings['vision_background_color']); $vision_background_color = !empty($vision_background_color) ? 'style="background-color: '.$vision_background_color.'"' : ''; $output = '