Passed
Push — master ( 1f25b2...538c60 )
by
unknown
16:08 queued 07:37
created

CatalogSettingsSchema::buildSettings()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 23
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 18
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 23
rs 9.6666
1
<?php
2
3
declare(strict_types=1);
4
5
/* For licensing terms, see /license.txt */
6
7
namespace Chamilo\CoreBundle\Settings;
8
9
use Chamilo\CoreBundle\Form\Type\YesNoType;
10
use Sylius\Bundle\SettingsBundle\Schema\AbstractSettingsBuilder;
11
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
12
use Symfony\Component\Form\FormBuilderInterface;
13
14
class CatalogSettingsSchema extends AbstractSettingsSchema
15
{
16
    public function buildSettings(AbstractSettingsBuilder $builder): void
17
    {
18
        $builder->setDefaults([
19
            'course_catalog_settings'    => '',
20
            'session_catalog_settings'   => '',
21
            'show_courses_descriptions_in_catalog'       => 'false',
22
            'course_catalog_published'                   => 'false',
23
            'course_catalog_display_in_home'             => 'true',
24
            'hide_public_link'                           => 'false',
25
            'only_show_selected_courses'                 => 'false',
26
            'only_show_course_from_selected_category'    => 'false',
27
            'allow_students_to_browse_courses'           => 'true',
28
            'course_catalog_hide_private'                => 'true',
29
            'show_courses_sessions'                      => 'true',
30
            'allow_session_auto_subscription'            => 'false',
31
            'course_subscription_in_user_s_session'      => 'false',
32
        ]);
33
34
        $allowed = [
35
            'course_catalog_settings'  => ['string'],
36
            'session_catalog_settings' => ['string'],
37
        ];
38
        $this->setMultipleAllowedTypes($allowed, $builder);
39
    }
40
41
    public function buildForm(FormBuilderInterface $builder): void
42
    {
43
        $builder
44
            ->add('course_catalog_settings', TextareaType::class, [
45
                'attr'      => ['rows' => 10],
46
            ])
47
            ->add('session_catalog_settings', TextareaType::class, [
48
                'attr'      => ['rows' => 5],
49
            ])
50
            ->add('show_courses_descriptions_in_catalog', YesNoType::class)
51
            ->add('course_catalog_published', YesNoType::class)
52
            ->add('course_catalog_display_in_home', YesNoType::class)
53
            ->add('hide_public_link', YesNoType::class)
54
            ->add('only_show_selected_courses', YesNoType::class)
55
            ->add('only_show_course_from_selected_category', YesNoType::class)
56
            ->add('allow_students_to_browse_courses', YesNoType::class)
57
            ->add('course_catalog_hide_private', YesNoType::class)
58
            ->add('show_courses_sessions', YesNoType::class)
59
            ->add('allow_session_auto_subscription', YesNoType::class)
60
            ->add('course_subscription_in_user_s_session', YesNoType::class);
61
62
        $this->updateFormFieldsFromSettingsInfo($builder);
63
    }
64
}
65