ModelDocumentation module
Page
Documentation page. Can have multiple revisions and has one active revision.
A model in the Documentation module, with 35 members for templates, 28 API properties and 54 members for admin templates.
Templates view
Properties 31
Take no arguments.
-
#
getParents() -
array - Get the parents of this page, with this page being the last element in the array
-
#
getOriginalFullPath() -
string - Gets the original path to the documentation page without any custom URL applied, resolving the Documentation
showPageroute with the page's full slug -
#
getOriginalPath() -
string - It's an alias and deprecated! Directly use
getOriginalFullPath()instead. -
#
getOriginalFullSlug() -
string - Gets the record's own canonical slug, built from the record's data and _ignoring_ any custom URL override. Like
getFullSlug()it excludes the module path, has no leading slash, and includes ancestor slugs for hierarchical records — but it always reflects the record's real slugs rather than a custom URL. For a non-hierarchical record this equals the record's owngetSlug()value. This default concatenates whatever the ancestor walk supplies and does not judge the segments: an ancestor with no slug of its own contributes an empty segment rather than failing. A model whose callers need to tell an unresolvable chain apart from a valid one should either return an empty string from an override, asProducts\Models\ProductDescriptiondoes, or expose a separate check alongside it, asPages\Models\BasePage::hasResolvableSlugChain()does. -
#
getFullSlug() -
string - Gets the slug that addresses this record relative to its module — the portion of the URL that identifies the record itself, without the module path and without a leading slash. For a hierarchical record the slug includes the slugs of all of its ancestors joined with slashes. This is the effective slug: when a custom URL is set on the record, it _takes precedence and is returned_ here. The no-leading-slash shape describes the canonical value only. A custom URL is returned verbatim, and custom URLs are stored with a leading slash, so a record that has one returns
/my-customrather thanmy-custom; usegetOriginalFullSlug()when you need the canonical shape unconditionally. -
#
getFullPath() -
string - Gets the relative path that addresses this record within the site, including the module path and starting with a leading slash. This is the
getFullSlug()value prefixed with the route under which the module is mounted. This is the effective path: when a custom URL is set on the record, it _takes precedence and is returned_ here. Returns an empty string when the record has no custom URL andgetOriginalFullPath()cannot build one, so callers must treat an empty string as "no url" rather than as a path. Rendering it into markup or handing it to a cache or route helper would otherwise point the record at whatever the site serves at its root. -
#
getId() -
?int -
#
getPosition() -
?int -
#
getSlug() -
?string -
#
getActiveRevision() -
?PageRevision -
#
getChildren() -
?Collection<Page> -
#
getRevisions() -
?Collection<PageRevision> -
#
getLastRevision() -
?PageRevision - Get the last revision for the entity. If a revision has been added, this will be the newly added revision.
-
#
getComments() -
?Collection<Comment> -
#
isHierarchicalModel()Not in API & Jobs -
bool - Check whether a model is a hierarchical model, i.e. can have children
Methods 4
Take arguments. The API serialises only getters that need none.
-
#
getBranchRevisions(RevisionBranch $branch, ?int $limit, ?int $offset) -
Collection - Get the revisions for the provided branch, ordered by id ascending. Pass a limit/offset to fetch a bounded window instead of the full set — loading all revisions of a large branch exhausts memory.
-
#
getNumBranchRevisions(RevisionBranch $branch) -
int - Get the number of revisions for the provided branch (COUNT query — does not hydrate)
-
#
getRevisionsWithoutBranch(?int $limit, ?int $offset) -
Collection - Get the revisions without branch, ordered by id ascending. Pass a limit/offset to fetch a bounded window instead of the full set — loading all revisions of a record with a large history exhausts memory.
No members match the filter.
API & Jobs view
API & JobsEach property is a key in REST API responses and job payloads. Its name is the template getter without get, is or has. Methods that need arguments are not available here.
Properties 28
Read-only values on the record.
-
#
originalFullPath -
string - Gets the original path to the documentation page without any custom URL applied, resolving the Documentation
showPageroute with the page's full slug -
#
originalFullSlug -
string - Gets the record's own canonical slug, built from the record's data and _ignoring_ any custom URL override. Like
getFullSlug()it excludes the module path, has no leading slash, and includes ancestor slugs for hierarchical records — but it always reflects the record's real slugs rather than a custom URL. For a non-hierarchical record this equals the record's owngetSlug()value. This default concatenates whatever the ancestor walk supplies and does not judge the segments: an ancestor with no slug of its own contributes an empty segment rather than failing. A model whose callers need to tell an unresolvable chain apart from a valid one should either return an empty string from an override, asProducts\Models\ProductDescriptiondoes, or expose a separate check alongside it, asPages\Models\BasePage::hasResolvableSlugChain()does. -
#
fullSlug -
string - Gets the slug that addresses this record relative to its module — the portion of the URL that identifies the record itself, without the module path and without a leading slash. For a hierarchical record the slug includes the slugs of all of its ancestors joined with slashes. This is the effective slug: when a custom URL is set on the record, it _takes precedence and is returned_ here. The no-leading-slash shape describes the canonical value only. A custom URL is returned verbatim, and custom URLs are stored with a leading slash, so a record that has one returns
/my-customrather thanmy-custom; usegetOriginalFullSlug()when you need the canonical shape unconditionally. -
#
fullPath -
string - Gets the relative path that addresses this record within the site, including the module path and starting with a leading slash. This is the
getFullSlug()value prefixed with the route under which the module is mounted. This is the effective path: when a custom URL is set on the record, it _takes precedence and is returned_ here. Returns an empty string when the record has no custom URL andgetOriginalFullPath()cannot build one, so callers must treat an empty string as "no url" rather than as a path. Rendering it into markup or handing it to a cache or route helper would otherwise point the record at whatever the site serves at its root. -
#
id -
?int -
#
position -
?int -
#
slug -
?string -
#
activeRevision -
?PageRevision -
#
children -
?Collection<Page> -
#
revisions -
?Collection<PageRevision> -
#
lastRevision -
?PageRevision - Get the last revision for the entity. If a revision has been added, this will be the newly added revision.
-
#
comments -
?Collection<Comment>
No members match the filter.
Admin view
AdminAvailable in cdna-admin templates. Copy an admin template into your site repository to change how this record is edited.
Properties 47
Take no arguments.
-
#
getParents() -
array - Get the parents of this page, with this page being the last element in the array
-
#
getOriginalFullPath() -
string - Gets the original path to the documentation page without any custom URL applied, resolving the Documentation
showPageroute with the page's full slug -
#
getImageRootTargetFolderPath()Admin only -
string - Retrieves the *root* target folder path for uploaded images. This is usually the root entity path without the ID or slug sub folder.
-
#
getImageTargetFolderPath()Admin only -
string - Retrieves the target folder path for uploaded images. Images will be moved to this path after the upload has been processed.
-
#
getOriginalPath() -
string - It's an alias and deprecated! Directly use
getOriginalFullPath()instead. -
#
getOriginalFullSlug() -
string - Gets the record's own canonical slug, built from the record's data and _ignoring_ any custom URL override. Like
getFullSlug()it excludes the module path, has no leading slash, and includes ancestor slugs for hierarchical records — but it always reflects the record's real slugs rather than a custom URL. For a non-hierarchical record this equals the record's owngetSlug()value. This default concatenates whatever the ancestor walk supplies and does not judge the segments: an ancestor with no slug of its own contributes an empty segment rather than failing. A model whose callers need to tell an unresolvable chain apart from a valid one should either return an empty string from an override, asProducts\Models\ProductDescriptiondoes, or expose a separate check alongside it, asPages\Models\BasePage::hasResolvableSlugChain()does. -
#
getFullSlug() -
string - Gets the slug that addresses this record relative to its module — the portion of the URL that identifies the record itself, without the module path and without a leading slash. For a hierarchical record the slug includes the slugs of all of its ancestors joined with slashes. This is the effective slug: when a custom URL is set on the record, it _takes precedence and is returned_ here. The no-leading-slash shape describes the canonical value only. A custom URL is returned verbatim, and custom URLs are stored with a leading slash, so a record that has one returns
/my-customrather thanmy-custom; usegetOriginalFullSlug()when you need the canonical shape unconditionally. -
#
getFullPath() -
string - Gets the relative path that addresses this record within the site, including the module path and starting with a leading slash. This is the
getFullSlug()value prefixed with the route under which the module is mounted. This is the effective path: when a custom URL is set on the record, it _takes precedence and is returned_ here. Returns an empty string when the record has no custom URL andgetOriginalFullPath()cannot build one, so callers must treat an empty string as "no url" rather than as a path. Rendering it into markup or handing it to a cache or route helper would otherwise point the record at whatever the site serves at its root. -
#
getId() -
?int -
#
getPosition() -
?int -
#
getSlug() -
?string -
#
getActiveRevision() -
?PageRevision -
#
getChildren() -
?Collection<Page> -
#
getRevisions() -
?Collection<PageRevision> -
#
getLastRevision() -
?PageRevision - Get the last revision for the entity. If a revision has been added, this will be the newly added revision.
-
#
getComments() -
?Collection<Comment> -
#
isHierarchicalModel()Not in API & Jobs -
bool - Check whether a model is a hierarchical model, i.e. can have children
-
#
getCheckPermissionsUrl()Admin only -
?string - Get the url for checking user permissions for this record.
-
#
getAvailableSaveNewActions()Admin only -
array - Get the actions available for saving a new version of the record. Determined whether an active revision can be set directly, and in which order the actions should be returned.
Methods 7
Take arguments. The API serialises only getters that need none.
-
#
getBranchRevisions(RevisionBranch $branch, ?int $limit, ?int $offset) -
Collection - Get the revisions for the provided branch, ordered by id ascending. Pass a limit/offset to fetch a bounded window instead of the full set — loading all revisions of a large branch exhausts memory.
-
#
getNumBranchRevisions(RevisionBranch $branch) -
int - Get the number of revisions for the provided branch (COUNT query — does not hydrate)
-
#
getRevisionsWithoutBranch(?int $limit, ?int $offset) -
Collection - Get the revisions without branch, ordered by id ascending. Pass a limit/offset to fetch a bounded window instead of the full set — loading all revisions of a record with a large history exhausts memory.
-
#
getAvailableSaveActions(?Model $currentRevision)Admin only -
array - Get the save actions available for the record and provided revision being edited
-
#
getRevisionActions(Revision $revision, ?Revision $currentRevision)Admin only -
array - Get the actions available for the provided revision
-
#
getUpdateRevisionId(Revision $revision)Admin only -
?int - Get the revision ID to use when updating the record. If the provided revision is a draft, the previous id is returned, if one exists.
No members match the filter.