protected function renderTable($table) { $renderer = new Piwik_DataTable_Renderer_Php($table, $serialize = false); $array = $renderer->flatRender(null, (bool) Piwik_Common::getRequestVar('expanded', false)); // case DataTable_Array if ($table instanceof Piwik_DataTable_Array) { return $this->renderDataTableArray($table, $array); } // integer value of ZERO is a value we want to display if ($array != 0 && empty($array)) { $out = "<result />"; return $this->output($out); } if ($table instanceof Piwik_DataTable_Simple) { if (is_array($array)) { $out = $this->renderDataTableSimple($array); $out = "<result>\n" . $out . "</result>"; } else { $out = "<result>" . $array . "</result>"; } return $this->output($out); } if ($table instanceof Piwik_DataTable) { $out = $this->renderDataTable($array); $out = "<result>\n{$out}</result>"; return $this->output($out); } }
function worldMap() { if (!Piwik_PluginsManager::getInstance()->isPluginActivated('UserCountry')) { return ''; } $idSite = Piwik_Common::getRequestVar('idSite', 1, 'int'); Piwik::checkUserHasViewAccess($idSite); $period = Piwik_Common::getRequestVar('period'); $date = Piwik_Common::getRequestVar('date'); $token_auth = Piwik::getCurrentUserTokenAuth(); $view = Piwik_View::factory('worldmap'); $view->dataUrl = "?module=API" . "&method=API.getProcessedReport&format=XML" . "&apiModule=UserCountry&apiAction=getCountry" . "&idSite=" . $idSite . "&period=" . $period . "&date=" . $date . "&token_auth=" . $token_auth . "&segment=" . Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('segment', '')) . "&filter_limit=-1"; // definition of the color scale $view->hueMin = 218; $view->hueMax = 216; $view->satMin = "0.285"; $view->satMax = "0.9"; $view->lgtMin = ".97"; $view->lgtMax = ".44"; $request = new Piwik_API_Request('method=API.getMetadata&format=PHP' . '&apiModule=UserCountry&apiAction=getCountry' . '&idSite=' . $idSite . '&period=' . $period . '&date=' . $date . '&token_auth=' . $token_auth . '&filter_limit=-1'); $metaData = $request->process(); $metrics = array(); foreach ($metaData[0]['metrics'] as $id => $val) { if (Piwik_Common::getRequestVar('period') == 'day' || $id != 'nb_uniq_visitors') { $metrics[] = array($id, $val); } } foreach ($metaData[0]['processedMetrics'] as $id => $val) { $metrics[] = array($id, $val); } $view->metrics = $metrics; $view->defaultMetric = 'nb_visits'; echo $view->render(); }
function dispatch() { $language = Piwik_Common::getRequestVar('language', '', 'string'); if($language != '') { $updaterController = new Piwik_CoreUpdater_Controller(); $updaterController->saveLanguage(); exit; } $updater = new Piwik_Updater(); $updater->addComponentToCheck('core', Piwik_Version::VERSION); $plugins = Piwik_PluginsManager::getInstance()->getInstalledPlugins(); foreach($plugins as $pluginName => $plugin) { $updater->addComponentToCheck($pluginName, $plugin->getVersion()); } $componentsWithUpdateFile = $updater->getComponentsWithUpdateFile(); if(count($componentsWithUpdateFile) == 0) { return; } $updaterController = new Piwik_CoreUpdater_Controller(); $updaterController->runUpdaterAndExit($updater, $componentsWithUpdateFile); }
protected function buildView() { $view = new Piwik_View($this->dataTableTemplate); $this->uniqueIdViewDataTable = $this->getUniqueIdViewDataTable(); $view->graphType = $this->graphType; $this->chartDivId = $this->uniqueIdViewDataTable . "Chart_swf"; $this->parametersToModify['action'] = $this->currentControllerAction; $this->parametersToModify = array_merge($this->variablesDefault, $this->parametersToModify); $url = Piwik_Url::getCurrentQueryStringWithParametersModified($this->parametersToModify); $this->includeData = !Zend_Registry::get('config')->Debug->disable_merged_requests; $idSite = Piwik_Common::getRequestVar('idSite', 1, 'int'); Piwik_API_Request::reloadAuthUsingTokenAuth(); if (!Piwik::isUserHasViewAccess($idSite)) { throw new Exception(Piwik_TranslateException('General_ExceptionPrivilegeAccessWebsite', array("'view'", $idSite))); } if ($this->includeData) { $this->chartData = $this->getFlashData(); } else { $this->chartData = null; } $view->flashParameters = $this->getFlashParameters(); $view->urlGraphData = $url; $view->chartDivId = $this->chartDivId; $view->formEmbedId = "formEmbed" . $this->uniqueIdViewDataTable; $view->javascriptVariablesToSet = $this->getJavascriptVariablesToSet(); $view->properties = $this->getViewProperties(); return $view; }
/** * The constructor * Initialize some local variables from the request * @param int $idSite * @param Piwik_Date $date ($this->date from controller) * @throws Exception */ public function __construct($idSite, $date, $graphType = null) { $this->apiMethod = Piwik_Common::getRequestVar('apiMethod', '', 'string'); if (empty($this->apiMethod)) { throw new Exception("Parameter apiMethod not set."); } $this->label = Piwik_Common::getRequestVar('label', '', 'string'); $this->label = Piwik_Common::unsanitizeInputValue($this->label); if ($this->label === '') { throw new Exception("Parameter label not set."); } $this->period = Piwik_Common::getRequestVar('period', '', 'string'); if (empty($this->period)) { throw new Exception("Parameter period not set."); } $this->idSite = $idSite; $this->graphType = $graphType; if ($this->period != 'range') { // handle day, week, month and year: display last X periods $end = $date->toString(); list($this->date, $lastN) = Piwik_ViewDataTable_GenerateGraphHTML_ChartEvolution::getDateRangeAndLastN($this->period, $end); } $this->segment = Piwik_Common::getRequestVar('segment', '', 'string'); $this->loadEvolutionReport(); }
protected function setDateTodayIfWebsiteCreatedToday() { $date = Piwik_Common::getRequestVar('date', false); if($date == 'today' || Piwik_Common::getRequestVar('period', false) == 'range') { return; } $websiteId = Piwik_Common::getRequestVar('idSite', false, 'int'); if ($websiteId) { $website = new Piwik_Site($websiteId); $datetimeCreationDate = $this->site->getCreationDate()->getDatetime(); $creationDateLocalTimezone = Piwik_Date::factory($datetimeCreationDate, $website->getTimezone())->toString('Y-m-d'); $todayLocalTimezone = Piwik_Date::factory('now', $website->getTimezone())->toString('Y-m-d'); if( $creationDateLocalTimezone == $todayLocalTimezone ) { Piwik::redirectToModule( 'CoreHome', 'index', array( 'date' => 'today', 'idSite' => $websiteId, 'period' => Piwik_Common::getRequestVar('period')) ); } } }
/** * Returns our 'generator home made' Piwik_VisitorGenerator_Visit object. * * @return Piwik_VisitorGenerator_Visit */ protected function getNewVisitObject() { $ip = Piwik_Common::getRequestVar('cip', false); $visit = new Piwik_VisitorGenerator_Visit($ip); $visit->generateTimestamp(); return $visit; }
/** * Get protocol information, with the exception of HTTPS * * @return string protocol information */ public static function getProtocolInformation() { if(Piwik_Common::getRequestVar('clientProtocol', 'http', 'string') == 'https') { return 'https'; } if(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) { return 'SERVER_PORT=443'; } if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') { return 'X-Forwarded-Proto'; } if(isset($_SERVER['HTTP_X_FORWARDED_SCHEME']) && strtolower($_SERVER['HTTP_X_FORWARDED_SCHEME']) == 'https') { return 'X-Forwarded-Scheme'; } if(isset($_SERVER['HTTP_X_URL_SCHEME']) && strtolower($_SERVER['HTTP_X_URL_SCHEME']) == 'https') { return 'X-Url-Scheme'; } return null; }
public function getVisitorLog($fetch = false) { Piwik_API_Request::reloadAuthUsingTokenAuth(); // If previous=1 is set, user clicked previous // we can't deal with previous so we force display of the first page if (Piwik_Common::getRequestVar('previous', 0, 'int') == 1) { $_GET['maxIdVisit'] = ''; } $view = Piwik_ViewDataTable::factory(); $view->init($this->pluginName, __FUNCTION__, 'Live.getLastVisitsDetails'); $view->disableGenericFilters(); $view->disableSort(); $view->setTemplate("Live/templates/visitorLog.tpl"); $view->setSortedColumn('idVisit', 'ASC'); $view->disableSearchBox(); $view->setLimit(20); $view->disableOffsetInformation(); $view->disableExcludeLowPopulation(); // disable the tag cloud, pie charts, bar chart icons $view->disableShowAllViewsIcons(); // disable the button "show more datas" $view->disableShowAllColumns(); // disable the RSS feed $view->disableShowExportAsRssFeed(); $view->setReportDocumentation(Piwik_Translate('Live_VisitorLogDocumentation', array('<br />', '<br />'))); $view->setCustomParameter('dataTablePreviousIsFirst', 1); $view->setCustomParameter('filterEcommerce', Piwik_Common::getRequestVar('filterEcommerce', 0, 'int')); $view->setCustomParameter('pageUrlNotDefined', Piwik_Translate('General_NotDefined', Piwik_Translate('Actions_ColumnPageURL'))); return $this->renderView($view, $fetch); }
/** Logger hook */ public function log($notification) { $data = Piwik_Common::getRequestVar('data', ''); $data = html_entity_decode($data); $data = json_decode($data, true); if (!isset($data['SiteUsers_Action'])) { return false; } $action = $notification->getNotificationObject(); $idaction = $action->getIdActionUrl(); $info = $notification->getNotificationInfo(); $idsite = $info['idSite']; $idvisit = $info['idVisit']; include_once dirname(__FILE__) . '/Model.php'; include_once dirname(dirname(dirname(__FILE__))) . '/core/Date.php'; $model = Piwik_SiteUsers_Model::getInstance(); $logAction = $data['SiteUsers_Action']; if ($logAction == 'logout') { return $model->logLogout($idvisit); } if (!isset($data['SiteUsers_UserID']) || !isset($data['SiteUsers_UserName'])) { return false; } $iduser = $data['SiteUsers_UserID']; $userName = $data['SiteUsers_UserName']; if ($logAction == 'login') { $model->logLogin($iduser, $userName, $idsite, $idvisit); } }
/** * send email to Piwik team and display nice thanks */ function sendFeedback() { $body = Piwik_Common::getRequestVar('body', '', 'string'); $email = Piwik_Common::getRequestVar('email', '', 'string'); $view = new Piwik_View('Feedback/templates/sent.tpl'); try { $minimumBodyLength = 35; if (strlen($body) < $minimumBodyLength) { throw new Exception(sprintf("Message must be at least %s characters long.", $minimumBodyLength)); } if (!Piwik::isValidEmailString($email)) { throw new Exception(Piwik_Translate('UsersManager_ExceptionInvalidEmail')); } if (strpos($body, 'http://') !== false) { throw new Exception("The message cannot contain a URL, to avoid spams messages."); } $mail = new Piwik_Mail(); $mail->setFrom($email); $mail->addTo('*****@*****.**', 'Piwik Team'); $mail->setSubject('[ Feedback form - Piwik ]'); $mail->setBodyText($body); @$mail->send(); } catch (Exception $e) { $view->ErrorString = $e->getMessage(); $view->message = $body; } echo $view->render(); }
public function getByDayOfWeek($fetch = false) { $view = $this->getGraph(__FUNCTION__, 'VisitTime.getByDayOfWeek', 'VisitTime_DayOfWeek', $limit = 7, $sort = false); $view->disableSort(); if ($view instanceof Piwik_ViewDataTable_GenerateGraphHTML) { $view->showAllTicks(); } // get query params $idsite = Piwik_Common::getRequestVar('idSite'); $date = Piwik_Common::getRequestVar('date'); $period = Piwik_Common::getRequestVar('period'); // create a period instance $oSite = new Piwik_Site($idsite); $oPeriod = Piwik_Archive::makePeriodFromQueryParams($oSite, $period, $date); // set the footer message using the period start & end date $start = $oPeriod->getDateStart()->toString(); $end = $oPeriod->getDateEnd()->toString(); if ($start == $end) { $dateRange = $start; } else { $dateRange = $start . " – " . $end; } $view->setFooterMessage(Piwik_Translate('General_ReportGeneratedFrom', $dateRange)); return $this->renderView($view, $fetch); }
public function index() { Piwik::checkUserIsSuperUser(); if ($_SERVER["REQUEST_METHOD"] == "POST") { switch (Piwik_Common::getRequestVar('form')) { case "formMaskLength": $this->handlePluginState(Piwik_Common::getRequestVar("anonymizeIPEnable", 0)); $maskLength = Zend_Registry::get('config')->Tracker; $maskLength->ip_address_mask_length = Piwik_Common::getRequestVar("maskLength", 1); Zend_Registry::get('config')->Tracker = $maskLength->toArray(); break; case "formDeleteSettings": $deleteLogs = Zend_Registry::get('config')->Deletelogs; $deleteLogs->delete_logs_enable = Piwik_Common::getRequestVar("deleteEnable", 0); $deleteLogs->delete_logs_schedule_lowest_interval = Piwik_Common::getRequestVar("deleteLowestInterval", 7); $deleteLogs->delete_logs_older_than = (int) Piwik_Common::getRequestVar("deleteOlderThan", 180) < 7 ? 7 : Piwik_Common::getRequestVar("deleteOlderThan", 180); $deleteLogs->delete_max_rows_per_run = Piwik_Common::getRequestVar("deleteMaxRows", 100); Zend_Registry::get('config')->Deletelogs = $deleteLogs->toArray(); break; default: //do nothing break; } } return $this->redirectToIndex('PrivacyManager', 'privacySettings', null, null, null, array('updated' => 1)); }
/** * send email to Piwik team and display nice thanks */ function sendFeedback() { $email = Piwik_Common::getRequestVar('email', '', 'string'); $body = Piwik_Common::getRequestVar('body', '', 'string'); $category = Piwik_Common::getRequestVar('category', '', 'string'); $nonce = Piwik_Common::getRequestVar('nonce', '', 'string'); $view = Piwik_View::factory('sent'); $view->feedbackEmailAddress = Zend_Registry::get('config')->General->feedback_email_address; try { $minimumBodyLength = 35; if (strlen($body) < $minimumBodyLength) { throw new Exception(Piwik_TranslateException('Feedback_ExceptionBodyLength', array($minimumBodyLength))); } if (!Piwik::isValidEmailString($email)) { throw new Exception(Piwik_TranslateException('UsersManager_ExceptionInvalidEmail')); } if (preg_match('/https?:/i', $body)) { throw new Exception(Piwik_TranslateException('Feedback_ExceptionNoUrls')); } if (!Piwik_Nonce::verifyNonce('Piwik_Feedback.sendFeedback', $nonce)) { throw new Exception(Piwik_TranslateException('General_ExceptionNonceMismatch')); } Piwik_Nonce::discardNonce('Piwik_Feedback.sendFeedback'); $mail = new Piwik_Mail(); $mail->setFrom(Piwik_Common::unsanitizeInputValue($email)); $mail->addTo($view->feedbackEmailAddress, 'Piwik Team'); $mail->setSubject('[ Feedback form - Piwik ] ' . $category); $mail->setBodyText(Piwik_Common::unsanitizeInputValue($body) . "\n" . 'Piwik ' . Piwik_Version::VERSION . "\n" . 'IP: ' . Piwik_Common::getIpString() . "\n" . 'URL: ' . Piwik_Url::getReferer() . "\n"); @$mail->send(); } catch (Exception $e) { $view->ErrorString = $e->getMessage(); $view->message = $body; } echo $view->render(); }
function activate() { Piwik::checkUserIsSuperUser(); $pluginName = Piwik_Common::getRequestVar('pluginName', null, 'string'); Piwik_PluginsManager::getInstance()->activatePlugin($pluginName); Piwik_Url::redirectToUrl('index.php?module=CorePluginsAdmin'); }
public function main() { $this->idSite = Piwik_Common::getRequestVar('idSite', null, 'int'); $this->processOnlyIdGoal = Piwik_Common::getRequestVar('idGoal', 0, 'string'); $this->isEcommerce = $this->processOnlyIdGoal == Piwik_Archive::LABEL_ECOMMERCE_ORDER; $this->viewProperties['show_exclude_low_population'] = true; $this->viewProperties['show_goals'] = true; if (Piwik_Common::getRequestVar('documentationForGoalsPage', 0, 'int') == 1) { $this->setReportDocumentation(Piwik_Translate('Goals_ConversionByTypeReportDocumentation', array('<br />', '<br />', '<a href="http://piwik.org/docs/tracking-goals-web-analytics/" target="_blank">', '</a>'))); } $this->setMetricDocumentation('nb_visits', Piwik_Translate('Goals_ColumnVisits')); if ($this->isEcommerce) { $this->setMetricDocumentation('revenue_per_visit', Piwik_Translate('Goals_ColumnRevenuePerVisitDocumentation', Piwik_Translate('General_EcommerceOrders'))); $this->setColumnsTranslations(array('goal_%s_conversion_rate' => Piwik_Translate('Goals_ConversionRate'), 'goal_%s_nb_conversions' => Piwik_Translate('General_EcommerceOrders'), 'goal_%s_revenue' => Piwik_Translate('General_TotalRevenue'), 'goal_%s_revenue_per_visit' => Piwik_Translate('General_ColumnValuePerVisit'), 'goal_%s_avg_order_revenue' => Piwik_Translate('General_AverageOrderValue'), 'goal_%s_items' => Piwik_Translate('General_PurchasedProducts'))); $this->setColumnsToDisplay(array('label', 'nb_visits', 'goal_%s_nb_conversions', 'goal_%s_revenue', 'goal_%s_conversion_rate', 'goal_%s_avg_order_revenue', 'goal_%s_items', 'goal_%s_revenue_per_visit')); // Default sort column $this->setSortedColumn('goal_ecommerceOrder_revenue', 'desc'); } else { $this->setMetricDocumentation('revenue_per_visit', Piwik_Translate('Goals_ColumnRevenuePerVisitDocumentation', Piwik_Translate('Goals_EcommerceAndGoalsMenu'))); $this->setColumnsTranslations(array('goal_%s_conversion_rate' => Piwik_Translate('Goals_ConversionRate'), 'goal_%s_nb_conversions' => Piwik_Translate('Goals_Conversions'), 'goal_%s_revenue' => '%s ' . Piwik_Translate('Goals_ColumnRevenue'), 'goal_%s_revenue_per_visit' => '%s ' . Piwik_Translate('General_ColumnValuePerVisit'), 'nb_conversions' => Piwik_Translate('Goals_ColumnConversions'), 'conversion_rate' => Piwik_Translate('General_ColumnConversionRate'), 'revenue' => Piwik_Translate('Goals_ColumnRevenue'), 'revenue_per_visit' => Piwik_Translate('General_ColumnValuePerVisit'))); $this->setColumnsToDisplay(array('label', 'nb_visits', 'goal_%s_nb_conversions', 'goal_%s_conversion_rate', 'goal_%s_revenue', 'goal_%s_revenue_per_visit', 'revenue_per_visit')); // Default sort column $columnsToDisplay = $this->getColumnsToDisplay(); $columnNbConversionsCurrentGoal = $columnsToDisplay[2]; if ($this->processOnlyIdGoal > 0 && strpos($columnNbConversionsCurrentGoal, '_nb_conversions') !== false) { $this->setSortedColumn($columnNbConversionsCurrentGoal, 'desc'); } } parent::main(); }
/** * @see Piwik_ViewDataTable::main() */ public function main() { if ($this->mainAlreadyExecuted) { return; } $this->mainAlreadyExecuted = true; // If period=range, we force the sparkline to draw daily data points $period = Piwik_Common::getRequestVar('period'); if ($period == 'range') { $_GET['period'] = 'day'; } $this->loadDataTableFromAPI(); // then revert the hack for potentially subsequent getRequestVar $_GET['period'] = $period; $values = $this->getValuesFromDataTable($this->dataTable); $this->isDataAvailable = true; if (empty($values)) { $values = array_fill(0, 30, 0); $this->isDataAvailable = false; } $graph = new Piwik_Visualization_Sparkline(); $graph->setValues($values); $graph->main(); $this->view = $graph; }
public function getVisitorLog($fetch = false) { // If previous=1 is set, user clicked previous // we can't deal with previous so we force display of the first page if (Piwik_Common::getRequestVar('previous', 0, 'int') == 1) { $_GET['maxIdVisit'] = ''; } $view = Piwik_ViewDataTable::factory(); $view->init($this->pluginName, __FUNCTION__, 'Live.getLastVisitsDetails'); $view->disableGenericFilters(); $view->disableSort(); $view->setTemplate("Live/templates/visitorLog.tpl"); $view->setSortedColumn('idVisit', 'ASC'); $view->disableSearchBox(); $view->setLimit(20); $view->disableOffsetInformation(); $view->disableExcludeLowPopulation(); // disable the tag cloud, pie charts, bar chart icons $view->disableShowAllViewsIcons(); // disable the button "show more datas" $view->disableShowAllColumns(); // disable the RSS feed $view->disableShowExportAsRssFeed(); $view->setCustomParameter('pageUrlNotDefined', Zend_Registry::get('config')->General->action_default_url_when_not_defined); return $this->renderView($view, $fetch); }
/** * Check for a newer version */ public static function check() { $lastTimeChecked = Piwik_GetOption(self::LAST_TIME_CHECKED); if($lastTimeChecked === false || time() - self::CHECK_INTERVAL > $lastTimeChecked ) { $parameters = array( 'piwik_version' => Piwik_Version::VERSION, 'php_version' => phpversion(), 'url' => Piwik_Url::getCurrentUrlWithoutQueryString(), 'trigger' => Piwik_Common::getRequestVar('module','','string'), ); $url = self::PIWIK_HOST . "?" . http_build_query($parameters, '', '&'); $timeout = self::SOCKET_TIMEOUT; try { $latestVersion = Piwik::sendHttpRequest($url, $timeout); Piwik_SetOption(self::LATEST_VERSION, $latestVersion); } catch(Exception $e) { // e.g., disable_functions = fsockopen; allow_url_open = Off Piwik_SetOption(self::LATEST_VERSION, ''); } Piwik_SetOption(self::LAST_TIME_CHECKED, time(), $autoload = 1); } }
public function getEvolutionGraph( $fetch = false, $columns = false) { $view = $this->getLastUnitGraph($this->pluginName, __FUNCTION__, "VisitFrequency.get"); if(empty($columns)) { $columns = Piwik_Common::getRequestVar('columns'); } $columns = !is_array($columns) ? array($columns) : $columns; $view->setColumnsToDisplay($columns); $view->setColumnsTranslations(array( 'nb_visits_returning' => Piwik_Translate('VisitFrequency_ColumnReturningVisits'), 'nb_actions_returning' => Piwik_Translate('VisitFrequency_ColumnActionsByReturningVisits'), 'avg_time_on_site_returning' => Piwik_Translate('VisitFrequency_ColumnAverageVisitDurationForReturningVisitors'), 'bounce_rate_returning' => Piwik_Translate('VisitFrequency_ColumnBounceRateForReturningVisits'), 'nb_actions_per_visit_returning' => Piwik_Translate('VisitFrequency_ColumnAvgActionsPerReturningVisit'), )); $doc = Piwik_Translate('VisitFrequency_ReturningVisitsDocumentation').'<br />' . Piwik_Translate('General_BrokenDownReportDocumentation').'<br />' . Piwik_Translate('VisitFrequency_ReturningVisitDocumentation'); $view->setReportDocumentation($doc); return $this->renderView($view, $fetch); }
/** * Check for a newer version * * @param bool $force Force check */ public static function check($force = false) { $lastTimeChecked = Piwik_GetOption(self::LAST_TIME_CHECKED); if($force || $lastTimeChecked === false || time() - self::CHECK_INTERVAL > $lastTimeChecked ) { // set the time checked first, so that parallel Piwik requests don't all trigger the http requests Piwik_SetOption(self::LAST_TIME_CHECKED, time(), $autoload = 1); $parameters = array( 'piwik_version' => Piwik_Version::VERSION, 'php_version' => PHP_VERSION, 'url' => Piwik_Url::getCurrentUrlWithoutQueryString(), 'trigger' => Piwik_Common::getRequestVar('module','','string'), 'timezone' => Piwik_SitesManager_API::getInstance()->getDefaultTimezone(), ); $url = Zend_Registry::get('config')->General->api_service_url; $url .= '/1.0/getLatestVersion/'; $url .= '?' . http_build_query($parameters, '', '&'); $timeout = self::SOCKET_TIMEOUT; try { $latestVersion = Piwik_Http::sendHttpRequest($url, $timeout); Piwik_SetOption(self::LATEST_VERSION, $latestVersion); } catch(Exception $e) { // e.g., disable_functions = fsockopen; allow_url_open = Off Piwik_SetOption(self::LATEST_VERSION, ''); } } }
function init() { $resetToken = Piwik_Common::getRequestVar('token', '', 'string'); $formElements = array( array('text', 'form_login'), array('password', 'form_password'), array('password', 'form_password_bis'), array('text', 'form_token'), ); $this->addElements( $formElements ); $defaults = array( 'form_token' => $resetToken, ); $this->setDefaults($defaults); $formRules = array( array('form_login', sprintf(Piwik_Translate('General_Required'), Piwik_Translate('General_Username')), 'required'), array('form_password', sprintf(Piwik_Translate('General_Required'), Piwik_Translate('Login_Password')), 'required'), array('form_password_bis', sprintf(Piwik_Translate('General_Required'), Piwik_Translate('Login_PasswordRepeat')), 'required'), array('form_token', sprintf(Piwik_Translate('General_Required'), Piwik_Translate('Login_PasswordResetToken')), 'required'), array('form_password', Piwik_Translate( 'Login_PasswordsDoNotMatch'), 'fieldHaveSameValue', 'form_password_bis'), ); $this->addRules( $formRules ); $this->addElement('submit', 'submit'); }
function dispatch($notification = null) { if($notification) { $exception = $notification->getNotificationObject(); $message = $exception->getMessage(); } else { $message = ''; } Piwik_Translate::getInstance()->loadCoreTranslation(); Piwik_PostEvent('Installation.startInstallation', $this); $step = Piwik_Common::getRequestVar('action', 'welcome', 'string'); $controller = $this->getInstallationController(); if(in_array($step, array_keys($controller->getInstallationSteps())) || $step == 'saveLanguage') { $controller->$step($message); } else { Piwik::exitWithErrorMessage(Piwik_Translate('Installation_NoConfigFound')); } exit; }
protected function renderTable($table) { if (!$table instanceof Piwik_DataTable_Array) { throw new Exception("RSS Feed only used on DataTable_Array"); } $idSite = Piwik_Common::getRequestVar('idSite', 1); $period = Piwik_Common::getRequestVar('period'); $currentUrl = Piwik_Url::getCurrentUrlWithoutFileName(); $piwikUrl = $currentUrl . "?module=Home&action=index&idSite=" . $idSite . "&period=" . $period; $out = ""; $moreRecentFirst = array_reverse($table->getArray(), true); foreach ($moreRecentFirst as $date => $subtable) { $timestamp = $table->metaData[$date]['timestamp']; $site = $table->metaData[$date]['site']; $pudDate = date('r', $timestamp); $dateUrl = date('Y-m-d', $timestamp); $thisPiwikUrl = htmlentities($piwikUrl . "&date={$dateUrl}"); $siteName = $site->getName(); $title = $siteName . " on " . $date; $out .= "\t<item>\n\t\t<pubDate>{$pudDate}</pubDate>\n\t\t<guid>{$thisPiwikUrl}</guid>\n\t\t<link>{$thisPiwikUrl}</link>\n\t\t<title>{$title}</title>\n\t\t<author>http://piwik.org</author>\n\t\t<description>"; $out .= htmlspecialchars($this->renderDataTable($subtable)); $out .= "</description>\n\t</item>\n"; } $header = $this->getRssHeader(); $footer = $this->getRssFooter(); return $this->output($header . $out . $footer); }
/** * Computes the output for the given data table * * @param Piwik_DataTable $table * @return string * @throws Exception */ protected function renderTable($table) { if (!$table instanceof Piwik_DataTable_Array || $table->getKeyName() != 'date') { throw new Exception("RSS feeds can be generated for one specific website &idSite=X." . "\nPlease specify only one idSite or consider using &format=XML instead."); } $idSite = Piwik_Common::getRequestVar('idSite', 1, 'int'); $period = Piwik_Common::getRequestVar('period'); $piwikUrl = Piwik_Url::getCurrentUrlWithoutFileName() . "?module=CoreHome&action=index&idSite=" . $idSite . "&period=" . $period; $out = ""; $moreRecentFirst = array_reverse($table->getArray(), true); foreach ($moreRecentFirst as $date => $subtable) { $timestamp = $table->metadata[$date]['timestamp']; $site = $table->metadata[$date]['site']; $pudDate = date('r', $timestamp); $dateInSiteTimezone = Piwik_Date::factory($timestamp)->setTimezone($site->getTimezone())->toString('Y-m-d'); $thisPiwikUrl = Piwik_Common::sanitizeInputValue($piwikUrl . "&date={$dateInSiteTimezone}"); $siteName = $site->getName(); $title = $siteName . " on " . $date; $out .= "\t<item>\n\t\t<pubDate>{$pudDate}</pubDate>\n\t\t<guid>{$thisPiwikUrl}</guid>\n\t\t<link>{$thisPiwikUrl}</link>\n\t\t<title>{$title}</title>\n\t\t<author>http://piwik.org</author>\n\t\t<description>"; $out .= Piwik_Common::sanitizeInputValue($this->renderDataTable($subtable)); $out .= "</description>\n\t</item>\n"; } $header = $this->getRssHeader(); $footer = $this->getRssFooter(); return $header . $out . $footer; }
public function getEvolutionGraph( $fetch = false, $columns = false) { $view = $this->getLastUnitGraph($this->pluginName, __FUNCTION__, "VisitsSummary.get"); if(empty($columns)) { $columns = Piwik_Common::getRequestVar('columns'); } $columns = !is_array($columns) ? array($columns) : $columns; $view->setColumnsToDisplay($columns); $doc = Piwik_Translate('VisitsSummary_VisitsSummaryDocumentation').'<br />' . Piwik_Translate('General_BrokenDownReportDocumentation').'<br /><br />' . '<b>'.Piwik_Translate('General_ColumnNbVisits').':</b> ' . Piwik_Translate('General_ColumnNbVisitsDocumentation').'<br />' . '<b>'.Piwik_Translate('General_ColumnNbUniqVisitors').':</b> ' . Piwik_Translate('General_ColumnNbUniqVisitorsDocumentation').'<br />' . '<b>'.Piwik_Translate('General_ColumnNbActions').':</b> ' . Piwik_Translate('General_ColumnNbActionsDocumentation').'<br />' . '<b>'.Piwik_Translate('General_ColumnActionsPerVisit').':</b> ' . Piwik_Translate('General_ColumnActionsPerVisitDocumentation'); $view->setReportDocumentation($doc); return $this->renderView($view, $fetch); }
function init($currentControllerName, $currentControllerAction, $apiMethodToRequestDataTable) { parent::init($currentControllerName, $currentControllerAction, $apiMethodToRequestDataTable); $this->setParametersToModify(array('date' => Piwik_Common::getRequestVar('date', 'last30', 'string'))); $this->disableShowAllViewsIcons(); $this->disableShowTable(); }
protected function buildView() { // access control $idSite = Piwik_Common::getRequestVar('idSite', 1, 'int'); Piwik_API_Request::reloadAuthUsingTokenAuth(); if (!Piwik::isUserHasViewAccess($idSite)) { throw new Exception(Piwik_TranslateException('General_ExceptionPrivilegeAccessWebsite', array("'view'", $idSite))); } // collect data $this->parametersToModify['action'] = $this->currentControllerAction; $this->parametersToModify = array_merge($this->variablesDefault, $this->parametersToModify); $this->graphData = $this->getGraphData(); // build view $view = new Piwik_View($this->dataTableTemplate); $view->width = $this->width; $view->height = $this->height; $view->chartDivId = $this->getUniqueIdViewDataTable() . "Chart"; $view->graphType = $this->graphType; $view->data = $this->graphData; $view->isDataAvailable = strpos($this->graphData, '"series":[]') === false; $view->javascriptVariablesToSet = $this->getJavascriptVariablesToSet(); $view->properties = $this->getViewProperties(); $view->reportDocumentation = $this->getReportDocumentation(); return $view; }
function init() { $this->addElement('text', 'form_login') ->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('General_Username'))); $password = $this->addElement('password', 'form_password'); $password->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Login_Password'))); $passwordBis = $this->addElement('password', 'form_password_bis'); $passwordBis->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Login_PasswordRepeat'))); $passwordBis->addRule('eq', Piwik_Translate( 'Login_PasswordsDoNotMatch'), $password); $this->addElement('text', 'form_token') ->addRule('required', Piwik_Translate('General_Required', Piwik_Translate('Login_PasswordResetToken'))); $this->addElement('hidden', 'form_nonce'); $this->addElement('submit', 'submit'); $resetToken = Piwik_Common::getRequestVar('token', '', 'string'); if(!empty($resetToken)) { // default values $this->addDataSource(new HTML_QuickForm2_DataSource_Array(array( 'form_token' => $resetToken, ))); $this->attributes['action'] = 'index.php' . Piwik_Url::getCurrentQueryStringWithParametersModified( array('token' => null) ); } }
/** * Function called to save the Feedburner ID entered in the form * */ function saveFeedburnerName() { // we save the value in the DB for an authenticated user if (Piwik::getCurrentUserLogin() != 'anonymous') { Piwik_Query('UPDATE ' . Piwik::prefixTable('site') . ' SET feedburnerName = ? WHERE idsite = ?', array(Piwik_Common::getRequestVar('name', '', 'string'), Piwik_Common::getRequestVar('idSite', 1, 'int'))); } }