Example #1
0
 /**
  * @group Core
  */
 public function testAllMethods()
 {
     $this->assertEquals(Url::getCurrentQueryStringWithParametersModified(array()), Url::getCurrentQueryString());
     $this->assertEquals(Url::getCurrentUrl(), Url::getCurrentUrlWithoutQueryString());
     $this->assertEquals(Url::getCurrentUrl(), Url::getCurrentScheme() . '://' . Url::getCurrentHost() . Url::getCurrentScriptName());
     $_SERVER['QUERY_STRING'] = 'q=test';
     $parameters = array_keys(Url::getArrayFromCurrentQueryString());
     $parametersNameToValue = array();
     foreach ($parameters as $name) {
         $parametersNameToValue[$name] = null;
     }
     $this->assertEquals('', Url::getCurrentQueryStringWithParametersModified($parametersNameToValue));
 }
Example #2
0
 /**
  * We link the graph dots to the same report as currently being displayed (only the date would change).
  *
  * In some cases the widget is loaded within a report that doesn't exist as such.
  * For example, the dashboards loads the 'Last visits graph' widget which can't be directly linked to.
  * Instead, the graph must link back to the dashboard.
  *
  * In other cases, like Visitors>Overview or the Goals graphs, we can link the graph clicks to the same report.
  *
  * To detect whether or not we can link to a report, we simply check if the current URL from which it was loaded
  * belongs to the menu or not. If it doesn't belong to the menu, we do not append the hash to the URL,
  * which results in loading the dashboard.
  *
  * @return array Query string array to append to the URL hash or false if the dashboard should be displayed
  */
 private function getQueryStringAsHash()
 {
     $queryString = Url::getArrayFromCurrentQueryString();
     $piwikParameters = array('idSite', 'date', 'period', 'XDEBUG_SESSION_START', 'KEY');
     foreach ($piwikParameters as $parameter) {
         unset($queryString[$parameter]);
     }
     if (MenuMain::getInstance()->isUrlFound($queryString)) {
         return $queryString;
     }
     return false;
 }