melange / cms
Melange CmsBundle
Requires
- php: ^7.1
- friendsofsymfony/user-bundle: ~2.0
- gedmo/doctrine-extensions: ^2.4
- jeelo/audit-bundle: master
- paragonie/random_compat: ^1 || ^2
- phpoffice/phpspreadsheet: ^1.12
- stof/doctrine-extensions-bundle: ^1.3
- symfony/form: ^2.8 || ^3.0 || ^4.0
- symfony/framework-bundle: ^2.8 || ^3.0 || ^4.0
- symfony/orm-pack: ^1.0
- symfony/security-bundle: ^2.8 || ^3.0 || ^4.0
- symfony/templating: ^2.8 || ^3.0 || ^4.0
- symfony/twig-bundle: ^2.8 || ^3.0 || ^4.0
- symfony/validator: ^2.8 || ^3.0 || ^4.0
- symfony/webpack-encore-bundle: ^1.7
- twig/extensions: ^1.5
- twig/twig: ^1.28 || ^2.0
Requires (Dev)
- doctrine/doctrine-bundle: ^1.3
- friendsofphp/php-cs-fixer: ^2.2
- phpunit/phpunit: ^4.8.35|^5.7.11|^6.5
- swiftmailer/swiftmailer: ^4.3 || ^5.0 || ^6.0
- symfony/console: ^2.8 || ^3.0 || ^4.0
- symfony/phpunit-bridge: ^2.8 || ^3.0 || ^4.0
- symfony/yaml: ^2.8 || ^3.0 || ^4.0
Conflicts
- doctrine/doctrine-bundle: <1.3
- symfony/doctrine-bridge: <2.7
This package is auto-updated.
Last update: 2021-02-23 05:44:01 UTC
README
php -d memory_limit=-1 composer.phar
// -----------------------------------
symfony new <project-name> --full
// -----------------------------------
bundles.php:
Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle::class => ['all' => true], FOS\UserBundle\FOSUserBundle::class => ['all' => true], Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true], Melange\CmsBundle\MelangeCmsBundle::class => ['all' => true],
// -----------------------------------
package.json:
{ "devDependencies": {
"bootstrap": "^4.5.0",
"jquery": "^3.5.1",
"node-sass": "^4.13.0",
"popper.js": "^1.16.1",
"font-awesome": "^4.7.0",
"jquery-datetimepicker": "^2.5.21",
"js-cookie": "^2.2.1",
"scrollpos-styler": "^0.7.1",
"sass-loader": "^8.0.2",
"select2": "^4.0.13",
} }
"@ttskch/select2-bootstrap4-theme": "github:ttskch/select2-bootstrap4-theme"
webpack.config.js:
var path = require('path');
.addEntry('cms', './vendor/melange/cms/Resources/js/cms.js') .addStyleEntry('light-mode', './vendor/melange/cms/Resources/css/light-mode.scss') .addStyleEntry('dark-mode', './vendor/melange/cms/Resources/css/dark-mode.scss')
.addAliases({
'jquery': path.join(__dirname, 'node_modules/jquery/src/jquery')
})
.enableSassLoader()
// -----------------------------------
Create a class that extends Melange\CmsBundle\Twig\CmsExtension
config/packages/melange_cms.yml:
melange_cms: twig_extension: App\Twig\AppExtension
// -----------------------------------
fos_user.yaml:
fos_user:
db_driver: orm # other valid values are 'mongodb' and 'couchdb'
firewall_name: main
user_class: Melange\CmsBundle\Entity\User
from_email:
address: "%env(resolve:MAILER_USER)%"
sender_name: "%env(resolve:MAILER_USER)%"
service:
mailer: fos_user.mailer.twig_swift
// -----------------------------------
routes.yml:
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
melange_cms_routes:
# loads routes from the given routing file stored in some bundle
resource: '@MelangeCmsBundle/Controller/'
type: annotation
// -----------------------------------
packages/twig.yml:
form_themes: ['bootstrap_4_horizontal_layout.html.twig'] globals:
app_name: BANMAN
copyright: The Factory
// -----------------------------------
packages/security.yml:
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_USER: ROLE_USER
ROLE_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
user_checker: security.user_checker
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/<a cms-section>, role: ROLE_USER }
- { path: ^/cms/user, role: ROLE_ADMIN }
// -----------------------------------
doctrine.yml:
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
# IMPORTANT: You MUST configure your db driver and server version,
# either here or in the DATABASE_URL env var (see .env file)
#driver: 'mysql'
#server_version: '5.7'
# Only needed for MySQL (ignored otherwise)
charset: utf8mb4
default_table_options:
collate: utf8mb4_unicode_ci
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
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 mapping
is_bundle: false
// -----------------------------------
stof_doctrine_extensions.yaml
Read the documentation: https://symfony.com/doc/current/bundles/StofDoctrineExtensionsBundle/index.html
See the official DoctrineExtensions documentation for more details: https://github.com/Atlantic18/DoctrineExtensions/tree/master/doc/
stof_doctrine_extensions:
default_locale: en_US
orm:
default:
loggable: true
timestampable: true
// -----------------------------------
twig.yaml:
globals:
copyright: APT
// -----------------------------------
php bin/console doctrine:schema:update --force
php bin/console fos:user:create jeroen test@example.com jeroen ; php bin/console fos:user:promote jeroen ROLE_ADMIN