CP/URL Service
Simple Example
Building URLs in the Control Panel is a common, but exacting task. We have a CP/URL Service to make building these URLs simple. For example:
$url = ee('CP/URL', 'publish/create/1');
The service automatically takes care of appending the session ID when it is required. For more complex URLs we also provide means of adding arbitrary query string variables using the make
method:
$url = ee('CP/URL')->make('publish/edit', array('filter_by_channel' => 1));
Or:
$url = ee('CP/URL', 'publish/edit')
->setQueryStringVariable('filter_by_channel', 1);
When to use compile()
The CP/URL object has a magic __toString()
method that compiles the object into a string when the object is treated as a string (see: PHP’s documentation on the magic __toString() method for more information). The compile()
method exists for those occasions when the object is treated as an object but you need a string instead. As per PHP’s documentation on arrays: “Arrays and objects can not be used as keys. Doing so will result in a warning: Illegal offset type.“ You will also want to compile the object when you want to JSON encode the URL otherwise you will get a JSON object instead of a string.
For example:
$breadcrumb = array(
ee('CP/URL', 'addons/settings/fortune_cookie')->compile() => lang('fortune_cookie_management')
);
ee()->javascript->set_global(array(
'fortune_cookie.autosave.URL' => ee('CP/URL', 'addons/settings/fortune_cookie/autosave/')->compile()
));
CP/URL Service Methods
class ExpressionEngine\Library\CP\URLFactory
make($path, $qs = array(), $cp_url = '', $session_id = NULL)
Makes a URL object.
Parameter | Type | Description |
---|---|---|
$path | String |
The path of the url (ie. ‘publish/edit/2’) |
$qs | Array |
An associative array of query string variables to append to the rendered URL. |
$cp_url | String |
The base URL to which all else will be appended (ie. ‘admin.php’) |
$session_id | `String | NULL` |
Returns | URL |
A URL object |
makeFromString($url)
Makes a URL object from a string.
Parameter | Type | Description |
---|---|---|
$url | String |
The URL to be parsed into a URL object |
Returns | URL |
A URL object |
getCurrentUrl()
Makes a URL object representing the requested URL.
Parameter | Type | Description |
---|---|---|
Returns | URL |
A URL object |
decodeUrl($url)
Decodes a base64 encoded, serialized URL object.
Parameter | Type | Description |
---|---|---|
Returns | URL |
A URL object |
CP/URL Object Methods
class ExpressionEngine\Library\CP\URL
setQueryStringVariable($key, $value)
Sets a key and value which will become the Query String of the request
Parameter | Type | Description |
---|---|---|
$key | String |
The name of the query string variable |
$value | String |
The value of the query string variable |
Returns | URL |
$this |
addQueryStringVariables($values)
Sets a values in bulk which will become the Query String of the request
Parameter | Type | Description |
---|---|---|
$values | Array |
An associative array of keys and values |
Returns | URL |
$this |
compile()
Compiles and returns the URL as a string. Typically this is used when you need to use a URL as an array key, or want to json_encode() a URL.
Parameter | Type | Description |
---|---|---|
Returns | The URL |
string |
__toString()
When accessed as a string simply compile the URL and return that.
Parameter | Type | Description |
---|---|---|
Returns | The URL |
string |