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