e-solving/page-bundle

Symfony StiwlPageBundle PHP >=5.3.3


Keywords
page, category, product, news, contact, website, quick page, ready to show products, ready to show news, ready to show pages, manage products, manage news, manage pages, manage header images
License
MIT

Documentation

StiwlPageBundle

Some times we have to make a web page faster, with the essential thinks web marketing, the solution is StiwlPageBundle.

Is a Bundle to create a completly Page Management, it is efficient to implement and ia a simple form to build fully manageable Website in few minutes.

Is a best choice for building a robust and powerful base for projects web pages or web systems.

Features

  • Menu - Page - News - Contact - Products contents.
  • This bundle provides an Admin bundle and Doctrine2 ORM Admin bundle managements of Entities: User, Page, Menu, HeaderImage, Meda, News, Product and Category.
  • Each Entities with languages and correctly associations.
  • All Contents Management is provides from SonataAdminBundle.
  • In Contact page the customer information, the form and google maps ubication is integrated.
  • User Management provides by FOSUSerBundle.
  • Integrates a google maps bundle by IvoryGoogleMapBundle.
  • Integrates a paginator provides by KnpMenuPaginator Bundle.
  • Integrates a text editor provides by CKEditorBundle.

The demo website can be found in http://www.constructoraivisal.com/

Warning: The bundle has been split in 13 composer requires:

Installation:

Installation via composer. (http://getcomposer.org/)

{
  "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": "*"
  },
}

How to use

Add in 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()
    );
}

Add in your config

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

Add in your autoload.php to enable the Application Sonata Media Bundle

You need to generate the correct entities for the media: php app/console sonata:easy-extends:generate SonataMediaBundle. Then create the directory web/uploads/media

I suggest read all the documentation (http://sonata-project.org/bundles/media/master/doc/reference/installation.html#id1)

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

Then in your appKernel.php register the twoo bundles left

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

Add in your routing

# 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 }

Configure your security for FOSUserBundle security:

I suggest read all the documentation (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 }

Configuration:

# 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: ~

Finally execute command to generate database and create schema from doctrine

  • php app/console doctrine:database:create

  • php app/console doctrine:schema:create

Visit my Website and my Facebook page