diff options
author | cash <cash.costello@gmail.com> | 2011-07-02 19:51:22 -0400 |
---|---|---|
committer | cash <cash.costello@gmail.com> | 2011-07-02 19:51:22 -0400 |
commit | 21cda6136548a46670ca84fae76a046f57927115 (patch) | |
tree | 0eb4951feb773ff6df4fc781697bc99bfc4a5b1c /mod/developers | |
parent | c7e9b59e95b34c0d850e0b53c90a7b9f04ed4d2b (diff) | |
download | elgg-21cda6136548a46670ca84fae76a046f57927115.tar.gz elgg-21cda6136548a46670ca84fae76a046f57927115.tar.bz2 |
Fixes #3152 adds wrapping of views with comments
Diffstat (limited to 'mod/developers')
-rw-r--r-- | mod/developers/actions/developers/settings.php | 2 | ||||
-rw-r--r-- | mod/developers/languages/en.php | 2 | ||||
-rw-r--r-- | mod/developers/start.php | 42 | ||||
-rw-r--r-- | mod/developers/views/default/admin/developers/settings.php | 6 |
4 files changed, 49 insertions, 3 deletions
diff --git a/mod/developers/actions/developers/settings.php b/mod/developers/actions/developers/settings.php index 5a7f97cd3..f7caf859d 100644 --- a/mod/developers/actions/developers/settings.php +++ b/mod/developers/actions/developers/settings.php @@ -24,7 +24,7 @@ if ($debug) { unset_config('debug', $site->getGUID()); } -$simple_settings = array('display_errors', 'screen_log', 'show_strings'); +$simple_settings = array('display_errors', 'screen_log', 'show_strings', 'wrap_views'); foreach ($simple_settings as $setting) { elgg_set_plugin_setting($setting, get_input($setting), 'developers'); } diff --git a/mod/developers/languages/en.php b/mod/developers/languages/en.php index 827eb6ba3..a20241eff 100644 --- a/mod/developers/languages/en.php +++ b/mod/developers/languages/en.php @@ -25,6 +25,8 @@ $english = array( 'developers:help:screen_log' => "This displays elgg_log() and elgg_dump() output on the web page.", 'developers:label:show_strings' => "Show raw translation strings", 'developers:help:show_strings' => "This displays the translation strings used by elgg_echo().", + 'developers:label:wrap_views' => "Wrap views", + 'developers:help:wrap_views' => "This wraps almost every view with HTML comments. Useful for finding the view creating particular HTML.", 'developers:debug:off' => 'Off', 'developers:debug:error' => 'Error', diff --git a/mod/developers/start.php b/mod/developers/start.php index b864bca1e..27a14b336 100644 --- a/mod/developers/start.php +++ b/mod/developers/start.php @@ -43,8 +43,12 @@ function developers_process_settings() { if (elgg_get_plugin_setting('show_strings', 'developers') == 1) { // first and last in case a plugin registers a translation in an init method - register_elgg_event_handler('init', 'system', 'developers_clear_strings', 1000); - register_elgg_event_handler('init', 'system', 'developers_clear_strings', 1); + elgg_register_event_handler('init', 'system', 'developers_clear_strings', 1000); + elgg_register_event_handler('init', 'system', 'developers_clear_strings', 1); + } + + if (elgg_get_plugin_setting('wrap_views', 'developers') == 1) { + register_plugin_hook('view', 'all', 'developers_wrap_views'); } } @@ -68,6 +72,40 @@ function developers_clear_strings() { } /** + * Post-process a view to add wrapper comments to it + */ +function developers_wrap_views($hook, $type, $result, $params) { + if (elgg_get_viewtype() != "default") { + return; + } + + $excluded_bases = array('css', 'js', 'input', 'output', 'embed', 'icon',); + + $excluded_views = array( + 'page/default', + 'page/admin', + 'page/elements/head', + ); + + $view = $params['view']; + + $view_hierarchy = explode('/',$view); + if (in_array($view_hierarchy[0], $excluded_bases)) { + return; + } + + if (in_array($view, $excluded_views)) { + return; + } + + if ($result) { + $result = "<!-- developers:begin $view -->$result<!-- developers:end $view -->"; + } + + return $result; +} + +/** * Serve the theme preview pages * * @param array $page diff --git a/mod/developers/views/default/admin/developers/settings.php b/mod/developers/views/default/admin/developers/settings.php index a1ae6c186..d463955b6 100644 --- a/mod/developers/views/default/admin/developers/settings.php +++ b/mod/developers/views/default/admin/developers/settings.php @@ -44,6 +44,12 @@ $data = array( 'value' => 1, 'checked' => elgg_get_plugin_setting('show_strings', 'developers') == 1, ), + + 'wrap_views' => array( + 'type' => 'checkbox', + 'value' => 1, + 'checked' => elgg_get_plugin_setting('wrap_views', 'developers') == 1, + ), ); $form_vars = array('id' => 'developer-settings-form'); |