diff --git a/config/bundles.php b/config/bundles.php new file mode 100644 index 0000000000..f7dc5ba3e7 --- /dev/null +++ b/config/bundles.php @@ -0,0 +1,45 @@ + ['all' => true], + Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true], + Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], + Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true], + Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], + Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true], + Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], + Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true], + Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], + WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle::class => ['all' => true], + Sonata\EasyExtendsBundle\SonataEasyExtendsBundle::class => ['all' => true], + Sonata\DatagridBundle\SonataDatagridBundle::class => ['all' => true], + Sonata\CoreBundle\SonataCoreBundle::class => ['all' => true], + Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], + Sonata\BlockBundle\SonataBlockBundle::class => ['all' => true], + Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true], + Sonata\AdminBundle\SonataAdminBundle::class => ['all' => true], + FOS\UserBundle\FOSUserBundle::class => ['all' => true], + Sonata\UserBundle\SonataUserBundle::class => ['all' => true], + Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true], + Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], + Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true], + Symfony\Cmf\Bundle\RoutingBundle\CmfRoutingBundle::class => ['all' => true], + Sonata\SeoBundle\SonataSeoBundle::class => ['all' => true], + Sonata\NotificationBundle\SonataNotificationBundle::class => ['all' => true], + Sonata\CacheBundle\SonataCacheBundle::class => ['all' => true], + Sonata\PageBundle\SonataPageBundle::class => ['all' => true], + Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle::class => ['all' => true], + Sonata\ClassificationBundle\SonataClassificationBundle::class => ['all' => true], + Spy\TimelineBundle\SpyTimelineBundle::class => ['all' => true], + Sonata\IntlBundle\SonataIntlBundle::class => ['all' => true], + Sonata\TimelineBundle\SonataTimelineBundle::class => ['all' => true], + Knp\Bundle\MarkdownBundle\KnpMarkdownBundle::class => ['all' => true], + Ivory\CKEditorBundle\IvoryCKEditorBundle::class => ['all' => true], + Sonata\FormatterBundle\SonataFormatterBundle::class => ['all' => true], + JMS\SerializerBundle\JMSSerializerBundle::class => ['all' => true], + Sonata\MediaBundle\SonataMediaBundle::class => ['all' => true], + FOS\JsRoutingBundle\FOSJsRoutingBundle::class => ['all' => true], + FM\ElfinderBundle\FMElfinderBundle::class => ['all' => true], + Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle::class => ['all' => true], + FOS\RestBundle\FOSRestBundle::class => ['all' => true], +]; diff --git a/config/packages/cmf_routing_bundle.yaml b/config/packages/cmf_routing_bundle.yaml new file mode 100644 index 0000000000..131825bcde --- /dev/null +++ b/config/packages/cmf_routing_bundle.yaml @@ -0,0 +1,11 @@ +# Read the documentation: https://symfony.com/doc/master/cmf/bundles/routing/configuration.html +# Install phpcr stack before using this configuration +#cmf_routing: +# chain: +# routers_by_id: +# cmf_routing.dynamic_router: 200 +# router.default: 100 +# dynamic: +# persistence: +# phpcr: +# enabled: true diff --git a/config/packages/dev/jms_serializer.yaml b/config/packages/dev/jms_serializer.yaml new file mode 100644 index 0000000000..353e460275 --- /dev/null +++ b/config/packages/dev/jms_serializer.yaml @@ -0,0 +1,7 @@ +jms_serializer: + visitors: + json: + options: + - JSON_PRETTY_PRINT + - JSON_UNESCAPED_SLASHES + - JSON_PRESERVE_ZERO_FRACTION diff --git a/config/packages/dev/monolog.yaml b/config/packages/dev/monolog.yaml new file mode 100644 index 0000000000..3662592880 --- /dev/null +++ b/config/packages/dev/monolog.yaml @@ -0,0 +1,19 @@ +monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event"] + # uncomment to get logging in your browser + # you may have to allow bigger header sizes in your Web server configuration + #firephp: + # type: firephp + # level: info + #chromephp: + # type: chromephp + # level: info + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine", "!console"] diff --git a/config/packages/dev/routing.yaml b/config/packages/dev/routing.yaml new file mode 100644 index 0000000000..4116679a2e --- /dev/null +++ b/config/packages/dev/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: true diff --git a/config/packages/dev/security_checker.yaml b/config/packages/dev/security_checker.yaml new file mode 100644 index 0000000000..544c0b33aa --- /dev/null +++ b/config/packages/dev/security_checker.yaml @@ -0,0 +1,8 @@ +services: + SensioLabs\Security\SecurityChecker: + public: false + + SensioLabs\Security\Command\SecurityCheckerCommand: + arguments: ['@SensioLabs\Security\SecurityChecker'] + tags: + - { name: console.command } diff --git a/config/packages/dev/swiftmailer.yaml b/config/packages/dev/swiftmailer.yaml new file mode 100644 index 0000000000..5c36456a82 --- /dev/null +++ b/config/packages/dev/swiftmailer.yaml @@ -0,0 +1,4 @@ +# See https://symfony.com/doc/current/email/dev_environment.html +swiftmailer: + # send all emails to a specific address + #delivery_addresses: ['me@example.com'] diff --git a/config/packages/dev/web_profiler.yaml b/config/packages/dev/web_profiler.yaml new file mode 100644 index 0000000000..e92166a7fd --- /dev/null +++ b/config/packages/dev/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: true + intercept_redirects: false + +framework: + profiler: { only_exceptions: false } diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml new file mode 100644 index 0000000000..1d52976c22 --- /dev/null +++ b/config/packages/doctrine.yaml @@ -0,0 +1,51 @@ +parameters: + # Adds a fallback DATABASE_URL if the env var is not set. + # This allows you to run cache:warmup even if your + # environment variables are not available yet. + # You should not need to change this value. + env(DATABASE_URL): '' + +doctrine: + dbal: + # configure these for your database server + driver: 'pdo_mysql' + server_version: '5.7' + charset: utf8mb4 + + # With Symfony 3.3, remove the `resolve:` prefix + url: '%env(resolve:DATABASE_URL)%' + orm: + auto_generate_proxy_classes: '%kernel.debug%' + naming_strategy: doctrine.orm.naming_strategy.underscore + auto_mapping: true + mappings: + App: + is_bundle: false + type: annotation + dir: '%kernel.project_dir%/src/Entity' + prefix: 'App\Entity' + alias: App + gedmo_translatable: + type: annotation + prefix: Gedmo\Translatable\Entity + dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity" + alias: GedmoTranslatable # (optional) it will default to the name set for the mapping + is_bundle: false + gedmo_translator: + type: annotation + prefix: Gedmo\Translator\Entity + dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translator/Entity" + alias: GedmoTranslator # (optional) it will default to the name set for the mapping + is_bundle: false + gedmo_loggable: + type: annotation + prefix: Gedmo\Loggable\Entity + dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/Entity" + alias: GedmoLoggable # (optional) it will default to the name set for the mappingmapping + is_bundle: false + gedmo_tree: + type: annotation + prefix: Gedmo\Tree\Entity + dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Tree/Entity" + alias: GedmoTree # (optional) it will default to the name set for the mapping + is_bundle: false diff --git a/config/packages/doctrine_migrations.yaml b/config/packages/doctrine_migrations.yaml new file mode 100644 index 0000000000..3bf0fbcae9 --- /dev/null +++ b/config/packages/doctrine_migrations.yaml @@ -0,0 +1,5 @@ +doctrine_migrations: + dir_name: '%kernel.project_dir%/src/Migrations' + # namespace is arbitrary but should be different from App\Migrations + # as migrations classes should NOT be autoloaded + namespace: DoctrineMigrations diff --git a/config/packages/fm_elfinder.yaml b/config/packages/fm_elfinder.yaml new file mode 100644 index 0000000000..f7d5252e26 --- /dev/null +++ b/config/packages/fm_elfinder.yaml @@ -0,0 +1,31 @@ +fm_elfinder: + assets_path: /chamilo_master/public/assets + instances: + default: + locale: '%locale%' # defaults to current request locale + editor: ckeditor # other options are tinymce, tinymce4, form, custom and simple + fullscreen: true # defaults true, applies to simple and ckeditor editors + theme: smoothness # jquery theme + include_assets: true # disable if you want to handle loading of the javascript and css assets yourself + connector: + debug: false # defaults to false + roots: # at least one root must be defined +# uploads: +# show_hidden: false # defaults to false +# driver: LocalFileSystem +# path: uploads +# upload_allow: ['image/png', 'image/jpg', 'image/jpeg'] +# upload_deny: ['all'] +# upload_max_size: 2M + local: + driver: Flysystem + path: uploads + flysystem: + type: local + options: + local: + path: '%kernel.root_dir%/../public/uploads/media/' + upload_allow: ['all'] + #upload_allow: ['image/png', 'image/jpg', 'image/jpeg'] + #upload_deny: ['all'] + upload_max_size: 2M \ No newline at end of file diff --git a/config/packages/fos_rest.yaml b/config/packages/fos_rest.yaml new file mode 100644 index 0000000000..d8277cddcf --- /dev/null +++ b/config/packages/fos_rest.yaml @@ -0,0 +1,12 @@ +fos_rest: + param_fetcher_listener: true + body_listener: true + format_listener: true + view: + view_response_listener: 'force' + body_converter: + enabled: false + validate: true + exception: + messages: + 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException': true \ No newline at end of file diff --git a/config/packages/fos_user.yaml b/config/packages/fos_user.yaml new file mode 100644 index 0000000000..cc97a95f33 --- /dev/null +++ b/config/packages/fos_user.yaml @@ -0,0 +1,17 @@ +fos_user: + db_driver: orm # can be orm or odm + firewall_name: secured_area + + # if you change the class configuration, please also alter the sonata_user.yml file + user_class: Chamilo\UserBundle\Entity\User + + group: + group_class: Chamilo\UserBundle\Entity\Group + group_manager: sonata.user.orm.group_manager + + service: + user_manager: sonata.user.orm.user_manager + + from_email: + address: 'test@example.com' + sender_name: 'test@example.com' \ No newline at end of file diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml new file mode 100644 index 0000000000..0e32c855aa --- /dev/null +++ b/config/packages/framework.yaml @@ -0,0 +1,27 @@ +framework: + secret: '%env(APP_SECRET)%' + #default_locale: en + #csrf_protection: ~ + #http_method_override: true + + # uncomment this entire section to enable sessions + #session: + # # With this config, PHP's native session handling is used + # handler_id: ~ + + #esi: ~ + #fragments: ~ + php_errors: + log: true + + templating: + engines: ['twig', 'php'] + session: + # handler_id set to null will use default session handler from php.ini + handler_id: ~ + name: ch_sid + fragments: ~ + http_method_override: true + assets: ~ + annotations: true + translator: ~ diff --git a/config/packages/framework_extra.yaml b/config/packages/framework_extra.yaml new file mode 100644 index 0000000000..a37058c3af --- /dev/null +++ b/config/packages/framework_extra.yaml @@ -0,0 +1,2 @@ +framework: + annotations: true diff --git a/config/packages/ivory_ck_editor.yaml b/config/packages/ivory_ck_editor.yaml new file mode 100644 index 0000000000..5f5472dbb0 --- /dev/null +++ b/config/packages/ivory_ck_editor.yaml @@ -0,0 +1,9 @@ +ivory_ck_editor: + default_config: simple_toolbar + configs: + simple_toolbar: + toolbar: + - ['Bold', 'Italic', 'Strike', 'Link'] + - ['BulletedList', 'NumberedList', '-', 'Outdent', 'Indent'] + - ['Copy', 'Paste', 'PasteFromWord', '-', 'Undo', 'Redo'] + - ['Source'] diff --git a/config/packages/jms_serializer.yaml b/config/packages/jms_serializer.yaml new file mode 100644 index 0000000000..bab42dae47 --- /dev/null +++ b/config/packages/jms_serializer.yaml @@ -0,0 +1,13 @@ +jms_serializer: + visitors: + xml: + format_output: '%kernel.debug%' +# metadata: +# auto_detection: false +# directories: +# any-name: +# namespace_prefix: "My\\FooBundle" +# path: "@MyFooBundle/Resources/config/serializer" +# another-name: +# namespace_prefix: "My\\BarBundle" +# path: "@MyBarBundle/Resources/config/serializer" diff --git a/config/packages/prod/doctrine.yaml b/config/packages/prod/doctrine.yaml new file mode 100644 index 0000000000..2f16f0fdea --- /dev/null +++ b/config/packages/prod/doctrine.yaml @@ -0,0 +1,31 @@ +doctrine: + orm: + metadata_cache_driver: + type: service + id: doctrine.system_cache_provider + query_cache_driver: + type: service + id: doctrine.system_cache_provider + result_cache_driver: + type: service + id: doctrine.result_cache_provider + +services: + doctrine.result_cache_provider: + class: Symfony\Component\Cache\DoctrineProvider + public: false + arguments: + - '@doctrine.result_cache_pool' + doctrine.system_cache_provider: + class: Symfony\Component\Cache\DoctrineProvider + public: false + arguments: + - '@doctrine.system_cache_pool' + +framework: + cache: + pools: + doctrine.result_cache_pool: + adapter: cache.app + doctrine.system_cache_pool: + adapter: cache.system diff --git a/config/packages/prod/jms_serializer.yaml b/config/packages/prod/jms_serializer.yaml new file mode 100644 index 0000000000..bc97faf1f6 --- /dev/null +++ b/config/packages/prod/jms_serializer.yaml @@ -0,0 +1,6 @@ +jms_serializer: + visitors: + json: + options: + - JSON_UNESCAPED_SLASHES + - JSON_PRESERVE_ZERO_FRACTION diff --git a/config/packages/prod/monolog.yaml b/config/packages/prod/monolog.yaml new file mode 100644 index 0000000000..90e1a4c19b --- /dev/null +++ b/config/packages/prod/monolog.yaml @@ -0,0 +1,17 @@ +monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_404s: + # regex: exclude all 404 errors from the logs + - ^/ + nested: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine"] diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml new file mode 100644 index 0000000000..368bc7f491 --- /dev/null +++ b/config/packages/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: ~ diff --git a/config/packages/security.yaml b/config/packages/security.yaml new file mode 100644 index 0000000000..671b84b2e7 --- /dev/null +++ b/config/packages/security.yaml @@ -0,0 +1,85 @@ +# To get started with security, check out the documentation: +# http://symfony.com/doc/current/book/security.html +security: + access_control: + - { path: ^/administrator, role: ROLE_ADMIN } + - { path: ^/efconnect, role: ROLE_USER } + - { path: ^/elfinder, role: ROLE_USER } + + encoders: + FOS\UserBundle\Model\UserInterface: + id: chamilo_user.security.encoder + + role_hierarchy: + ROLE_SONATA_ADMIN: ROLE_USER + ROLE_ADMIN: + - ROLE_SONATA_ADMIN + - ROLE_QUESTION_MANAGER + - ROLE_SESSION_MANAGER + - ROLE_TEACHER + - ROLE_DIRECTOR + - ROLE_JURY_PRESIDENT + - ROLE_CURRENT_COURSE_TEACHER + - SONATA + ROLE_SUPER_ADMIN: [ROLE_SONATA_ADMIN, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] + ROLE_GLOBAL_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] + ROLE_RRHH: [ROLE_TEACHER] + ROLE_TEACHER: [ROLE_STUDENT] + ROLE_QUESTION_MANAGER: [ROLE_STUDENT, ROLE_QUESTION_MANAGER] + ROLE_SESSION_MANAGER: [ROLE_STUDENT, ROLE_SESSION_MANAGER, ROLE_ALLOWED_TO_SWITCH] + ROLE_STUDENT: [ROLE_STUDENT] + ROLE_CURRENT_TEACHER: [] + ROLE_CURRENT_COURSE_STUDENT: [ROLE_CURRENT_COURSE_STUDENT] + ROLE_CURRENT_COURSE_TEACHER: [ROLE_CURRENT_COURSE_TEACHER, ROLE_CURRENT_COURSE_STUDENT] + + SONATA: + - ROLE_SONATA_PAGE_ADMIN_PAGE_EDIT # if you are not using acl then this line must be uncommented + - ROLE_SONATA_PAGE_ADMIN_BLOCK_EDIT + + ROLE_ANONYMOUS: [ROLE_ANONYMOUS] + + access_decision_manager: + # strategy can be: affirmative, unanimous or consensus + strategy: unanimous + + # http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers + providers: + fos_userbundle: + id: fos_user.user_provider.username + + firewalls: + # disables authentication for assets and the profiler, adapt it according to your needs + dev: + pattern: ^/(_(profiler|wdt)|css|images|js)/ + security: false + admin: + pattern: .* + context: user + form_login: + provider: fos_userbundle + csrf_token_generator: security.csrf.token_manager + login_path: /administration/login + use_forward: false + check_path: /administration/login_check + success_handler: chamilo_core.listener.login_success_handler + failure_path: null + remember_me: + secret: '%secret%' + lifetime: 604800 # 1 week in seconds + path: / + logout: + path: /administration/logout + target: / + anonymous: true + + oauth: + resource_owners: + facebook: "/administration/login/check-facebook" + google: "/administration/login/check-google" + github: "/administration/login/check-github" + login_path: /administration/login + check_path: /administration/login_check + failure_path: /administration/connect + use_forward: false + oauth_user_provider: + service: chamilo_user_provider diff --git a/config/packages/sonata_admin.yaml b/config/packages/sonata_admin.yaml new file mode 100644 index 0000000000..886c3beaaf --- /dev/null +++ b/config/packages/sonata_admin.yaml @@ -0,0 +1,210 @@ +sonata_notification: + class: + message: Chamilo\NotificationBundle\Entity\Message +sonata_admin: + # default value, change it to sonata.admin.security.handler.acl to use ACL + security: + handler: sonata.admin.security.handler.role + title: Chamilo #%sonata_admin.title% + title_logo: css/themes/chamilo/images/header-logo.png #%sonata_admin.logo_title% + options: + html5_validate: false # does not use html5 validation + pager_links: 5 # pager max links to display + + templates: + # default global templates + # the layout template include javascript/stylesheet to the formatter bundle, + # if you don't need it use the default one: SonataAdminBundle::standard_layout.html. + layout: ChamiloAdminBundle::layout.html.twig +# layout: ApplicationSonataAdminBundle::standard_layout.html.twig + #layout: ApplicationSonataAdminBundle::demo_layout.html.twig + +# layout: SonataAdminBundle::standard_layout.html.twig + ajax: SonataAdminBundle::ajax_layout.html.twig + + # default value if done set, actions templates, should extends a global templates + list: SonataAdminBundle:CRUD:list.html.twig + show: SonataAdminBundle:CRUD:show.html.twig + edit: SonataAdminBundle:CRUD:edit.html.twig +# user_block: ChamiloCoreBundle:Admin:admin_topnav.html.twig + + extensions: +# cmf_core.admin_extension.translatable: +# implements: +# - Symfony\Cmf\Bundle\CoreBundle\Translatable\TranslatableInterface +# +# cmf_core.admin_extension.publish_workflow.publishable: +# implements: +# - Symfony\Cmf\Bundle\CoreBundle\PublishWorkflow\PublishableInterface +# cmf_core.admin_extension.publish_workflow.time_period: +# implements: +# - Symfony\Cmf\Bundle\CoreBundle\PublishWorkflow\PublishTimePeriodInterface + + dashboard: + blocks: + - { position: left, type: sonata.admin.block.admin_list } +# - { position: right, type: sonata.timeline.block.timeline, settings: { context: SONATA_ADMIN, max_per_page: 25, template: 'ChamiloTimelineBundle:Block:timeline.html.twig',}} +# - { position: right, type: sonata.admin_doctrine_orm.block.audit} + +# - { position: center, type: sonata.block.service.text, settings: { content: "

Welcome!

You can customize this dashboard by editing the sonata_admin.yml file. The current dashboard presents the recent items from the NewsBundle and a timeline with the latest action"} } + #- { position: center, type: sonata.news.block.recent_posts, settings: { title: Recent Posts, number: 7, mode: admin }} +# - { position: left, type: sonata.block.service.text, settings: { content: "

Welcome!

You can customize this dashboard by editing the sonata_admin.yml file. The current dashboard presents the recent items from the NewsBundle and a non-statistical e-commerce information.
"} } +# - { position: center, type: sonata.news.block.recent_comments, settings: { title: Recent Comments, number: 7, mode: admin }} + #- { position: right, type: sonata.order.block.recent_orders, settings: { title: Recent Orders, number: 5, mode: admin }} + #- { position: right, type: sonata.customer.block.recent_customers, settings: { title: Recent Customers, number: 5, mode: admin }} + #- { position: right, type: sonata.block.service.rss, settings: { title: Sonata Project's Feeds, url: http://sonata-project.org/blog/archive.rss }} + + groups: + sonata.admin.group.content: + label: Content + label_catalogue: SonataDemoBundle + #icon: '' + items: + - sonata.page.admin.page +# - sonata.news.admin.comment +# - sonata.news.admin.post + - sonata.media.admin.media + - sonata.media.admin.gallery +# - sonata.comment.admin.thread + + sonata.admin.group.site_builder: + label: Site Builder + label_catalogue: SonataDemoBundle + #icon: '' + items: + - sonata.page.admin.page + - sonata.page.admin.site + - sonata.admin.contact_category + + sonata.admin.group.faq: + label: FAQ + label_catalogue: Faq + #icon: '' + items: + - sonata.admin.faq_category + - sonata.admin.faq_question + + sonata.admin.group.classification: + label: sonata_classification + label_catalogue: SonataClassificationBundle + #icon: '' + items: + - sonata.classification.admin.category + - sonata.classification.admin.tag + - sonata.classification.admin.collection + + sonata.admin.group.administration: + label: sonata_administration + label_catalogue: SonataAdminBundle + #icon: '' + items: +# - sonata.notification.admin.message +# - sonata.admin.settings_current +# - sonata.admin.tool + sonata.admin.group.user: + label: Users + #icon: '' + label_catalogue: SonataAdminBundle + items: + - sonata.user.admin.user + - sonata.user.admin.group +# - sonata.admin.user_group +# - sonata.admin.user_field +# - sonata.admin.user_field_values +# sonata.admin.group.course: +# label: Courses +# #icon: '' +# label_catalogue: SonataAdminBundle +# items: +## - sonata.admin.course +# - sonata.admin.course_category +# - sonata.admin.course_request +# - sonata.admin.c_group_info +## - sonata.admin.notebook +# sonata.admin.group.session: +# label: Sessions +# #icon: '' +# label_catalogue: SonataAdminBundle +# items: +# - sonata.admin.session +# - sonata.admin.session_category +# - sonata.admin.career +# - sonata.admin.promotion +# sonata.admin.group.url: +# label: URLs +# #icon: '' +# label_catalogue: SonataAdminBundle +# items: +# - sonata.admin.access_url + + assets: + stylesheets: + # The sandbox includes default pre-optimized version of some css and js + # So you can either use them, and add your custom assets here + # ~ or ~ + # tweak the assetic.yml and the following lines + - assetic/sonata_admin_css.css + - assetic/sonata_formatter_css.css + - assetic/sonata_jqueryui_css.css + - bundles/sonataadmin/vendor/admin-lte/dist/css/skins/skin-black.min.css + + # Default admin assets + # - bundles/sonatacore/vendor/bootstrap/dist/css/bootstrap.min.css + # - bundles/sonatacore/vendor/components-font-awesome/css/font-awesome.min.css + # - bundles/sonatacore/vendor/ionicons/css/ionicons.min.css + # - bundles/sonataadmin/vendor/admin-lte/dist/css/AdminLTE.min.css + # - bundles/sonataadmin/vendor/iCheck/skins/flat/blue.css + # - bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css + # - bundles/sonataadmin/vendor/jqueryui/themes/base/jquery-ui.css + # - bundles/sonatacore/vendor/select2/select2.css + # - bundles/sonatacore/vendor/select2-bootstrap-css/select2-bootstrap.min.css + # - bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/css/bootstrap-editable.css + # - bundles/sonataadmin/css/styles.css + # - bundles/sonataadmin/css/layout.css + # - bundles/sonataadmin/css/tree.css + + # Formatter assets + # - bundles/sonataformatter/markitup/skins/sonata/style.css + # - bundles/sonataformatter/markitup/sets/markdown/style.css + # - bundles/sonataformatter/markitup/sets/html/style.css + # - bundles/sonataformatter/markitup/sets/textile/style.css + + # Page assets + # - bundles/sonatapage/sonata-page.back.min.css + + + javascripts: + - assetic/sonata_admin_js.js + # - bundles/sonataadmin/Admin.js + # - bundles/sonataadmin/treeview.js + - assetic/sonata_jqueryui_js.js + - assetic/sonata_formatter_js.js + - bundles/sonataformatter/vendor/ckeditor/ckeditor.js + + # Default admin assets + # - bundles/sonatacore/vendor/jquery/dist/jquery.min.js + # - bundles/sonataadmin/vendor/jquery.scrollTo/jquery.scrollTo.min.js + # - bundles/sonatacore/vendor/moment/min/moment.min.js + # - bundles/sonatacore/vendor/bootstrap/dist/js/bootstrap.min.js + # - bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js + # - bundles/sonataadmin/vendor/jqueryui/ui/minified/jquery-ui.min.js + # - bundles/sonataadmin/vendor/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js + # - bundles/sonataadmin/jquery/jquery.form.js + # - bundles/sonataadmin/jquery/jquery.confirmExit.js + # - bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/js/bootstrap-editable.min.js + # - bundles/sonatacore/vendor/select2/select2.min.js + # - bundles/sonataadmin/vendor/admin-lte/dist/js/app.min.js + # - bundles/sonataadmin/vendor/iCheck/icheck.min.js + # - bundles/sonataadmin/vendor/slimScroll/jquery.slimscroll.min.js + # - bundles/sonataadmin/Admin.js + # - bundles/sonataadmin/treeview.js + + # Formatter assets + # - bundles/sonataformatter/vendor/markitup-markitup/markitup/jquery.markitup.js + # - bundles/sonataformatter/markitup/sets/markdown/set.js + # - bundles/sonataformatter/markitup/sets/html/set.js + # - bundles/sonataformatter/markitup/sets/textile/set.js + + # Page assets + # - bundles/sonatapage/sonata-page.back.js + diff --git a/config/packages/sonata_block.yaml b/config/packages/sonata_block.yaml new file mode 100644 index 0000000000..4d67db3f3c --- /dev/null +++ b/config/packages/sonata_block.yaml @@ -0,0 +1,80 @@ +sonata_block: + context_manager: sonata.page.block.context_manager + default_contexts: [sonata_page_bundle] + + http_cache: + listener: true +# menus: +# "ChamiloCoreBundle:MainMenuBuilder:mainMenu": "Main Menu" +# #"SonataDemoBundle:Builder:mainMenu": "Main Menu" + + blocks: + # Chamilo blocks + chamilo_core.block.breadcrumb: ~ + chamilo_core.block.course: ~ + chamilo_core.block.skill: ~ + + sonata.admin.block.stats: + contexts: [admin] + sonata.admin.block.admin_list: + contexts: [admin] + sonata.admin.block.search_result: + contexts: [admin] + + sonata.admin_doctrine_orm.block.audit: + contexts: [admin] + + # Builtin Block + sonata.block.service.text: + sonata.block.service.container: + sonata.block.service.rss: + sonata.block.service.menu: + sonata.block.service.template: + + # PageBundle's Blocks + sonata.page.block.container: + # cache: sonata.cache.memcached + # cache: sonata.cache.predis + # cache: sonata.page.cache.esi # if you are using the PageBundle + # cache: sonata.block.cache.esi # if you are using the BlockBundle without the PageBundle + sonata.page.block.children_pages: + sonata.page.block.breadcrumb: + + # MediaBundle's Blocks + sonata.media.block.media: + sonata.media.block.gallery: + sonata.media.block.feature_media: + + # NewsBundle's Blocks + sonata.news.block.recent_comments: + sonata.news.block.recent_posts: + + # TimelineBundle's Blocks + sonata.timeline.block.timeline: + contexts: [admin] + + # UserBundle's Blocks + sonata.user.block.account: + cache: sonata.page.cache.js_async + #cache: sonata.page.cache.esi + contexts: [user] + sonata.user.block.menu: + contexts: [user] + + # SeoBundle's Blocks + sonata.seo.block.social.container: + sonata.seo.block.email.share_button: + sonata.seo.block.facebook.like_box: + sonata.seo.block.facebook.like_button: + sonata.seo.block.facebook.send_button: + sonata.seo.block.facebook.share_button: + sonata.seo.block.pinterest.pin_button: + sonata.seo.block.twitter.share_button: + sonata.seo.block.twitter.follow_button: + sonata.seo.block.twitter.hashtag_button: + sonata.seo.block.twitter.mention_button: + sonata.seo.block.twitter.embed: + + # Formatter + sonata.formatter.block.formatter: + sonata.seo.block.breadcrumb.homepage: diff --git a/config/packages/sonata_cache.yaml b/config/packages/sonata_cache.yaml new file mode 100644 index 0000000000..2e399d3ca4 --- /dev/null +++ b/config/packages/sonata_cache.yaml @@ -0,0 +1,33 @@ +# +# more information can be found here http://sonata-project.org/bundles/cache +# +#sonata_cache: +# caches: +# esi: +# servers: +# - varnishadm -T 127.0.0.1:2000 {{ COMMAND }} "{{ EXPRESSION }}" +# +# ssi: +# token: TheToken +# +# mongo: +# database: cache +# collection: cache +# servers: +# - {host: 127.0.0.1, port: 27017, user: username, password: pASS'} +# - {host: 127.0.0.2} +# +# memcached: +# prefix: test # prefix to ensure there is no clash between instances +# servers: +# - {host: 127.0.0.1, port: 11211, weight: 0} +# +# predis: +# servers: +# - {host: 127.0.0.1, port: 11211, database: 6379} +# +# apc: +# token: s3cur3 # token used to clear the related cache +# prefix: test # prefix to ensure there is no clash between instances +# servers: +# - { domain: kooqit.local, ip: 127.0.0.1, port: 80} diff --git a/config/packages/sonata_classification.yaml b/config/packages/sonata_classification.yaml new file mode 100644 index 0000000000..0d58ece11f --- /dev/null +++ b/config/packages/sonata_classification.yaml @@ -0,0 +1,15 @@ +sonata_classification: + class: + tag: Chamilo\ClassificationBundle\Entity\Tag + category: Chamilo\ClassificationBundle\Entity\Category + context: Chamilo\ClassificationBundle\Entity\Context + collection: Chamilo\ClassificationBundle\Entity\Collection + media: Chamilo\MediaBundle\Entity\Media + + +#doctrine: +# orm: +# entity_managers: +# default: +# mappings: +# ChamiloClassificationBundle: ~ diff --git a/config/packages/sonata_core.yaml b/config/packages/sonata_core.yaml new file mode 100644 index 0000000000..c38f45d31d --- /dev/null +++ b/config/packages/sonata_core.yaml @@ -0,0 +1,28 @@ +sonata_core: + form_type: horizontal + + flashmessage: + success: + types: + - { type: my_custom_bundle_success } + - { type: my_other_bundle_success } + warning: + types: + - { type: my_custom_bundle_warning } + - { type: my_other_bundle_warning } + error: + css_class: danger # optionally, a CSS class can be defined + types: + - { type: my_custom_bundle } + confirmation: # You can add custom types too + types: + - { type: custom_bundle_type } + confirm: # You can add custom types too + types: + - { type: custom_bundle_type } + normal: + types: + - { type: custom_bundle_type } + no_layout: # You can add custom types too + types: + - { type: custom_bundle_type } diff --git a/config/packages/sonata_formatter.yaml b/config/packages/sonata_formatter.yaml new file mode 100644 index 0000000000..236bcbccc9 --- /dev/null +++ b/config/packages/sonata_formatter.yaml @@ -0,0 +1,35 @@ +# +# more information can be found here http://sonata-project.org/bundles/formatter +# +sonata_formatter: + formatters: + markdown: + service: sonata.formatter.text.markdown + extensions: + - sonata.formatter.twig.control_flow + - sonata.formatter.twig.gist + - sonata.media.formatter.twig + + text: + service: sonata.formatter.text.text + extensions: + - sonata.formatter.twig.control_flow + - sonata.formatter.twig.gist + - sonata.media.formatter.twig + rawhtml: + service: sonata.formatter.text.raw + extensions: + - sonata.formatter.twig.control_flow + - sonata.formatter.twig.gist + - sonata.media.formatter.twig + richhtml: + service: sonata.formatter.text.raw + extensions: + - sonata.formatter.twig.control_flow + - sonata.formatter.twig.gist + - sonata.media.formatter.twig + + ckeditor: + templates: + browser: 'SonataFormatterBundle:Ckeditor:browser.html.twig' + upload: 'SonataFormatterBundle:Ckeditor:upload.html.twig' diff --git a/config/packages/sonata_intl.yaml b/config/packages/sonata_intl.yaml new file mode 100644 index 0000000000..3283a1e88c --- /dev/null +++ b/config/packages/sonata_intl.yaml @@ -0,0 +1,12 @@ +# +# more information can be found here http://sonata-project.org/bundles/intl +# +sonata_intl: + locale: ~ + timezone: + # if service is left blank, the chain detector will be used with detectors + # defined in the dedicated section + service: ~ + detectors: + - sonata.intl.timezone_detector.user # default value if SonataUserBundle is available + - sonata.intl.timezone_detector.locale # default value \ No newline at end of file diff --git a/config/packages/sonata_media.yaml b/config/packages/sonata_media.yaml new file mode 100644 index 0000000000..9299005824 --- /dev/null +++ b/config/packages/sonata_media.yaml @@ -0,0 +1,186 @@ + +sonata_media: + class: + media: Chamilo\MediaBundle\Entity\Media + gallery: Chamilo\MediaBundle\Entity\Gallery + gallery_has_media: Chamilo\MediaBundle\Entity\GalleryHasMedia + category: Chamilo\ClassificationBundle\Entity\Category + + db_driver: doctrine_orm # | doctrine_mongodb + default_context: default + contexts: + default: # the default context is mandatory + download: + mode: http # X-Sendfile | http + providers: + - sonata.media.provider.dailymotion + - sonata.media.provider.youtube + - sonata.media.provider.image + - sonata.media.provider.file + - sonata.media.provider.vimeo + + formats: + small: { width: 100, quality: 100} + big: { width: 970 , quality: 100} + + course: + providers: + - sonata.media.provider.dailymotion + - sonata.media.provider.youtube + - sonata.media.provider.image + - sonata.media.provider.file + - sonata.media.provider.vimeo + formats: + small: { width: 100, quality: 100} + big: { width: 970 , quality: 100} + news: + providers: + - sonata.media.provider.dailymotion + - sonata.media.provider.youtube + - sonata.media.provider.image + + formats: + abstract: { width: 100, quality: 100} + wide: { width: 820, quality: 100} + + sonata_collection: + providers: + - sonata.media.provider.image + + formats: + preview: { width: 100, quality: 100} + wide: { width: 820, quality: 100} + + sonata_category: + providers: + - sonata.media.provider.image + + formats: + preview: { width: 100, quality: 100} + wide: { width: 820, quality: 100} + + user: + providers: + - sonata.media.provider.image + + formats: + small: { width: 100, quality: 100} + big: { width: 970 , quality: 100} + + cdn: + # define the public base url for the uploaded media + server: + path: '%url_append%%sonata_media.cdn.host%' + + filesystem: + # define where the uploaded file will be stored + local: + directory: '%kernel.root_dir%/../public/uploads/media' + create: true + + providers: + # ... + file: + # the resizer must be set to false, otherwhise this can delete icon files from the fs + resizer: false + image: + thumbnail: sonata.media.thumbnail.format # default value +# thumbnail: sonata.media.thumbnail.consumer.format # can be used to dispatch the resize action to async task +# thumbnail: sonata.media.thumbnail.liip_imagine # use the LiipImagineBundle to resize the image + vimeo: + thumbnail: sonata.media.thumbnail.format # default value +# thumbnail: sonata.media.thumbnail.consumer.format # can be used to dispatch the resize action to async task +# thumbnail: sonata.media.thumbnail.liip_imagine # use the LiipImagineBundle to resize the image + youtube: + thumbnail: sonata.media.thumbnail.format # default value +# thumbnail: sonata.media.thumbnail.consumer.format # can be used to dispatch the resize action to async task +# thumbnail: sonata.media.thumbnail.liip_imagine # use the LiipImagineBundle to resize the image + dailymotion: + thumbnail: sonata.media.thumbnail.format # default value +# thumbnail: sonata.media.thumbnail.consumer.format # can be used to dispatch the resize action to async task +# thumbnail: sonata.media.thumbnail.liip_imagine # use the LiipImagineBundle to resize the image + + pixlr: + enabled: true + referrer: App + + resizer: + simple: +# mode: outbound + mode: inset + +# +# The LiipImagineBundle can be used if you want to convert on demand an image +# to a specific format. (ie a controller render the file) +# more information can be found here : https://github.com/liip/LiipImagineBundle +# +#liip_imagine: +# filter_sets: +# +# # this configuration match the sonata_media configuration format definition +# sonata_product_preview: +# quality: 75 +# controller_action: 'SonataMediaBundle:Media:liipImagineFilter' +# filters: +# thumbnail: { size: [100, 100], mode: outbound } +# +# sonata_product_small: +# quality: 75 +# controller_action: 'SonataMediaBundle:Media:liipImagineFilter' +# filters: +# thumbnail: { size: [200, 100], mode: outbound } +# +# sonata_product_large: +# quality: 75 +# controller_action: 'SonataMediaBundle:Media:liipImagineFilter' +# filters: +# thumbnail: { size: [600, 100], mode: outbound } +# +# news_abstract: +# quality: 75 +# controller_action: 'SonataMediaBundle:Media:liipImagineFilter' +# filters: +# thumbnail: { size: [100, 100], mode: outbound } +# +# news_wide: +# quality: 75 +# controller_action: 'SonataMediaBundle:Media:liipImagineFilter' +# filters: +# thumbnail: { size: [820, 100], mode: outbound } +# +# sonata_collection_preview: +# quality: 75 +# controller_action: 'SonataMediaBundle:Media:liipImagineFilter' +# filters: +# thumbnail: { size: [100, 100], mode: outbound } +# +# sonata_collection_wide: +# quality: 75 +# controller_action: 'SonataMediaBundle:Media:liipImagineFilter' +# filters: +# thumbnail: { size: [820, 100], mode: outbound } +# +# sonata_category_preview: +# quality: 75 +# controller_action: 'SonataMediaBundle:Media:liipImagineFilter' +# filters: +# thumbnail: { size: [100, 100], mode: outbound } +# +# sonata_category_wide: +# quality: 75 +# controller_action: 'SonataMediaBundle:Media:liipImagineFilter' +# filters: +# thumbnail: { size: [820, 100], mode: outbound } +# +# default_small: +# quality: 75 +# controller_action: 'SonataMediaBundle:Media:liipImagineFilter' +# filters: +# thumbnail: { size: [100, 100], mode: outbound } +# +# default_big: +# quality: 75 +# controller_action: 'SonataMediaBundle:Media:liipImagineFilter' +# filters: +# thumbnail: { size: [820, 70], mode: outbound } + diff --git a/config/packages/sonata_page.yaml b/config/packages/sonata_page.yaml new file mode 100644 index 0000000000..ef92a40227 --- /dev/null +++ b/config/packages/sonata_page.yaml @@ -0,0 +1,187 @@ +# more information can be found here http://sonata-project.org/bundles/page +cmf_routing: + chain: + routers_by_id: + # enable the DynamicRouter with high priority to allow overwriting configured routes with content + #symfony_cmf_routing_extra.dynamic_router: 200 + # enable the symfony default router with a lower priority + + router.default: 150 # First chamilo/symfony2 router + sonata.page.router: 100 # then the page router + +sonata_page: + class: + page: Chamilo\PageBundle\Entity\Page + site: Chamilo\PageBundle\Entity\Site + block: Chamilo\PageBundle\Entity\Block + snapshot: Chamilo\PageBundle\Entity\Snapshot + + multisite: host_with_path_by_locale # host + use_streamed_response: false # set the value to false in debug mode or if the reverse proxy does not handle streamed response + + ignore_uri_patterns: + - ^/administration(.*) # sonata admin + - ^/admin(.*) # chamilo admin + - ^/main(.*) + - ^/plugin(.*) + - /(.*)/(.*)administration(.*)/ + - ^/api/(.*) + - ^/login/(.*) + - ^/connect/(.*) + - ^/packages/(.*) + - ^/package/(.*) + - ^install + - ^/install/(.*) + - install.php + - install.php/(.*) + - install.php/packages/(.*) + - install.php/package/(.*) + - install.php/(.*)/(.*) + - ^/bundles/(.*) + - ^/_wdt/(.*) + - ^/_profiler/(.*) + - ^/userportal + - ^/userportal/(.*) + - ^/js/(.*) + - ^/faq/(.*) + - ^/faq + - ^/courses/(.*) + - ^/front/editor + - ^/contact(.*) # sonata admin + - ^/cms/pages/latest + - ^/cms/pages/latest/(.*) + + ignore_route_patterns: + - (.*)administration(.*) # ignore admin route, ie route containing 'admin' # sonata admin + - ^_(.*) # ignore symfony routes + - fos_user(.*) + - sylius_flow(.*) + + ignore_routes: + - home + - elfinder + - login + - logout + - fos_js_routing_js + - _settings + - main + - sonata_page_cache_esi + - sonata_page_cache_ssi + - sonata_page_js_sync_cache + - sonata_page_js_async_cache + - sonata_cache_esi + - sonata_cache_ssi + - sonata_cache_js_async + - sonata_cache_js_sync + - sonata_cache_apc + - chamilo_installer_flow + - sylius_flow_start + - sylius_flow_display + - sylius_flow_forward + - chamilo_core_user_user_mycourses + - chamilo_page_page_getlatestpages + + cache_invalidation: + service: sonata.page.cache.invalidation.simple + recorder: sonata.page.cache.recorder +# classes: +# "Chamilo\PageBundle\Entity\Block": getId + + assets: + stylesheets: + - assetic/sonata_front_css.css + + javascripts: + - assetic/sonata_front_js.js + + default_template: default + templates: + default: + path: 'ChamiloPageBundle::demo_layout.html.twig' +# path: '::layout.html.twig' + name: 'default' + containers: + header: + name: Header + content_top: + name: Top content + content: + name: Main content + content_bottom: + name: Bottom content + footer: + name: Footer + matrix: + layout: | + HHHHHHHH + TTTTTTTT + CCCCCCCC + BBBBBBBB + FFFFFFFF + + mapping: + H: header + T: content_top + C: content + B: content_bottom + F: footer + + 2columns: + path: 'ChamiloPageBundle::demo_2columns_layout.html.twig' +# path: '::layout.html.twig' + name: '2 columns layout' + containers: + header: + name: Header + content_top: + name: Top content + left_col: + name: Left content + rigth_col: + name: Right content + content_bottom: + name: Bottom content + footer: + name: Footer + matrix: + layout: | + HHHHHHHH + TTTTTTTT + LLLLRRRR + BBBBBBBB + FFFFFFFF + + mapping: + H: header + T: content_top + L: left_col + R: rigth_col + B: content_bottom + F: footer + + page_defaults: + homepage: { decorate: false, enabled: true } + home: { decorate: false, enabled: true } + + caches: + esi: + token: add an unique token here # default is a random value + version: 3 # version 3 is the default on debian wheezy ... + servers: + - '%sonata_page.varnish.command%' # you need to adapt this line to work with your configuration + + ssi: + token: add an unique token here # default is a random value + + catch_exceptions: + not_found: [404] # render 404 page with "not_found" key (name generated: _page_internal_error_{key}) + fatal: [500] # so you can use the same page for different http errors or specify specific page for each error + +# Enable Doctrine to map the provided entities +doctrine: + orm: + entity_managers: + default: + mappings: + ChamiloPageBundle: ~ + SonataPageBundle: ~ diff --git a/config/packages/sonata_seo.yaml b/config/packages/sonata_seo.yaml new file mode 100644 index 0000000000..cf96c83346 --- /dev/null +++ b/config/packages/sonata_seo.yaml @@ -0,0 +1,46 @@ +sonata_seo: + encoding: UTF-8 + page: + default: sonata.seo.page.default + title: Chamilo + metas: + name: + keywords: 'chamilo e-learning' + description: 'chamilo e-learning' + robots: index, follow + viewport: width=device-width,initial-scale=1 + apple-mobile-web-app-capable: yes + author: chamilo + Generator: Chamilo 2 + + property: + # Facebook application settings + #'fb:app_id': XXXXXX + #'fb:admins': admin1, admin2 + + # Open Graph information + # see http://developers.facebook.com/docs/opengraphprotocol/#types or http://ogp.me/ +# 'og:site_name': %sonata_admin.title% +# 'og:description': %sonata_admin.title% + + http-equiv: +# 'Content-Type': text/html; charset=utf-8 + #'X-Ua-Compatible': IE=EmulateIE7 + + head: + 'xmlns': http://www.w3.org/1999/xhtml + +# sitemap: +# services: +# - sonata.product.seo_iterator +# doctrine_orm: +# # media +# - { connection: doctrine.dbal.default_connection, route: sonata_media_view, parameters: {id: null}, query: "SELECT id, updated_at as lastmod, 'weekly' as changefreq, '0.5' as prioriy FROM media__media WHERE enabled = true" } +# # blog post +# - { connection: doctrine.dbal.default_connection, route: sonata_news_view, parameters: {permalink: null}, query: "SELECT CONCAT_WS('/', YEAR(created_at), MONTH(created_at), DAY(created_at), slug) as permalink , updated_at as lastmod, 'weekly' as changefreq, '0.5' as prioriy FROM news__post WHERE enabled = 1 AND (publication_date_start IS NULL OR publication_date_start <= NOW())" } +# # page - works only for one site, please adapt the code if required +# - { connection: doctrine.dbal.default_connection, route: page_slug, parameters: {path: null}, query: "SELECT url as path, updated_at as lastmod, 'weekly' as changefreq, '0.5' as prioriy FROM page__snapshot WHERE route_name = 'page_slug' AND enabled = 1 AND (publication_date_start IS NULL OR publication_date_start <= NOW())" } +# # product categories +# - { connection: doctrine.dbal.default_connection, route: sonata_catalog_category, parameters: {category_id: null, category_slug: null}, query: "SELECT id as category_id, slug as category_slug, updated_at as lastmod, 'weekly' as changefreq, '0.5' as prioriy FROM classification__category WHERE enabled = true" } +# # products +# - { connection: doctrine.dbal.default_connection, route: sonata_product_view, parameters: {productId: null, slug: null}, query: "SELECT id as productId, slug, updated_at as lastmod, 'weekly' as changefreq, '0.5' as prioriy FROM product__product WHERE enabled = true" } diff --git a/config/packages/sonata_timeline.yaml b/config/packages/sonata_timeline.yaml new file mode 100644 index 0000000000..bf6587f216 --- /dev/null +++ b/config/packages/sonata_timeline.yaml @@ -0,0 +1,7 @@ +#sonata_timeline: +# manager_type: orm +# class: +# timeline: '%spy_timeline.class.timeline%' +# action: '%spy_timeline.class.action%' +# component: '%spy_timeline.class.component%' +# action_component: '%spy_timeline.class.action_component%' diff --git a/config/packages/sonata_user.yaml b/config/packages/sonata_user.yaml new file mode 100644 index 0000000000..f362aeff6a --- /dev/null +++ b/config/packages/sonata_user.yaml @@ -0,0 +1,50 @@ +# if you change the class configuration, please also alter the fos_user.yml file +sonata_user: + admin: + user: + class: Chamilo\UserBundle\Admin\UserAdmin + group: + class: Chamilo\UserBundle\Admin\GroupAdmin + + class: + # Entity Classes + user: Chamilo\UserBundle\Entity\User + group: Chamilo\UserBundle\Entity\Group + + security_acl: false + table: + user_group: fos_user_user_group + + impersonating: + route: page_slug + parameters: { path: / } + +# google_authenticator: +# server: %sonata_user.google_authenticator.server% +# enabled: true + + manager_type: orm + profile: +# dashboard: +# blocks: +# - { position: left, type: sonata.block.service.text, settings: { content: "

Welcome!

This is a sample user profile dashboard, feel free to override it in the configuration! Want to make this text dynamic? For instance display the user's name? Create a dedicated block and edit the configuration!

"} } +# +# menu: +# - { route: 'sonata_user_profile_show', label: 'sonata_profile_title', domain: 'SonataUserBundle'} +# - { route: 'sonata_user_profile_edit', label: 'link_edit_profile', domain: 'SonataUserBundle'} +# +# form: +# type: sonata_user_registration +# handler: sonata.user.profile.form.handler.default +# name: sonata_user_registration_form +# validation_groups: +# - Profile + +# register: +# form: +# type: chamilo_sonata_user_registration +# handler: sonata.user.registration.form.handler.default +# name: chamilo_sonata_user_registration +# validation_groups: +# - Registration +# - Default diff --git a/config/packages/spy_timeline.yaml b/config/packages/spy_timeline.yaml new file mode 100644 index 0000000000..0ca4af5c57 --- /dev/null +++ b/config/packages/spy_timeline.yaml @@ -0,0 +1,19 @@ +spy_timeline: + drivers: + orm: + object_manager: doctrine.orm.entity_manager + classes: + query_builder: ~ # Spy\TimelineBundle\Driver\ORM\QueryBuilder\QueryBuilder + timeline: Chamilo\TimelineBundle\Entity\Timeline + action: Chamilo\TimelineBundle\Entity\Action + component: Chamilo\TimelineBundle\Entity\Component + action_component: Chamilo\TimelineBundle\Entity\ActionComponent + + filters: + data_hydrator: + priority: 20 + service: spy_timeline.filter.data_hydrator + filter_unresolved: false + locators: + - spy_timeline.filter.data_hydrator.locator.doctrine_orm + diff --git a/config/packages/stof_doctrine_extensions.yaml b/config/packages/stof_doctrine_extensions.yaml new file mode 100644 index 0000000000..f0c8ae6e8e --- /dev/null +++ b/config/packages/stof_doctrine_extensions.yaml @@ -0,0 +1,9 @@ +stof_doctrine_extensions: + default_locale: "%locale%" + translation_fallback: true + orm: + default: + tree: true + timestampable: true + sluggable: true + sortable: true \ No newline at end of file diff --git a/config/packages/swiftmailer.yaml b/config/packages/swiftmailer.yaml new file mode 100644 index 0000000000..cae65084a2 --- /dev/null +++ b/config/packages/swiftmailer.yaml @@ -0,0 +1,3 @@ +swiftmailer: + url: '%env(MAILER_URL)%' + spool: { type: 'memory' } diff --git a/config/packages/test/framework.yaml b/config/packages/test/framework.yaml new file mode 100644 index 0000000000..8aa270e9bf --- /dev/null +++ b/config/packages/test/framework.yaml @@ -0,0 +1,5 @@ +framework: + test: ~ + # Uncomment this section if you're using sessions + #session: + # storage_id: session.storage.mock_file diff --git a/config/packages/test/monolog.yaml b/config/packages/test/monolog.yaml new file mode 100644 index 0000000000..2762653c82 --- /dev/null +++ b/config/packages/test/monolog.yaml @@ -0,0 +1,7 @@ +monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event"] diff --git a/config/packages/test/swiftmailer.yaml b/config/packages/test/swiftmailer.yaml new file mode 100644 index 0000000000..f43807805e --- /dev/null +++ b/config/packages/test/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + disable_delivery: true diff --git a/config/packages/test/web_profiler.yaml b/config/packages/test/web_profiler.yaml new file mode 100644 index 0000000000..03752de213 --- /dev/null +++ b/config/packages/test/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: false + intercept_redirects: false + +framework: + profiler: { collect: false } diff --git a/config/packages/translation.yaml b/config/packages/translation.yaml new file mode 100644 index 0000000000..1edfbe2368 --- /dev/null +++ b/config/packages/translation.yaml @@ -0,0 +1,7 @@ +framework: + default_locale: '%locale%' + translator: + paths: + - '%kernel.project_dir%/translations' + fallbacks: + - '%locale%' diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml new file mode 100644 index 0000000000..6e438ef068 --- /dev/null +++ b/config/packages/twig.yaml @@ -0,0 +1,28 @@ +twig: + paths: ['%kernel.project_dir%/templates'] + debug: '%kernel.debug%' + strict_variables: '%kernel.debug%' + exception_controller: 'FOS\RestBundle\Controller\ExceptionController::showAction' + globals: + show_toolbar: true + show_footer: true + software_name: Chamilo + version: 2 + session_teachers: + teachers: + news_counter: + news_list: + messages_count: + message_link: + is_profile_editable: + administrator_name: + execution_stats: + course_session_block: + show_course_shortcut: + show_course_navigation_menu: + actions: + header: + message: + show_media_element: 1 + plugin_header_main: + diff --git a/config/packages/twig_extensions.yaml b/config/packages/twig_extensions.yaml new file mode 100644 index 0000000000..417b7bc317 --- /dev/null +++ b/config/packages/twig_extensions.yaml @@ -0,0 +1,10 @@ +services: + _defaults: + public: false + autowire: true + autoconfigure: true + + #Twig\Extensions\ArrayExtension: ~ + #Twig\Extensions\DateExtension: ~ + #Twig\Extensions\IntlExtension: ~ + #Twig\Extensions\TextExtension: ~ diff --git a/config/packages/web_profiler.yaml b/config/packages/web_profiler.yaml new file mode 100644 index 0000000000..83ec54d6de --- /dev/null +++ b/config/packages/web_profiler.yaml @@ -0,0 +1,3 @@ +web_profiler: + toolbar: true + intercept_redirects: false \ No newline at end of file diff --git a/config/routes.yaml b/config/routes.yaml new file mode 100644 index 0000000000..c3283aa2e3 --- /dev/null +++ b/config/routes.yaml @@ -0,0 +1,3 @@ +#index: +# path: / +# controller: App\Controller\DefaultController::index diff --git a/config/routes/annotations.yaml b/config/routes/annotations.yaml new file mode 100644 index 0000000000..d49a502a84 --- /dev/null +++ b/config/routes/annotations.yaml @@ -0,0 +1,3 @@ +controllers: + resource: ../../src/Controller/ + type: annotation diff --git a/config/routes/dev/twig.yaml b/config/routes/dev/twig.yaml new file mode 100644 index 0000000000..f4ee83960b --- /dev/null +++ b/config/routes/dev/twig.yaml @@ -0,0 +1,3 @@ +_errors: + resource: '@TwigBundle/Resources/config/routing/errors.xml' + prefix: /_error diff --git a/config/routes/dev/web_profiler.yaml b/config/routes/dev/web_profiler.yaml new file mode 100644 index 0000000000..c82beff2f6 --- /dev/null +++ b/config/routes/dev/web_profiler.yaml @@ -0,0 +1,7 @@ +web_profiler_wdt: + resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' + prefix: /_wdt + +web_profiler_profiler: + resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' + prefix: /_profiler diff --git a/config/routes/fos_js_routing.yaml b/config/routes/fos_js_routing.yaml new file mode 100644 index 0000000000..c699b65f79 --- /dev/null +++ b/config/routes/fos_js_routing.yaml @@ -0,0 +1,2 @@ +fos_js_routing: + resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml" diff --git a/config/services.yaml b/config/services.yaml new file mode 100644 index 0000000000..fb4bfa6977 --- /dev/null +++ b/config/services.yaml @@ -0,0 +1,40 @@ +# Put parameters here that don't need to change on each machine where the app is deployed +# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration +parameters: + locale: 'en' + twig: + form: + resources: + - 'GeneratorBundle::fields.html.twig' + + mailer_transport: smtp + mailer_host: 127.0.0.1 + mailer_user: admin@example.com + mailer_password: null + url_append: '' + course_info_is_not_editable: false + sonata_media.cdn.host: /uploads/media + +services: + # default configuration for services in *this* file + _defaults: + autowire: true # Automatically injects dependencies in your services. + autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. + public: false # Allows optimizing the container by removing unused services; this also means + # fetching services directly from the container via $container->get() won't work. + # The best practice is to be explicit about your dependencies anyway. + + # makes classes in src/ available to be used as services + # this creates a service per class whose id is the fully-qualified class name + Chamilo\: + resource: '../src/*' + exclude: '../src/{Entity,Migrations,Tests}' + + # controllers are imported separately to make sure services can be injected + # as action arguments even if you don't extend any base controller class +# App\Controller\: +# resource: '../src/Controller' +# tags: ['controller.service_arguments'] + + # add more service definitions when explicit configuration is needed + # please note that last definitions always *replace* previous ones diff --git a/config/services_test.yaml b/config/services_test.yaml new file mode 100644 index 0000000000..876c36bda1 --- /dev/null +++ b/config/services_test.yaml @@ -0,0 +1,9 @@ +services: + _defaults: + public: true + + # If you need to access services in a test, create an alias + # and then fetch that alias from the container. As a convention, + # aliases are prefixed with test. For example: + # + # test.App\Service\MyService: '@App\Service\MyService'