networking/init-cms-bundle

Dotenv

LOCALE=en
DATABASE_DRIVER=mysql

Generated files

config/packages/dev/networking_init_cms.yaml

networking_init_cms:
    cache:
        activate: false

config/packages/networking_init_cms.yaml

imports:
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/doctrine.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/fos_ck_editor.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/fos_user.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/mopa_bootstrap.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/oneup_flysystem.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/oneup_uploader.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/sonata_admin.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/sonata_block.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/sonata_doctrine_admin.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/sonata_media.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/sonata_notification.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/sonata_user.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/stof_doctrine_extensions.yaml" }
    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/symfony_cmf_routing_extra.yaml" }
# Default security configuration
#    - { resource: "@NetworkingInitCmsBundle/Resources/config/cms/security.yaml" }

# Set up the serializer to read config file for App Page and User entities
jms_serializer:
    metadata:
        directories:
            NetworkingSonataMediaBundle:
                namespace_prefix: "Sonata\\MediaBundle"
                path: "@NetworkingInitCmsBundle/Resources/config/serializer"
            app:
                namespace_prefix: "App"
                path: "%kernel.project_dir%/config/serializer"


networking_init_cms:
    #Base classes to be used for the page and user entities
    class:
        page: "App\\Entity\\Page"
        user: "App\\Entity\\User"

    # Bootstrap some template settings to get you started
    templates:
        'app_single_column':
            template: "@NetworkingInitCms/sandbox/page/one_column.html.twig"
            name: "Single Column"
            icon: "bundles/networkinginitcms/img/template_header_one_column.png"
            zones:
                - { name: header, class: 'col-md-12' }
                - { name: main_content, class: 'col-md-12'}
        'app_two_column':
            template: "@NetworkingInitCms/sandbox/page/two_column.html.twig"
            name: "Two Column"
            icon: "bundles/networkinginitcms/img/template_header_two_column.png"
            zones:
                - { name: header , class: 'col-md-12'}
                - { name: left , class: 'col-md-3'}
                - { name: right , class: 'col-md-9'}
    cache:
        activate: true #enable for product, false in dev config

    # For more information regarding configuration of the CMS Bundle, please visit the following documentation
    # https://github.com/networking/init-cms-bundle/blob/master/doc/configuration.md

config/routes/networking_init_cms.yaml

networking_init_cms:
    resource: "@NetworkingInitCmsBundle/Resources/config/routing/routing.yaml"
    prefix:   /

serializer/Entity.Page.yaml

App\Entity\Page:
    properties:
        id:
            type: integer
        createdAt:
            type: DateTime
        updatedAt:
            type: DateTime
        pageName:
            type: string
        metaTitle:
            type: string
        url:
            type: string
        path:
            type: string
        level:
            type: integer
        metaKeyword:
            type: string
        metaDescription:
            type: string
        parent:
            accessor:
                getter: convertParentToInteger
            type: integer
        alias:
            accessor:
                getter: convertAliasToInteger
            type: integer
        parents:
            accessor:
                getter: convertParentsToArray
            type: array
        children:
            accessor:
                getter: convertChildrenToIntegerArray
            type: array
        allChildren:
            exclude: true
        layoutBlock:
            type: ArrayCollection<Networking\InitCmsBundle\Entity\LayoutBlock>
        menuItem:
            exclude: true
            accessor:
                getter: prepareMenuItemsForSerialization
            type: ArrayCollection<Networking\InitCmsBundle\Entity\MenuItem>
        isHome:
            type: boolean
        status:
            type: string
        visibility:
            type: string
        activeFrom:
            type: DateTime
        activeTo:
            type: DateTime
        locale:
            type: string
        translations:
            accessor:
                getter: convertTranslationsToIntegerArray
            type: array
        originals:
            accessor:
                getter: convertOriginalsToIntegerArray
            type: array
        snapshots:
            exclude: true
        snapshotClassType:
            type: string
        oldTitle:
            exclude: true
        tags:
            exclude: true
        contentRoute:
            exclude: true

src/Entity/Page.php

<?php
namespace App\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Gedmo\Mapping\Annotation as Gedmo;
use Networking\InitCmsBundle\Entity\BasePage;
use Doctrine\ORM\Mapping as ORM;
use Networking\InitCmsBundle\Model\ContentRoute;

/**
 *
 * @author Yorkie Chadwick <y.chadwick@networking.ch>
 *
 * @ORM\Entity
 * @ORM\Table(name="page",
 *     uniqueConstraints={@ORM\UniqueConstraint(name="path_idx", columns={
 *         "path", "locale"
 *     })}
 * )
 * @ORM\HasLifecycleCallbacks()
 */
class Page extends BasePage{

    /**
     * @var integer $id
     *
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @var ContentRoute
     * @ORM\OneToOne(
     *      targetEntity = "Networking\InitCmsBundle\Entity\ContentRoute",
     *      cascade={"remove", "persist"}
     * )
     * @ORM\JoinColumn(name="content_route_id", referencedColumnName="id")
     */
    protected $contentRoute;

    /**
     * @ORM\OneToMany(targetEntity="Networking\InitCmsBundle\Entity\LayoutBlock",
     *      mappedBy="page",
     *      cascade={"remove", "persist"},
     *      orphanRemoval=true
     * )
     * @ORM\OrderBy({"sortOrder" = "ASC"})
     */
    protected $layoutBlock;

    /**
     * @ORM\OneToMany(targetEntity="Networking\InitCmsBundle\Entity\MenuItem",
     *      mappedBy="page",
     *      cascade={"remove"},
     *      orphanRemoval=true
     * )
     */
    protected $menuItem;

    /**
     * @ORM\OneToMany(targetEntity="Networking\InitCmsBundle\Entity\PageSnapshot",
     *      mappedBy="page",
     *      cascade={"remove"},
     *      orphanRemoval=true
     * )
     * @ORM\OrderBy({"version" = "DESC"})
     */
    protected $snapshots;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Page",
     *      mappedBy="parent"
     * )
     */
    protected $children;

    /**
     * @var Page
     * @ORM\ManyToOne(targetEntity="App\Entity\Page" )
     * @ORM\JoinColumn(name="alias_id", referencedColumnName="id", onDelete="SET NULL")
     */
    protected $alias;

    /**
     * @var Page
     * @ORM\ManyToOne(targetEntity="App\Entity\Page", inversedBy="children", cascade="persist" )
     * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="SET NULL")
     * @Gedmo\TreeParent
     */
    protected $parent;

    /**
     * @var ArrayCollection $originals
     * @ORM\ManyToMany(
     *      targetEntity="App\Entity\Page",
     *      inversedBy="translations",
     *      cascade={"persist"}
     * )
     * @ORM\JoinTable(
     *      name="page_translation",
     *      joinColumns={
     *          @ORM\JoinColumn(name="translation_id", referencedColumnName="id")
     *      },
     *      inverseJoinColumns={
     *          @ORM\JoinColumn(name="original_id", referencedColumnName="id")
     *      }
     * )
     */
    protected $originals;

    /**
     * @var ArrayCollection $translations
     * @ORM\ManyToMany(
     *      targetEntity="App\Entity\Page",
     *      mappedBy="originals",
     *      cascade={"persist"}
     * )
     */
    protected $translations;
}

src/Entity/User.php

<?php

namespace App\Entity;

use Networking\InitCmsBundle\Entity\BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * User
 *
 * @ORM\Table(name="fos_user_user")
 * @ORM\Entity()
 */
class User extends BaseUser{

    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @var \Networking\InitCmsBundle\Model\AdminSettings
     * @ORM\Column(name="admin_settings", type="object", nullable=true)
     */
    protected $adminSettings;

}