From 916848085adcc6504c9cb1757e8fc9cba3eee468 Mon Sep 17 00:00:00 2001 From: mattab <matthieu.aubry@gmail.com> Date: Mon, 1 Jul 2013 14:08:36 +1200 Subject: [PATCH] * Enabling Twig 'strict_variables' so that we write best code possible, and learn early if some tpl code is not valid. Fixing few bugs that this uncovered * refactoring the percent column label in getPercentVisitColumn() * removing indexBeforeMenu and putting directly in parent template Refs #4019 --- core/Metrics.php | 8 ++++ core/Twig.php | 3 +- core/Version.php | 2 +- core/View.php | 1 - plugins/CoreAdminHome/Controller.php | 6 +-- .../templates/generalSettings.twig | 2 +- plugins/CoreHome/templates/_dataTable.twig | 2 +- .../CoreHome/templates/_dataTableActions.twig | 2 +- .../CoreHome/templates/_dataTableCell.twig | 17 ++++---- .../CoreHome/templates/_dataTableFooter.twig | 2 +- plugins/CoreHome/templates/_topBar.twig | 7 ++-- .../CoreHome/templates/_topBarHelloMenu.twig | 2 +- .../templates/_warningInvalidHost.twig | 2 +- plugins/CorePluginsAdmin/Controller.php | 4 +- .../Goals/templates/getGoalReportView.twig | 2 +- .../ImageGraph/templates/testAllSizes.twig | 2 +- .../Live/templates/getLastVisitsStart.twig | 4 +- plugins/Live/templates/getVisitorLog.twig | 14 +++---- .../MobileMessaging/SMSProvider/Clockwork.php | 26 +++++++----- plugins/MultiSites/Controller.php | 2 +- .../MultiSites/templates/getSitesInfo.twig | 12 ++---- plugins/PrivacyManager/Controller.php | 6 +-- plugins/SEO/templates/getRank.twig | 12 +++--- plugins/UserSettings/Controller.php | 2 +- plugins/UserSettings/UserSettings.php | 2 +- plugins/UsersManager/Controller.php | 5 +-- plugins/UsersManager/templates/index.twig | 2 +- .../UsersManager/templates/userSettings.twig | 2 +- plugins/VisitorGenerator/templates/index.twig | 2 +- plugins/VisitorInterest/Controller.php | 2 +- plugins/VisitorInterest/VisitorInterest.php | 2 +- .../Zeitgeist/templates/_indexBeforeMenu.twig | 12 ------ .../templates/_jsGlobalVariables.twig | 42 ++++++++----------- plugins/Zeitgeist/templates/admin.twig | 6 +-- plugins/Zeitgeist/templates/dashboard.twig | 10 ++++- plugins/Zeitgeist/templates/macros.twig | 2 +- 36 files changed, 110 insertions(+), 121 deletions(-) delete mode 100644 plugins/Zeitgeist/templates/_indexBeforeMenu.twig diff --git a/core/Metrics.php b/core/Metrics.php index 3b10a7f377..b81999f48f 100644 --- a/core/Metrics.php +++ b/core/Metrics.php @@ -287,4 +287,12 @@ class Piwik_Metrics ); return array_map('Piwik_Translate', $documentation); } + + + public static function getPercentVisitColumn() + { + $percentVisitsLabel = str_replace(' ', html_entity_decode(' '), Piwik_Translate('General_ColumnPercentageVisits')); + return $percentVisitsLabel; + } + } \ No newline at end of file diff --git a/core/Twig.php b/core/Twig.php index 27f2e54fdb..167f94d568 100644 --- a/core/Twig.php +++ b/core/Twig.php @@ -41,6 +41,7 @@ class Piwik_Twig $this->twig = new Twig_Environment($chainLoader, array( 'debug' => true, // to use {{ dump(var) }} in twig templates + 'strict_variables' => true, // throw an exception if variables are invalid //'cache' => PIWIK_DOCUMENT_ROOT . '/tmp/templates_c', ) ); @@ -52,9 +53,9 @@ class Piwik_Twig $this->addFilter_sumTime(); $this->addFilter_money(); $this->addFilter_truncate(); + $this->twig->addFilter( new Twig_SimpleFilter('implode', 'implode')); /* - $this->load_filter('output', 'cachebuster'); $this->load_filter('output', 'trimwhitespace');*/ diff --git a/core/Version.php b/core/Version.php index 53ca79f9d2..eb28db44c1 100644 --- a/core/Version.php +++ b/core/Version.php @@ -20,5 +20,5 @@ final class Piwik_Version * Current Piwik version * @var string */ - const VERSION = '1.12'; + const VERSION = '2.0-b3'; } diff --git a/core/View.php b/core/View.php index 3ce36e7306..9d9134dc18 100644 --- a/core/View.php +++ b/core/View.php @@ -45,7 +45,6 @@ class Piwik_View implements Piwik_View_Interface $this->initializeTwig(); $this->piwik_version = Piwik_Version::VERSION; - $this->cacheBuster = md5(Piwik_Common::getSalt() . PHP_VERSION . Piwik_Version::VERSION); $this->piwikUrl = Piwik_Common::sanitizeInputValue(Piwik_Url::getCurrentUrlWithoutFileName()); } diff --git a/plugins/CoreAdminHome/Controller.php b/plugins/CoreAdminHome/Controller.php index a4638beaa3..a24087c0cb 100644 --- a/plugins/CoreAdminHome/Controller.php +++ b/plugins/CoreAdminHome/Controller.php @@ -41,11 +41,9 @@ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin $view->todayArchiveTimeToLive = $todayArchiveTimeToLive; $view->enableBrowserTriggerArchiving = $enableBrowserTriggerArchiving; - $config = Piwik_Config::getInstance(); + $view->configFileNotWritable = !Piwik_Config::getInstance()->isFileWritable(); - if (!$config->isFileWritable()) { - $view->configFileNotWritable = true; - } + $config = Piwik_Config::getInstance(); $debug = $config->Debug; $view->enableBetaReleaseCheck = $debug['allow_upgrades_to_beta']; diff --git a/plugins/CoreAdminHome/templates/generalSettings.twig b/plugins/CoreAdminHome/templates/generalSettings.twig index cbc8d1743a..a84e3f6901 100644 --- a/plugins/CoreAdminHome/templates/generalSettings.twig +++ b/plugins/CoreAdminHome/templates/generalSettings.twig @@ -134,7 +134,7 @@ <tr> <td><label for="mailPassword">{{ 'General_SmtpPassword'|translate }}</label><br/> <span class="form-description">{{ 'General_OnlyEnterIfRequiredPassword'|translate }}<br/> - {{ 'General_WarningPasswordStored'|translate("<strong>","</strong>") }}</span> + {{ 'General_WarningPasswordStored'|translate("<strong>","</strong>")|raw }}</span> </td> <td> <input type="password" id="mailPassword" value="{{ mail.password }}"/> diff --git a/plugins/CoreHome/templates/_dataTable.twig b/plugins/CoreHome/templates/_dataTable.twig index a295f4cd25..8bac0e8649 100644 --- a/plugins/CoreHome/templates/_dataTable.twig +++ b/plugins/CoreHome/templates/_dataTable.twig @@ -27,7 +27,7 @@ id="{{ row.idsubdatatable }}"{% endif %}{% if row.issummaryrow is defined and row.issummaryrow and properties.highlight_summary_row %} class="highlight"{% endif %}> {% for column in dataTableColumns %} <td> - {% include "@CoreHome/_dataTableCell.twig" %} + {% include "@CoreHome/_dataTableCell.twig" with properties %} </td> {% endfor %} </tr> diff --git a/plugins/CoreHome/templates/_dataTableActions.twig b/plugins/CoreHome/templates/_dataTableActions.twig index cc5988e06a..996d6c3c9e 100644 --- a/plugins/CoreHome/templates/_dataTableActions.twig +++ b/plugins/CoreHome/templates/_dataTableActions.twig @@ -19,7 +19,7 @@ {% else %}class="actionsDataTable rowToProcess"{% endif %}> {% for column in dataTableColumns %} <td> - {% include "@CoreHome/_dataTableCell.twig" with {'column': column, 'row': row} only %} + {% include "@CoreHome/_dataTableCell.twig" with {'column': column, 'row': row} %} </td> {% endfor %} </tr> diff --git a/plugins/CoreHome/templates/_dataTableCell.twig b/plugins/CoreHome/templates/_dataTableCell.twig index a49d830d1b..72c3f2d95f 100644 --- a/plugins/CoreHome/templates/_dataTableCell.twig +++ b/plugins/CoreHome/templates/_dataTableCell.twig @@ -1,24 +1,23 @@ {% spaceless %} {% set tooltipIndex = column ~ '_tooltip' %} {% if row.metadata[tooltipIndex] is defined %}<span class="cell-tooltip" data-tooltip="{{ row.metadata[tooltipIndex] }}">{% endif %} -{% if not row.idsubdatatable and column=='label' and row.metadata.url is not empty %} +{% if not row.idsubdatatable and column=='label' and row.metadata.url is defined %} <a target="_blank" href='{% if row.metadata.url|slice(0,4) not in ['http','ftp:'] %}http://{% endif %}{{ row.metadata.url }}'> - {% if row.metadata.logo is empty %} + {% if row.metadata.logo is not defined %} <img class="link" width="10" height="9" src="plugins/Zeitgeist/images/link.gif"/> {% endif %} {% endif %} {% if column=='label' %} {% import 'macros.twig' as piwik %} {{ piwik.logoHtml(row.metadata, row.columns.label) }} - {% if row.metadata.html_label_prefix is not empty %}<span class='label-prefix'>{{ row.metadata.html_label_prefix | raw }}</span>{% endif %} - <span class='label{% if row.metadata.is_aggregate is not empty and row.metadata.is_aggregate %} highlighted{% endif %}' - {% if properties.tooltip_metadata_name is not empty %}title="{{ row.metadata[properties.tooltip_metadata_name] }}"{% endif %}> - {# make sure there are no whitespaces inside the span #} - {% if row.metadata.html_label_suffix is not empty %}<span class='label-suffix'>{{ row.metadata.html_label_suffix | raw }}</span>{% endif %} -{% endif %} + {% if row.metadata.html_label_prefix is defined %}<span class='label-prefix'>{{ row.metadata.html_label_prefix | raw }} </span>{% endif -%} + <span class='label{% if row.metadata.is_aggregate is defined and row.metadata.is_aggregate %} highlighted{% endif %}' + {% if properties is defined and properties.tooltip_metadata_name is not empty %}title="{{ row.metadata[properties.tooltip_metadata_name] }}"{% endif %}> + {% if row.metadata.html_label_suffix is defined %}<span class='label-suffix'>{{ row.metadata.html_label_suffix | raw }}</span>{% endif %} + {% endif %} {% if row.columns[column] is defined %}{{ row.columns[column]|raw }}{% else %}{{ defaultWhenColumnValueNotDefined }}{% endif %} {% if column=='label' %}</span>{% endif %} -{% if not row.idsubdatatable and column=='label' and row.metadata.url is not empty %} +{% if not row.idsubdatatable and column=='label' and row.metadata.url is defined %} </a> {% endif %} {% if row.metadata[tooltipIndex] is defined %}</span>{% endif %} diff --git a/plugins/CoreHome/templates/_dataTableFooter.twig b/plugins/CoreHome/templates/_dataTableFooter.twig index a9f4ea9fa9..8d6f1f1469 100644 --- a/plugins/CoreHome/templates/_dataTableFooter.twig +++ b/plugins/CoreHome/templates/_dataTableFooter.twig @@ -164,7 +164,7 @@ {% endif %} </div> - {% if properties.show_footer_message is not empty %} + {% if properties.show_footer_message is defined and properties.show_footer_message is not empty %} <div class='datatableFooterMessage'>{{ properties.show_footer_message | raw }}</div> {% endif %} diff --git a/plugins/CoreHome/templates/_topBar.twig b/plugins/CoreHome/templates/_topBar.twig index 1a8e94d1ca..63d4569d3c 100644 --- a/plugins/CoreHome/templates/_topBar.twig +++ b/plugins/CoreHome/templates/_topBar.twig @@ -1,11 +1,12 @@ -<div id="topBars"> +{% if showTopMenu is not defined or showTopMenu %} +<div id="topBars"> {% include "@CoreHome/_topBarTopMenu.twig" %} {% include "@CoreHome/_topBarHelloMenu.twig" %} - </div> +{% endif %} -{% if showSitesSelection %} +{% if showSitesSelection is not defined or showSitesSelection %} <div class="top_bar_sites_selector"> <label>{{ 'General_Website'|translate }}</label> {% include "@CoreHome/_siteSelect.twig" %} diff --git a/plugins/CoreHome/templates/_topBarHelloMenu.twig b/plugins/CoreHome/templates/_topBarHelloMenu.twig index 5d3fb16a12..34503d12bf 100644 --- a/plugins/CoreHome/templates/_topBarHelloMenu.twig +++ b/plugins/CoreHome/templates/_topBarHelloMenu.twig @@ -1,6 +1,6 @@ <div id="topRightBar"> {% set helloAlias %} - {% if userAlias %} + {% if userAlias is defined %} <strong>{{ userAlias }}</strong> {% else %} <strong>{{ userLogin }}</strong> diff --git a/plugins/CoreHome/templates/_warningInvalidHost.twig b/plugins/CoreHome/templates/_warningInvalidHost.twig index 58ec1b397f..7868e936d7 100644 --- a/plugins/CoreHome/templates/_warningInvalidHost.twig +++ b/plugins/CoreHome/templates/_warningInvalidHost.twig @@ -1,5 +1,5 @@ {# untrusted host warning #} -{% if (isValidHost and invalidHostMessage and isValidHost == false) %} +{% if (isValidHost is defined and invalidHostMessage is defined and isValidHost == false) %} <div class="ajaxSuccess" style='clear:both;width:800px'> <a style="float:right" href="http://piwik.org/faq/troubleshooting/#faq_171" target="_blank"><img src="plugins/Zeitgeist/images/help_grey.png"/></a> <strong>{{ 'General_Warning'|translate }}: </strong>{{ invalidHostMessage }} diff --git a/plugins/CorePluginsAdmin/Controller.php b/plugins/CorePluginsAdmin/Controller.php index f4c4898332..b8495a64b4 100644 --- a/plugins/CorePluginsAdmin/Controller.php +++ b/plugins/CorePluginsAdmin/Controller.php @@ -55,9 +55,7 @@ class Piwik_CorePluginsAdmin_Controller extends Piwik_Controller_Admin $view->pluginsName = $plugins; $this->setBasicVariablesView($view); $view->menu = Piwik_GetAdminMenu(); - if (!Piwik_Config::getInstance()->isFileWritable()) { - $view->configFileNotWritable = true; - } + $view->configFileNotWritable = !Piwik_Config::getInstance()->isFileWritable(); echo $view->render(); } diff --git a/plugins/Goals/templates/getGoalReportView.twig b/plugins/Goals/templates/getGoalReportView.twig index 8059260cb9..f11c8f0bb7 100644 --- a/plugins/Goals/templates/getGoalReportView.twig +++ b/plugins/Goals/templates/getGoalReportView.twig @@ -53,7 +53,7 @@ </script> {% if displayFullReport %} - {% if nb_conversions > 0 or cart_nb_conversions is not empty %} + {% if nb_conversions > 0 or cart_nb_conversions is defined %} <h2 id='titleGoalsByDimension'> {% if idGoal is defined %} {{ 'Goals_GoalConversionsBy'|translate(goalName)|raw }} diff --git a/plugins/ImageGraph/templates/testAllSizes.twig b/plugins/ImageGraph/templates/testAllSizes.twig index 99ff2dede4..358c8dce46 100644 --- a/plugins/ImageGraph/templates/testAllSizes.twig +++ b/plugins/ImageGraph/templates/testAllSizes.twig @@ -2,7 +2,7 @@ {% block content %} {% set showSitesSelection=true %} -<div class="top_controls_inner"></div> + <div> <h2>{{ 'ImageGraph_ImageGraph'|translate }} ::: {{ siteName }}</h2> diff --git a/plugins/Live/templates/getLastVisitsStart.twig b/plugins/Live/templates/getLastVisitsStart.twig index 8134b7150a..678757b7d6 100644 --- a/plugins/Live/templates/getLastVisitsStart.twig +++ b/plugins/Live/templates/getLastVisitsStart.twig @@ -39,7 +39,7 @@ {% if visitor.referrerUrl is not empty %} <a href="{{ visitor.referrerUrl }}" target="_blank"> {% endif %} - {% if visitor.searchEngineIcon is not empty %} + {% if visitor.searchEngineIcon is defined %} <img src="{{ visitor.searchEngineIcon }}" /> {% endif %} {{ visitor.referrerName }} @@ -124,7 +124,7 @@ {% endif %} {% endif %} {% endfor %} - {% if actionDetails|length > maxPagesDisplayedByVisitor %} + {% if visitor.actionDetails|length > maxPagesDisplayedByVisitor %} <i>({{ 'Live_MorePagesNotDisplayed'|translate }})</i> {% endif %} </div> diff --git a/plugins/Live/templates/getVisitorLog.twig b/plugins/Live/templates/getVisitorLog.twig index 6b9ac00947..d350329f92 100644 --- a/plugins/Live/templates/getVisitorLog.twig +++ b/plugins/Live/templates/getVisitorLog.twig @@ -94,7 +94,7 @@ {% endset %} {% set visitorRow %} - <tr class="label{{ cycle([odd,even], cycleIndex) }}"> + <tr class="label{{ cycle(['odd','even'], cycleIndex) }}"> {% set cycleIndex=cycleIndex+1 %} <td style="display:none;"></td> <td class="label" style="width:12%" width="12%"> @@ -116,7 +116,7 @@ {{ visitor.columns.providerName }} </a> {% endif %} - {% if visitor.columns.customVariables is not empty %} + {% if visitor.columns.customVariables is defined %} <br/> {% for id,customVariable in visitor.columns.customVariables %} {% set name='customVariableName' ~ id %} @@ -156,7 +156,7 @@ {% if visitor.columns.referrerKeyword is not empty %} - {{ visitor.columns.referrerKeyword }}{% endif %} {% endif %} {% if visitor.columns.referrerType == 'search' %} - {% if visitor.columns.searchEngineIcon is not empty %} + {% if visitor.columns.searchEngineIcon is defined %} <img src="{{ visitor.columns.searchEngineIcon }}" alt="{{ visitor.columns.referrerName }}"/> {% endif %} {{ visitor.columns.referrerName }} @@ -193,7 +193,7 @@ {% set visitorHasSomeEcommerceActivity %}0{% endset %} {% for action in visitor.columns.actionDetails %} {% set customVariablesTooltip %} - {% if action.customVariables is not empty %} + {% if action.customVariables is defined %} {{ 'CustomVariables_CustomVariables'|translate }} {% for id,customVariable in action.customVariables %} {% set name = 'customVariablePageName' ~ id %} @@ -203,7 +203,7 @@ {% endif %} {% endset %} {% if not javascriptVariablesToSet.filterEcommerce or action.type == 'ecommerceOrder' or action.type == 'ecommerceAbandonedCart' %} - <li class="{% if action.goalName is not empty %}goal{% else %}action{% endif %}" + <li class="{% if action.goalName is defined %}goal{% else %}action{% endif %}" title="{{ action.serverTimePretty }}{% if action.url is not empty and action.url|trim|length %} {{ action.url }}{% endif %} {% if customVariablesTooltip|trim|length %} @@ -261,12 +261,12 @@ </ul> {% endif %} </span> - {% elseif action.goalName is empty %} + {% elseif action.goalName is not defined%} {# Page view / Download / Outlink #} {% if action.pageTitle is not empty %} {{ action.pageTitle|truncate(80) }} {% endif %} - {% if action.siteSearchKeyword is not empty %} + {% if action.siteSearchKeyword is defined %} {% if action.type == 'search' %} <img src='{{ action.icon }}' title='{{ 'Actions_SubmenuSitesearch'|translate }}'> {% endif %} diff --git a/plugins/MobileMessaging/SMSProvider/Clockwork.php b/plugins/MobileMessaging/SMSProvider/Clockwork.php index b7a50dfe02..faf5effbc7 100644 --- a/plugins/MobileMessaging/SMSProvider/Clockwork.php +++ b/plugins/MobileMessaging/SMSProvider/Clockwork.php @@ -69,17 +69,21 @@ class Piwik_MobileMessaging_SMSProvider_Clockwork extends Piwik_MobileMessaging_ $timeout = self::SOCKET_TIMEOUT; - $result = Piwik_Http::sendHttpRequestBy( - Piwik_Http::getTransportMethod(), - $url, - $timeout, - $userAgent = null, - $destinationPath = null, - $file = null, - $followDepth = 0, - $acceptLanguage = false, - $acceptInvalidSslCertificate = true - ); + try { + $result = Piwik_Http::sendHttpRequestBy( + Piwik_Http::getTransportMethod(), + $url, + $timeout, + $userAgent = null, + $destinationPath = null, + $file = null, + $followDepth = 0, + $acceptLanguage = false, + $acceptInvalidSslCertificate = true + ); + } catch(Exception $e) { + $result = self::ERROR_STRING . " " . $e->getMessage(); + } if (strpos($result, self::ERROR_STRING) !== false) { throw new Piwik_MobileMessaging_APIException( diff --git a/plugins/MultiSites/Controller.php b/plugins/MultiSites/Controller.php index 8c26e75f6c..46bf83848f 100644 --- a/plugins/MultiSites/Controller.php +++ b/plugins/MultiSites/Controller.php @@ -41,7 +41,7 @@ class Piwik_MultiSites_Controller extends Piwik_Controller } - public function getSitesInfo($isWidgetized) + public function getSitesInfo($isWidgetized = false) { Piwik::checkUserHasSomeViewAccess(); $displayRevenueColumn = Piwik_Common::isGoalPluginEnabled(); diff --git a/plugins/MultiSites/templates/getSitesInfo.twig b/plugins/MultiSites/templates/getSitesInfo.twig index f94118a270..31987ebfe4 100644 --- a/plugins/MultiSites/templates/getSitesInfo.twig +++ b/plugins/MultiSites/templates/getSitesInfo.twig @@ -1,4 +1,7 @@ -{% set showSitesSelection=false %} +{% if isWidgetized %} + {% set showTopMenu = false %} + {% set showSitesSelection = false %} +{% endif %} {% extends 'dashboard.twig' %} @@ -37,13 +40,6 @@ params['dateSparkline'] = '{{ dateSparkline }}'; </script> - {% if not isWidgetized %} - <div class="top_controls_inner"> - {% include "@CoreHome/_periodSelect.twig" %} - {% include "@CoreHome/_headerMessage.twig" %} - </div> - {% endif %} - <div class="centerLargeDiv"> <h2>{{ 'General_AllWebsitesDashboard'|translate }} {% set nVisits %}{{ 'General_NVisits'|translate(totalVisits) }}{% endset %} diff --git a/plugins/PrivacyManager/Controller.php b/plugins/PrivacyManager/Controller.php index 336587eca0..6d089e42c6 100644 --- a/plugins/PrivacyManager/Controller.php +++ b/plugins/PrivacyManager/Controller.php @@ -118,11 +118,7 @@ class Piwik_PrivacyManager_Controller extends Piwik_Controller_Admin $view->dbUser = Piwik_Config::getInstance()->database['username']; } $view->language = Piwik_LanguagesManager::getLanguageCodeForCurrentUser(); - - if (!Piwik_Config::getInstance()->isFileWritable()) { - $view->configFileNotWritable = true; - } - + $view->configFileNotWritable = !Piwik_Config::getInstance()->isFileWritable(); $this->setBasicVariablesView($view); $view->menu = Piwik_GetAdminMenu(); diff --git a/plugins/SEO/templates/getRank.twig b/plugins/SEO/templates/getRank.twig index eb1adf1410..17563b5619 100644 --- a/plugins/SEO/templates/getRank.twig +++ b/plugins/SEO/templates/getRank.twig @@ -24,21 +24,23 @@ <table cellspacing='2' style='margin:auto;line-height:1.5em;padding-top:10px'> {% for rank in ranks %} <tr> -{% set seoLink %}{% if rank.logo_link is not empty %}<a class="linkContent" href="?module=Proxy&action=redirect&url={{ rank.logo_link|url_encode }}" target="_blank" +{% set seoLink %}{% if rank.logo_link is defined %}<a class="linkContent" href="?module=Proxy&action=redirect&url={{ rank.logo_link|url_encode }}" + target="_blank" {% if rank.logo_tooltip is not empty %}title="{{ rank.logo_tooltip }}"{% endif %}>{% endif %}{% endset %} {% set majesticLink %}{{ seoLink }}Majestic</a>{% endset %} - <td>{% if rank.logo_link is not empty %}{{ seoLink|raw }}{% endif %}<img + <td>{% if rank.logo_link is defined %}{{ seoLink|raw }}{% endif %}<img style='vertical-align:middle;margin-right:6px;' src='{{ rank.logo }}' border='0' - alt="{{ rank.label }}">{% if rank.logo_link is not empty %}</a>{% endif %} {{ rank.label|replace({"Majestic": majesticLink})|raw }} + alt="{{ rank.label }}">{% if rank.logo_link is defined %}</a>{% endif %} {{ rank.label|replace({"Majestic": + majesticLink})|raw }} </td> <td> <div style='margin-left:15px'> - {% if rank.logo_link is not empty %}{{ seoLink|raw }}{% endif %} + {% if rank.logo_link is defined %}{{ seoLink|raw }}{% endif %} {% if rank.rank %}{{ rank.rank }}{% else %}-{% endif %} {% if rank.id=='pagerank' %} /10 {% elseif rank.id=='google-index' or rank.id=='bing-index' %} {{ 'SEO_Pages'|translate }} {% endif %} - {% if rank.logo_link is not empty %}</a>{% endif %} + {% if rank.logo_link is defined %}</a>{% endif %} </div> </td> </tr> diff --git a/plugins/UserSettings/Controller.php b/plugins/UserSettings/Controller.php index 6f089fbb8a..f5c7893783 100644 --- a/plugins/UserSettings/Controller.php +++ b/plugins/UserSettings/Controller.php @@ -165,7 +165,7 @@ class Piwik_UserSettings_Controller extends Piwik_Controller $view->disableOffsetInformationAndPaginationControls(); $view->setColumnsToDisplay(array('label', 'nb_visits_percentage', 'nb_visits')); $view->setColumnTranslation('label', Piwik_Translate('UserSettings_ColumnPlugin')); - $view->setColumnTranslation('nb_visits_percentage', str_replace(' ', ' ', Piwik_Translate('General_ColumnPercentageVisits'))); + $view->setColumnTranslation('nb_visits_percentage', Piwik_Metrics::getPercentVisitColumn()); $view->setSortedColumn('nb_visits_percentage'); $view->setLimit(10); $view->setFooterMessage(Piwik_Translate('UserSettings_PluginDetectionDoesNotWorkInIE')); diff --git a/plugins/UserSettings/UserSettings.php b/plugins/UserSettings/UserSettings.php index 19b5252360..e1cd8c57c3 100644 --- a/plugins/UserSettings/UserSettings.php +++ b/plugins/UserSettings/UserSettings.php @@ -208,7 +208,7 @@ class Piwik_UserSettings extends Piwik_Plugin if ($apiAction == 'getPlugin') { $report['metrics'] = array( 'nb_visits', - 'nb_visits_percentage' => Piwik_Translate('General_ColumnPercentageVisits') + 'nb_visits_percentage' => Piwik_Metrics::getPercentVisitColumn() ); // There is no processedMetrics for this report $report['processedMetrics'] = array(); diff --git a/plugins/UsersManager/Controller.php b/plugins/UsersManager/Controller.php index adef52eaaa..57063bfbdd 100644 --- a/plugins/UsersManager/Controller.php +++ b/plugins/UsersManager/Controller.php @@ -126,9 +126,8 @@ class Piwik_UsersManager_Controller extends Piwik_Controller_Admin if (Piwik::isUserIsSuperUser()) { $view->userAlias = $userLogin; $view->userEmail = Piwik::getSuperUserEmail(); - if (!Piwik_Config::getInstance()->isFileWritable()) { - $view->configFileNotWritable = true; - } + $view->configFileNotWritable = !Piwik_Config::getInstance()->isFileWritable(); + } else { $user = Piwik_UsersManager_API::getInstance()->getUser($userLogin); $view->userAlias = $user['alias']; diff --git a/plugins/UsersManager/templates/index.twig b/plugins/UsersManager/templates/index.twig index e6c8831bbd..01b3eafce0 100644 --- a/plugins/UsersManager/templates/index.twig +++ b/plugins/UsersManager/templates/index.twig @@ -46,7 +46,7 @@ 'siteName': defaultReportSiteName, 'idSite':idSiteSelected, 'allSitesItemText': applyAllSitesText, - 'allWebsitesLinkLocation': top, + 'allWebsitesLinkLocation': 'top', 'siteSelectorId':"usersManagerSiteSelect", 'switchSiteOnSelect':false } %} diff --git a/plugins/UsersManager/templates/userSettings.twig b/plugins/UsersManager/templates/userSettings.twig index dd5d3327d0..498bb530ca 100644 --- a/plugins/UsersManager/templates/userSettings.twig +++ b/plugins/UsersManager/templates/userSettings.twig @@ -55,7 +55,7 @@ 'switchSiteOnSelect':false, 'showAllSitesItem':false, 'showSelectedSite':true, - 'siteSelectorId':defaultReportSiteSelector + 'siteSelectorId': 'defaultReportSiteSelector' } %} </fieldset> </td> diff --git a/plugins/VisitorGenerator/templates/index.twig b/plugins/VisitorGenerator/templates/index.twig index 85b3006287..866bf2c448 100644 --- a/plugins/VisitorGenerator/templates/index.twig +++ b/plugins/VisitorGenerator/templates/index.twig @@ -11,7 +11,7 @@ <td><label for="idSite">{{ 'General_ChooseWebsite'|translate }}</label></td> <td> {% include "@CoreHome/_siteSelect.twig" with { - 'showAllSitesItem':false,'showSelectedSite':true,'switchSiteOnSelect':false,'inputName':idSite } %} + 'showAllSitesItem':false,'showSelectedSite':true,'switchSiteOnSelect':false,'inputName':'idSite' } %} </td> </tr> <tr> diff --git a/plugins/VisitorInterest/Controller.php b/plugins/VisitorInterest/Controller.php index 1ee0d7755c..e2b9936c7f 100644 --- a/plugins/VisitorInterest/Controller.php +++ b/plugins/VisitorInterest/Controller.php @@ -73,7 +73,7 @@ class Piwik_VisitorInterest_Controller extends Piwik_Controller $view->setColumnsToDisplay(array('label', 'nb_visits', 'nb_visits_percentage')); $view->setSortedColumn('label', 'asc'); $view->setColumnTranslation('label', Piwik_Translate('VisitorInterest_VisitNum')); - $view->setColumnTranslation('nb_visits_percentage', str_replace(' ', ' ', Piwik_Translate('General_ColumnPercentageVisits'))); + $view->setColumnTranslation('nb_visits_percentage', Piwik_Metrics::getPercentVisitColumn()); $view->disableExcludeLowPopulation(); $view->disableOffsetInformationAndPaginationControls(); $view->disableShowAllViewsIcons(); diff --git a/plugins/VisitorInterest/VisitorInterest.php b/plugins/VisitorInterest/VisitorInterest.php index c2a46f1f9e..d17750a662 100644 --- a/plugins/VisitorInterest/VisitorInterest.php +++ b/plugins/VisitorInterest/VisitorInterest.php @@ -80,7 +80,7 @@ class Piwik_VisitorInterest extends Piwik_Plugin 'dimension' => Piwik_Translate('VisitorInterest_visitsByVisitCount'), 'metrics' => array( 'nb_visits', - 'nb_visits_percentage' => Piwik_Translate('General_ColumnPercentageVisits') + 'nb_visits_percentage' => Piwik_Metrics::getPercentVisitColumn(), ), 'processedMetrics' => false, 'constantRowsCount' => true, diff --git a/plugins/Zeitgeist/templates/_indexBeforeMenu.twig b/plugins/Zeitgeist/templates/_indexBeforeMenu.twig deleted file mode 100644 index 6293d6f930..0000000000 --- a/plugins/Zeitgeist/templates/_indexBeforeMenu.twig +++ /dev/null @@ -1,12 +0,0 @@ -{% include "@CoreHome/_warningInvalidHost.twig" %} - -{% if (showTopMenu == false or showTopMenu) %} - {% include "@CoreHome/_topBar.twig" %} -{% endif %} -{% include "@CoreHome/_topScreen.twig" %} - -<div class="ui-confirm" id="alert"> - <h2></h2> - <input role="yes" type="button" value="{{ 'General_Ok'|translate }}"/> -</div> - diff --git a/plugins/Zeitgeist/templates/_jsGlobalVariables.twig b/plugins/Zeitgeist/templates/_jsGlobalVariables.twig index d00ea372e5..3667f2169f 100644 --- a/plugins/Zeitgeist/templates/_jsGlobalVariables.twig +++ b/plugins/Zeitgeist/templates/_jsGlobalVariables.twig @@ -4,38 +4,32 @@ piwik.piwik_url = "{{ piwikUrl }}"; {% if userLogin %}piwik.userLogin = "{{ userLogin|e('js')}}"; {% endif %} - {% if idSite %}piwik.idSite = "{{ idSite }}"; + {% if idSite is defined %}piwik.idSite = "{{ idSite }}"; {% endif %} - {% if siteName %}piwik.siteName = "{{ siteName|e('js') }}"; + {% if siteName is defined %}piwik.siteName = "{{ siteName|e('js') }}"; {% endif %} - {% if siteMainUrl %}piwik.siteMainUrl = "{{ siteMainUrl|e('js') }}"; + {% if siteMainUrl is defined %}piwik.siteMainUrl = "{{ siteMainUrl|e('js') }}"; {% endif %} - {% if period %}piwik.period = "{{ period }}"; + {% if period is defined %}piwik.period = "{{ period }}"; {% endif %} {# piwik.currentDateString should not be used other than by the calendar Javascript (it is not set to the expected value when period=range) Use broadcast.getValueFromUrl('date') instead #} - piwik.currentDateString = "{% if date %}{{ date }}{% elseif endDate %}{{ endDate }}{% endif %}"; - {% if startDate %}piwik.startDateString = "{{ startDate }}"; - {% endif %} - {% if endDate %}piwik.endDateString = "{{ endDate }}"; - {% endif %} - {% if minDateYear %}piwik.minDateYear = {{ minDateYear }}; - {% endif %} - {% if minDateMonth %}piwik.minDateMonth = parseInt("{{ minDateMonth }}", 10); - {% endif %} - {% if minDateDay %}piwik.minDateDay = parseInt("{{ minDateDay }}", 10); - {% endif %} - {% if maxDateYear %}piwik.maxDateYear = {{ maxDateYear }}; - {% endif %} - {% if maxDateMonth %}piwik.maxDateMonth = parseInt("{{ maxDateMonth }}", 10); - {% endif %} - {% if maxDateDay %}piwik.maxDateDay = parseInt("{{ maxDateDay }}", 10); - {% endif %} - {% if language %}piwik.language = "{{ language }}"; - {% endif %} - {% if config_action_url_category_delimiter %} + piwik.currentDateString = "{{ date|default(endDate|default('')) }}"; + {% if startDate is defined %} + piwik.startDateString = "{{ startDate }}"; + piwik.endDateString = "{{ endDate }}"; + piwik.minDateYear = {{ minDateYear }}; + piwik.minDateMonth = parseInt("{{ minDateMonth }}", 10); + piwik.minDateDay = parseInt("{{ minDateDay }}", 10); + piwik.maxDateYear = {{ maxDateYear }}; + piwik.maxDateMonth = parseInt("{{ maxDateMonth }}", 10); + piwik.maxDateDay = parseInt("{{ maxDateDay }}", 10); + {% endif %} + {% if language is defined %}piwik.language = "{{ language }}"; + {% endif %} + {% if config_action_url_category_delimiter is defined %} piwik.config = {}; piwik.config.action_url_category_delimiter = "{{ config_action_url_category_delimiter }}"; {% endif %} diff --git a/plugins/Zeitgeist/templates/admin.twig b/plugins/Zeitgeist/templates/admin.twig index 54695934e9..29df7a369a 100644 --- a/plugins/Zeitgeist/templates/admin.twig +++ b/plugins/Zeitgeist/templates/admin.twig @@ -46,7 +46,7 @@ {% include "@CoreHome/_headerMessage.twig" %} - {% if configFileNotWritable is not empty %} + {% if configFileNotWritable is defined and configFileNotWritable%} <div class="ajaxSuccess" style="display:inline-block"> {{ 'General_ConfigFileIsNotWritable'|translate("(config/config.ini.php)","<br/>")|raw }} </div> @@ -56,7 +56,7 @@ </div> {% endif %} - {% if statisticsNotRecorded is not empty %} + {% if statisticsNotRecorded is defined and statisticsNotRecorded is not empty %} <div class="ajaxSuccess" style="display:inline-block"> {{ 'General_StatisticsAreNotRecorded'|translate }} </div> @@ -70,7 +70,7 @@ {% include "@CoreHome/_warningInvalidHost.twig" %} {# missing plugins warning #} - {% if isSuperUser and missingPluginsWarning is not empty %} + {% if isSuperUser and missingPluginsWarning is defined %} <div class="ajaxSuccess"> <strong>{{ 'General_Warning'|translate }}: </strong>{{ missingPluginsWarning }} </div> diff --git a/plugins/Zeitgeist/templates/dashboard.twig b/plugins/Zeitgeist/templates/dashboard.twig index 0dc2808338..6d20d94027 100644 --- a/plugins/Zeitgeist/templates/dashboard.twig +++ b/plugins/Zeitgeist/templates/dashboard.twig @@ -5,7 +5,7 @@ <html><!--<![endif]--> <head> {% block head %} - <title>{{ siteName }} - {% if isCustomLogo == false %}Piwik › {% endif %} {{ 'CoreHome_WebAnalyticsReports'|translate }}</title> + <title>{{ siteName|raw }} - {% if isCustomLogo == false %}Piwik › {% endif %} {{ 'CoreHome_WebAnalyticsReports'|translate}}</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="generator" content="Piwik - Open Source Web Analytics"/> <meta name="description" content="Web Analytics report for '{{ siteName }}' - Piwik"/> @@ -26,7 +26,13 @@ {% include "@CoreHome/_javaScriptDisabled.twig" %} <div id="root"> - {% include "_indexBeforeMenu.twig" %} + {% include "@CoreHome/_warningInvalidHost.twig" %} + {% include "@CoreHome/_topBar.twig" %} + {% include "@CoreHome/_topScreen.twig" %} + <div class="ui-confirm" id="alert"> + <h2></h2> + <input role="yes" type="button" value="{{ 'General_Ok'|translate }}"/> + </div> {% block content %} {% endblock %} diff --git a/plugins/Zeitgeist/templates/macros.twig b/plugins/Zeitgeist/templates/macros.twig index 1429a676f1..552534e705 100644 --- a/plugins/Zeitgeist/templates/macros.twig +++ b/plugins/Zeitgeist/templates/macros.twig @@ -12,7 +12,7 @@ {% if alt is not empty %} {% set alt %}title='{{ alt }}' alt='{{ alt }}'{% endset %} {% endif %} - <img {{ alt }} {{ width }} {{ height }} src='{{ metadata['logo'] }}' /> + <img {{ alt }} {{ width|default('') }} {{ height|default('') }} src='{{ metadata['logo'] }}' /> {% endif %} {% endmacro %} -- GitLab