Skip to content

Commit

Permalink
* Converting CLI templates to twig
Browse files Browse the repository at this point in the history
* deprecating View::factory, simplify constructor
Refs #4019
  • Loading branch information
mattab committed Jun 28, 2013
1 parent 2ced99a commit a62f1c1
Show file tree
Hide file tree
Showing 10 changed files with 120 additions and 144 deletions.
2 changes: 2 additions & 0 deletions core/Twig.php
Expand Up @@ -52,6 +52,8 @@ public function __construct($theme = self::DEFAULT_THEME)
$this->addFilter_sumTime();
$this->addFilter_money();
$this->addFilter_truncate();
$this->twig->addFilter( new Twig_SimpleFilter('implode', 'implode'));
$this->twig->addFilter( new Twig_SimpleFilter('count', 'count'));
/*
$this->load_filter('output', 'cachebuster');
$this->load_filter('output', 'trimwhitespace');*/
Expand Down
31 changes: 6 additions & 25 deletions core/View.php
Expand Up @@ -34,16 +34,16 @@ class Piwik_View implements Piwik_View_Interface
private $contentType = 'text/html; charset=utf-8';
private $xFrameOptions = null;

public function __construct($templateFile, $smConf = array(), $filter = true)
public function __construct($templateFile)
{
if(substr($templateFile, -5) !== '.twig') {
$templateFile .= '.twig';
$templateExt = '.twig';
if(substr($templateFile, -strlen($templateExt)) !== $templateExt) {
$templateFile .= $templateExt;
}
$this->template = $templateFile;

$this->initializeTwig();

// global value accessible to all templates: the piwik base URL for the current request
$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());
Expand Down Expand Up @@ -221,29 +221,10 @@ static public function singleReport($title, $reportHtml, $fetch = false)
}

/**
* View factory method
*
* @param string $templateName Template name (e.g., 'index')
* @throws Exception
* @return Piwik_View
* @deprecated
*/
static public function factory($templateName = null)
{
// get caller
$bt = @debug_backtrace();
if ($bt === null || !isset($bt[0])) {
throw new Exception("View factory cannot be invoked");
}
$path = basename(dirname($bt[0]['file']));

// TODO fixmea
if (Piwik_Common::isPhpCliMode()) {
$templateFile = $path . '/templates/cli_' . $templateName . '.tpl';
if (file_exists(PIWIK_INCLUDE_PATH . '/plugins/' . $templateFile)) {
return new Piwik_View($templateFile, array(), false);
}
}
$templateFile = $path . '/templates/' . $templateName . '.twig';
return new Piwik_View($templateName . '.twig');
throw new Exception("Piwik_View::factory is deprecated. Use 'new Piwik_View(\$templateFile)' instead.");
}
}
31 changes: 16 additions & 15 deletions plugins/CoreUpdater/Controller.php
Expand Up @@ -234,34 +234,35 @@ protected function runUpdaterAndExit()

Piwik::setMaxExecutionTime(0);

$cli = Piwik_Common::isPhpCliMode() ? '_cli' : '';
$welcomeTemplate = '@CoreUpdater/runUpdaterAndExit_welcome' . $cli;
$doneTemplate = '@CoreUpdater/runUpdaterAndExit_done' . $cli;
$viewWelcome = new Piwik_View($welcomeTemplate);
$viewDone = new Piwik_View($doneTemplate);

$sqlQueries = $updater->getSqlQueriesToExecute();
if (Piwik_Common::isPhpCliMode()) {
$view = new Piwik_View('@CoreUpdater/runUpdaterAndExit_cli_welcome', array(), false);
$this->doWelcomeUpdates($view, $componentsWithUpdateFile);
echo $view->render();
$this->doWelcomeUpdates($viewWelcome, $componentsWithUpdateFile);
echo $viewWelcome->render();

if (!$this->coreError && Piwik::getModule() == 'CoreUpdater') {
$view = new Piwik_View('@CoreUpdater/runUpdaterAndExit_cli_done', array(), false);
$this->doExecuteUpdates($view, $updater, $componentsWithUpdateFile);
echo $view->render();
$this->doExecuteUpdates($viewDone, $updater, $componentsWithUpdateFile);
echo $viewDone->render();
}
} else {
if (Piwik_Common::getRequestVar('updateCorePlugins', 0, 'integer') == 1) {
$this->warningMessages = array();
$view = new Piwik_View('@CoreUpdater/runUpdaterAndExit_done');
$this->doExecuteUpdates($view, $updater, $componentsWithUpdateFile);
$this->doExecuteUpdates($viewDone, $updater, $componentsWithUpdateFile);

if (count($sqlQueries) == 1 && !$this->coreError) {
Piwik::redirectToModule('CoreHome');
}

echo $view->render();
echo $viewDone->render();
} else {
$view = new Piwik_View('@CoreUpdater/runUpdaterAndExit_welcome');
$view->queries = $sqlQueries;
$view->isMajor = $updater->hasMajorDbUpdate();
$this->doWelcomeUpdates($view, $componentsWithUpdateFile);
echo $view->render();
$viewWelcome->queries = $sqlQueries;
$viewWelcome->isMajor = $updater->hasMajorDbUpdate();
$this->doWelcomeUpdates($viewWelcome, $componentsWithUpdateFile);
echo $viewWelcome->render();
}
}
exit;
Expand Down
2 changes: 1 addition & 1 deletion plugins/CoreUpdater/CoreUpdater.php
Expand Up @@ -34,7 +34,7 @@ function getListHooksRegistered()
return $hooks;
}

public static function getComponentUpdates($updater)
public static function getComponentUpdates(Piwik_Updater $updater)
{
$updater->addComponentToCheck('core', Piwik_Version::VERSION);
$plugins = Piwik_PluginsManager::getInstance()->getLoadedPlugins();
Expand Down
64 changes: 0 additions & 64 deletions plugins/CoreUpdater/templates/runUpdaterAndExit_cli_done.tpl

This file was deleted.

38 changes: 0 additions & 38 deletions plugins/CoreUpdater/templates/runUpdaterAndExit_cli_welcome.tpl

This file was deleted.

2 changes: 1 addition & 1 deletion plugins/CoreUpdater/templates/runUpdaterAndExit_done.twig
Expand Up @@ -24,7 +24,7 @@
<ul>
<li>{{ 'CoreUpdater_ErrorDIYHelp_1'|translate }}</li>
<li>{{ 'CoreUpdater_ErrorDIYHelp_2'|translate }}</li>
<li>{{ 'CoreUpdater_ErrorDIYHelp_3'|translate }}</li>
<li>{{ 'CoreUpdater_ErrorDIYHelp_3'|translate }} <a href='https://piwik.org/faq/how-to-update/#faq_179' target='_blank'>(see FAQ)</a></li>
<li>{{ 'CoreUpdater_ErrorDIYHelp_4'|translate }}</li>
<li>{{ 'CoreUpdater_ErrorDIYHelp_5'|translate }}</li>
</ul>
Expand Down
55 changes: 55 additions & 0 deletions plugins/CoreUpdater/templates/runUpdaterAndExit_done_cli.twig
@@ -0,0 +1,55 @@
{% autoescape false %}
{% set helpMessage %}{{- 'CoreUpdater_HelpMessageContent'|translate('[',']',"\n\n *") }}{% endset %}
{% if coreError %}
[X] {{ 'CoreUpdater_CriticalErrorDuringTheUpgradeProcess'|translate }}

{% for message in errorMessages %}
* {{ message }}
{% endfor %}

{{ 'CoreUpdater_HelpMessageIntroductionWhenError'|translate }}

* {{ helpMessage }}

{{ 'CoreUpdater_ErrorDIYHelp'|translate }}
* {{ 'CoreUpdater_ErrorDIYHelp_1'|translate }}
* {{ 'CoreUpdater_ErrorDIYHelp_2'|translate }}
* {{ 'CoreUpdater_ErrorDIYHelp_3'|translate }}
* {{ 'CoreUpdater_ErrorDIYHelp_4'|translate }}
* {{ 'CoreUpdater_ErrorDIYHelp_5'|translate }}

{% else %}
{% if warningMessages|count > 0 %}
[!] {{ 'CoreUpdater_WarningMessages'|translate }}

{% for message in warningMessages -%}
* {{ message }}
{%- endfor %}
{%- endif %}
{% if errorMessages|count > 0 -%}

[X] {{ 'CoreUpdater_ErrorDuringPluginsUpdates'|translate }}

{% for message in errorMessages %}
* {{ message }}
{% endfor %}

{% if deactivatedPlugins|count > 0 -%}
{% set listOfDeactivatedPlugins %}{{ deactivatedPlugins|implode(', ') }}{% endset %}

[!] {{ 'CoreUpdater_WeAutomaticallyDeactivatedTheFollowingPlugins'|translate(listOfDeactivatedPlugins) }}
{% endif %}

{% endif %}

{% if errorMessages|count > 0 or warningMessages|count > 0 %}
{{ 'CoreUpdater_HelpMessageIntroductionWhenWarning'|translate }}

* {{ helpMessage }}
{% else %}
{{ 'CoreUpdater_PiwikHasBeenSuccessfullyUpgraded'|translate }}
{% endif %}

{% endif %}
{% endautoescape %}

2 changes: 2 additions & 0 deletions plugins/CoreUpdater/templates/runUpdaterAndExit_welcome.twig
@@ -1,6 +1,7 @@
{% extends '@CoreUpdater/layout.twig' %}

{% block content %}
{% spaceless %}
<span style="float:right">{{ postEvent('template_topBar')|raw }}</span>
{% set helpMessage %}
{{ 'CoreUpdater_HelpMessageContent'|translate('<a target="_blank" href="?module=Proxy&action=redirect&url=http://piwik.org/faq/">','</a>','</li><li>')|raw }}
Expand Down Expand Up @@ -125,4 +126,5 @@
});
});
</script>
{% endspaceless %}
{% endblock %}
37 changes: 37 additions & 0 deletions plugins/CoreUpdater/templates/runUpdaterAndExit_welcome_cli.twig
@@ -0,0 +1,37 @@
{% autoescape false %}
{% set helpMessage %}
{{- 'CoreUpdater_HelpMessageContent'|translate('[',']','\n\n *') }}
{% endset %}

*** {{ 'CoreUpdater_UpdateTitle'|translate }} ***
{% if coreError %}

[X] {{ 'CoreUpdater_CriticalErrorDuringTheUpgradeProcess'|translate }}

{% for message in errorMessages %}
{{- message }}
{% endfor %}

{{ 'CoreUpdater_HelpMessageIntroductionWhenError'|translate }}

* {{ helpMessage }}

{% elseif coreToUpdate or pluginNamesToUpdate|count > 0 %}

{{ 'CoreUpdater_DatabaseUpgradeRequired'|translate }}

{{ 'CoreUpdater_YourDatabaseIsOutOfDate'|translate }}

{% if coreToUpdate %}
{{ 'CoreUpdater_PiwikWillBeUpgradedFromVersionXToVersionY'|translate(current_piwik_version, new_piwik_version) }}
{% endif %}

{% if pluginNamesToUpdate|count > 0 %}
{%- set listOfPlugins %}{{ pluginNamesToUpdate|implode(', ') }}{% endset %}
{{ 'CoreUpdater_TheFollowingPluginsWillBeUpgradedX'|translate( listOfPlugins) }}
{% endif %}

{{ 'CoreUpdater_TheUpgradeProcessMayTakeAWhilePleaseBePatient'|translate }}
{% endif %}
{% endautoescape %}

0 comments on commit a62f1c1

Please sign in to comment.