e-solving/page-bundle

Symfony StiwlPageBundle PHP >=5.3.3

安装: 54

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 1

公开问题: 0

类型:symfony-bundle

This package is not auto-updated.

Last update: 2024-09-14 13:48:54 UTC


README

有时我们需要让网页更快,包含必要的网络营销元素,StiwlPageBundle 就是解决方案。

这是一个用于创建完整页面管理的Bundle,它实现效率高,可以通过简单的表单在几分钟内构建一个完全可管理的网站。

是构建强大和稳固的项目网页或网络系统基础的最佳选择。

功能

  • 菜单 - 页面 - 新闻 - 联系 - 产品内容。
  • 此Bundle提供管理实体(用户、页面、菜单、页眉图片、媒体、新闻、产品和类别)的Admin Bundle和Doctrine2 ORM Admin Bundle。
  • 每个实体都具有语言和正确的关联。
  • 所有内容管理都由SonataAdminBundle提供。
  • 在联系页面中,集成了客户信息、表单和谷歌地图位置。
  • 用户管理由FOSUserBundle提供。
  • 通过IvoryGoogleMapBundle集成了谷歌地图Bundle。
  • 通过KnpMenuPaginator Bundle集成了分页器。
  • 通过CKEditorBundle集成了文本编辑器。

演示网站可以在 http://www.constructoraivisal.com/ 找到

注意:此Bundle已被拆分为13个composer要求

安装

通过composer安装。(https://getcomposer.org.cn/

{
  "require": {
    "stiwl/page-bundle": "dev-master",
    "sonata-project/admin-bundle": "dev-master",
    "sonata-project/block-bundle": "dev-master",
    "sonata-project/intl-bundle": "dev-master",
    "sonata-project/media-bundle": "dev-master",
    "sonata-project/notification-bundle": "dev-master",
    "sonata-project/core-bundle": "dev-master",
    "sonata-project/doctrine-orm-admin-bundle": "dev-master",
    "knplabs/knp-menu-bundle": "1.1.x-dev",
    "knplabs/knp-paginator-bundle": "dev-master",
    "stof/doctrine-extensions-bundle": "dev-master",
    "egeloen/google-map-bundle": "dev-master",
    "egeloen/google-map": "*@dev",
    "egeloen/ckeditor-bundle": "2.*",
    "willdurand/geocoder": "*",
    "friendsofsymfony/user-bundle": "*"
  },
}

如何使用

在appKernel.php中添加

<?php
// app/appKernel.php
public function registerBundles() {
    return array(
        new Knp\Bundle\MenuBundle\KnpMenuBundle(),
        new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(),
        new Sonata\BlockBundle\SonataBlockBundle(),
        new Sonata\CoreBundle\SonataCoreBundle(),
        new Sonata\AdminBundle\SonataAdminBundle(),
        new Sonata\IntlBundle\SonataIntlBundle(),
        new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),
        new Sonata\EasyExtendsBundle\SonataEasyExtendsBundle(),
        new Sonata\MediaBundle\SonataMediaBundle(),
        new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
        new Ivory\GoogleMapBundle\IvoryGoogleMapBundle(),
        new Ivory\CKEditorBundle\IvoryCKEditorBundle(),
        new FOS\UserBundle\FOSUserBundle(),
        new Stiwl\PageBundle\StiwlPageBundle(),
        new Stiwl\PageBundle\Third\SonataAdminBundle\StiwlPageThirdSonataAdminBundle(),
        new Stiwl\PageBundle\Third\FOSUserBundle\StiwlPageThirdFOSUserBundle()
    );
}

在您的配置中添加

# app/config/config.yml
imports:
    - { resource: '@StiwlPageBundle/Resources/config/config.yml' }

在autoload.php中添加以启用应用程序Sonata Media Bundle

您需要为媒体生成正确的实体:php app/console sonata:easy-extends:generate SonataMediaBundle。然后创建目录web/uploads/media

我建议阅读所有文档(http://sonata-project.org/bundles/media/master/doc/reference/installation.html#id1

<?php
// app/autoload.php
//custom for Application
$loader->add("Application", __DIR__);

然后在您的appKernel.php中注册剩下的两个bundle

<?php 
// app/appKernel.php
public function registerBundles() {
    return array(
        new Stiwl\PageBundle\Third\SonataMediaBundle\StiwlPageThirdSonataMediaBundle(),
        new Application\Sonata\MediaBundle\ApplicationSonataMediaBundle(),
    );
}
?>

在您的路由中添加

# app/config/routing.yml
stiwl_pageB_third_sonata_admin:
    resource: "@StiwlPageThirdSonataAdminBundle/Resources/config/routing.yml"
    prefix: /admin
    
stiwl_pageB_third_media_admin:
    resource: "@StiwlPageThirdSonataMediaBundle/Resources/config/routing.yml"
    prefix: /media    
    
stiwl_pageB_third_fos_user:
    resource: "@StiwlPageThirdFOSUserBundle/Resources/config/routing.yml"
    prefix:   /      
    
stiwl_pageB_set_locale:
    path: /set-locale/{route}/{routeParams}
    defaults: { _controller: StiwlPageBundle:Page:setLocale, routeParams: null }
    
stiwl_pageB_page:
    path:  /page/{menuId}/{slug}
    defaults: { _controller: StiwlPageBundle:Page:page }

_stiwl_pageB:
    resource: .
    type: stiwl_page
    prefix: /      

stiwl_pageB_index:
    path: /
    defaults: {_controller: StiwlPageBundle:Page:index }

为FOSUserBundle配置安全设置

我建议阅读所有文档(https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md#step-4-configure-your-applications-securityyml

# app/config/security.yml
security:
    firewalls:
        secured_area:
            pattern: ^/*
            anonymous: ~
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
                login_path: fos_user_security_login
                check_path: fos_user_security_check
                default_target_path: fos_user_security_login
            logout:
                path: fos_user_security_logout
                target: fos_user_security_login
            remember_me:
                key:      "%secret%"
                lifetime: 31536000 # 365 days in seconds
                path:     /
                domain:   ~ # Defaults to the current domain from $_SERVER

    role_hierarchy:
        ROLE_ADMIN:  ['ROLE_USER']
        ROLE_SUPER_ADMIN: ['ROLE_ADMIN']

## add /(en|es) of some languages if you enabled the {_locale} in your app/config/routing.yml
    access_control:
        - { path: ^/(en|es)/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/(en|es)/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/(en|es)/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/(en|es)/admin/, role: ROLE_ADMIN }
# If not enabled {_locale} in your app/config/routing.yml        
#        - { path: '^/backend', roles: ['ROLE_ADMIN'] }
#        - { path: '^/secured', roles: ['ROLE_USER'] }
#        - { path: '^/guest/user', roles: ['ROLE_USER', 'IS_AUTHENTICATED', 'ROLE_ADMIN', 'ROLE_TEACHER'] }
        
    providers:
        fos_userbundle:
            id: fos_user.user_provider.username
          
    encoders:
        FOS\UserBundle\Model\UserInterface: { algorithm: sha512, iterations: 10 }

配置

# app/config/config.yml
stiwl_page:
    developer: STIWL
    website: http://www.stiwl.net/
    enterprise:
        name: Pharmacy S.A.C
        short_name: pharmacy
        business: Pharmaceutical products
        slogan: Quality and reliability
        money: $
        email: luis.sanchez.saldana@gmail.com
        address: Av. xxx #xxx
        phones: 
            ## add what you want, defaults are movil and office
            movil: { value: '#########' }
            office: { value: '######' }
        google_map:
            latitude: -12.09223
            longitude: -77.00050
            width: 300px
            height: 300px
    pages:
        news: 
            enabled: true
            #you can config the position last or first too
            position: 0
        products:
            enabled: true
            position: 1
        contact_us:
            enabled: true
            position: 2
        fos_user: 
            login:
                visible: false
                position: ~
            register:
                enabled: false
                position: ~

最后执行命令以从doctrine生成数据库和创建模式

  • php app/console doctrine:database:create

  • php app/console doctrine:schema:create

访问我的网站和我的Facebook页面