PHP Class Devise\Pages\Interpreter\DvsPageData

Afficher le fichier Open project: devisephp/cms

Protected Properties

Свойство Type Description
$CollectionsRepository CollectionRepository The collections repository gets a list of collections for us
$PagesRepository Devise\Pages\PagesRepository The pages repository fetches additional information we need for our page
$TagManager TagManager Tag manager that creates and finds fields for our tags
$cids array Keeps track of some cids for variable tags
$csrfToken string Csrf token
$database array Keeps track of a database that we can build in javascript where all the cool data is stored
$initialized boolean We don't need to initialize our dvspagedata object more than once
$languageId integer Language id
$pageId integer Page id
$pageVersionId integer Page version id
$tags array Keep track of all the page tags

Méthodes publiques

Méthode Description
__construct ( TagManager $TagManager, CollectionsRepository $CollectionsRepository, PagesRepository $PagesRepository ) Create a new page data object
cid ( string $id, string $bindingType, string $collection, string $key, string $type, string $humanName, $collectionName, string $group, string $category, string $alternateTarget, mixed $defaults ) : string Returns the cid for this $id and also sets default values for this cid. At this point, the $default values should be set correctly, if not then we need to just throw the exception because something is not right. We also allow for variables in this place, so we need to update all the values for this $id. So if we have a human name with like $someVar in it, then this is the place where we actually update it.
database ( [type] $key, [type] $value ) : [type] Set the values up in the database
initialize ( integer $pageId, integer $pageVersionId, integer $languageId, $csrfToken ) : void The dvs page data cannot create fields and collection objects without knowing what page we are on. This is injected in on every view that uses dvsPageData.
register ( string $id, string $bindingType, string $collection, string $key, string $type, string $humanName, $collectionName, string $group, string $category, string $alternateTarget ) : void Register a binding, collection or model data-devise tag using this method.
setDefaults ( string $id, mixed $defaults ) Try to set defaults for an id
toJSON ( ) : string Creates a json object that we use for editing a devise page

Méthodes protégées

Méthode Description
addCollectionNodesIntoGroupsOrNodes ( array $collections, array $groups, array $nodes ) Adds collections into the existing nodes or groups array
addGroupNodes ( array $groups, array $nodes ) Adds the groups into the nodes. Groups are organized into categories. Some groups only have 1 category but it is possible to have many categories inside of a single group
addNodesIntoGroupsOrNodes ( array $nodes, array $groups, $allNodes ) : array Adds nodes into the existing nodes or groups array
appendToArray ( array $container, string $key, mixed $item ) : array Helper method so that I don't have to put this logic inside of another foreach loop
assertNoDuplicateTags ( string $id ) : void Makes sure we don't get duplicate tags registered
assertTagExists ( string $id ) : void Assert that the id exists.
buildCollectionNode ( string $collectionName, array $collectionFields ) : array Collection nodes are grouped together
buildGroupNode ( string $cid, $name, $categories ) : array Group nodes are just a bunch of node items
buildNode ( array $node ) : array Build a node
buildNodes ( $collections, $fields, $models, $attributes, $creators ) : array Build the node structure for this json. This takes into account groups too. Nodes that are grouped together we will take that into account too.
extractModelFromKey ( $chain ) : string Analyze this key variable and determine if it is a attribute or model type
filterTags ( string $bindingType ) : array Filter the tags by the binding type
jsonEncode ( mixed $object ) : string Encodes the object passed in as a json string and also escapes all ' characters
resolveTag ( string $id, string $bindingType, string $collection, string $key, string $type, string $humanName, $collectionName, string $group, string $category, string $alternateTarget, mixed $defaults ) : string Resolve the tag
resolveVariableTag ( string $id, string $bindingType, string $collection, string $key, string $type, string $humanName, $collectionName, string $group, string $category, string $alternateTarget, mixed $defaults ) : string Resolve the variable tag

Method Details

__construct() public méthode

Create a new page data object
public __construct ( TagManager $TagManager, CollectionsRepository $CollectionsRepository, PagesRepository $PagesRepository )
$TagManager TagManager
$CollectionsRepository Devise\Pages\Collections\CollectionsRepository
$PagesRepository Devise\Pages\PagesRepository

addCollectionNodesIntoGroupsOrNodes() protected méthode

Adds collections into the existing nodes or groups array
protected addCollectionNodesIntoGroupsOrNodes ( array $collections, array $groups, array $nodes )
$collections array
$groups array
$nodes array

addGroupNodes() protected méthode

Adds the groups into the nodes. Groups are organized into categories. Some groups only have 1 category but it is possible to have many categories inside of a single group
protected addGroupNodes ( array $groups, array $nodes )
$groups array
$nodes array

addNodesIntoGroupsOrNodes() protected méthode

Adds nodes into the existing nodes or groups array
protected addNodesIntoGroupsOrNodes ( array $nodes, array $groups, $allNodes ) : array
$nodes array
$groups array
Résultat array

appendToArray() protected méthode

Helper method so that I don't have to put this logic inside of another foreach loop
protected appendToArray ( array $container, string $key, mixed $item ) : array
$container array
$key string
$item mixed
Résultat array

assertNoDuplicateTags() protected méthode

Makes sure we don't get duplicate tags registered
protected assertNoDuplicateTags ( string $id ) : void
$id string
Résultat void

assertTagExists() protected méthode

.. this means we should have registered the id already
protected assertTagExists ( string $id ) : void
$id string
Résultat void

buildCollectionNode() protected méthode

Collection nodes are grouped together
protected buildCollectionNode ( string $collectionName, array $collectionFields ) : array
$collectionName string
$collectionFields array
Résultat array

buildGroupNode() protected méthode

Group nodes are just a bunch of node items
protected buildGroupNode ( string $cid, $name, $categories ) : array
$cid string
Résultat array

buildNode() protected méthode

Build a node
protected buildNode ( array $node ) : array
$node array
Résultat array

buildNodes() protected méthode

.. Loop through all collections, fields, models, attributes and creators and create the node structure for them.
protected buildNodes ( $collections, $fields, $models, $attributes, $creators ) : array
Résultat array

cid() public méthode

.. if this field's binding type is a creator, field, or colelction then we only use 1 cid if this type is a model or attribute then we need to register a new cid for this thing... because we are dealing with new instances everytime we get called (think about iterating over a collection of models inside of a foreach loop), each one has their own key (model's id)
public cid ( string $id, string $bindingType, string $collection, string $key, string $type, string $humanName, $collectionName, string $group, string $category, string $alternateTarget, mixed $defaults ) : string
$id string
$bindingType string
$collection string
$key string
$type string
$humanName string
$group string
$category string
$alternateTarget string
$defaults mixed
Résultat string

database() public méthode

Set the values up in the database
public database ( [type] $key, [type] $value ) : [type]
$key [type]
$value [type]
Résultat [type]

extractModelFromKey() protected méthode

Analyze this key variable and determine if it is a attribute or model type
protected extractModelFromKey ( $chain ) : string
Résultat string

filterTags() protected méthode

Filter the tags by the binding type
protected filterTags ( string $bindingType ) : array
$bindingType string
Résultat array

initialize() public méthode

..
public initialize ( integer $pageId, integer $pageVersionId, integer $languageId, $csrfToken ) : void
$pageId integer
$pageVersionId integer
$languageId integer
Résultat void

jsonEncode() protected méthode

Encodes the object passed in as a json string and also escapes all ' characters
protected jsonEncode ( mixed $object ) : string
$object mixed
Résultat string

register() public méthode

Register a binding, collection or model data-devise tag using this method.
public register ( string $id, string $bindingType, string $collection, string $key, string $type, string $humanName, $collectionName, string $group, string $category, string $alternateTarget ) : void
$id string
$bindingType string
$collection string
$key string
$type string
$humanName string
$group string
$category string
$alternateTarget string
Résultat void

resolveTag() protected méthode

Resolve the tag
protected resolveTag ( string $id, string $bindingType, string $collection, string $key, string $type, string $humanName, $collectionName, string $group, string $category, string $alternateTarget, mixed $defaults ) : string
$id string
$bindingType string
$collection string
$key string
$type string
$humanName string
$group string
$category string
$alternateTarget string
$defaults mixed
Résultat string

resolveVariableTag() protected méthode

Resolve the variable tag
protected resolveVariableTag ( string $id, string $bindingType, string $collection, string $key, string $type, string $humanName, $collectionName, string $group, string $category, string $alternateTarget, mixed $defaults ) : string
$id string
$bindingType string
$collection string
$key string
$type string
$humanName string
$group string
$category string
$alternateTarget string
$defaults mixed
Résultat string

setDefaults() public méthode

Try to set defaults for an id
public setDefaults ( string $id, mixed $defaults )
$id string
$defaults mixed

toJSON() public méthode

Creates a json object that we use for editing a devise page
public toJSON ( ) : string
Résultat string

Property Details

$CollectionsRepository protected_oe property

The collections repository gets a list of collections for us
protected CollectionRepository $CollectionsRepository
Résultat CollectionRepository

$PagesRepository protected_oe property

The pages repository fetches additional information we need for our page
protected PagesRepository,Devise\Pages $PagesRepository
Résultat Devise\Pages\PagesRepository

$TagManager protected_oe property

Tag manager that creates and finds fields for our tags
protected TagManager,Devise\Pages\Interpreter $TagManager
Résultat TagManager

$cids protected_oe property

Keeps track of some cids for variable tags
protected array $cids
Résultat array

$csrfToken protected_oe property

Csrf token
protected string $csrfToken
Résultat string

$database protected_oe property

Keeps track of a database that we can build in javascript where all the cool data is stored
protected array $database
Résultat array

$initialized protected_oe property

We don't need to initialize our dvspagedata object more than once
protected bool $initialized
Résultat boolean

$languageId protected_oe property

Language id
protected int $languageId
Résultat integer

$pageId protected_oe property

Page id
protected int $pageId
Résultat integer

$pageVersionId protected_oe property

Page version id
protected int $pageVersionId
Résultat integer

$tags protected_oe property

Keep track of all the page tags
protected array $tags
Résultat array