Skip to content
Extraits de code Groupes Projets
Valider 91684808 rédigé par mattab's avatar mattab
Parcourir les fichiers

* Enabling Twig 'strict_variables' so that we write best code possible, and...

* 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
parent 84bf3a5e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 59 ajouts et 51 suppressions
...@@ -287,4 +287,12 @@ class Piwik_Metrics ...@@ -287,4 +287,12 @@ class Piwik_Metrics
); );
return array_map('Piwik_Translate', $documentation); 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
...@@ -41,6 +41,7 @@ class Piwik_Twig ...@@ -41,6 +41,7 @@ class Piwik_Twig
$this->twig = new Twig_Environment($chainLoader, $this->twig = new Twig_Environment($chainLoader,
array( array(
'debug' => true, // to use {{ dump(var) }} in twig templates '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', //'cache' => PIWIK_DOCUMENT_ROOT . '/tmp/templates_c',
) )
); );
...@@ -52,9 +53,9 @@ class Piwik_Twig ...@@ -52,9 +53,9 @@ class Piwik_Twig
$this->addFilter_sumTime(); $this->addFilter_sumTime();
$this->addFilter_money(); $this->addFilter_money();
$this->addFilter_truncate(); $this->addFilter_truncate();
$this->twig->addFilter( new Twig_SimpleFilter('implode', 'implode')); $this->twig->addFilter( new Twig_SimpleFilter('implode', 'implode'));
/* /*
$this->load_filter('output', 'cachebuster');
$this->load_filter('output', 'trimwhitespace');*/ $this->load_filter('output', 'trimwhitespace');*/
......
...@@ -20,5 +20,5 @@ final class Piwik_Version ...@@ -20,5 +20,5 @@ final class Piwik_Version
* Current Piwik version * Current Piwik version
* @var string * @var string
*/ */
const VERSION = '1.12'; const VERSION = '2.0-b3';
} }
...@@ -45,7 +45,6 @@ class Piwik_View implements Piwik_View_Interface ...@@ -45,7 +45,6 @@ class Piwik_View implements Piwik_View_Interface
$this->initializeTwig(); $this->initializeTwig();
$this->piwik_version = Piwik_Version::VERSION; $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()); $this->piwikUrl = Piwik_Common::sanitizeInputValue(Piwik_Url::getCurrentUrlWithoutFileName());
} }
......
...@@ -41,11 +41,9 @@ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin ...@@ -41,11 +41,9 @@ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin
$view->todayArchiveTimeToLive = $todayArchiveTimeToLive; $view->todayArchiveTimeToLive = $todayArchiveTimeToLive;
$view->enableBrowserTriggerArchiving = $enableBrowserTriggerArchiving; $view->enableBrowserTriggerArchiving = $enableBrowserTriggerArchiving;
$config = Piwik_Config::getInstance(); $view->configFileNotWritable = !Piwik_Config::getInstance()->isFileWritable();
if (!$config->isFileWritable()) { $config = Piwik_Config::getInstance();
$view->configFileNotWritable = true;
}
$debug = $config->Debug; $debug = $config->Debug;
$view->enableBetaReleaseCheck = $debug['allow_upgrades_to_beta']; $view->enableBetaReleaseCheck = $debug['allow_upgrades_to_beta'];
......
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
<tr> <tr>
<td><label for="mailPassword">{{ 'General_SmtpPassword'|translate }}</label><br/> <td><label for="mailPassword">{{ 'General_SmtpPassword'|translate }}</label><br/>
<span class="form-description">{{ 'General_OnlyEnterIfRequiredPassword'|translate }}<br/> <span class="form-description">{{ 'General_OnlyEnterIfRequiredPassword'|translate }}<br/>
{{ 'General_WarningPasswordStored'|translate("<strong>","</strong>") }}</span> {{ 'General_WarningPasswordStored'|translate("<strong>","</strong>")|raw }}</span>
</td> </td>
<td> <td>
<input type="password" id="mailPassword" value="{{ mail.password }}"/> <input type="password" id="mailPassword" value="{{ mail.password }}"/>
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
id="{{ row.idsubdatatable }}"{% endif %}{% if row.issummaryrow is defined and row.issummaryrow and properties.highlight_summary_row %} class="highlight"{% endif %}> id="{{ row.idsubdatatable }}"{% endif %}{% if row.issummaryrow is defined and row.issummaryrow and properties.highlight_summary_row %} class="highlight"{% endif %}>
{% for column in dataTableColumns %} {% for column in dataTableColumns %}
<td> <td>
{% include "@CoreHome/_dataTableCell.twig" %} {% include "@CoreHome/_dataTableCell.twig" with properties %}
</td> </td>
{% endfor %} {% endfor %}
</tr> </tr>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
{% else %}class="actionsDataTable rowToProcess"{% endif %}> {% else %}class="actionsDataTable rowToProcess"{% endif %}>
{% for column in dataTableColumns %} {% for column in dataTableColumns %}
<td> <td>
{% include "@CoreHome/_dataTableCell.twig" with {'column': column, 'row': row} only %} {% include "@CoreHome/_dataTableCell.twig" with {'column': column, 'row': row} %}
</td> </td>
{% endfor %} {% endfor %}
</tr> </tr>
......
{% spaceless %} {% spaceless %}
{% set tooltipIndex = column ~ '_tooltip' %} {% set tooltipIndex = column ~ '_tooltip' %}
{% if row.metadata[tooltipIndex] is defined %}<span class="cell-tooltip" data-tooltip="{{ row.metadata[tooltipIndex] }}">{% endif %} {% 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 }}'> <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"/> <img class="link" width="10" height="9" src="plugins/Zeitgeist/images/link.gif"/>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if column=='label' %} {% if column=='label' %}
{% import 'macros.twig' as piwik %} {% import 'macros.twig' as piwik %}
{{ piwik.logoHtml(row.metadata, row.columns.label) }} {{ 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 %} {% if row.metadata.html_label_prefix is defined %}<span class='label-prefix'>{{ row.metadata.html_label_prefix | raw }}&nbsp;</span>{% endif -%}
<span class='label{% if row.metadata.is_aggregate is not empty and row.metadata.is_aggregate %} highlighted{% endif %}' <span class='label{% if row.metadata.is_aggregate is defined and row.metadata.is_aggregate %} highlighted{% endif %}'
{% if properties.tooltip_metadata_name is not empty %}title="{{ row.metadata[properties.tooltip_metadata_name] }}"{% endif %}> {% if properties is defined and 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 defined %}<span class='label-suffix'>{{ row.metadata.html_label_suffix | raw }}</span>{% endif %}
{% if row.metadata.html_label_suffix is not empty %}<span class='label-suffix'>{{ row.metadata.html_label_suffix | raw }}</span>{% endif %} {% endif %}
{% endif %}
{% if row.columns[column] is defined %}{{ row.columns[column]|raw }}{% else %}{{ defaultWhenColumnValueNotDefined }}{% endif %} {% if row.columns[column] is defined %}{{ row.columns[column]|raw }}{% else %}{{ defaultWhenColumnValueNotDefined }}{% endif %}
{% if column=='label' %}</span>{% 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> </a>
{% endif %} {% endif %}
{% if row.metadata[tooltipIndex] is defined %}</span>{% endif %} {% if row.metadata[tooltipIndex] is defined %}</span>{% endif %}
......
...@@ -164,7 +164,7 @@ ...@@ -164,7 +164,7 @@
{% endif %} {% endif %}
</div> </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> <div class='datatableFooterMessage'>{{ properties.show_footer_message | raw }}</div>
{% endif %} {% endif %}
......
<div id="topBars">
{% if showTopMenu is not defined or showTopMenu %}
<div id="topBars">
{% include "@CoreHome/_topBarTopMenu.twig" %} {% include "@CoreHome/_topBarTopMenu.twig" %}
{% include "@CoreHome/_topBarHelloMenu.twig" %} {% include "@CoreHome/_topBarHelloMenu.twig" %}
</div> </div>
{% endif %}
{% if showSitesSelection %} {% if showSitesSelection is not defined or showSitesSelection %}
<div class="top_bar_sites_selector"> <div class="top_bar_sites_selector">
<label>{{ 'General_Website'|translate }}</label> <label>{{ 'General_Website'|translate }}</label>
{% include "@CoreHome/_siteSelect.twig" %} {% include "@CoreHome/_siteSelect.twig" %}
......
<div id="topRightBar"> <div id="topRightBar">
{% set helloAlias %} {% set helloAlias %}
{% if userAlias %} {% if userAlias is defined %}
<strong>{{ userAlias }}</strong> <strong>{{ userAlias }}</strong>
{% else %} {% else %}
<strong>{{ userLogin }}</strong> <strong>{{ userLogin }}</strong>
......
{# untrusted host warning #} {# 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'> <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> <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 }}:&nbsp;</strong>{{ invalidHostMessage }} <strong>{{ 'General_Warning'|translate }}:&nbsp;</strong>{{ invalidHostMessage }}
......
...@@ -55,9 +55,7 @@ class Piwik_CorePluginsAdmin_Controller extends Piwik_Controller_Admin ...@@ -55,9 +55,7 @@ class Piwik_CorePluginsAdmin_Controller extends Piwik_Controller_Admin
$view->pluginsName = $plugins; $view->pluginsName = $plugins;
$this->setBasicVariablesView($view); $this->setBasicVariablesView($view);
$view->menu = Piwik_GetAdminMenu(); $view->menu = Piwik_GetAdminMenu();
if (!Piwik_Config::getInstance()->isFileWritable()) { $view->configFileNotWritable = !Piwik_Config::getInstance()->isFileWritable();
$view->configFileNotWritable = true;
}
echo $view->render(); echo $view->render();
} }
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
</script> </script>
{% if displayFullReport %} {% 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'> <h2 id='titleGoalsByDimension'>
{% if idGoal is defined %} {% if idGoal is defined %}
{{ 'Goals_GoalConversionsBy'|translate(goalName)|raw }} {{ 'Goals_GoalConversionsBy'|translate(goalName)|raw }}
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
{% block content %} {% block content %}
{% set showSitesSelection=true %} {% set showSitesSelection=true %}
<div class="top_controls_inner"></div>
<div> <div>
<h2>{{ 'ImageGraph_ImageGraph'|translate }} ::: {{ siteName }}</h2> <h2>{{ 'ImageGraph_ImageGraph'|translate }} ::: {{ siteName }}</h2>
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
{% if visitor.referrerUrl is not empty %} {% if visitor.referrerUrl is not empty %}
<a href="{{ visitor.referrerUrl }}" target="_blank"> <a href="{{ visitor.referrerUrl }}" target="_blank">
{% endif %} {% endif %}
{% if visitor.searchEngineIcon is not empty %} {% if visitor.searchEngineIcon is defined %}
<img src="{{ visitor.searchEngineIcon }}" /> <img src="{{ visitor.searchEngineIcon }}" />
{% endif %} {% endif %}
{{ visitor.referrerName }} {{ visitor.referrerName }}
...@@ -124,7 +124,7 @@ ...@@ -124,7 +124,7 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% if actionDetails|length > maxPagesDisplayedByVisitor %} {% if visitor.actionDetails|length > maxPagesDisplayedByVisitor %}
<i>({{ 'Live_MorePagesNotDisplayed'|translate }})</i> <i>({{ 'Live_MorePagesNotDisplayed'|translate }})</i>
{% endif %} {% endif %}
</div> </div>
......
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
{% endset %} {% endset %}
{% set visitorRow %} {% set visitorRow %}
<tr class="label{{ cycle([odd,even], cycleIndex) }}"> <tr class="label{{ cycle(['odd','even'], cycleIndex) }}">
{% set cycleIndex=cycleIndex+1 %} {% set cycleIndex=cycleIndex+1 %}
<td style="display:none;"></td> <td style="display:none;"></td>
<td class="label" style="width:12%" width="12%"> <td class="label" style="width:12%" width="12%">
...@@ -116,7 +116,7 @@ ...@@ -116,7 +116,7 @@
{{ visitor.columns.providerName }} {{ visitor.columns.providerName }}
</a> </a>
{% endif %} {% endif %}
{% if visitor.columns.customVariables is not empty %} {% if visitor.columns.customVariables is defined %}
<br/> <br/>
{% for id,customVariable in visitor.columns.customVariables %} {% for id,customVariable in visitor.columns.customVariables %}
{% set name='customVariableName' ~ id %} {% set name='customVariableName' ~ id %}
...@@ -156,7 +156,7 @@ ...@@ -156,7 +156,7 @@
{% if visitor.columns.referrerKeyword is not empty %} - {{ visitor.columns.referrerKeyword }}{% endif %} {% if visitor.columns.referrerKeyword is not empty %} - {{ visitor.columns.referrerKeyword }}{% endif %}
{% endif %} {% endif %}
{% if visitor.columns.referrerType == 'search' %} {% 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 }}"/> <img src="{{ visitor.columns.searchEngineIcon }}" alt="{{ visitor.columns.referrerName }}"/>
{% endif %} {% endif %}
{{ visitor.columns.referrerName }} {{ visitor.columns.referrerName }}
...@@ -193,7 +193,7 @@ ...@@ -193,7 +193,7 @@
{% set visitorHasSomeEcommerceActivity %}0{% endset %} {% set visitorHasSomeEcommerceActivity %}0{% endset %}
{% for action in visitor.columns.actionDetails %} {% for action in visitor.columns.actionDetails %}
{% set customVariablesTooltip %} {% set customVariablesTooltip %}
{% if action.customVariables is not empty %} {% if action.customVariables is defined %}
{{ 'CustomVariables_CustomVariables'|translate }} {{ 'CustomVariables_CustomVariables'|translate }}
{% for id,customVariable in action.customVariables %} {% for id,customVariable in action.customVariables %}
{% set name = 'customVariablePageName' ~ id %} {% set name = 'customVariablePageName' ~ id %}
...@@ -203,7 +203,7 @@ ...@@ -203,7 +203,7 @@
{% endif %} {% endif %}
{% endset %} {% endset %}
{% if not javascriptVariablesToSet.filterEcommerce or action.type == 'ecommerceOrder' or action.type == 'ecommerceAbandonedCart' %} {% 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 %} title="{{ action.serverTimePretty }}{% if action.url is not empty and action.url|trim|length %}
{{ action.url }}{% endif %} {% if customVariablesTooltip|trim|length %} {{ action.url }}{% endif %} {% if customVariablesTooltip|trim|length %}
...@@ -261,12 +261,12 @@ ...@@ -261,12 +261,12 @@
</ul> </ul>
{% endif %} {% endif %}
</span> </span>
{% elseif action.goalName is empty %} {% elseif action.goalName is not defined%}
{# Page view / Download / Outlink #} {# Page view / Download / Outlink #}
{% if action.pageTitle is not empty %} {% if action.pageTitle is not empty %}
{{ action.pageTitle|truncate(80) }} {{ action.pageTitle|truncate(80) }}
{% endif %} {% endif %}
{% if action.siteSearchKeyword is not empty %} {% if action.siteSearchKeyword is defined %}
{% if action.type == 'search' %} {% if action.type == 'search' %}
<img src='{{ action.icon }}' title='{{ 'Actions_SubmenuSitesearch'|translate }}'> <img src='{{ action.icon }}' title='{{ 'Actions_SubmenuSitesearch'|translate }}'>
{% endif %} {% endif %}
......
...@@ -69,17 +69,21 @@ class Piwik_MobileMessaging_SMSProvider_Clockwork extends Piwik_MobileMessaging_ ...@@ -69,17 +69,21 @@ class Piwik_MobileMessaging_SMSProvider_Clockwork extends Piwik_MobileMessaging_
$timeout = self::SOCKET_TIMEOUT; $timeout = self::SOCKET_TIMEOUT;
$result = Piwik_Http::sendHttpRequestBy( try {
Piwik_Http::getTransportMethod(), $result = Piwik_Http::sendHttpRequestBy(
$url, Piwik_Http::getTransportMethod(),
$timeout, $url,
$userAgent = null, $timeout,
$destinationPath = null, $userAgent = null,
$file = null, $destinationPath = null,
$followDepth = 0, $file = null,
$acceptLanguage = false, $followDepth = 0,
$acceptInvalidSslCertificate = true $acceptLanguage = false,
); $acceptInvalidSslCertificate = true
);
} catch(Exception $e) {
$result = self::ERROR_STRING . " " . $e->getMessage();
}
if (strpos($result, self::ERROR_STRING) !== false) { if (strpos($result, self::ERROR_STRING) !== false) {
throw new Piwik_MobileMessaging_APIException( throw new Piwik_MobileMessaging_APIException(
......
...@@ -41,7 +41,7 @@ class Piwik_MultiSites_Controller extends Piwik_Controller ...@@ -41,7 +41,7 @@ class Piwik_MultiSites_Controller extends Piwik_Controller
} }
public function getSitesInfo($isWidgetized) public function getSitesInfo($isWidgetized = false)
{ {
Piwik::checkUserHasSomeViewAccess(); Piwik::checkUserHasSomeViewAccess();
$displayRevenueColumn = Piwik_Common::isGoalPluginEnabled(); $displayRevenueColumn = Piwik_Common::isGoalPluginEnabled();
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter