ModelBooks module
Book
A model in the Books module, with 76 members for templates, 49 API properties and 74 members for admin templates.
Templates view
Properties 44
Take no arguments.
-
#
__toString()Templates only -
string - Returns the rendered HTML when the model is used in a string context.
-
#
getExportPdfStatus() -
?string - Retrieve the export status. Will return error, generate_pdfs, merging, success or null if no export has been triggered
-
#
getExportPdfDate() -
?DateTime - Retrieve the date the PDF was exported. Will return the date null if no PDF exists
-
#
getCustomFieldValues() -
?Collection<BookCustomFieldValue> -
#
getOriginalFullPath() -
string - Gets the original path for the entity without any custom URL applied This is the "other" style: it appends the full slug to the module path directly, without passing it as a route parameter. The root page resolves to the bare module path. Any other page whose full slug cannot be built returns an empty string, so callers can tell an unresolvable path apart from a valid one.
-
#
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. -
#
getSlug() -
?string - The slug for the page, i.e. the url portion identifying the page. Does not include parent slugs or the module slug.
-
#
getPosition() -
?int - Position of the page in the list of pages at the same level (i.e. with the same parent)
-
#
getLastRevision() -
?PageRevision - Get the last revision for the entity. If a revision has been added, this will be the newly added revision.
-
#
getSeoSettings() -
?SeoSettings - The SEO settings for the page, like title, descriptions, robots and keywords
-
#
getCustomUrl() -
?CustomUrl - Get the custom url used for the page. This will take precedence over the slugs of this page, parent page and the module.
-
#
getExternalId() -
?string -
#
isHierarchicalModel()Not in API & Jobs -
bool - Check whether a model is a hierarchical model, i.e. can have children
Methods 32
Take arguments. The API serialises only getters that need none.
-
#
getCustomFieldValueByName(string $customFieldName) -
?CustomFieldValue - Get the value for a custom field by the custom field name
-
#
getCustomFieldContent(string $customFieldName) -
?Content - Get the content for the custom field identified by the specified name
-
#
getCustomFieldContentOrDefault(string $customFieldName) -
?Content - Get the (default) content for the custom field identified by the specified name
-
#
getCustomFieldBoolean(string $customFieldName, ?bool $default) -
?bool - Get the (default) content of the custom field as boolean value
-
#
getCustomFieldText(string $customFieldName, ?string $default) -
?string - Get the (default) content of the custom field as text
-
#
getCustomFieldImage(string $customFieldName) -
?Image - Get the (default) image contained in the custom field
-
#
getCustomFieldFile(string $customFieldName) -
?File - Get the (default) file contained in the custom field
-
#
hasCustomField(string $customFieldName) -
bool - Check if the entity has a custom field with the specified name
-
#
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.
-
#
hasAreaWithName(string $areaName)Templates only -
bool - Check if an area with the specified name exists for the active revision of the record
-
#
getAreaType(string $areaName)Templates only -
?InputType - Get the input type for the specified layout area, using the active revision of the record. Returns null if the area with the specified name could not be found.
-
#
getAreaCategory(string $areaName)Templates only -
?string - Get the category for the specified layout area, using the active revision of the record. Returns null if the area with the specified name could not be found.
-
#
getAreaEditor(string $areaName)Templates only -
?string - Get the editor for the specified layout area, using the active revision of the record. Returns null if the area with the specified name could not be found.
-
#
getAreaImage(string $areaName)Templates only -
?Image - Get the image for the layout area with the specified name, using the active revision of the record
-
#
getAreaImageOrPlaceholder(string $areaName, int $width, int $height)Templates only -
Image - Get the image for the component area with the specified name. Uses the active revision of the global component. If the image does not exist, get a placeholder image with the specified dimensions Will always return an image, even if it was not found (in that case, an empty image).
-
#
getAreaFile(string $areaName)Templates only -
?File - Get the file for the layout area with the specified name, using the active revision of the record
-
#
getAreaRecord(string $areaName)Templates only -
?Model - Get the record for the layout area with the specified name, using the active revision of the record
-
#
getAreaRecords(string $areaName)Templates only -
?Collection - Get the records for the layout area with the specified name, using the active revision of the record
-
#
getAreaText(string $areaName)Templates only -
?string - Get the text for the layout area with the specified name, using the active revision of the record
-
#
getAreaValues(string $areaName)Templates only -
array - Get the values for the layout area with the specified name, using the active revision of the record
-
#
getAreaDate(string $areaName)Templates only -
?DateTime - Get a date for the layout area with the specified name, using the active revision of the record
-
#
getAreaWidget(string $areaName)Templates only -
?Widget - Get the widget for the layout area with the specified name, using the active revision of the record
-
#
getAreaComponent(string $areaName)Templates only -
?Component - Get the component for the layout area with the specified name, using the active revision of the record
-
#
getAreaCollectionElements(string $areaName)Templates only -
?Collection - Get the component collection elements for the layout area with the specified name, using the active revision of the record
-
#
getAreaHtml(string $areaName)Templates only -
string - Get the rendered HTML for the component area with the specified name, using the active revision of the record. Adds live preview tags, if enabled.
-
#
getAreaDefaultContent(string $areaName)Templates only -
?Content - Get the default content of the layout area. Uses the active revision of the global component. Will return a BlankContent if no content was defined.
-
#
getAreaContentOrDefault(string $areaName)Templates only -
?Content - Get the content of the layout area, or the default content if no content exists. Uses the active revision of the global component. If no default content exists, a BlankContent will be returned.
-
#
isAreaBlank(string $areaName)Templates only -
bool - Check whether the layout area with the specified name has no usable content, using the active revision of the record. Reports the area as blank when the record has no active revision. Blank describes what is stored, not what renders: the answer comes from the stored content and never renders a template. An area can therefore be not blank and still render nothing — a record that was deleted or has no layout, a component or widget whose template outputs nothing, or text whose only content is a placeholder for a deleted image. To decide on the rendered output instead, test the result of getAreaHtml().
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 49
Read-only values on the record.
-
#
exportPdfStatus -
?string - Retrieve the export status. Will return error, generate_pdfs, merging, success or null if no export has been triggered
-
#
exportPdfDate -
?DateTime - Retrieve the date the PDF was exported. Will return the date null if no PDF exists
-
#
customFieldValues -
?Collection<BookCustomFieldValue> -
#
customFieldContent -
object - Get a serialized representation of the custom fields associated with the record
-
#
originalFullPath -
string - Gets the original path for the entity without any custom URL applied This is the "other" style: it appends the full slug to the module path directly, without passing it as a route parameter. The root page resolves to the bare module path. Any other page whose full slug cannot be built returns an empty string, so callers can tell an unresolvable path apart from a valid one.
-
#
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. -
#
slug -
?string - The slug for the page, i.e. the url portion identifying the page. Does not include parent slugs or the module slug.
-
#
position -
?int - Position of the page in the list of pages at the same level (i.e. with the same parent)
-
#
lastRevision -
?PageRevision - Get the last revision for the entity. If a revision has been added, this will be the newly added revision.
-
#
seoSettings -
?SeoSettings - The SEO settings for the page, like title, descriptions, robots and keywords
-
#
customUrl -
?CustomUrl - Get the custom url used for the page. This will take precedence over the slugs of this page, parent page and the module.
-
#
externalId -
?string -
#
hateoasLinksNot in Templates -
array
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 58
Take no arguments.
-
#
getExportPdfDate() -
?DateTime - Retrieve the date the PDF was exported. Will return the date null if no PDF exists
-
#
getCustomFieldValues() -
?Collection<BookCustomFieldValue> -
#
getOriginalFullPath() -
string - Gets the original path for the entity without any custom URL applied This is the "other" style: it appends the full slug to the module path directly, without passing it as a route parameter. The root page resolves to the bare module path. Any other page whose full slug cannot be built returns an empty string, so callers can tell an unresolvable path apart from a valid one.
-
#
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. -
#
getSlug() -
?string - The slug for the page, i.e. the url portion identifying the page. Does not include parent slugs or the module slug.
-
#
getPosition() -
?int - Position of the page in the list of pages at the same level (i.e. with the same parent)
-
#
getChildren()Not in Templates -
?Collection<Unit> - Child pages, i.e. pages located underneath this page
-
#
getLastRevision() -
?PageRevision - Get the last revision for the entity. If a revision has been added, this will be the newly added revision.
-
#
getSeoSettings() -
?SeoSettings - The SEO settings for the page, like title, descriptions, robots and keywords
-
#
getCustomUrl() -
?CustomUrl - Get the custom url used for the page. This will take precedence over the slugs of this page, parent page and the module.
-
#
getExternalId() -
?string -
#
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 16
Take arguments. The API serialises only getters that need none.
-
#
getCustomFieldValueByName(string $customFieldName) -
?CustomFieldValue - Get the value for a custom field by the custom field name
-
#
getCustomFieldContent(string $customFieldName) -
?Content - Get the content for the custom field identified by the specified name
-
#
getCustomFieldContentOrDefault(string $customFieldName) -
?Content - Get the (default) content for the custom field identified by the specified name
-
#
getCustomFieldBoolean(string $customFieldName, ?bool $default) -
?bool - Get the (default) content of the custom field as boolean value
-
#
getCustomFieldText(string $customFieldName, ?string $default) -
?string - Get the (default) content of the custom field as text
-
#
getCustomFieldImage(string $customFieldName) -
?Image - Get the (default) image contained in the custom field
-
#
getCustomFieldFile(string $customFieldName) -
?File - Get the (default) file contained in the custom field
-
#
hasCustomField(string $customFieldName) -
bool - Check if the entity has a custom field with the specified name
-
#
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.