Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/Common.php3
-rw-r--r--core/Translate.php2
-rw-r--r--misc/TODO57
-rw-r--r--plugins/Goals/Controller.php30
-rw-r--r--plugins/Goals/templates/release_notes.tpl9
-rw-r--r--plugins/Goals/templates/single_goal.tpl4
-rw-r--r--plugins/Live/API.php2
-rw-r--r--plugins/Live/Controller.php10
-rw-r--r--plugins/Live/templates/index.tpl9
-rw-r--r--plugins/Referers/API.php2
-rw-r--r--plugins/Referers/Controller.php4
-rw-r--r--plugins/Referers/Referers.php11
-rw-r--r--plugins/UserCountry/functions.php10
13 files changed, 74 insertions, 79 deletions
diff --git a/core/Common.php b/core/Common.php
index e22ebd8e2c..0ef1f38efd 100644
--- a/core/Common.php
+++ b/core/Common.php
@@ -140,7 +140,8 @@ class Piwik_Common
}
/**
- * ending WITHOUT slashs
+ * ending WITHOUT slash
+ * @return string
*/
static public function getPathToPiwikRoot()
{
diff --git a/core/Translate.php b/core/Translate.php
index e12150f492..7960b408ca 100644
--- a/core/Translate.php
+++ b/core/Translate.php
@@ -71,7 +71,7 @@ class Piwik_Translate
$language = null;
Piwik_PostEvent('Translate.getLanguageToLoad', $language);
- if(is_null($language))
+ if(is_null($language) || empty($language))
{
$language = Zend_Registry::get('config')->General->default_language;
}
diff --git a/misc/TODO b/misc/TODO
index 871f1151a9..67d05942b2 100644
--- a/misc/TODO
+++ b/misc/TODO
@@ -1,38 +1,27 @@
To fix
======
+- Lors de la génération des données sur mon site de test :
+Fatal error: Call to undefined method Piwik_Tracker_Db::prefixTable() in E:\Projects\wowww\piwik\core\Tracker\Db.php on line 241
+- keywords duplicated
+- On the dashboard, the pie graph for the browsers by family widget is very small.
+- Problème de traduction dans Visiteurs > Récapitulatifs
+Évolution sur les 30 derniers __ days __
+- trim keywords
- cron should return errors when token doesn't have any website
- need documentation about campaigns, inline help link to FAQ
- <idsubdatatable>1</idsubdatatable> shouldnt be in api response
- when used with visitsGenerator, in dowloads export XML, full_url and url is 0
-- post 29 There seems not to be a way to export the pages information widget.
- I wanted to download the entry pages to see where my visitors entered my site from,
- but there is no option to do so.
- ADD forward of non true show_values to forward when specified from URL to ajax
- disable show icon in some iframes and/or dashboard
- clarify 'false' '0' values etc. //convert all JS datatable footer parameter values to '1' or '0'
+- why widgetize inherits Piwik_Widgetize_Controller
+- plugins should listen to user delete/ site delete and delete their own user/site related data
+- postEvent smarty doc is not clear, + feature we're not using (filter but what we need is simply way to print out html in templates from plugins)
-Bugs
-====
- actions for year seems to not load (memory issue?)
-- all graphic showing data evolution are labelled with the text &quot;nb_uniq_visitors&quot;
- no matter if youre watching last visits graph, global visits graph or any other.
- Its happening in every graph under Visitors subpages and in the Dashboard.
-- In Referers-&gt;Evolution page, in addition, I think its melting titles because I read
- in spanish &quot;Entrada directa nb_uniq_visitors&quot; for the first graph,
- &quot;Paginas web nb_uniq_visitors&quot; for the second and so on.
Reports improvements
====================
-- add new column "overall visits with conversion"
-- add visits with conversion sparkline in VisitsSummary overview
-- add link under widgets to report (optional display)
-- link under goal conversion to full goal reports (optional display)
-- think of ways to show entry / exit pages and bounce rate.
-- show unique visitors when available, otherwise show nb_visits by default
-- bounce count should be bounce rate
-- idem in 222 times that a returning visit has bounced (left the site after one page)
-- show new vs returning more clearly in UI
-- see also #421
- add "days since last visit"
- add "visit count until conversion"
- add best search engines, keywords, campaigns, websites in referers overview
@@ -45,40 +34,14 @@ Test page
- test datatable with low population disabled
- without footer
- without all columns icon
-
-high priority features
-====
-- Goal tracking
-- Entry/Exit pages
-- sync update + email install + automatic update
-- tester clickheat http://www.labsmedia.com/clickheat/piwik-clickheat.tar.gz + add FAQ
-- Live!
-- new JS tagging API
-- Exclude webmaster
-- Loyalty (Most people visited: 1 times) and Recency (Most people last visited: X days ago)
- http://en.wikipedia.org/wiki/RFM
-- simple MultiSites report plugin.
User Interface improvements
===========================
- add icon calendar http://developer.yahoo.com/ypatterns/pattern.php?pattern=calendar#Solution
- something is wrong in JS calendar when year selected
-piwik.org
-====
-- 404 more useful
-- fix Piwik changelog
-- www.piwik.org/demo/ is 404
-
Code improvements
=================
-- plugins should listen to user delete/ site delete and delete their own user/site related data
-- why widgetize inherits Piwik_Widgetize_Controller
-- plugins could have their own tests, read automatically from the test suite
-
-Documentation
-=============
-- postEvent smarty doc is not clear, + feature we're not using (filter but what we need is simply way to print out html in templates from plugins)
changes between 2 versions
http://dev.piwik.org/trac/changeset?old_path=tags%2F0.2.23&old=&new_path=tags%2F0.2.24&new=
diff --git a/plugins/Goals/Controller.php b/plugins/Goals/Controller.php
index 935d616258..869b66b540 100644
--- a/plugins/Goals/Controller.php
+++ b/plugins/Goals/Controller.php
@@ -26,7 +26,26 @@ class Piwik_Goals_Controller extends Piwik_Controller
$view->title = $goalDefinition['name'] . ' - Conversions';
$view->graphEvolution = $this->getLastNbConversionsGraph(true);
$view->nameGraphEvolution = 'GoalsgetLastNbConversionsGraph'; // must be the function name used above
+ $view->topSegments = $this->getTopSegments($idGoal);
+ // conversion rate for new and returning visitors
+ $request = new Piwik_API_Request("method=Goals.getConversionRateReturningVisitors&format=original");
+ $view->conversion_rate_returning = round( $request->process(), self::CONVERSION_RATE_PRECISION );
+ $request = new Piwik_API_Request("method=Goals.getConversionRateNewVisitors&format=original");
+ $view->conversion_rate_new = round( $request->process(), self::CONVERSION_RATE_PRECISION );
+
+ $verticalSlider = array();
+ // string label
+ // array parameters to ajax call on click (module, action)
+ // specific order
+ // (intermediate labels)
+ // automatically load the first from the list, highlights it
+ $view->tableByConversion = Piwik_FrontController::getInstance()->fetchDispatch('Referers', 'getKeywords', array(false, 'tableGoals'));
+ echo $view->render();
+ }
+
+ protected function getTopSegments($idGoal)
+ {
$columnNbConversions = 'goal_'.$idGoal.'_nb_conversions';
$columnConversionRate = 'goal_'.$idGoal.'_conversion_rate';
@@ -57,17 +76,8 @@ class Piwik_Goals_Controller extends Piwik_Controller
);
}
$topSegments[$segmentName] = $topSegment;
-// echo $datatable;
}
-
- $request = new Piwik_API_Request("method=Goals.getConversionRateReturningVisitors&format=original");
- $view->conversion_rate_returning = round( $request->process(), self::CONVERSION_RATE_PRECISION );
- $request = new Piwik_API_Request("method=Goals.getConversionRateNewVisitors&format=original");
- $view->conversion_rate_new = round( $request->process(), self::CONVERSION_RATE_PRECISION );
-
- $view->topSegments = $topSegments;
- echo $view->render();
- //todo next: nice legends for graphs
+ return $topSegments;
}
protected function getMetricsForGoal($goalId)
diff --git a/plugins/Goals/templates/release_notes.tpl b/plugins/Goals/templates/release_notes.tpl
index 8e8c73dfa4..edb046dd54 100644
--- a/plugins/Goals/templates/release_notes.tpl
+++ b/plugins/Goals/templates/release_notes.tpl
@@ -1,15 +1,22 @@
<hr>
<b>About the Goal Tracking Plugin</b><br>
<pre>
+
+bug = http://forum.piwik.org/index.php?showtopic=150
+
The Goal Tracking Plugin is in alpha release. There is more coming soon!
+- Test summary row works ok with subtables campaigns
- The Goal Report page will display conversion table by search engines, country, keyword, campaign, etc.
- The Goal Overview page will link to a Goal Report page with a "(more)" link that will ajax reload the page
- Goals could be triggered using javascript event, with custom revenue
- internationalization of all strings
- provide documentation, screenshots, blog post + add screenshot and inline help in "Add a New Goal"
- provide widgets for the dashboard, general goal overview, and one widget for each goal. With: graph evolution, sparklines. Widget with top segments for each goal.
+- add visits with conversion sparkline in VisitsSummary overview
+- link under goal conversion to full goal reports (optional display)
Known bugs
+- Your top converting keyword include keyword without conversions
- The Goal total nb conversions should be sum of all goal conversions (wrong number when deleting a Goal)
- After adding goal, the window should refresh to the goal report page, and not to the dashboard
- Outlink trailing slash is automatically deleted from the URL, there would be a problem when trying to exact match a URL with trailing slash
@@ -17,4 +24,4 @@ Known bugs
Give us Feedback!
If you find any other bug, or if you have suggestions, please send us a message using the "Give us feedback" link at the top of the Piwik pages.
-</pre>
+
diff --git a/plugins/Goals/templates/single_goal.tpl b/plugins/Goals/templates/single_goal.tpl
index 2cb3ddde27..3ded5e4165 100644
--- a/plugins/Goals/templates/single_goal.tpl
+++ b/plugins/Goals/templates/single_goal.tpl
@@ -9,8 +9,10 @@
<li>Returning visitors conversion rate is <b>{$conversion_rate_returning}%</b>, New Visitors conversion rate is <b>{$conversion_rate_new}%</b></li>
</ul>
{/if}
+<hr>
+{$tableByConversion}
-
+<hr>
{literal}
<style>
ul.ulGoalTopElements {
diff --git a/plugins/Live/API.php b/plugins/Live/API.php
index 3ff93c223a..9757cf3db2 100644
--- a/plugins/Live/API.php
+++ b/plugins/Live/API.php
@@ -100,7 +100,7 @@ class Piwik_Live_API
$whereBind[] = $visitorId;
}
- if(!$minIdVisit)
+ if(!is_null($minIdVisit))
{
$where[] = " idvisit > ? ";
$whereBind[] = $minIdVisit;
diff --git a/plugins/Live/Controller.php b/plugins/Live/Controller.php
index aeb13829d9..facb89bc11 100644
--- a/plugins/Live/Controller.php
+++ b/plugins/Live/Controller.php
@@ -13,11 +13,17 @@ class Piwik_Live_Controller extends Piwik_Controller
function getLastVisits($fetch = false)
{
$idSite = Piwik_Common::getRequestVar('idSite', null, 'int');
+ $minIdVisit = Piwik_Common::getRequestVar('minIdVisit', 0, 'int');
$limit = 10;
- $api = new Piwik_API_Request("method=Live.getLastVisits&idSite=$idSite&limit=$limit&format=php&serialize=0&disable_generic_filters=1");
+ $api = new Piwik_API_Request("method=Live.getLastVisits&idSite=$idSite&limit=$limit&minIdVisit=$minIdVisit&format=php&serialize=0&disable_generic_filters=1");
$view = new Piwik_View('Live/templates/lastVisits.tpl');
- $view->visitors = $api->process();
+ $visitors = $api->process();
+ if($minIdVisit == 0)
+ {
+ $visitors = array_slice($visitors, 3);
+ }
+ $view->visitors = $visitors;
$rendered = $view->render($fetch);
if($fetch)
diff --git a/plugins/Live/templates/index.tpl b/plugins/Live/templates/index.tpl
index a30eef0739..fe67bd510f 100644
--- a/plugins/Live/templates/index.tpl
+++ b/plugins/Live/templates/index.tpl
@@ -9,7 +9,14 @@
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
- $('#visits').spy({ limit: 10, 'fadeInSpeed': '1400', ajax: 'index.php?module=Live&idSite=1&action=getLastVisits', timeout: 5000, customParameterName: 'minIdVisit', customParameterValueCallback: lastIdVisit, fadeInSpeed: 1400 });
+ $('#visits').spy({
+ limit: 10,
+ ajax: 'index.php?module=Live&idSite=1&action=getLastVisits',
+ timeout: 500,
+ customParameterName: 'minIdVisit',
+ customParameterValueCallback: lastIdVisit,
+ fadeInSpeed: 1400 }
+ );
});
function lastIdVisit()
diff --git a/plugins/Referers/API.php b/plugins/Referers/API.php
index ab60cc8c83..4eaac34f24 100644
--- a/plugins/Referers/API.php
+++ b/plugins/Referers/API.php
@@ -31,7 +31,7 @@ class Piwik_Referers_API
/**
* @return Piwik_DataTable
*/
- private function getDataTable($name, $idSite, $period, $date, $expanded, $idSubtable = null)
+ protected function getDataTable($name, $idSite, $period, $date, $expanded, $idSubtable = null)
{
Piwik::checkUserHasViewAccess( $idSite );
$archive = Piwik_Archive::build($idSite, $period, $date );
diff --git a/plugins/Referers/Controller.php b/plugins/Referers/Controller.php
index c064e8b83e..a9ba225e28 100644
--- a/plugins/Referers/Controller.php
+++ b/plugins/Referers/Controller.php
@@ -63,9 +63,9 @@ class Piwik_Referers_Controller extends Piwik_Controller
return $this->renderView($view, $fetch);
}
- function getKeywords( $fetch = false)
+ function getKeywords( $fetch = false, $viewDataTable = null)
{
- $view = Piwik_ViewDataTable::factory();
+ $view = Piwik_ViewDataTable::factory($viewDataTable);
$view->init( $this->pluginName, __FUNCTION__,
'Referers.getKeywords',
'getSearchEnginesFromKeywordId'
diff --git a/plugins/Referers/Referers.php b/plugins/Referers/Referers.php
index 5c5c307b8a..840280fbdd 100644
--- a/plugins/Referers/Referers.php
+++ b/plugins/Referers/Referers.php
@@ -14,6 +14,7 @@
*/
class Piwik_Referers extends Piwik_Plugin
{
+ public $archiveProcessing;
public function getInformation()
{
$info = array(
@@ -124,17 +125,17 @@ class Piwik_Referers extends Piwik_Plugin
}
}
-
public function archiveDay( $notification )
{
/**
* @var Piwik_ArchiveProcessing_Day
*/
- $archiveProcessing = $notification->getNotificationObject();
+ $this->archiveProcessing = $notification->getNotificationObject();
- $this->archiveDayAggregateVisits($archiveProcessing);
- $this->archiveDayAggregateGoals($archiveProcessing);
- $this->archiveDayRecordInDatabase($archiveProcessing);
+ $this->archiveDayAggregateVisits($this->archiveProcessing);
+ $this->archiveDayAggregateGoals($this->archiveProcessing);
+ Piwik_PostEvent('Referers.archiveDay', $this);
+ $this->archiveDayRecordInDatabase($this->archiveProcessing);
}
protected function archiveDayAggregateVisits($archiveProcessing)
diff --git a/plugins/UserCountry/functions.php b/plugins/UserCountry/functions.php
index b75d80a9b3..4c882abaab 100644
--- a/plugins/UserCountry/functions.php
+++ b/plugins/UserCountry/functions.php
@@ -2,12 +2,10 @@
function Piwik_getFlagFromCode($code)
{
- $path = PIWIK_INCLUDE_PATH . '/plugins/UserCountry/flags/%s.png';
-
- $normalPath = sprintf($path,$code);
-
- // flags not in the package !
- if(!file_exists($normalPath))
+ $path = 'plugins/UserCountry/flags/%s.png';
+ $normalPath = sprintf($path, $code);
+ $absolutePath = PIWIK_INCLUDE_PATH . "/" . $normalPath;
+ if(!file_exists($absolutePath))
{
return sprintf($path, 'xx');
}