UrlMaker

URL Maker Trait

 trait Cms\Traits\UrlMaker

Useful in models for generating a "url" attribute, automatically linked to a primary component used in the active theme. For example:

use \Cms\Traits\UrlMaker;

protected $urlComponentName = 'blogPost';

When declared in a model, the above will result in $model->url magically linking to the component that declares isPrimary = 1 in configuration.

[blogPost] isPrimary = "1"

The parameters passed to the component are supplied when overriding the method getUrlParams also within the model.

public function getUrlParams() { return [ 'id' => $this->id, 'hash' => $this->hash, ]; }

Properties

protected $url : string

URL cache

protected static $urlPageName : string

Page where detected component is found.

Methods

public getUrlAttribute () : string

Mutator for the "url" attribute. Returns the URL detected by the component.

Returns
string

public getUrlPageName () : string

Locates the page name where the detected component is found. This method uses the Cache service to improve performance.

Returns
string

public resetUrlComponent (string $name, string $property = null) : void

Changes the component used for generating the URLs dynamically.

Parameters
Property Description
$name
string
$property
string
Returns
void

public setUrlAttribute (string $value) : void

Explicitly set the URL for this model.

Parameters
Property Description
$value
string
Returns
void

public setUrlPageName (string $pageName) : void

Explicitly set the CMS Page to link to.

Parameters
Property Description
$pageName
string
Returns
void

protected makeUrl () : string

Generates a real URL based on the page, detected by the primary component.

The CMS Controller is used for this process passing the declared params.

Returns
string
Copyright © 2024 Winter CMS