function redirectToIndex() { $sitesId = Piwik_SitesManager_API::getSitesIdWithAtLeastViewAccess(); if (!empty($sitesId)) { $firstSiteId = $sitesId[0]; $firstSite = new Piwik_Site($firstSiteId); if ($firstSite->getCreationDate()->isToday()) { $defaultDate = 'today'; } else { $defaultDate = Zend_Registry::get('config')->General->default_day; } header("Location:index.php?module=Home&action=index&idSite={$firstSiteId}&period=day&date={$defaultDate}"); } else { if (($currentLogin = Piwik::getCurrentUserLogin()) != 'anonymous') { Piwik_ExitWithMessage(sprintf(Piwik_Translate('Home_NoPrivileges'), $currentLogin) . "<br /><br /> <b><a href='?module=Login&action=logout'>› " . Piwik_Translate('General_Logout') . "</a></b><br />"); } else { Piwik_FrontController::dispatch('Login'); } } exit; }
function redirectToIndex($moduleToRedirect, $actionToRedirect) { $sitesId = Piwik_SitesManager_API::getSitesIdWithAtLeastViewAccess(); if (!empty($sitesId)) { $firstSiteId = $sitesId[0]; $firstSite = new Piwik_Site($firstSiteId); if ($firstSite->getCreationDate()->isToday()) { $defaultDate = 'today'; } else { $defaultDate = Zend_Registry::get('config')->General->default_day; } $defaultPeriod = Zend_Registry::get('config')->General->default_period; header("Location:index.php?module=" . $moduleToRedirect . "&action=" . $actionToRedirect . "&idSite={$firstSiteId}&period={$defaultPeriod}&date={$defaultDate}"); } else { if (Piwik::isUserIsSuperUser()) { Piwik_ExitWithMessage("Error: no website were found in this Piwik installation. \n\t\t\t\t<br>Check the table '" . Piwik::prefixTable('site') . "' that should contain your Piwik websites.", false, true); } $currentLogin = Piwik::getCurrentUserLogin(); if (!empty($currentLogin) && $currentLogin != 'anonymous') { $errorMessage = sprintf(Piwik_Translate('CoreHome_NoPrivileges'), $currentLogin); $errorMessage .= "<br /><br /> <b><a href='?module=" . Zend_Registry::get('auth')->getName() . "&action=logout'>› " . Piwik_Translate('General_Logout') . "</a></b><br />"; Piwik_ExitWithMessage($errorMessage, false, true); } else { Piwik_FrontController::dispatch('Login', false); } } exit; }
/** * Builds an Archive object or returns the same archive if previously built. * * @param string|int idSite integer, or comma separated list of integer * @param string|Piwik_Date $date 'YYYY-MM-DD' or magic keywords 'today' @see Piwik_Date::factory() * @param string $period 'week' 'day' etc. * * @return Piwik_Archive */ static public function build($idSite, $period, $strDate ) { if($idSite === 'all') { $sites = Piwik_SitesManager_API::getSitesIdWithAtLeastViewAccess(); } else { $sites = Piwik_Site::getIdSitesFromIdSitesString($idSite); } // idSite=1,3 or idSite=all if( count($sites) > 1 || $idSite === 'all' ) { $archive = new Piwik_Archive_Array_IndexedBySite($sites, $period, $strDate); } // if a period date string is detected: either 'last30', 'previous10' or 'YYYY-MM-DD,YYYY-MM-DD' elseif(is_string($strDate) && ( preg_match('/^(last|previous){1}([0-9]*)$/', $strDate, $regs) || preg_match('/^([0-9]{4}-[0-9]{1,2}-[0-9]{1,2}),([0-9]{4}-[0-9]{1,2}-[0-9]{1,2})$/', $strDate, $regs) ) ) { $oSite = new Piwik_Site($idSite); $archive = new Piwik_Archive_Array_IndexedByDate($oSite, $period, $strDate); } // case we request a single archive else { if(is_string($strDate)) { $oDate = Piwik_Date::factory($strDate); } else { $oDate = $strDate; } $date = $oDate->toString(); if(isset(self::$alreadyBuilt[$idSite][$date][$period])) { return self::$alreadyBuilt[$idSite][$date][$period]; } $oPeriod = Piwik_Period::factory($period, $oDate); $archive = new Piwik_Archive_Single(); $archive->setPeriod($oPeriod); $archive->setSite(new Piwik_Site($idSite)); $archiveJustProcessed = $archive->prepareArchive(); //we don't cache the archives just processed, the datatable were freed from memory if(!$archiveJustProcessed) { self::$alreadyBuilt[$idSite][$date][$period] = $archive; } } return $archive; }
/** * Builds an Archive object or returns the same archive if previously built. * * @param string|int idSite integer, or comma separated list of integer * @param string|Piwik_Date $date 'YYYY-MM-DD' or magic keywords 'today' @see Piwik_Date::factory() * @param string $period 'week' 'day' etc. * * @return Piwik_Archive */ public static function build($idSite, $period, $strDate) { if ($idSite === 'all') { $sites = Piwik_SitesManager_API::getSitesIdWithAtLeastViewAccess(); } else { $sites = Piwik_Site::getIdSitesFromIdSitesString($idSite); } // idSite=1,3 or idSite=all if (count($sites) > 1 || $idSite === 'all') { require_once 'Archive/Array/IndexedBySite.php'; $archive = new Piwik_Archive_Array_IndexedBySite($sites, $period, $strDate); } elseif (is_string($strDate) && (ereg('^(last|previous){1}([0-9]*)$', $strDate, $regs) || ereg('^([0-9]{4}-[0-9]{1,2}-[0-9]{1,2}),([0-9]{4}-[0-9]{1,2}-[0-9]{1,2})$', $strDate, $regs))) { $oSite = new Piwik_Site($idSite); require_once 'Archive/Array/IndexedByDate.php'; $archive = new Piwik_Archive_Array_IndexedByDate($oSite, $period, $strDate); } else { if (is_string($strDate)) { $oDate = Piwik_Date::factory($strDate); } else { $oDate = $strDate; } $date = $oDate->toString(); if (isset(self::$alreadyBuilt[$idSite][$date][$period])) { return self::$alreadyBuilt[$idSite][$date][$period]; } $oPeriod = Piwik_Period::factory($period, $oDate); $archive = new Piwik_Archive_Single(); $archive->setPeriod($oPeriod); $archive->setSite(new Piwik_Site($idSite)); $archiveJustProcessed = $archive->prepareArchive(); //we don't cache the archives just processed, the datatable were freed from memory if (!$archiveJustProcessed) { self::$alreadyBuilt[$idSite][$date][$period] = $archive; } } return $archive; }