From c4a19a4e3eb4fe068146a33fa0cf958a14f7871b Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Sun, 27 Nov 2011 00:17:22 -0500 Subject: [ticket/10500] Fix phpbb_template_compile instantiation. The required $allow_php argument was missing. PHPBB3-10500 --- phpBB/develop/compile_template.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/develop') diff --git a/phpBB/develop/compile_template.php b/phpBB/develop/compile_template.php index e741e909d8..32d1d321f1 100644 --- a/phpBB/develop/compile_template.php +++ b/phpBB/develop/compile_template.php @@ -20,5 +20,5 @@ include($phpbb_root_path . 'includes/template_compile.'.$phpEx); $file = $argv[1]; -$compile = new phpbb_template_compile(); +$compile = new phpbb_template_compile(false); echo $compile->compile_file($file); -- cgit v1.2.1 From be74b5286cbf625109524c2e1a73c51e0dbccb30 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Fri, 3 Feb 2012 03:42:53 -0500 Subject: [ticket/10614] Add a script to enable, disable and view status of extensions. PHPBB3-10614 --- phpBB/develop/extensions.php | 135 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 phpBB/develop/extensions.php (limited to 'phpBB/develop') diff --git a/phpBB/develop/extensions.php b/phpBB/develop/extensions.php new file mode 100644 index 0000000000..87bdd21d1a --- /dev/null +++ b/phpBB/develop/extensions.php @@ -0,0 +1,135 @@ + +// +// Enables the specified extension. +// +// extensions.php disable +// +// Disables the specified extension. + +define('IN_PHPBB', 1); +define('ANONYMOUS', 1); +$phpEx = substr(strrchr(__FILE__, '.'), 1); +$phpbb_root_path = './../'; + +include($phpbb_root_path . 'common.'.$phpEx); + +function usage() +{ + echo "Please see comments in extensions.php for usage\n"; + exit(2); +} + +function list_extensions() +{ + global $db, $phpbb_root_path; + + $sql = "SELECT ext_name, ext_active from " . EXT_TABLE; + + $result = $db->sql_query($sql); + $extensions = array(); + while ($row = $db->sql_fetchrow($result)) + { + $extensions[$row['ext_name']]['active'] = (bool) $row['ext_active']; + if (file_exists($phpbb_root_path . 'ext/' . $row['ext_name'])) + { + $extensions[$row['ext_name']]['present'] = true; + } + else + { + $extensions[$row['ext_name']]['present'] = false; + } + } + + $iterator = new DirectoryIterator($phpbb_root_path . 'ext'); + foreach ($iterator as $file) + { + // ignore hidden files + // php refuses to subscript iterator objects + $file = "$file"; + if ($file[0] != '.') + { + if (!array_key_exists($file, $extensions)) + { + $extensions[$file] = array('active' => false, 'present' => true); + } + } + } + + ksort($extensions); + foreach ($extensions as $name => $ext) + { + $present = $ext['active'] ? 'P' : 'M'; + $active = $ext['active'] ? 'A' : 'I'; + printf("%-20s %s %s\n", $name, $present, $active); + } +} + +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 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; + + default: + usage(); +} -- cgit v1.2.1 From 9e15d83022ef3d02b2f17a064578b73e304bb26f Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Mon, 6 Feb 2012 16:49:50 +0100 Subject: [ticket/10614] Better usage output PHPBB3-10614 --- phpBB/develop/extensions.php | 50 +++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 29 deletions(-) (limited to 'phpBB/develop') diff --git a/phpBB/develop/extensions.php b/phpBB/develop/extensions.php index 87bdd21d1a..8f466caf0c 100644 --- a/phpBB/develop/extensions.php +++ b/phpBB/develop/extensions.php @@ -1,32 +1,10 @@ -// -// Enables the specified extension. -// -// extensions.php disable -// -// Disables the specified extension. +/** +* +* @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); @@ -37,7 +15,21 @@ include($phpbb_root_path . 'common.'.$phpEx); function usage() { - echo "Please see comments in extensions.php for usage\n"; + 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 " Next to each extension name are two flags:\n"; + echo "\n"; + echo " * P|M - present|missing: whether the extension exists in the filesystem\n"; + echo " * A|I - active|inactive: whether the extension is activated in the database\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"; exit(2); } -- cgit v1.2.1 From b222030ca78f8eb980baffeec793723978e75c3a Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Thu, 9 Feb 2012 01:02:00 +0100 Subject: [ticket/10614] Make script accessible from anywhere PHPBB3-10614 --- phpBB/develop/extensions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/develop') diff --git a/phpBB/develop/extensions.php b/phpBB/develop/extensions.php index 8f466caf0c..4e673459d2 100644 --- a/phpBB/develop/extensions.php +++ b/phpBB/develop/extensions.php @@ -9,7 +9,7 @@ define('IN_PHPBB', 1); define('ANONYMOUS', 1); $phpEx = substr(strrchr(__FILE__, '.'), 1); -$phpbb_root_path = './../'; +$phpbb_root_path = __DIR__.'/../'; include($phpbb_root_path . 'common.'.$phpEx); -- cgit v1.2.1 From 5ccd6b0c7a2952f01b636e7319ed8ae4be8faa77 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Thu, 9 Feb 2012 01:03:17 +0100 Subject: [ticket/10614] Tweak list output, show state, purge cache, handle missing exts PHPBB3-10614 --- phpBB/develop/extensions.php | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'phpBB/develop') diff --git a/phpBB/develop/extensions.php b/phpBB/develop/extensions.php index 4e673459d2..287957f52a 100644 --- a/phpBB/develop/extensions.php +++ b/phpBB/develop/extensions.php @@ -22,8 +22,9 @@ function usage() echo " Lists all extensions in the database and the filesystem.\n"; echo " Next to each extension name are two flags:\n"; echo "\n"; - echo " * P|M - present|missing: whether the extension exists in the filesystem\n"; - echo " * A|I - active|inactive: whether the extension is activated in the database\n"; + echo " * present|missing: whether the extension exists in the filesystem\n"; + echo " * active|inactive: whether the extension is activated in the database\n"; + echo " * state: the current persisted installation state\n"; echo "\n"; echo "enable NAME:\n"; echo " Enables the specified extension.\n"; @@ -35,15 +36,18 @@ function usage() function list_extensions() { - global $db, $phpbb_root_path; + global $db, $cache, $phpbb_root_path; - $sql = "SELECT ext_name, ext_active from " . EXT_TABLE; + $cache->destroy('_ext'); + + $sql = "SELECT ext_name, ext_active, ext_state from " . EXT_TABLE; $result = $db->sql_query($sql); $extensions = array(); while ($row = $db->sql_fetchrow($result)) { $extensions[$row['ext_name']]['active'] = (bool) $row['ext_active']; + $extensions[$row['ext_name']]['state'] = (bool) $row['ext_state']; if (file_exists($phpbb_root_path . 'ext/' . $row['ext_name'])) { $extensions[$row['ext_name']]['present'] = true; @@ -64,7 +68,7 @@ function list_extensions() { if (!array_key_exists($file, $extensions)) { - $extensions[$file] = array('active' => false, 'present' => true); + $extensions[$file] = array('active' => false, 'present' => true, 'state' => false); } } } @@ -72,22 +76,27 @@ function list_extensions() ksort($extensions); foreach ($extensions as $name => $ext) { - $present = $ext['active'] ? 'P' : 'M'; - $active = $ext['active'] ? 'A' : 'I'; - printf("%-20s %s %s\n", $name, $present, $active); + $present = $ext['present'] ? 'present' : 'missing'; + $active = $ext['active'] ? 'active' : 'inactive'; + $state = json_encode(unserialize($ext['state'])); + printf("%-20s %-7s %-7s %-20s\n", $name, $present, $active, $state); } } function enable_extension($name) { - global $phpbb_extension_manager; + global $phpbb_extension_manager, $cache; + + $cache->destroy('_ext'); $phpbb_extension_manager->enable($name); } function disable_extension($name) { - global $phpbb_extension_manager; + global $phpbb_extension_manager, $cache; + + $cache->destroy('_ext'); $phpbb_extension_manager->disable($name); } -- cgit v1.2.1 From fb83a5f6c07fe1d3755d868b93bb632802ab7fb7 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Thu, 9 Feb 2012 01:03:51 +0100 Subject: [ticket/10614] Add purge command PHPBB3-10614 --- phpBB/develop/extensions.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'phpBB/develop') diff --git a/phpBB/develop/extensions.php b/phpBB/develop/extensions.php index 287957f52a..81bfecc45f 100644 --- a/phpBB/develop/extensions.php +++ b/phpBB/develop/extensions.php @@ -31,6 +31,9 @@ function usage() 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); } @@ -101,6 +104,15 @@ function disable_extension($name) $phpbb_extension_manager->disable($name); } +function purge_extension($name) +{ + global $phpbb_extension_manager, $cache; + + $cache->destroy('_ext'); + + $phpbb_extension_manager->purge($name); +} + function validate_argument_count($count) { global $argv; @@ -131,6 +143,11 @@ switch ($action) disable_extension($argv[2]); break; + case 'purge': + validate_argument_count(2); + purge_extension($argv[2]); + break; + default: usage(); } -- cgit v1.2.1 From 36728d3414e513f0b4aede75d53316e208e5eceb Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Thu, 9 Feb 2012 01:36:06 +0100 Subject: [ticket/10614] Refactor list command to use manager API PHPBB3-10614 --- phpBB/develop/extensions.php | 74 +++++++++++++------------------------------- 1 file changed, 22 insertions(+), 52 deletions(-) (limited to 'phpBB/develop') diff --git a/phpBB/develop/extensions.php b/phpBB/develop/extensions.php index 81bfecc45f..4a5b0c7643 100644 --- a/phpBB/develop/extensions.php +++ b/phpBB/develop/extensions.php @@ -20,11 +20,6 @@ function usage() echo "\n"; echo "list:\n"; echo " Lists all extensions in the database and the filesystem.\n"; - echo " Next to each extension name are two flags:\n"; - echo "\n"; - echo " * present|missing: whether the extension exists in the filesystem\n"; - echo " * active|inactive: whether the extension is activated in the database\n"; - echo " * state: the current persisted installation state\n"; echo "\n"; echo "enable NAME:\n"; echo " Enables the specified extension.\n"; @@ -39,76 +34,51 @@ function usage() function list_extensions() { - global $db, $cache, $phpbb_root_path; + global $phpbb_extension_manager; - $cache->destroy('_ext'); + $phpbb_extension_manager->load_extensions(); - $sql = "SELECT ext_name, ext_active, ext_state from " . EXT_TABLE; + echo "Enabled:\n"; + $enabled = array_keys($phpbb_extension_manager->all_enabled()); + print_extensions($enabled); + echo "\n"; - $result = $db->sql_query($sql); - $extensions = array(); - while ($row = $db->sql_fetchrow($result)) - { - $extensions[$row['ext_name']]['active'] = (bool) $row['ext_active']; - $extensions[$row['ext_name']]['state'] = (bool) $row['ext_state']; - if (file_exists($phpbb_root_path . 'ext/' . $row['ext_name'])) - { - $extensions[$row['ext_name']]['present'] = true; - } - else - { - $extensions[$row['ext_name']]['present'] = false; - } - } + echo "Disabled:\n"; + $disabled = array_keys($phpbb_extension_manager->all_disabled()); + print_extensions($disabled); + echo "\n"; - $iterator = new DirectoryIterator($phpbb_root_path . 'ext'); - foreach ($iterator as $file) - { - // ignore hidden files - // php refuses to subscript iterator objects - $file = "$file"; - if ($file[0] != '.') - { - if (!array_key_exists($file, $extensions)) - { - $extensions[$file] = array('active' => false, 'present' => true, 'state' => false); - } - } - } + echo "Not installed:\n"; + $all = array_keys($phpbb_extension_manager->all_available()); + $purged = array_diff($all, $enabled, $disabled); + print_extensions($purged); +} - ksort($extensions); - foreach ($extensions as $name => $ext) +function print_extensions($exts) +{ + foreach ($exts as $ext) { - $present = $ext['present'] ? 'present' : 'missing'; - $active = $ext['active'] ? 'active' : 'inactive'; - $state = json_encode(unserialize($ext['state'])); - printf("%-20s %-7s %-7s %-20s\n", $name, $present, $active, $state); + echo "- $ext\n"; } } function enable_extension($name) { - global $phpbb_extension_manager, $cache; - - $cache->destroy('_ext'); + global $phpbb_extension_manager; $phpbb_extension_manager->enable($name); } function disable_extension($name) { - global $phpbb_extension_manager, $cache; - - $cache->destroy('_ext'); + global $phpbb_extension_manager; $phpbb_extension_manager->disable($name); } function purge_extension($name) { - global $phpbb_extension_manager, $cache; - - $cache->destroy('_ext'); + global $phpbb_extension_manager; $phpbb_extension_manager->purge($name); } -- cgit v1.2.1 From 87914d2788b54a5e59f54431a4745e62d42de907 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Sat, 11 Feb 2012 17:31:22 -0500 Subject: [ticket/10614] Change not installed heading to available. "Not installed" implies that extensions listed there can be installed, but the operation is called enable. Reduce the confusion by using "available" for the heading, this matches extension manager code. PHPBB3-10614 --- phpBB/develop/extensions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/develop') diff --git a/phpBB/develop/extensions.php b/phpBB/develop/extensions.php index 4a5b0c7643..2f7c3d1167 100644 --- a/phpBB/develop/extensions.php +++ b/phpBB/develop/extensions.php @@ -48,7 +48,7 @@ function list_extensions() print_extensions($disabled); echo "\n"; - echo "Not installed:\n"; + echo "Available:\n"; $all = array_keys($phpbb_extension_manager->all_available()); $purged = array_diff($all, $enabled, $disabled); print_extensions($purged); -- cgit v1.2.1