From 4b49b572b0a2d1332a7ccc412300d1c26c4d47f6 Mon Sep 17 00:00:00 2001
From: Fabian Becker <halfdan@xnorfz.de>
Date: Mon, 15 Apr 2013 00:10:18 +0200
Subject: [PATCH] Converted rest of CoreAdminHome

---
 plugins/CoreAdminHome/Controller.php          |   6 +-
 .../templates/generalSettings.tpl             | 248 ----------------
 .../templates/generalSettings.twig            | 268 ++++++++++++++++++
 .../templates/jsTrackingGenerator.tpl         | 250 ----------------
 .../templates/jsTrackingGenerator.twig        | 259 +++++++++++++++++
 .../{exportImage.tpl => exportImage.twig}     |   0
 6 files changed, 530 insertions(+), 501 deletions(-)
 delete mode 100644 plugins/CoreAdminHome/templates/generalSettings.tpl
 create mode 100644 plugins/CoreAdminHome/templates/generalSettings.twig
 delete mode 100644 plugins/CoreAdminHome/templates/jsTrackingGenerator.tpl
 create mode 100644 plugins/CoreAdminHome/templates/jsTrackingGenerator.twig
 rename plugins/Proxy/templates/{exportImage.tpl => exportImage.twig} (100%)

diff --git a/plugins/CoreAdminHome/Controller.php b/plugins/CoreAdminHome/Controller.php
index c915205bc2..cb914716cf 100644
--- a/plugins/CoreAdminHome/Controller.php
+++ b/plugins/CoreAdminHome/Controller.php
@@ -26,7 +26,7 @@ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin
     public function generalSettings()
     {
         Piwik::checkUserHasSomeAdminAccess();
-        $view = Piwik_View::factory('generalSettings');
+        $view = new Piwik_View('@CoreAdminHome/generalSettings');
 
         if (Piwik::isUserIsSuperUser()) {
             $enableBrowserTriggerArchiving = Piwik_ArchiveProcessing::isBrowserTriggerArchivingEnabled();
@@ -127,7 +127,7 @@ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin
      */
     public function trackingCodeGenerator()
     {
-        $view = Piwik_View::factory('jsTrackingGenerator');
+        $view = new Piwik_View('@CoreAdminHome/jsTrackingGenerator');
         $this->setBasicVariablesView($view);
         $view->topMenu = Piwik_GetTopMenu();
         $view->menu = Piwik_GetAdminMenu();
@@ -174,7 +174,7 @@ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin
             $trackVisits = !$trackVisits;
         }
 
-        $view = Piwik_View::factory('optOut');
+        $view = new Piwik_View('@CoreAdminHome/optOut');
         $view->trackVisits = $trackVisits;
         $view->nonce = Piwik_Nonce::getNonce('Piwik_OptOut', 3600);
         $view->language = Piwik_LanguagesManager_API::getInstance()->isLanguageAvailable($language)
diff --git a/plugins/CoreAdminHome/templates/generalSettings.tpl b/plugins/CoreAdminHome/templates/generalSettings.tpl
deleted file mode 100644
index 5a97d6fe91..0000000000
--- a/plugins/CoreAdminHome/templates/generalSettings.tpl
+++ /dev/null
@@ -1,248 +0,0 @@
-{include file="CoreAdminHome/templates/header.tpl"}
-{loadJavascriptTranslations plugins='UsersManager'}
-
-{if $isSuperUser}
-    <h2>{'General_GeneralSettings'|translate}</h2>
-    {ajaxErrorDiv id=ajaxError}
-    {ajaxLoadingDiv id=ajaxLoading}
-    <table class="adminTable" style='width:900px;'>
-        <tr>
-            <td style='width:400px'>{'General_AllowPiwikArchivingToTriggerBrowser'|translate}</td>
-            <td style='width:220px'>
-                <fieldset>
-                    <label><input type="radio" value="1" name="enableBrowserTriggerArchiving"{if $enableBrowserTriggerArchiving==1} checked="checked"{/if} />
-                        {'General_Yes'|translate} <br/>
-                        <span class="form-description">{'General_Default'|translate}</span>
-                    </label><br/><br/>
-
-                    <label><input type="radio" value="0" name="enableBrowserTriggerArchiving"{if $enableBrowserTriggerArchiving==0} checked="checked"{/if} />
-                        {'General_No'|translate} <br/>
-                        <span class="form-description">{'General_ArchivingTriggerDescription'|translate:"<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/setup-auto-archiving/' target='_blank'>":"</a>"}</span>
-                    </label>
-                </fieldset>
-            <td>
-                {capture assign=browserArchivingHelp}
-                    {'General_ArchivingInlineHelp'|translate}
-                    <br/>
-                    {'General_SeeTheOfficialDocumentationForMoreInformation'|translate:"<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/setup-auto-archiving/' target='_blank'>":"</a>"}
-                {/capture}
-                {$browserArchivingHelp|inlineHelp}
-            </td>
-        </tr>
-        <tr>
-            <td><label for="todayArchiveTimeToLive">{'General_ReportsContainingTodayWillBeProcessedAtMostEvery'|translate}</label></td>
-            <td>
-                {'General_NSeconds'|translate:"<input size='3' value='$todayArchiveTimeToLive' id='todayArchiveTimeToLive' />"}
-            </td>
-            <td width='450px'>
-                {capture assign=archiveTodayTTLHelp}
-                    {if $showWarningCron}
-                        <strong>
-                            {'General_NewReportsWillBeProcessedByCron'|translate}<br/>
-                            {'General_ReportsWillBeProcessedAtMostEveryHour'|translate}
-                            {'General_IfArchivingIsFastYouCanSetupCronRunMoreOften'|translate}<br/>
-                        </strong>
-                    {/if}
-                    {'General_SmallTrafficYouCanLeaveDefault'|translate:10}
-                    <br/>
-                    {'General_MediumToHighTrafficItIsRecommendedTo'|translate:1800:3600}
-                {/capture}
-                {$archiveTodayTTLHelp|inlineHelp}
-            </td>
-        </tr>
-        <tr>
-            <td style='width:400px'>{'CoreAdminHome_CheckReleaseGetVersion'|translate}</td>
-            <td style='width:220px'>
-                <fieldset>
-                    <label><input type="radio" value="0" name="enableBetaReleaseCheck"{if $enableBetaReleaseCheck==0} checked="checked"{/if} />
-                        {'CoreAdminHome_LatestStableRelease'|translate} <br/>
-                        <span class="form-description">{'General_Recommended'|translate}</span>
-                    </label><br/><br/>
-
-                    <label><input type="radio" value="1" name="enableBetaReleaseCheck"{if $enableBetaReleaseCheck==1} checked="checked"{/if} />
-                        {'CoreAdminHome_LatestBetaRelease'|translate} <br/>
-                        <span class="form-description">{'CoreAdminHome_ForBetaTestersOnly'|translate}</span>
-                    </label>
-                </fieldset>
-            <td>
-                {capture assign=checkReleaseHelp}
-                    {'CoreAdminHome_DevelopmentProcess'|translate:"<a href='?module=Proxy&action=redirect&url=http://piwik.org/participate/development-process/' target='_blank'>":"</a>"}
-                    <br/>
-                    {'CoreAdminHome_StableReleases'|translate:"<a href='?module=Proxy&action=redirect&url=http://piwik.org/participate/user-feedback/' target='_blank'>":"</a>"}
-                {/capture}
-                {$checkReleaseHelp|inlineHelp}
-            </td>
-        </tr>
-    </table>
-    <h2>{'CoreAdminHome_EmailServerSettings'|translate}</h2>
-    <div id='emailSettings'>
-        <table class="adminTable" style='width:600px;'>
-            <tr>
-                <td>{'General_UseSMTPServerForEmail'|translate}<br/>
-                    <span class="form-description">{'General_SelectYesIfYouWantToSendEmailsViaServer'|translate}</span>
-                </td>
-                <td style='width:200px'>
-                    <label><input type="radio" name="mailUseSmtp" value="1" {if $mail.transport eq 'smtp'} checked {/if}/> {'General_Yes'|translate}</label>
-                    <label><input type="radio" name="mailUseSmtp" value="0"
-                                  style="margin-left:20px;" {if $mail.transport eq ''} checked {/if}/>  {'General_No'|translate}</label>
-                </td>
-            </tr>
-        </table>
-    </div>
-    <div id='smtpSettings'>
-        <table class="adminTable" style='width:550px;'>
-            <tr>
-                <td><label for="mailHost">{'General_SmtpServerAddress'|translate}</label></td>
-                <td style='width:200px'><input type="text" id="mailHost" value="{$mail.host|escape}"></td>
-            </tr>
-            <tr>
-                <td><label for="mailPort">{'General_SmtpPort'|translate}</label><br/>
-                    <span class="form-description">{'General_OptionalSmtpPort'|translate}</span></td>
-                <td><input type="text" id="mailPort" value="{$mail.port}"></td>
-            </tr>
-            <tr>
-                <td><label for="mailType">{'General_AuthenticationMethodSmtp'|translate}</label><br/>
-                    <span class="form-description">{'General_OnlyUsedIfUserPwdIsSet'|translate}</span>
-                </td>
-                <td>
-                    <select id="mailType">
-                        <option value="" {if $mail.type eq ''} selected="selected" {/if}></option>
-                        <option id="plain" {if $mail.type eq 'Plain'} selected="selected" {/if} value="Plain">Plain</option>
-                        <option id="login" {if $mail.type eq 'Login'} selected="selected" {/if} value="Login"> Login</option>
-                        <option id="cram-md5" {if $mail.type eq 'Crammd5'} selected="selected" {/if} value="Crammd5"> Crammd5</option>
-                    </select>
-                </td>
-            </tr>
-            <tr>
-                <td><label for="mailUsername">{'General_SmtpUsername'|translate}</label><br/>
-                    <span class="form-description">{'General_OnlyEnterIfRequired'|translate}</span></td>
-                <td>
-                    <input type="text" id="mailUsername" value="{$mail.username|escape}"/>
-                </td>
-            </tr>
-            <tr>
-                <td><label for="mailPassword">{'General_SmtpPassword'|translate}</label><br/>
-				<span class="form-description">{'General_OnlyEnterIfRequiredPassword'|translate}<br/>
-                    {'General_WarningPasswordStored'|translate:"<strong>":"</strong>"}</span>
-                </td>
-                <td>
-                    <input type="password" id="mailPassword" value="{$mail.password|escape}"/>
-                </td>
-            </tr>
-            <tr>
-                <td><label for="mailEncryption">{'General_SmtpEncryption'|translate}</label><br/>
-                    <span class="form-description">{'General_EncryptedSmtpTransport'|translate}</span></td>
-                <td>
-                    <select id="mailEncryption">
-                        <option value="" {if $mail.encryption eq ''} selected="selected" {/if}></option>
-                        <option id="ssl" {if $mail.encryption eq 'ssl'} selected="selected" {/if} value="ssl">SSL</option>
-                        <option id="tls" {if $mail.encryption eq 'tls'} selected="selected" {/if} value="tls">TLS</option>
-                    </select>
-                </td>
-            </tr>
-        </table>
-    </div>
-    <div class="ui-confirm" id="confirmTrustedHostChange">
-        <h2>{'CoreAdminHome_TrustedHostConfirm'|translate}</h2>
-        <input role="yes" type="button" value="{'General_Yes'|translate}"/>
-        <input role="no" type="button" value="{'General_No'|translate}"/>
-    </div>
-    <h2 id="trustedHostsSection">{'CoreAdminHome_TrustedHostSettings'|translate}</h2>
-    <div id='trustedHostSettings'>
-        {* untrusted host warning (display again) *}
-        {if isset($isValidHost) && isset($invalidHostMessage) && !$isValidHost}
-            <div class="ajaxSuccess">
-                <a style="float:right" href="http://piwik.org/faq/troubleshooting/#faq_171" target="_blank"><img src="themes/default/images/help_grey.png"/></a>
-                <strong>{'General_Warning'|translate}:&nbsp;</strong>{$invalidHostMessage}
-            </div>
-        {/if}
-        {if count($trustedHosts) eq 1 && (!isset($isValidHost) || $isValidHost)}
-            {'CoreAdminHome_PiwikIsInstalledAt'|translate}:&nbsp;&nbsp;
-            <input name="trusted_host" type="text" value="{$trustedHosts[0]}"/>
-        {else}
-            <p>{'CoreAdminHome_PiwikIsInstalledAt'|translate}:</p>
-            <table class="adminTable">
-                <tr>
-                    <th style="width:250px">{'CoreAdminHome_ValidPiwikHostname'|translate}</th>
-                    <th style="width:10px">&nbsp;</th>
-                </tr>
-                {foreach from=$trustedHosts item=host key=hostIdx}
-                    <tr>
-                        <td><input name="trusted_host" type="text" value="{$host}"/></td>
-                        <td>
-                            <a href="#" class="remove-trusted-host">x</a>
-                        </td>
-                    </tr>
-                {/foreach}
-            </table>
-            <div class="adminTable add-trusted-host-container">
-                <a href="#" class="add-trusted-host"><em>{'General_Add'|translate}</em></a>
-            </div>
-        {/if}
-    </div>
-    <h2>{'CoreAdminHome_BrandingSettings'|translate}</h2>
-    <div id='brandSettings'>
-        {'CoreAdminHome_CustomLogoHelpText'|translate}
-        <table class="adminTable" style='width:600px;'>
-            <tr>
-                <td> {'CoreAdminHome_UseCustomLogo'|translate}</td>
-                <td style='width:200px'>
-                    <label><input type="radio" name="useCustomLogo" value="1" {if $branding.use_custom_logo == 1} checked {/if}/> {'General_Yes'|translate}
-                    </label>
-                    <label><input type="radio" name="useCustomLogo" value="0"
-                                  style="margin-left:20px;" {if $branding.use_custom_logo == 0} checked {/if}/>  {'General_No'|translate}</label>
-                </td>
-            </tr>
-        </table>
-    </div>
-    <div id='logoSettings'>
-        {capture assign=giveUsFeedbackText}"{'General_GiveUsYourFeedback'|translate}"{/capture}
-        {capture assign=customLogoHelp}
-            {'CoreAdminHome_CustomLogoFeedbackInfo'|translate:$giveUsFeedbackText:"<a href='?module=CorePluginsAdmin&action=index' target='_blank'>":"</a>"}
-        {/capture}
-        {$customLogoHelp|inlineHelp}
-        <form id="logoUploadForm" method="post" enctype="multipart/form-data" action="index.php?module=CoreAdminHome&format=json&action=uploadCustomLogo">
-            <table class="adminTable" style='width:550px;'>
-                <tr>
-                    {if $logosWriteable}
-                        <td><label for="customLogo">{'CoreAdminHome_LogoUpload'|translate}:<br/>
-                                <span class="form-description">{'CoreAdminHome_LogoUploadDescription'|translate:"JPG / PNG / GIF":110}</span></label></td>
-                        <td style='width:200px'>
-                            <input name="customLogo" type="file" id="customLogo"/><img src="themes/logo.png?r={math equation='rand(10,1000)'}" id="currentLogo"
-                                                                                       height="150"/>
-                        </td>
-                    {else}
-                        <td>
-                            <span class="ajaxSuccess">{'CoreAdminHome_LogoNotWriteable'|translate:"<ul style='list-style: disc inside;'><li>/themes/</li><li>/themes/logo.png</li><li>/themes/logo-header.png</li></ul>"}</span>
-                        </td>
-                    {/if}
-                </tr>
-            </table>
-        </form>
-    </div>
-    <input type="submit" value="{'General_Save'|translate}" id="generalSettingsSubmit" class="submit"/>
-    <br/>
-    <br/>
-    {capture assign=clickDeleteLogSettings}{'PrivacyManager_DeleteDataSettings'|translate}{/capture}
-    <h2>{'PrivacyManager_DeleteDataSettings'|translate}</h2>
-    <p>
-        {'PrivacyManager_DeleteDataDescription'|translate} {'PrivacyManager_DeleteDataDescription2'|translate}
-        <br/>
-        <a href='{url module="PrivacyManager" action="privacySettings"}#deleteLogsAnchor'>
-            {'PrivacyManager_ClickHereSettings'|translate:"'$clickDeleteLogSettings'"}
-        </a>
-    </p>
-{/if}
-<h2>{'CoreAdminHome_OptOutForYourVisitors'|translate}</h2>
-
-<p>{'CoreAdminHome_OptOutExplanation'|translate}
-    {capture name=optOutUrl}{$piwikUrl}index.php?module=CoreAdminHome&action=optOut&language={$language}{/capture}
-    {assign var=optOutUrl value=$smarty.capture.optOutUrl}
-    {capture name=iframeOptOut}
-        <iframe frameborder="no" width="600px" height="200px" src="{$smarty.capture.optOutUrl}"></iframe>{/capture}
-    <code>{$smarty.capture.iframeOptOut|escape:'html'}</code>
-    <br/>
-    {'CoreAdminHome_OptOutExplanationBis'|translate:"<a href='$optOutUrl' target='_blank'>":"</a>"}
-</p>
-
-{include file="CoreAdminHome/templates/footer.tpl"}
diff --git a/plugins/CoreAdminHome/templates/generalSettings.twig b/plugins/CoreAdminHome/templates/generalSettings.twig
new file mode 100644
index 0000000000..bd82f8687d
--- /dev/null
+++ b/plugins/CoreAdminHome/templates/generalSettings.twig
@@ -0,0 +1,268 @@
+{% extends 'admin.twig' %}
+
+{% block content %}
+{{ loadJavascriptTranslations(['UsersManager']) }}
+{# load macros #}
+{% import 'macros.twig' as piwik %}
+{% import 'ajaxMacros.twig' as ajax %}
+
+{% if isSuperUser %}
+    <h2>{{ 'General_GeneralSettings'|translate }}</h2>
+    {{ ajax.errorDiv('ajaxError') }}
+    {{ ajax.loadingDiv('ajaxLoading') }}
+    <table class="adminTable" style='width:900px;'>
+        <tr>
+            <td style='width:400px'>{{ 'General_AllowPiwikArchivingToTriggerBrowser'|translate }}</td>
+            <td style='width:220px'>
+                <fieldset>
+                    <label>
+                        <input type="radio" value="1" name="enableBrowserTriggerArchiving"{% if enableBrowserTriggerArchiving==1 %} checked="checked"{% endif %} />
+                        {{ 'General_Yes'|translate }} <br/>
+                        <span class="form-description">{{ 'General_Default'|translate }}</span>
+                    </label><br/><br/>
+
+                    <label>
+                        <input type="radio" value="0" name="enableBrowserTriggerArchiving"{% if enableBrowserTriggerArchiving==0 %} checked="checked"{% endif %} />
+                        {{ 'General_No'|translate }} <br/>
+                        <span class="form-description">{{ 'General_ArchivingTriggerDescription'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/setup-auto-archiving/' target='_blank'>","</a>")|raw }}</span>
+                    </label>
+                </fieldset>
+            <td>
+                {% set browserArchivingHelp %}
+                    {{ 'General_ArchivingInlineHelp'|translate }}
+                    <br/>
+                    {{ 'General_SeeTheOfficialDocumentationForMoreInformation'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/setup-auto-archiving/' target='_blank'>","</a>")|raw }}
+                {% endset %}
+                {{ piwik.inlineHelp(browserArchivingHelp) }}
+            </td>
+        </tr>
+        <tr>
+            <td>
+                <label for="todayArchiveTimeToLive">
+                    {{ 'General_ReportsContainingTodayWillBeProcessedAtMostEvery'|translate }}
+                </label>
+            </td>
+            <td>
+                {{ 'General_NSeconds'|translate("<input size='3' value='" ~ todayArchiveTimeToLive ~ "' id='todayArchiveTimeToLive' />")|raw }}
+            </td>
+            <td width='450px'>
+                {% set archiveTodayTTLHelp %}
+                    {% if showWarningCron %}
+                        <strong>
+                            {{ 'General_NewReportsWillBeProcessedByCron'|translate }}<br/>
+                            {{ 'General_ReportsWillBeProcessedAtMostEveryHour'|translate }}
+                            {{ 'General_IfArchivingIsFastYouCanSetupCronRunMoreOften'|translate }}<br/>
+                        </strong>
+                    {% endif %}
+                    {{ 'General_SmallTrafficYouCanLeaveDefault'|translate(10) }}
+                    <br/>
+                    {{ 'General_MediumToHighTrafficItIsRecommendedTo'|translate(1800,3600) }}
+                {% endset %}
+                {{ piwik.inlineHelp(archiveTodayTTLHelp) }}
+            </td>
+        </tr>
+        <tr>
+            <td style='width:400px'>{{ 'CoreAdminHome_CheckReleaseGetVersion'|translate }}</td>
+            <td style='width:220px'>
+                <fieldset>
+                    <label><input type="radio" value="0" name="enableBetaReleaseCheck"{% if enableBetaReleaseCheck==0 %} checked="checked"{% endif %} />
+                        {{ 'CoreAdminHome_LatestStableRelease'|translate }} <br/>
+                        <span class="form-description">{{ 'General_Recommended'|translate }}</span>
+                    </label><br/><br/>
+
+                    <label><input type="radio" value="1" name="enableBetaReleaseCheck"{% if enableBetaReleaseCheck==1 %} checked="checked"{% endif %} />
+                        {{ 'CoreAdminHome_LatestBetaRelease'|translate }} <br/>
+                        <span class="form-description">{{ 'CoreAdminHome_ForBetaTestersOnly'|translate }}</span>
+                    </label>
+                </fieldset>
+            <td>
+                {% set checkReleaseHelp %}
+                    {{ 'CoreAdminHome_DevelopmentProcess'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/participate/development-process/' target='_blank'>","</a>")|raw }}
+                    <br/>
+                    {{ 'CoreAdminHome_StableReleases'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/participate/user-feedback/' target='_blank'>","</a>")|raw }}
+                {% endset %}
+                {{ piwik.inlineHelp(checkReleaseHelp) }}
+            </td>
+        </tr>
+    </table>
+    <h2>{{ 'CoreAdminHome_EmailServerSettings'|translate }}</h2>
+    <div id='emailSettings'>
+        <table class="adminTable" style='width:600px;'>
+            <tr>
+                <td>{{ 'General_UseSMTPServerForEmail'|translate }}<br/>
+                    <span class="form-description">{{ 'General_SelectYesIfYouWantToSendEmailsViaServer'|translate }}</span>
+                </td>
+                <td style='width:200px'>
+                    <label><input type="radio" name="mailUseSmtp" value="1" {% if mail.transport == 'smtp' %} checked {% endif %}/> {{ 'General_Yes'|translate }}</label>
+                    <label><input type="radio" name="mailUseSmtp" value="0"
+                                  style="margin-left:20px;" {% if mail.transport == '' %} checked {% endif %}/>  {{ 'General_No'|translate }}</label>
+                </td>
+            </tr>
+        </table>
+    </div>
+    <div id='smtpSettings'>
+        <table class="adminTable" style='width:550px;'>
+            <tr>
+                <td><label for="mailHost">{{ 'General_SmtpServerAddress'|translate }}</label></td>
+                <td style='width:200px'><input type="text" id="mailHost" value="{{ mail.host }}"></td>
+            </tr>
+            <tr>
+                <td><label for="mailPort">{{ 'General_SmtpPort'|translate }}</label><br/>
+                    <span class="form-description">{{ 'General_OptionalSmtpPort'|translate }}</span></td>
+                <td><input type="text" id="mailPort" value="{{ mail.port }}"></td>
+            </tr>
+            <tr>
+                <td><label for="mailType">{{ 'General_AuthenticationMethodSmtp'|translate }}</label><br/>
+                    <span class="form-description">{{ 'General_OnlyUsedIfUserPwdIsSet'|translate }}</span>
+                </td>
+                <td>
+                    <select id="mailType">
+                        <option value="" {% if mail.type == '' %} selected="selected" {% endif %}></option>
+                        <option id="plain" {% if mail.type == 'Plain' %} selected="selected" {% endif %} value="Plain">Plain</option>
+                        <option id="login" {% if mail.type == 'Login' %} selected="selected" {% endif %} value="Login"> Login</option>
+                        <option id="cram-md5" {% if mail.type == 'Crammd5' %} selected="selected" {% endif %} value="Crammd5"> Crammd5</option>
+                    </select>
+                </td>
+            </tr>
+            <tr>
+                <td><label for="mailUsername">{{ 'General_SmtpUsername'|translate }}</label><br/>
+                    <span class="form-description">{{ 'General_OnlyEnterIfRequired'|translate }}</span></td>
+                <td>
+                    <input type="text" id="mailUsername" value="{{ mail.username }}"/>
+                </td>
+            </tr>
+            <tr>
+                <td><label for="mailPassword">{{ 'General_SmtpPassword'|translate }}</label><br/>
+				<span class="form-description">{{ 'General_OnlyEnterIfRequiredPassword'|translate }}<br/>
+                    {{ 'General_WarningPasswordStored'|translate("<strong>","</strong>") }}</span>
+                </td>
+                <td>
+                    <input type="password" id="mailPassword" value="{{ mail.password }}"/>
+                </td>
+            </tr>
+            <tr>
+                <td><label for="mailEncryption">{{ 'General_SmtpEncryption'|translate }}</label><br/>
+                    <span class="form-description">{{ 'General_EncryptedSmtpTransport'|translate }}</span></td>
+                <td>
+                    <select id="mailEncryption">
+                        <option value="" {% if mail.encryption == '' %} selected="selected" {% endif %}></option>
+                        <option id="ssl" {% if mail.encryption == 'ssl' %} selected="selected" {% endif %} value="ssl">SSL</option>
+                        <option id="tls" {% if mail.encryption == 'tls' %} selected="selected" {% endif %} value="tls">TLS</option>
+                    </select>
+                </td>
+            </tr>
+        </table>
+    </div>
+    <div class="ui-confirm" id="confirmTrustedHostChange">
+        <h2>{{ 'CoreAdminHome_TrustedHostConfirm'|translate }}</h2>
+        <input role="yes" type="button" value="{{ 'General_Yes'|translate }}"/>
+        <input role="no" type="button" value="{{ 'General_No'|translate }}"/>
+    </div>
+    <h2 id="trustedHostsSection">{{ 'CoreAdminHome_TrustedHostSettings'|translate }}</h2>
+    <div id='trustedHostSettings'>
+        {# untrusted host warning (display again) #}
+        {% if isValidHost is defined and invalidHostMessage is defined and not isValidHost %}
+            <div class="ajaxSuccess">
+                <a style="float:right" href="http://piwik.org/faq/troubleshooting/#faq_171" target="_blank">
+                    <img src="plugins/Zeitgeist/theme/images/help_grey.png"/>
+                </a>
+                <strong>{{ 'General_Warning'|translate }}:&nbsp;</strong>{{ invalidHostMessage }}
+            </div>
+        {% endif %}
+        {% if trustedHosts|length == 1 and (isValidHost is not defined or isValidHost) %}
+            {{ 'CoreAdminHome_PiwikIsInstalledAt'|translate }}:&nbsp;&nbsp;
+            <input name="trusted_host" type="text" value="{{ trustedHosts[0] }}"/>
+        {% else %}
+            <p>{{ 'CoreAdminHome_PiwikIsInstalledAt'|translate }}:</p>
+            <table class="adminTable">
+                <tr>
+                    <th style="width:250px">{{ 'CoreAdminHome_ValidPiwikHostname'|translate }}</th>
+                    <th style="width:10px">&nbsp;</th>
+                </tr>
+                {% for hostIdx, host in trustedHosts %}
+                    <tr>
+                        <td><input name="trusted_host" type="text" value="{{ host }}"/></td>
+                        <td>
+                            <a href="#" class="remove-trusted-host">x</a>
+                        </td>
+                    </tr>
+                {% endfor %}
+            </table>
+            <div class="adminTable add-trusted-host-container">
+                <a href="#" class="add-trusted-host"><em>{{ 'General_Add'|translate }}</em></a>
+            </div>
+        {% endif %}
+    </div>
+    <h2>{{ 'CoreAdminHome_BrandingSettings'|translate }}</h2>
+    <div id='brandSettings'>
+        {{ 'CoreAdminHome_CustomLogoHelpText'|translate }}
+        <table class="adminTable" style='width:600px;'>
+            <tr>
+                <td>{{ 'CoreAdminHome_UseCustomLogo'|translate }}</td>
+                <td style='width:200px'>
+                    <label>
+                        <input type="radio" name="useCustomLogo" value="1" {% if branding.use_custom_logo == 1 %} checked {% endif %}/>
+                        {{ 'General_Yes'|translate }}
+                    </label>
+                    <label>
+                        <input type="radio" name="useCustomLogo" value="0" style="margin-left:20px;" {% if branding.use_custom_logo == 0 %} checked {% endif %} />
+                        {{ 'General_No'|translate }}
+                    </label>
+                </td>
+            </tr>
+        </table>
+    </div>
+    <div id='logoSettings'>
+        {% set giveUsFeedbackText %}"{{ 'General_GiveUsYourFeedback'|translate }}"{% endset %}
+        {% set customLogoHelp %}
+            {{ 'CoreAdminHome_CustomLogoFeedbackInfo'|translate(giveUsFeedbackText,"<a href='?module=CorePluginsAdmin&action=index' target='_blank'>","</a>")|raw }}
+        {% endset %}
+        {{ piwik.inlineHelp(customLogoHelp) }}
+        <form id="logoUploadForm" method="post" enctype="multipart/form-data" action="index.php?module=CoreAdminHome&format=json&action=uploadCustomLogo">
+            <table class="adminTable" style='width:550px;'>
+                <tr>
+                    {% if logosWriteable %}
+                        <td>
+                            <label for="customLogo">{{ 'CoreAdminHome_LogoUpload'|translate }}:<br/>
+                                <span class="form-description">{{ 'CoreAdminHome_LogoUploadDescription'|translate("JPG / PNG / GIF",110) }}</span>
+                            </label>
+                        </td>
+                        <td style='width:200px'>
+                            <input name="customLogo" type="file" id="customLogo"/>
+                            <img src="themes/logo.png?r={math equation='rand(10,1000)'}" id="currentLogo" height="150"/>
+                        </td>
+                    {% else %}
+                        <td>
+                            <span class="ajaxSuccess">{{ 'CoreAdminHome_LogoNotWriteable'|translate("<ul style='list-style: disc inside;'><li>/themes/</li><li>/themes/logo.png</li><li>/themes/logo-header.png</li></ul>")|raw }}</span>
+                        </td>
+                    {% endif %}
+                </tr>
+            </table>
+        </form>
+    </div>
+    <input type="submit" value="{{ 'General_Save'|translate }}" id="generalSettingsSubmit" class="submit"/>
+    <br/>
+    <br/>
+    {% set clickDeleteLogSettings %}{{ 'PrivacyManager_DeleteDataSettings'|translate }}{% endset %}
+    <h2>{{ 'PrivacyManager_DeleteDataSettings'|translate }}</h2>
+    <p>
+        {{ 'PrivacyManager_DeleteDataDescription'|translate }} {{ 'PrivacyManager_DeleteDataDescription2'|translate }}
+        <br/>
+        <a href='{{ linkTo({'module':"PrivacyManager", 'action':"privacySettings"}) }}#deleteLogsAnchor'>
+            {{ 'PrivacyManager_ClickHereSettings'|translate("'" ~ clickDeleteLogSettings ~ "'") }}
+        </a>
+    </p>
+{% endif %}
+<h2>{{ 'CoreAdminHome_OptOutForYourVisitors'|translate }}</h2>
+
+<p>{{ 'CoreAdminHome_OptOutExplanation'|translate }}
+    {% set optOutUrl %}{{ piwikUrl }}index.php?module=CoreAdminHome&action=optOut&language={{ language }}{% endset %}
+    {% set iframeOptOut %}
+        <iframe frameborder="no" width="600px" height="200px" src="{{ optOutUrl }}"></iframe>
+    {% endset %}
+    <code>{{ iframeOptOut }}</code>
+    <br/>
+    {{ 'CoreAdminHome_OptOutExplanationBis'|translate("<a href='" ~ optOutUrl ~ "' target='_blank'>","</a>")|raw }}
+</p>
+
+{% endblock %}
diff --git a/plugins/CoreAdminHome/templates/jsTrackingGenerator.tpl b/plugins/CoreAdminHome/templates/jsTrackingGenerator.tpl
deleted file mode 100644
index b78d88cbf0..0000000000
--- a/plugins/CoreAdminHome/templates/jsTrackingGenerator.tpl
+++ /dev/null
@@ -1,250 +0,0 @@
-{include file="CoreAdminHome/templates/header.tpl"}
-<link rel="stylesheet" href="plugins/CoreAdminHome/templates/jsTrackingGenerator.css"></link>
-<script type="text/javascript" src="plugins/CoreAdminHome/templates/jsTrackingGenerator.js"></script>
-
-<div id="js-tracking-generator-data"
-     data-currencies="{$currencySymbols|@json_encode|escape:'html'}"/>
-
-<h2>{'CoreAdminHome_JavaScriptTracking'|translate}</h2>
-
-<div id="js-code-options" class="adminTable">
-
-    <p>
-        {'CoreAdminHome_JSTrackingIntro1'|translate}
-        <br/><br/>
-        {'CoreAdminHome_JSTrackingIntro2'|translate} {'CoreAdminHome_JSTrackingIntro3'|translate:'<a href="http://piwik.org/integrate/" target="_blank">':'</a>'}
-        <br/><br/>
-        {'CoreAdminHome_JSTrackingIntro4'|translate:'<a href="#image-tracking-link">':'</a>'}
-        <br/><br/>
-        {'CoreAdminHome_JSTrackingIntro5'|translate:'<a target="_blank" href="http://piwik.org/docs/javascript-tracking/">':'</a>'}
-    </p>
-
-    <div>
-        {* website *}
-        <label class="website-label"><strong>{'General_Website'|translate}</strong></label>
-        {include file="CoreHome/templates/sites_selection.tpl"
-        siteName=$defaultReportSiteName idSite=$idSite showAllSitesItem=false switchSiteOnSelect=false
-        siteSelectorId="js-tracker-website" showSelectedSite=true}
-
-        <br/><br/><br/>
-    </div>
-
-    <table id="optional-js-tracking-options" class="adminTable" style='width:1024px'>
-        <tr>
-            <th>{'General_Options'|translate}</th>
-            <th>{'Mobile_Advanced'|translate} <a href="#" class="section-toggler-link"
-                                                 data-section-id="javascript-advanced-options">({'General_Show_js'|translate})</a></th>
-        </tr>
-        <tr>
-            <td>
-                {* track across all subdomains *}
-                <div class="tracking-option-section">
-                    <input type="checkbox" id="javascript-tracking-all-subdomains"/>
-                    <label for="javascript-tracking-all-subdomains">{'CoreAdminHome_JSTracking_MergeSubdomains'|translate} <span
-                                class='current-site-name'>{$defaultReportSiteName}</span></label>
-
-                    <div class="small-form-description">
-                        {'CoreAdminHome_JSTracking_MergeSubdomainsDesc'|translate:"x.<span class='current-site-host'>$defaultReportSiteDomain</span>":"y.<span class='current-site-host'>$defaultReportSiteDomain</span>"}
-                    </div>
-                </div>
-
-                {* group page titles by site domain *}
-                <div class="tracking-option-section">
-                    <input type="checkbox" id="javascript-tracking-group-by-domain"/>
-                    <label for="javascript-tracking-group-by-domain">{'CoreAdminHome_JSTracking_GroupPageTitlesByDomain'|translate}</label>
-
-                    <div class="small-form-description">
-                        {'CoreAdminHome_JSTracking_GroupPageTitlesByDomainDesc1'|translate:"<span class='current-site-host'>$defaultReportSiteDomain</span>"}
-                    </div>
-                </div>
-
-                {* track across all site aliases *}
-                <div class="tracking-option-section">
-                    <input type="checkbox" id="javascript-tracking-all-aliases"/>
-                    <label for="javascript-tracking-all-aliases">{'CoreAdminHome_JSTracking_MergeAliases'|translate} <span
-                                class='current-site-name'>{$defaultReportSiteName}</span></label>
-
-                    <div class="small-form-description">
-                        {'CoreAdminHome_JSTracking_MergeAliasesDesc'|translate:"<span class='current-site-alias'>$defaultReportSiteAlias</span>"}
-                    </div>
-                </div>
-
-            </td>
-            <td>
-                <div id="javascript-advanced-options" style="display:none">
-                    {* visitor custom variable *}
-                    <div class="custom-variable tracking-option-section" id="javascript-tracking-visitor-cv">
-                        <input class="section-toggler-link" type="checkbox" id="javascript-tracking-visitor-cv-check" data-section-id="js-visitor-cv-extra"/>
-                        <label for="javascript-tracking-visitor-cv-check">{'CoreAdminHome_JSTracking_VisitorCustomVars'|translate}</label>
-
-                        <div class="small-form-description">
-                            {'CoreAdminHome_JSTracking_VisitorCustomVarsDesc'|translate}
-                        </div>
-
-                        <table style="display:none" id="js-visitor-cv-extra">
-                            <tr>
-                                <td><strong>{'General_Name'|translate}</strong></td>
-                                <td><input type="textbox" class="custom-variable-name" placeholder="e.g. Type"/></td>
-                                <td><strong>{'General_Value'|translate}</strong></td>
-                                <td><input type="textbox" class="custom-variable-value" placeholder="e.g. Customer"/></td>
-                            </tr>
-                            <tr>
-                                <td colspan="4" style="text-align:right">
-                                    <a href="#" class="add-custom-variable">{'General_Add'|translate}</a>
-                                </td>
-                            </tr>
-                        </table>
-                    </div>
-
-                    {* page view custom variable *}
-                    <div class="custom-variable tracking-option-section" id="javascript-tracking-page-cv">
-                        <input class="section-toggler-link" type="checkbox" id="javascript-tracking-page-cv-check" data-section-id="js-page-cv-extra"/>
-                        <label for="javascript-tracking-page-cv-check">{'CoreAdminHome_JSTracking_PageCustomVars'|translate}</label>
-
-                        <div class="small-form-description">
-                            {'CoreAdminHome_JSTracking_PageCustomVarsDesc'|translate}
-                        </div>
-
-                        <table style="display:none" id="js-page-cv-extra">
-                            <tr>
-                                <td><strong>{'General_Name'|translate}</strong></td>
-                                <td><input type="textbox" class="custom-variable-name" placeholder="e.g. Category"/></td>
-                                <td><strong>{'General_Value'|translate}</strong></td>
-                                <td><input type="textbox" class="custom-variable-value" placeholder="e.g. White Papers"/></td>
-                            </tr>
-                            <tr>
-                                <td colspan="4" style="text-align:right">
-                                    <a href="#" class="add-custom-variable">{'General_Add'|translate}</a>
-                                </td>
-                            </tr>
-                        </table>
-                    </div>
-
-                    {* do not track support *}
-                    <div class="tracking-option-section">
-                        <input type="checkbox" id="javascript-tracking-do-not-track"/>
-                        <label for="javascript-tracking-do-not-track">{'CoreAdminHome_JSTracking_EnableDoNotTrack'|translate}</label>
-
-                        <div class="small-form-description">
-                            {'CoreAdminHome_JSTracking_EnableDoNotTrackDesc'|translate}
-                            {if $serverSideDoNotTrackEnabled}
-                                <br/>
-                                <br/>
-                                {'CoreAdminHome_JSTracking_EnableDoNotTrack_AlreadyEnabled'|translate}
-                            {/if}
-                        </div>
-                    </div>
-
-                    {* custom campaign name/keyword query params *}
-                    <div class="tracking-option-section">
-                        <input class="section-toggler-link" type="checkbox" id="custom-campaign-query-params-check"
-                               data-section-id="js-campaign-query-param-extra"/>
-                        <label for="custom-campaign-query-params-check">{'CoreAdminHome_JSTracking_CustomCampaignQueryParam'|translate}</label>
-
-                        <div class="small-form-description">
-                            {'CoreAdminHome_JSTracking_CustomCampaignQueryParamDesc'|translate:'<a href="http://piwik.org/faq/general/#faq_119" target="_blank">':'</a>'}
-                        </div>
-
-                        <table style="display:none" id="js-campaign-query-param-extra">
-                            <tr>
-                                <td><strong>{'CoreAdminHome_JSTracking_CampaignNameParam'|translate}</strong></td>
-                                <td><input type="text" id="custom-campaign-name-query-param"/></td>
-                            </tr>
-                            <tr>
-                                <td><strong>{'CoreAdminHome_JSTracking_CampaignKwdParam'|translate}</strong></td>
-                                <td><input type="text" id="custom-campaign-keyword-query-param"/></td>
-                            </tr>
-                        </table>
-                    </div>
-                </div>
-            </td>
-        </tr>
-    </table>
-
-</div>
-
-<div id="javascript-output-section">
-    <h3>{'Installation_JsTag'|translate}</h3>
-
-    <p class="form-description">{'CoreAdminHome_JSTracking_CodeNote'|translate:"&lt;/body&gt;"}</p>
-
-    <div id="javascript-text">
-        <textarea> </textarea>
-    </div>
-    <br/>
-</div>
-
-<h2 id="image-tracking-link">{'CoreAdminHome_ImageTracking'|translate}</h2>
-
-<div id="image-tracking-code-options" class="adminTable">
-
-    <p>
-        {'CoreAdminHome_ImageTrackingIntro1'|translate} {'CoreAdminHome_ImageTrackingIntro2'|translate:"<em>&lt;noscript&gt;&lt;/noscript&gt;</em>"}
-        <br/><br/>
-        {'CoreAdminHome_ImageTrackingIntro3'|translate:'<a href="http://piwik.org/docs/tracking-api/reference/" target="_blank">':'</a>'}
-    </p>
-
-    <div>
-        {* website *}
-        <label class="website-label"><strong>{'General_Website'|translate}</strong></label>
-        {include file="CoreHome/templates/sites_selection.tpl"
-        siteName=$defaultReportSiteName idSite=$idSite showAllSitesItem=false switchSiteOnSelect=false
-        showSelectedSite=true siteSelectorId="image-tracker-website"}
-
-        <br/><br/><br/>
-    </div>
-
-    <table id="image-tracking-section" class="adminTable" style='width:1024px;'>
-        <tr>
-            <th>{'General_Options'|translate}</th>
-            <th>{'Mobile_Advanced'|translate} <a href="#" class="section-toggler-link"
-                                                 data-section-id="image-tracker-advanced-options">({'General_Show_js'|translate})</a></th>
-        </tr>
-        <tr>
-            <td>
-                {* action_name *}
-                <div class="tracking-option-section">
-                    <label for="image-tracker-action-name">{'Actions_ColumnPageName'|translate}</label>
-                    <input type="text" id="image-tracker-action-name"/>
-                </div>
-            </td>
-            <td>
-                <div id="image-tracker-advanced-options" style="display:none">
-                    {* goal *}
-                    <div class="goal-picker tracking-option-section">
-                        <input class="section-toggler-link" type="checkbox" id="image-tracking-goal-check" data-section-id="image-goal-picker-extra"/>
-                        <label for="image-tracking-goal-check">{'CoreAdminHome_TrackAGoal'|translate}</label>
-
-                        <div style="display:none" id="image-goal-picker-extra">
-                            <select id="image-tracker-goal">
-                                <option value="">{'UserCountryMap_None'|translate}</option>
-                            </select>
-                            <span>{'CoreAdminHome_WithOptionalRevenue'|translate}</span>
-                            <span class="currency">{$defaultSiteRevenue|escape:'html'}</span>
-                            <input type="text" class="revenue" value=""/>
-                        </div>
-                    </div>
-                </div>
-            </td>
-        </tr>
-    </table>
-
-    <div id="image-link-output-section" width="560px">
-        <h3>{'CoreAdminHome_ImageTrackingLink'|translate}</h3><br/><br/>
-
-        <div id="image-tracking-link">
-            <textarea> </textarea>
-        </div>
-        <br/>
-    </div>
-
-</div>
-
-<h2>{'CoreAdminHome_ImportingServerLogs'|translate}</h2>
-
-<p>
-    {'CoreAdminHome_ImportingServerLogsDesc'|translate:'<a href="http://piwik.org/log-analytics/" target="_blank">':'</a>'}
-</p>
-
-{include file="CoreAdminHome/templates/footer.tpl"}
-
diff --git a/plugins/CoreAdminHome/templates/jsTrackingGenerator.twig b/plugins/CoreAdminHome/templates/jsTrackingGenerator.twig
new file mode 100644
index 0000000000..e9c6b27948
--- /dev/null
+++ b/plugins/CoreAdminHome/templates/jsTrackingGenerator.twig
@@ -0,0 +1,259 @@
+{% extends 'admin.twig' %}
+
+{% block head %}
+    {{ parent() }}
+    <link rel="stylesheet" href="plugins/CoreAdminHome/templates/jsTrackingGenerator.css"></link>
+    <script type="text/javascript" src="plugins/CoreAdminHome/templates/jsTrackingGenerator.js"></script>
+{% endblock %}
+
+{% block content %}
+<div id="js-tracking-generator-data" data-currencies="{{ currencySymbols|json_encode }}"></div>
+
+<h2>{{ 'CoreAdminHome_JavaScriptTracking'|translate }}</h2>
+
+<div id="js-code-options" class="adminTable">
+
+    <p>
+        {{ 'CoreAdminHome_JSTrackingIntro1'|translate }}
+        <br/><br/>
+        {{ 'CoreAdminHome_JSTrackingIntro2'|translate }} {{ 'CoreAdminHome_JSTrackingIntro3'|translate('<a href="http://piwik.org/integrate/" target="_blank">','</a>')|raw }}
+        <br/><br/>
+        {{ 'CoreAdminHome_JSTrackingIntro4'|translate('<a href="#image-tracking-link">','</a>')|raw }}
+        <br/><br/>
+        {{ 'CoreAdminHome_JSTrackingIntro5'|translate('<a target="_blank" href="http://piwik.org/docs/javascript-tracking/">','</a>')|raw }}
+    </p>
+
+    <div>
+        {# website #}
+        <label class="website-label"><strong>{{ 'General_Website'|translate }}</strong></label>
+        {% include "@CoreHome/sites_selection.twig" with {'siteName':defaultReportSiteName, 'idSite':idSite, 'showAllSitesItem':false, 'switchSiteOnSelect':false,
+        'siteSelectorId':"js-tracker-website", 'showSelectedSite':true} %}
+
+        <br/><br/><br/>
+    </div>
+
+    <table id="optional-js-tracking-options" class="adminTable" style='width:1024px'>
+        <tr>
+            <th>{{ 'General_Options'|translate }}</th>
+            <th>{{ 'Mobile_Advanced'|translate }}
+                <a href="#" class="section-toggler-link" data-section-id="javascript-advanced-options">({{ 'General_Show_js'|translate }})</a>
+            </th>
+        </tr>
+        <tr>
+            <td>
+                {# track across all subdomains #}
+                <div class="tracking-option-section">
+                    <input type="checkbox" id="javascript-tracking-all-subdomains"/>
+                    <label for="javascript-tracking-all-subdomains">{{ 'CoreAdminHome_JSTracking_MergeSubdomains'|translate }}
+                        <span class='current-site-name'>{{ defaultReportSiteName }}</span>
+                    </label>
+
+                    <div class="small-form-description">
+                        {{ 'CoreAdminHome_JSTracking_MergeSubdomainsDesc'|translate("x.<span class='current-site-host'>"~defaultReportSiteDomain~"</span>","y.<span class='current-site-host'>"~defaultReportSiteDomain~"</span>")|raw }}
+                    </div>
+                </div>
+
+                {# group page titles by site domain #}
+                <div class="tracking-option-section">
+                    <input type="checkbox" id="javascript-tracking-group-by-domain"/>
+                    <label for="javascript-tracking-group-by-domain">{{ 'CoreAdminHome_JSTracking_GroupPageTitlesByDomain'|translate }}</label>
+
+                    <div class="small-form-description">
+                        {{ 'CoreAdminHome_JSTracking_GroupPageTitlesByDomainDesc1'|translate("<span class='current-site-host'>" ~ defaultReportSiteDomain ~ "</span>")|raw }}
+                    </div>
+                </div>
+
+                {# track across all site aliases #}
+                <div class="tracking-option-section">
+                    <input type="checkbox" id="javascript-tracking-all-aliases"/>
+                    <label for="javascript-tracking-all-aliases">{{ 'CoreAdminHome_JSTracking_MergeAliases'|translate }}
+                        <span class='current-site-name'>{{ defaultReportSiteName }}</span>
+                    </label>
+
+                    <div class="small-form-description">
+                        {{ 'CoreAdminHome_JSTracking_MergeAliasesDesc'|translate("<span class='current-site-alias'>"~defaultReportSiteAlias~"</span>")|raw }}
+                    </div>
+                </div>
+
+            </td>
+            <td>
+                <div id="javascript-advanced-options" style="display:none">
+                    {# visitor custom variable #}
+                    <div class="custom-variable tracking-option-section" id="javascript-tracking-visitor-cv">
+                        <input class="section-toggler-link" type="checkbox" id="javascript-tracking-visitor-cv-check" data-section-id="js-visitor-cv-extra"/>
+                        <label for="javascript-tracking-visitor-cv-check">{{ 'CoreAdminHome_JSTracking_VisitorCustomVars'|translate }}</label>
+
+                        <div class="small-form-description">
+                            {{ 'CoreAdminHome_JSTracking_VisitorCustomVarsDesc'|translate }}
+                        </div>
+
+                        <table style="display:none" id="js-visitor-cv-extra">
+                            <tr>
+                                <td><strong>{{ 'General_Name'|translate }}</strong></td>
+                                <td><input type="textbox" class="custom-variable-name" placeholder="e.g. Type"/></td>
+                                <td><strong>{{ 'General_Value'|translate }}</strong></td>
+                                <td><input type="textbox" class="custom-variable-value" placeholder="e.g. Customer"/></td>
+                            </tr>
+                            <tr>
+                                <td colspan="4" style="text-align:right">
+                                    <a href="#" class="add-custom-variable">{{ 'General_Add'|translate }}</a>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+
+                    {# page view custom variable #}
+                    <div class="custom-variable tracking-option-section" id="javascript-tracking-page-cv">
+                        <input class="section-toggler-link" type="checkbox" id="javascript-tracking-page-cv-check" data-section-id="js-page-cv-extra"/>
+                        <label for="javascript-tracking-page-cv-check">{{ 'CoreAdminHome_JSTracking_PageCustomVars'|translate }}</label>
+
+                        <div class="small-form-description">
+                            {{ 'CoreAdminHome_JSTracking_PageCustomVarsDesc'|translate }}
+                        </div>
+
+                        <table style="display:none" id="js-page-cv-extra">
+                            <tr>
+                                <td><strong>{{ 'General_Name'|translate }}</strong></td>
+                                <td><input type="textbox" class="custom-variable-name" placeholder="e.g. Category"/></td>
+                                <td><strong>{{ 'General_Value'|translate }}</strong></td>
+                                <td><input type="textbox" class="custom-variable-value" placeholder="e.g. White Papers"/></td>
+                            </tr>
+                            <tr>
+                                <td colspan="4" style="text-align:right">
+                                    <a href="#" class="add-custom-variable">{{ 'General_Add'|translate }}</a>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+
+                    {# do not track support #}
+                    <div class="tracking-option-section">
+                        <input type="checkbox" id="javascript-tracking-do-not-track"/>
+                        <label for="javascript-tracking-do-not-track">{{ 'CoreAdminHome_JSTracking_EnableDoNotTrack'|translate }}</label>
+
+                        <div class="small-form-description">
+                            {{ 'CoreAdminHome_JSTracking_EnableDoNotTrackDesc'|translate }}
+                            {% if serverSideDoNotTrackEnabled %}
+                                <br/>
+                                <br/>
+                                {{ 'CoreAdminHome_JSTracking_EnableDoNotTrack_AlreadyEnabled'|translate }}
+                            {% endif %}
+                        </div>
+                    </div>
+
+                    {# custom campaign name/keyword query params #}
+                    <div class="tracking-option-section">
+                        <input class="section-toggler-link" type="checkbox" id="custom-campaign-query-params-check"
+                               data-section-id="js-campaign-query-param-extra"/>
+                        <label for="custom-campaign-query-params-check">{{ 'CoreAdminHome_JSTracking_CustomCampaignQueryParam'|translate }}</label>
+
+                        <div class="small-form-description">
+                            {{ 'CoreAdminHome_JSTracking_CustomCampaignQueryParamDesc'|translate('<a href="http://piwik.org/faq/general/#faq_119" target="_blank">','</a>')|raw }}
+                        </div>
+
+                        <table style="display:none" id="js-campaign-query-param-extra">
+                            <tr>
+                                <td><strong>{{ 'CoreAdminHome_JSTracking_CampaignNameParam'|translate }}</strong></td>
+                                <td><input type="text" id="custom-campaign-name-query-param"/></td>
+                            </tr>
+                            <tr>
+                                <td><strong>{{ 'CoreAdminHome_JSTracking_CampaignKwdParam'|translate }}</strong></td>
+                                <td><input type="text" id="custom-campaign-keyword-query-param"/></td>
+                            </tr>
+                        </table>
+                    </div>
+                </div>
+            </td>
+        </tr>
+    </table>
+
+</div>
+
+<div id="javascript-output-section">
+    <h3>{{ 'Installation_JsTag'|translate }}</h3>
+
+    <p class="form-description">{{ 'CoreAdminHome_JSTracking_CodeNote'|translate("&lt;/body&gt;")|raw }}</p>
+
+    <div id="javascript-text">
+        <textarea> </textarea>
+    </div>
+    <br/>
+</div>
+
+<h2 id="image-tracking-link">{{ 'CoreAdminHome_ImageTracking'|translate }}</h2>
+
+<div id="image-tracking-code-options" class="adminTable">
+
+    <p>
+        {{ 'CoreAdminHome_ImageTrackingIntro1'|translate }} {{ 'CoreAdminHome_ImageTrackingIntro2'|translate("<em>&lt;noscript&gt;&lt;/noscript&gt;</em>")|raw }}
+        <br/><br/>
+        {{ 'CoreAdminHome_ImageTrackingIntro3'|translate('<a href="http://piwik.org/docs/tracking-api/reference/" target="_blank">','</a>')|raw }}
+    </p>
+
+    <div>
+        {# website #}
+        <label class="website-label"><strong>{{ 'General_Website'|translate }}</strong></label>
+        {% include "@CoreHome/sites_selection.twig" with {
+            'siteName': defaultReportSiteName, 'idSite': idSite, 'showAllSitesItem': false,
+            'switchSiteOnSelect': false, 'showSelectedSite': true, 'siteSelectorId':"image-tracker-website"
+        } %}
+
+        <br/><br/><br/>
+    </div>
+
+    <table id="image-tracking-section" class="adminTable" style='width:1024px;'>
+        <tr>
+            <th>{{ 'General_Options'|translate }}</th>
+            <th>{{ 'Mobile_Advanced'|translate }}
+                <a href="#" class="section-toggler-link" data-section-id="image-tracker-advanced-options">
+                    ({{ 'General_Show_js'|translate }})
+                </a>
+            </th>
+        </tr>
+        <tr>
+            <td>
+                {# action_name #}
+                <div class="tracking-option-section">
+                    <label for="image-tracker-action-name">{{ 'Actions_ColumnPageName'|translate }}</label>
+                    <input type="text" id="image-tracker-action-name"/>
+                </div>
+            </td>
+            <td>
+                <div id="image-tracker-advanced-options" style="display:none">
+                    {# goal #}
+                    <div class="goal-picker tracking-option-section">
+                        <input class="section-toggler-link" type="checkbox" id="image-tracking-goal-check" data-section-id="image-goal-picker-extra"/>
+                        <label for="image-tracking-goal-check">{{ 'CoreAdminHome_TrackAGoal'|translate }}</label>
+
+                        <div style="display:none" id="image-goal-picker-extra">
+                            <select id="image-tracker-goal">
+                                <option value="">{{ 'UserCountryMap_None'|translate }}</option>
+                            </select>
+                            <span>{{ 'CoreAdminHome_WithOptionalRevenue'|translate }}</span>
+                            <span class="currency">{{ defaultSiteRevenue }}</span>
+                            <input type="text" class="revenue" value=""/>
+                        </div>
+                    </div>
+                </div>
+            </td>
+        </tr>
+    </table>
+
+    <div id="image-link-output-section" width="560px">
+        <h3>{{ 'CoreAdminHome_ImageTrackingLink'|translate }}</h3><br/><br/>
+
+        <div id="image-tracking-link">
+            <textarea> </textarea>
+        </div>
+        <br/>
+    </div>
+
+</div>
+
+<h2>{{ 'CoreAdminHome_ImportingServerLogs'|translate }}</h2>
+
+<p>
+    {{ 'CoreAdminHome_ImportingServerLogsDesc'|translate('<a href="http://piwik.org/log-analytics/" target="_blank">','</a>')|raw }}
+</p>
+
+{% endblock %}
diff --git a/plugins/Proxy/templates/exportImage.tpl b/plugins/Proxy/templates/exportImage.twig
similarity index 100%
rename from plugins/Proxy/templates/exportImage.tpl
rename to plugins/Proxy/templates/exportImage.twig
-- 
GitLab