When makeUrl is called with the scheme specified, the fallback should be the value of the _link_tagscheme system setting, but the default is hard-coded to be -1 in the function definition:
public function makeUrl($id, $context= '', $args= '', $scheme= -1, array $options= array()) {
This puts some pretty severe limitations on URL structures of the site and causes a lot of unwanted behavior if you ever change the link_tag_scheme from anything other than -1.
h2. To Reproduce
Set the value of link_tag_scheme to "full" (or really, anything other than -1).
Somewhere in a Snippet or plugin, make use of the makeUrl() and omit the scheme argument, e.g.
The function ignores the system setting, and instead falls back to the hard-coded default value of -1
h2. Possible Fix
Fixing this without breaking backwards-compatibility I think is possible by using the func_get_args() function -- it shows only what arguments were actually sent to the function.
public function makeUrl($id, $context= '', $args= '', $scheme= -1, array $options= array()) {
$url= '';
// Get system default for scheme
$func_args = func_get_args();
if (!isset($func_args[3])) {
$scheme = $modx->getOption('link_tag_scheme');
}
everettg_99 created Redmine issue ID 10248
When makeUrl is called with the scheme specified, the fallback should be the value of the _link_tagscheme system setting, but the default is hard-coded to be -1 in the function definition:
This puts some pretty severe limitations on URL structures of the site and causes a lot of unwanted behavior if you ever change the link_tag_scheme from anything other than -1.
h2. To Reproduce
Set the value of link_tag_scheme to "full" (or really, anything other than -1).
Somewhere in a Snippet or plugin, make use of the makeUrl() and omit the scheme argument, e.g.
h2. Expected behavior
I expect the format to follow the global system setting, e.g. http://mysite.com/path/to/my/page.html
h2. Actual behavior
The function ignores the system setting, and instead falls back to the hard-coded default value of -1
h2. Possible Fix
Fixing this without breaking backwards-compatibility I think is possible by using the func_get_args() function -- it shows only what arguments were actually sent to the function.
h2. Related?