]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #3009 a bare bones developer tools settings
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Tue, 15 Mar 2011 02:07:22 +0000 (02:07 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Tue, 15 Mar 2011 02:07:22 +0000 (02:07 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8713 36083f99-b078-4883-b0ff-0f9b5a30f544

mod/developers/actions/developers/settings.php
mod/developers/languages/en.php
mod/developers/manifest.xml
mod/developers/start.php
mod/developers/views/default/admin/developers/settings.php
mod/developers/views/default/forms/developers/settings.php

index 56509282fe90763deb0ef63ff99fca6433a80f81..d8be3486635b7cd76f190285eb75c5506d6a7c08 100644 (file)
@@ -3,4 +3,27 @@
  * Save the developer settings
  */
 
+$site = elgg_get_site_entity();
+
+if (get_input('simple_cache')) {
+       elgg_enable_simplecache();
+} else {
+       elgg_disable_simplecache();
+}
+
+if (get_input('view_path_cache')) {
+       elgg_enable_filepath_cache();
+} else {
+       elgg_disable_filepath_cache();
+}
+
+elgg_set_plugin_setting('display_errors', get_input('display_errors'), 'developers');
+
+$debug = get_input('debug_level');
+if ($debug) {
+       set_config('debug', $debug, $site->getGUID());
+} else {
+       unset_config('debug', $site->getGUID());
+}
+
 forward(REFERER);
index 8bc1f596a4dcadf93dddb9ce63acf9c8edd3c77d..41bdcdddb7181249d53b9c1b629b2d4e126c53c6 100644 (file)
@@ -12,13 +12,18 @@ $english = array(
 
        // settings
        'developers:label:simple_cache' => 'Use simple cache',
-       'developers:help:simple_cache' => 'Turn off this file cache when developing',
-       'developers:label:views_cache' => 'Use view path cache',
-       'developers:help:views_cache' => 'Turn this off when developing',
+       'developers:help:simple_cache' => 'Turn off the file cache when developing. Otherwise, changes to your views (including css) will be ignored.',
+       'developers:label:view_path_cache' => 'Use view path cache',
+       'developers:help:view_path_cache' => 'Turn this off when developing. Otherwise, new views in your plugins will not be registered.',
        'developers:label:debug_level' => "Trace level",
-       'developers:help:debug_level' => "",
-       'developers:label:' => '',
-       'developers:help:' => '',
+       'developers:help:debug_level' => "This controls the amount of information logged. See elgg_log() for more information.",
+       'developers:label:display_errors' => 'Display fatal PHP errors',
+       'developers:help:display_errors' => "By default, Elgg's .htaccess file supresses the display of fatal errors.",
+
+       'developers:debug:off' => 'Off',
+       'developers:debug:error' => 'Error',
+       'developers:debug:warning' => 'Warning',
+       'developers:debug:notice' => 'Notice',
 
        // theme preview
        'theme_preview:general' => 'General',
index ae1059e59c6e048062b38de793113ca92d987aef..4a7ed82bd1406ef5eaa24e62a501af106ee68867 100644 (file)
@@ -5,8 +5,8 @@
        <version>1.0</version>
        <category>bundled</category>
        <category>development</category>
-       <blurb>Developer tools</blurb>
-       <description>A set of tools for writing plugins and themes.</description>
+       <blurb>Developer tools for Elgg</blurb>
+       <description>A set of tools for writing plugins and themes. It is recommended that you have this plugin at the top of the plugin list.</description>
        <website>http://www.elgg.org/</website>
        <copyright>See COPYRIGHT.txt</copyright>
        <license>GNU Public License version 2</license>
index 3c2f6bd5fcc010b330afc0fdf947458f55d4c3ee..dc8e6f66eb050ac0fa10431bfafdc29a398669af 100644 (file)
@@ -3,6 +3,9 @@
  * Elgg developer tools
  */
 
+// we want to run this as soon as possible - other plugins should not need to do this
+developers_process_settings();
+
 elgg_register_event_handler('init', 'system', 'developers_init');
 
 function developers_init() {
@@ -16,6 +19,14 @@ function developers_init() {
        elgg_register_action('developers/settings', "$action_base/settings.php", 'admin');
 }
 
+function developers_process_settings() {
+       if (elgg_get_plugin_setting('display_errors', 'developers') == 1) {
+               ini_set('display_errors', 1);
+       } else {
+               ini_set('display_errors', 0);
+       }
+}
+
 function developers_setup_menu() {
        if (elgg_in_context('admin')) {
                elgg_register_admin_menu_item('develop', 'settings', 'developers');
index 990d772631dd5c4bfbd45919399e8b9945342718..705ad00c6e0d312a477703fa4d27c5a3f298044c 100644 (file)
@@ -3,5 +3,44 @@
  * Developer settings
  */
 
+$sections = array(
+       'simple_cache' => 'checkbox',
+       'view_path_cache' => 'checkbox',
+       'display_errors' => 'checkbox',
+       'debug_level' => 'pulldown',
+);
+
+$data = array(
+       'simple_cache' => array(
+               'type' => 'checkbox',
+               'value' => 1,
+               'checked' => elgg_get_config('simplecache_enabled') == 1,
+       ),
+
+       'view_path_cache' => array(
+               'type' => 'checkbox',
+               'value' => 1,
+               'checked' => elgg_get_config('viewpath_cache_enabled') == 1,
+       ),
+
+       'display_errors' => array(
+               'type' => 'checkbox',
+               'value' => 1,
+               'checked' => elgg_get_plugin_setting('display_errors', 'developers') == 1,
+       ),
+
+       'debug_level' => array(
+               'type' => 'dropdown',
+               'value' => elgg_get_config('debug'),
+               'options_values' => array(
+                       false => elgg_echo('developers:debug:off'),
+                       'ERROR' => elgg_echo('developers:debug:error'),
+                       'WARNING' => elgg_echo('developers:debug:warning'),
+                       'NOTICE' => elgg_echo('developers:debug:notice'),
+               ),
+       ),
+);
+
 $form_vars = array('id' => 'developer-settings-form');
-echo elgg_view_form('developers/settings', $form_vars, array());
\ No newline at end of file
+$body_vars = array('data' => $data);
+echo elgg_view_form('developers/settings', $form_vars, $body_vars);
index 2a3825500c59723794f243a464dc67860dbd2210..371a2de2b95e4f3af0c0ff58ab1b8fde968daf75 100644 (file)
@@ -2,40 +2,33 @@
 /**
  * Settings form body
  *
- * @uses $vars['values']  Array of current values
- * @uses $vars['options'] Array of possible options
+ * @uses $vars['values']
  */
 
 $form_body = '<p>' . elgg_echo('elgg_dev_tools:settings:explanation') . '</p>';
 
-$sections = array(
-       'simple_cache' => 'checkbox',
-       'views_cache' => 'checkbox',
-       //'display_errors' => 'checkbox',
-       'debug_level' => 'pulldown',
-);
-
-foreach ($sections as $name => $type) {
-       echo '<p>';
-       if ($type == 'checkbox') {
-               echo elgg_view("input/$type", array(
-                       'internalname' => $name,
-                       'value' => $vars['settings'][$name],
+foreach ($vars['data'] as $name => $info) {
+       echo '<div>';
+       if ($info['type'] == 'checkbox') {
+               echo elgg_view("input/checkbox", array(
+                       'name' => $name,
+                       'value' => $info['value'],
+                       'checked' => $info['checked'],
                ));
                echo '<label>' . elgg_echo("developers:label:$name") . '</label>';
                echo '<span class="elgg-text-help">' . elgg_echo("developers:help:$name") . '</span>';
        } else {
                echo '<label>' . elgg_echo("developers:label:$name") . '</label>';
-               echo elgg_view("input/$type", array(
-                       'internalname' => $name,
-                       'value' => $vars['settings'][$name],
-                       'options' => $vars['options'][$name],
+               echo elgg_view("input/{$info['type']}", array(
+                       'name' => $name,
+                       'value' => $info['value'],
+                       'options_values' => $info['options_values'],
                ));
                echo '<span class="elgg-text-help">' . elgg_echo("developers:help:$name") . '</span>';
        }
-       echo '</p>';
+       echo '</div>';
 }
 
-echo '<p>';
+echo '<div>';
 echo elgg_view('input/submit', array('value' => elgg_echo('save')));
-echo '</p>';
\ No newline at end of file
+echo '</div>';