From 0123fee47f32026bde00370df24cc93379a6178b Mon Sep 17 00:00:00 2001 From: Thomas Steur <thomas.steur@gmail.com> Date: Tue, 15 Oct 2013 20:38:34 +0000 Subject: [PATCH] added possibility to assign template vars --- core/Plugin/Visualization.php | 14 ++++++++++++++ core/ViewDataTable/Graph.php | 2 +- core/ViewDataTable/Request.php | 3 ++- .../CoreVisualizations/Visualizations/Cloud.php | 7 ++++--- plugins/ExampleVisualization/SimpleTable.php | 2 +- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/core/Plugin/Visualization.php b/core/Plugin/Visualization.php index 17a2ccbc62..3dd741607e 100644 --- a/core/Plugin/Visualization.php +++ b/core/Plugin/Visualization.php @@ -40,6 +40,8 @@ class Visualization extends ViewDataTable const TEMPLATE_FILE = ''; const CONFIGURE_VIEW_EVENT = 'Visualization.initView'; + private $templateVars = array(); + final public function __construct($currentControllerAction, $apiMethodToRequestDataTable, $defaultReportProperties) { $templateFile = static::TEMPLATE_FILE; @@ -96,6 +98,7 @@ class Visualization extends ViewDataTable $view->error = $loadingError; } + $view->assign($this->templateVars); $view->visualization = $this; $view->visualizationTemplate = static::TEMPLATE_FILE; @@ -125,6 +128,17 @@ class Visualization extends ViewDataTable return $view; } + public function assignTemplateVar($vars, $value = null) + { + if (is_string($vars)) { + $this->templateVars[$vars] = $value; + } elseif (is_array($vars)) { + foreach ($vars as $key => $value) { + $this->templateVars[$key] = $value; + } + } + } + protected function isThereDataToDisplay() { return true; diff --git a/core/ViewDataTable/Graph.php b/core/ViewDataTable/Graph.php index a509b2547b..07a8fe17c9 100644 --- a/core/ViewDataTable/Graph.php +++ b/core/ViewDataTable/Graph.php @@ -56,7 +56,7 @@ abstract class Graph extends Visualization */ public function afterAllFilteresAreApplied() { - $this->selectable_rows = array_values($this->selectableRows); + $this->config->selectable_rows = array_values($this->selectableRows); $selectableColumns = $this->config->selectable_columns; diff --git a/core/ViewDataTable/Request.php b/core/ViewDataTable/Request.php index 4e6df3ad27..df495c46d0 100644 --- a/core/ViewDataTable/Request.php +++ b/core/ViewDataTable/Request.php @@ -21,7 +21,6 @@ use Piwik\Piwik; class Request { - /** * @var null|\Piwik\Visualization\Request */ @@ -145,6 +144,8 @@ class Request */ public static function shouldLoadExpanded() { + // TODO this is not the right class for this + // if filter_column_recursive & filter_pattern_recursive are supplied, and flat isn't supplied // we have to load all the child subtables. return Common::getRequestVar('filter_column_recursive', false) !== false diff --git a/plugins/CoreVisualizations/Visualizations/Cloud.php b/plugins/CoreVisualizations/Visualizations/Cloud.php index 719bf7a5b8..a59bcaaf7d 100644 --- a/plugins/CoreVisualizations/Visualizations/Cloud.php +++ b/plugins/CoreVisualizations/Visualizations/Cloud.php @@ -58,8 +58,8 @@ class Cloud extends Visualization } $columnToDisplay = isset($this->config->columns_to_display[1]) ? $this->config->columns_to_display[1] : 'nb_visits'; + $labelMetadata = array(); - $labelMetadata = array(); foreach ($this->dataTable->getRows() as $row) { $logo = false; if ($this->config->display_logo_instead_of_label) { @@ -75,13 +75,14 @@ class Cloud extends Visualization $this->addWord($label, $row->getColumn($columnToDisplay)); } + $cloudValues = $this->getCloudValues(); foreach ($cloudValues as &$value) { $value['logoWidth'] = round(max(16, $value['percent'])); } - $this->labelMetadata = $labelMetadata; - $this->cloudValues = $cloudValues; + $this->assignTemplateVar('labelMetadata', $labelMetadata); + $this->assignTemplateVar('cloudValues', $cloudValues); } /** diff --git a/plugins/ExampleVisualization/SimpleTable.php b/plugins/ExampleVisualization/SimpleTable.php index 07e686e8fd..c5ad4312cb 100644 --- a/plugins/ExampleVisualization/SimpleTable.php +++ b/plugins/ExampleVisualization/SimpleTable.php @@ -31,7 +31,7 @@ class SimpleTable extends Visualization */ public function init() { - $this->vizTitle = 'MyAwesomeTitle'; + $this->assignTemplateVar('vizTitle', 'MyAwesomeTitle'); } public function configureVisualization() -- GitLab