Supported macros

Referring to an URL like the following:

ReDJ URL parts

Here is a list of supported macros for destination "To URL" field:

MacroDescription
URL macros
{siteurl} Web site address
Example

www.example.com/path/to/Joomla

{scheme} URL scheme
Example

http

{host} URL host
Example

www.example.com

{port} URL port number
Example

8080

{user} User name
Example

fredbloggs

{pass} User password
Example

itsasecret

{path} URL path
Example

/path/to/Joomla/section/cat/index.php

{query} URL query string
Example

task=view&id=32

{queryfull} URL query string full (with question mark)
Example

?task=view&id=32

{querybuild var1=value1,...,varN=valueN} Builds URL query containing only specified variables. If a value is specified for a variable, this is assigned to the variable
Example

{querybuild id,task} => id=32&task=view
{querybuild id,task=edit} => id=32&task=edit
{querybuild id,task=view,ItemId=12} => id=32&task=view&ItemId=12

{querybuildfull var1=value1,...,varN=valueN} Same as 'querybuild' but with question mark
Example

{querybuildfull id,task} => ?id=32&task=view
{querybuildfull id,task=save} => ?id=32&task=save
{querybuildfull id,task,action=close} => ?id=32&task=view&action=close

{querybuildappend var1=value1,...,varN=valueN} Same as 'querybuild' but with ampersand
Example

{querybuildappend id,task} => &id=32&task=view
{querybuildappend id,task=save} => &id=32&task=save
{querybuildappend id,task,action=close} => &id=32&task=view&action=close

{querydrop var1=value1,...,varN=valueN} Builds URL query removing specified variables from the original query. If a value is specified for a variable, this is assigned to the variable (that is not dropped) - ENTERPRISE VERSION ONLY
Example

{querydrop task} => id=32
{querydrop id,task=edit} => task=edit
{querydrop id,task=save,action=close} => task=save&action=close

{querydropfull var1=value1,...,varN=valueN} Same as 'querydrop' but with question mark - ENTERPRISE VERSION ONLY
Example

{querydropfull task} => ?id=32
{querydropfull id,task=save} => ?task=save
{querydropfull id,task=edit,action=close} => ?task=edit&action=close

{querydropappend var1=value1,...,varN=valueN} Same as 'querydrop' but with ampersand - ENTERPRISE VERSION ONLY
Example

{querydropappend task} => &id=32
{querydropappend id,task=save} => &task=save
{querydropappend id,task=edit,action=close} => &task=edit&action=close

{queryvar varname,default} Returns the current value for the variable 'varname' of the URL, or the value 'default' if 'varname' is not defined (where default = '' when not specified)
Example

{queryvar task} => view
{queryvar id} => 32
{queryvar maxsize,234} => 234

{requestvar varname,default} Returns the current value for the variable 'varname' of the request, no matter about method (GET, POST, ...), or the value 'default' if 'varname' is not defined (where default = '' when not specified)
Example

{requestvar id} => 32
{requestvar limit,100} => 100

{authority} URL authority string
Example

fredbloggs:itsasecret@www.example.com:8080

{baseonly} Returns the base path only (empty when installed on root, i.e. it will never contains a trailing slash)
Example

/path/to/Joomla

{pathfrombase} Returns the path without the base part
Example

/section/cat/index.php

{pathltrim pathtotrim} Strip the string specified (pathtotrim) from the beginning of the path and returns the result
Example

{pathltrim /path/to} => /Joomla/section/cat/index.php

{pathrtrim pathtotrim} Strip the string specified (pathtotrim) from the end of the path and returns the result
Example

{pathrtrim /index.php} => /path/to/Joomla/section/cat

{pathfrombaseltrim pathtotrim} Same as 'pathltrim' but works on path without the base part - ENTERPRISE VERSION ONLY
Example

{pathfrombaseltrim /section} => /cat/index.php

{pathfrombasertrim pathtotrim} Same as 'pathrtrim' but works on path without the base part - ENTERPRISE VERSION ONLY
Example

{pathfrombasertrim index.php} => /section/cat/

{preg_match N}pattern{/preg_match} Returns the N-th matched pattern on the 'full source URL', where N = 0 when not specified - ENTERPRISE VERSION ONLY
Example

{preg_match}/([^\/]+)(\.php|\.html|\.htm)/i{/preg_match} => index.php
{preg_match 2}/([^\/]+)(\.php|\.html|\.htm)/i{/preg_match} => .php

{routeurl} Returns the routed (relative) URL using all current variables
Example

/using-joomla.html

{routeurl var1,var2,var3=myvalue,..,varN} Returns the routed (relative) URL for specified variables
Example

index.php?var1=value1&var2=value2&var3=myvalue&..&varN=valueN

{pathfolder N} Returns the N-th folder of the URL path - ENTERPRISE VERSION ONLY
Example

{pathfolder 4} of /path/to/Joomla/section/cat/index.php => section

{pathfolder last-N} Returns the (last-N)-th folder of the URL path, where N = 0 when not specified - ENTERPRISE VERSION ONLY
Example

{pathfolder last-1} of /path/to/Joomla/section/cat/index.php => cat

Site macros
{sitename} Global site name
Example

Global $sitename configuration value

{globaldescription} Global site meta description
Example

Global $MetaDesc configuration value

{globalkeywords} Global site meta keywords
Example

Global $MetaKeys configuration value

{username} Returns the current username
Example

{username} => admin

{username default} Returns the current username or the value 'default' for guest users
Example

{username nobody} => nobody

{userid} Returns the current user ID
Example

{userid} => 62

{userid default} Returns the current user ID or the value 'default' for guest users
Example

{username 1001} => 1001

Database macros
{tableselect table,column,key}value{/tableselect} Returns result of a SQL query (SELECT column FROM table WHERE key = value). Support #__ notation for table name
Example

{tableselect #__users,username,id}135{/tableselect} => SELECT username FROM #__users WHERE id = 135

{preg_select table,column,key,N}pattern{/preg_select} Same as 'preg_match' but uses the matched result to execute a SQL query (SELECT column FROM table WHERE key = matchN). Support #__ notation for table name - ENTERPRISE VERSION ONLY
Example

{preg_select #__content,title,id,1}/id=([0-9]+)/i{/preg_match} => SELECT title FROM #__content WHERE id = 32

{placeholder_select table,column,key1=placeholder1,..,keyN=placeholderN} Returns result of a SQL query (SELECT column FROM table WHERE key1 = ${placeholder1} AND ... AND keyN = ${placeholderN}) where ${placeholderN} is the value of the placeholder with name placeholderN. Support #__ notation for table name. The 'placeholder' must be previously defined (just placeholder name needed, not ${} format) - ENTERPRISE VERSION ONLY
Example

userId=62
{tableselect #__users,username,id=userId} => SELECT username FROM #__users WHERE id = 62

String macros
{substr start,length}text{/substr} Returns the portion of string specified by the start and length parameters. String are zero-based (i.e. first char has index 0)
Example

{substr 1,3}Joomla{/substr} => oom

{strip_tags}text{/strip_tags} Strip HTML and PHP tags from the given string
Example

{strip_tags}<p>hello<br/>Joomla</p>{/strip_tags} => helloJoomla

{extract N}text{/extract} Returns the Nth sentence delimited with carriage return (DOS, UNIX or MAC format). All HTML tags stripped
Example

{extract 1}<p>This is a sentence.\nAnd this is another one.</p>{/extract} => This is a sentence.

{extractp N}text{/extractp} Returns the Nth HTML paragraph <p></p>. All HTML tags stripped
Example

{extractp 2}<p>First paragraph</p><p>Second paragraph</p><p>Third paragraph</p>{/extractp} => Second paragraph

{extractdiv N}text{/extractdiv} Returns the Nth HTML paragraph <div></div>. All HTML tags stripped
Example

{extractp 3}<div>First paragraph</div><div>Second paragraph</div><div>Third paragraph</div>{/extractp} => Third paragraph

{preg_subject N,subject}pattern{/preg_subject} Returns the N-th matched pattern on the 'subject', where N = 0 when not specified. The 'subject' can contain placeholders, but cannot contain standalone '}' chars - ENTERPRISE VERSION ONLY
Example

{preg_subject 2,First/Second/Third}/([^\/]+)\/([^\/]+)\/([^\/]+)/i{/preg_subject} => Second

{preg_placeholder N,placeholder}pattern{/preg_placeholder} Returns the N-th matched pattern on the 'placeholder' evaluated string, where N = 0 when not specified. The 'placeholder' must be previously defined (just placeholder name needed, not ${} format)
Example

a=First/Second/Third
{preg_subject 2,a}/([^\/]+)\/([^\/]+)\/([^\/]+)/i{/preg_subject} => Second

{lowercase}pattern{/lowercase} Returns the pattern in lower case
Example

{lowercase}ALL to Lower{/lowercase} => all to lower

{uppercase}pattern{/uppercase} Returns the pattern in upper case
Example

{uppercase}ALL to UppeR{/uppercase} => ALL TO UPPER

{urldecode}pattern{/urldecode} Returns the decode pattern using urldecode() function
Example

{urldecode}%2Fgoto%20home%2F{/urldecode} => /goto home/

{urlencode}pattern{/urlencode} Returns the encoded pattern using urlencode() function
Example

{urlencode}/encode me/{/urlencode} => %2Fencode%20me%2F

{rawurldecode}pattern{/rawurldecode} Returns the decode pattern using rawurldecode() function
Example

{rawurldecode}foo%20bar%40baz{/rawurldecode} => foo bar@baz

{rawurlencode}pattern{/rawurlencode} Returns the encoded pattern using rawurlencode() function
Example

{rawurlencode}foo @+%/{/rawurlencode} => foo%20%40%2B%25%2F

{str_replace search,replace}pattern{/str_replace} Returns the pattern after replacing 'search' with 'replace'
Example

{str_replace john,scott}my name is john{/str_replace} => my name is scott