Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

setCustomUrl() support for relative URLs #2198

Closed
anonymous-piwik-user opened this Issue · 6 comments

2 participants

@anonymous-piwik-user

I'm using setCustomUrl() to fire a friendly URL from Drupal module into Piwik database for SiteSearch, but I still have issues and it's not working. I'd like to make sure that I'm doing everything correctly and the documentation of setCustomUrl() is not clear to me.

Can someone please explain me if the URL need to be absolute or relative and if relative is also possible if the leading slash may need to be removed?

Can you confirm if the following would be correct or what is incorrect, please?

_paq.push(["setCustomUrl", "http://www.example.com/drupal7/search?query=foo"]);
_paq.push(["setCustomUrl", "drupal7/search?query=foo"]);
_paq.push(["setCustomUrl", "/drupal7/search?query=foo"]);

I'd also need to know if setDocumentTitle():

_paq.push(["setDocumentTitle", "My document title"]);'

can be used together with setCustomUrl():

_paq.push(["setCustomUrl", "drupal7/search?query=foo"]);
_paq.push(["setDocumentTitle", "My search result title"]);'

or if need to expect issues if both are used together.

THX!

@robocoder
Collaborator

I've only used setCustomUrl with an absolute url, e.g.,
http://www.example.com/drupal7/search?query=foo
. (I'm not sure we want to support relative URLs.)

use either or both setDocumentTitle() and setCustomUrl(); they are independent

@anonymous-piwik-user

I found a number of links before I started to use setCustomUrl() manually and this confuses me... urls seems all to be shown in Piwik UI, but SiteSearch is not working...

_paq.push(["setCustomUrl", "drupal7/search?query=foo"]);

My feeling is an absolute URL can be wrong in many situations. For example I'm using subdomains. From SiteSearch maintainer feedback, he is using the site URLs to find an URL and this can be wrong if I'm using a siteID on many sites. But I'm only guessing here if this could be a problem or not...

@robocoder
Collaborator

Mixing domains and absolute/relative paths will mash the results, e.g.,

setCustomUrl('http://example.com/A/B');
setCustomUrl('http://sub.example.com/A/C');
setCustomUrl('/A/D');

Under Actions | Pages, we see '/A' at the first level. The nested entries are:

/B - links to http://example.com/A/B
/C - links to http://sub.example.com/A/C
/D - links to http://a/D

In the last row, the 'A' is downcased and a link is created -- both transformations are arguably wrong.

@anonymous-piwik-user

Is it really a bug now or is it by design and it only need to be documented in the API documentation that the URL inside setCustomUrl() need to be absolute?

@robocoder
Collaborator

In 1.2.1, it needs to be absolute.

Going forward, I think we should support relative URIs. I'm going to open another ticket for the UI inconsistencies in Actions | Pages.

@robocoder
Collaborator

(In [4143]) fixes #2198 - thanks for raising this hass.

Limitations:

  • doesn't use document's base href
    • doesn't handle PATHINFO (used in PHP), e.g., if document URL is http://example.com/subdir/script.php/PATH/?query, setCustomUrl('test.php') will give us http://example.com/subdir/script.php/PATH/test.php
  • doesn't remove/merge '//', '/./', or '/../' in the relative path
@anonymous-piwik-user anonymous-piwik-user added this to the Piwik 1.3 milestone
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.