Merge branch 'develop' into ticket/10380

* develop:
  [ticket/10652] Fixing typo in template class
  [ticket/10645] Missing CSS for checkboxes
  [ticket/10614] Change not installed heading to available.
  [ticket/10614] Unbreak all_available on extension manager.
  [ticket/10614] Check if cache exists before destroying it
  [ticket/10614] Remove ext manager exceptions for now
  [ticket/10614] Refactor list command to use manager API
  [ticket/10614] Add purge command
  [ticket/10614] Tweak list output, show state, purge cache, handle missing exts
  [ticket/10614] Make script accessible from anywhere
  [ticket/10614] Better usage output
  [ticket/10614] Add a script to enable, disable and view status of extensions.
  [ticket/10500] Use correct class name in @uses.
  [ticket/10500] Fix phpbb_template_compile instantiation.
This commit is contained in:
Igor Wiedler 2012-02-17 13:51:31 +01:00
commit fa5f094197
5 changed files with 156 additions and 7 deletions

View file

@ -1007,11 +1007,11 @@ fieldset.submit-buttons legend {
/* Input field styles /* Input field styles
---------------------------------------- */ ---------------------------------------- */
input.radio, input.permissions-checkbox { input.radio, input.checkbox, input.permissions-checkbox {
width: auto !important; width: auto !important;
background-color: transparent; background-color: transparent;
border: none; border: none;
cursor: default; cursor: pointer;
} }
input.full, input.full,

View file

@ -20,5 +20,5 @@ include($phpbb_root_path . 'includes/template_compile.'.$phpEx);
$file = $argv[1]; $file = $argv[1];
$compile = new phpbb_template_compile(); $compile = new phpbb_template_compile(false);
echo $compile->compile_file($file); echo $compile->compile_file($file);

View file

@ -0,0 +1,123 @@
<?php
/**
*
* @copyright (c) 2012 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
define('IN_PHPBB', 1);
define('ANONYMOUS', 1);
$phpEx = substr(strrchr(__FILE__, '.'), 1);
$phpbb_root_path = __DIR__.'/../';
include($phpbb_root_path . 'common.'.$phpEx);
function usage()
{
echo "Usage: extensions.php COMMAND [OPTION]...\n";
echo "Console extension manager.\n";
echo "\n";
echo "list:\n";
echo " Lists all extensions in the database and the filesystem.\n";
echo "\n";
echo "enable NAME:\n";
echo " Enables the specified extension.\n";
echo "\n";
echo "disable NAME:\n";
echo " Disables the specified extension.\n";
echo "\n";
echo "purge NAME:\n";
echo " Purges the specified extension.\n";
exit(2);
}
function list_extensions()
{
global $phpbb_extension_manager;
$phpbb_extension_manager->load_extensions();
echo "Enabled:\n";
$enabled = array_keys($phpbb_extension_manager->all_enabled());
print_extensions($enabled);
echo "\n";
echo "Disabled:\n";
$disabled = array_keys($phpbb_extension_manager->all_disabled());
print_extensions($disabled);
echo "\n";
echo "Available:\n";
$all = array_keys($phpbb_extension_manager->all_available());
$purged = array_diff($all, $enabled, $disabled);
print_extensions($purged);
}
function print_extensions($exts)
{
foreach ($exts as $ext)
{
echo "- $ext\n";
}
}
function enable_extension($name)
{
global $phpbb_extension_manager;
$phpbb_extension_manager->enable($name);
}
function disable_extension($name)
{
global $phpbb_extension_manager;
$phpbb_extension_manager->disable($name);
}
function purge_extension($name)
{
global $phpbb_extension_manager;
$phpbb_extension_manager->purge($name);
}
function validate_argument_count($count)
{
global $argv;
if (count($argv) <= $count)
{
usage();
}
}
validate_argument_count(1);
$action = $argv[1];
switch ($action)
{
case 'list':
list_extensions();
break;
case 'enable':
validate_argument_count(2);
enable_extension($argv[2]);
break;
case 'disable':
validate_argument_count(2);
disable_extension($argv[2]);
break;
case 'purge':
validate_argument_count(2);
purge_extension($argv[2]);
break;
default:
usage();
}

View file

@ -61,7 +61,7 @@ class phpbb_extension_manager
* *
* @return null * @return null
*/ */
protected function load_extensions() public function load_extensions()
{ {
$sql = 'SELECT * $sql = 'SELECT *
FROM ' . $this->extension_table; FROM ' . $this->extension_table;
@ -167,6 +167,11 @@ class phpbb_extension_manager
$this->db->sql_query($sql); $this->db->sql_query($sql);
} }
if ($this->cache)
{
$this->cache->destroy($this->cache_name);
}
return !$active; return !$active;
} }
@ -219,6 +224,11 @@ class phpbb_extension_manager
WHERE ext_name = '" . $this->db->sql_escape($name) . "'"; WHERE ext_name = '" . $this->db->sql_escape($name) . "'";
$this->db->sql_query($sql); $this->db->sql_query($sql);
if ($this->cache)
{
$this->cache->destroy($this->cache_name);
}
return true; return true;
} }
@ -234,6 +244,11 @@ class phpbb_extension_manager
WHERE ext_name = '" . $this->db->sql_escape($name) . "'"; WHERE ext_name = '" . $this->db->sql_escape($name) . "'";
$this->db->sql_query($sql); $this->db->sql_query($sql);
if ($this->cache)
{
$this->cache->destroy($this->cache_name);
}
return false; return false;
} }
@ -292,6 +307,11 @@ class phpbb_extension_manager
WHERE ext_name = '" . $this->db->sql_escape($name) . "'"; WHERE ext_name = '" . $this->db->sql_escape($name) . "'";
$this->db->sql_query($sql); $this->db->sql_query($sql);
if ($this->cache)
{
$this->cache->destroy($this->cache_name);
}
return true; return true;
} }
@ -301,6 +321,11 @@ class phpbb_extension_manager
WHERE ext_name = '" . $this->db->sql_escape($name) . "'"; WHERE ext_name = '" . $this->db->sql_escape($name) . "'";
$this->db->sql_query($sql); $this->db->sql_query($sql);
if ($this->cache)
{
$this->cache->destroy($this->cache_name);
}
return false; return false;
} }
@ -329,7 +354,8 @@ class phpbb_extension_manager
$available = array(); $available = array();
$iterator = new RecursiveIteratorIterator( $iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($this->phpbb_root_path . 'ext/')); new RecursiveDirectoryIterator($this->phpbb_root_path . 'ext/'),
RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $file_info) foreach ($iterator as $file_info)
{ {
if ($file_info->isFile() && $file_info->getFilename() == 'ext' . $this->phpEx) if ($file_info->isFile() && $file_info->getFilename() == 'ext' . $this->phpEx)

View file

@ -128,7 +128,7 @@ class phpbb_template
{ {
$templates = array($template_name => $template_path); $templates = array($template_name => $template_path);
if ($fallback_template_path !== false) if ($fallback_template_name !== false)
{ {
$templates[$fallback_template_name] = $fallback_template_path; $templates[$fallback_template_name] = $fallback_template_path;
} }
@ -306,7 +306,7 @@ class phpbb_template
* *
* @param string $handle Handle of the template to load * @param string $handle Handle of the template to load
* @return phpbb_template_renderer Template renderer object, or null on failure * @return phpbb_template_renderer Template renderer object, or null on failure
* @uses template_compile is used to compile template source * @uses phpbb_template_compile is used to compile template source
*/ */
private function _tpl_load($handle) private function _tpl_load($handle)
{ {