diff options
| author | Nathan Guse <nathaniel.guse@gmail.com> | 2013-09-12 12:45:17 -0500 |
|---|---|---|
| committer | Nathan Guse <nathaniel.guse@gmail.com> | 2013-09-12 12:45:17 -0500 |
| commit | baa73f6933e70f79482e0c4c978d3bfa53eed768 (patch) | |
| tree | a5d2c64c7d84554e9cf5c62278917ece6629f0db /phpBB/includes | |
| parent | 934786d45da83ec85f5d45794eef8a6221803259 (diff) | |
| parent | 310844fb7d0330d4329bd59c3d6d50d01caaa4d4 (diff) | |
| download | forums-baa73f6933e70f79482e0c4c978d3bfa53eed768.tar forums-baa73f6933e70f79482e0c4c978d3bfa53eed768.tar.gz forums-baa73f6933e70f79482e0c4c978d3bfa53eed768.tar.bz2 forums-baa73f6933e70f79482e0c4c978d3bfa53eed768.tar.xz forums-baa73f6933e70f79482e0c4c978d3bfa53eed768.zip | |
Merge remote-tracking branch 'remotes/imkingdavid/ticket/11824' into ticket/11832
* remotes/imkingdavid/ticket/11824:
[ticket/11824] Revert changes in functions.php
[ticket/11824] Reorganize test file
[ticket/11824] Update language string for board settings
[ticket/11824] Revert changes to functions_content.php
[ticket/11824] Add tests for urls with mod_rewrite enabled
[ticket/11824] Correct a comment
[ticket/11824] Change copyright year in migration file
[ticket/11824] Remove unused globals
[ticket/11824] Fix smilies
[ticket/11824] Fix logic
[ticket/11824] Add option for mod_rewrite
Diffstat (limited to 'phpBB/includes')
| -rw-r--r-- | phpBB/includes/acp/acp_board.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index 51a7628b68..449ce55e0f 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -375,6 +375,7 @@ class acp_board 'use_system_cron' => array('lang' => 'USE_SYSTEM_CRON', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true), 'legend2' => 'PATH_SETTINGS', + 'enable_mod_rewrite' => array('lang' => 'MOD_REWRITE_ENABLE', 'validate' => 'bool', 'type' => 'custom', 'method' => 'enable_mod_rewrite', 'explain' => true), 'smilies_path' => array('lang' => 'SMILIES_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true), 'icons_path' => array('lang' => 'ICONS_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true), 'upload_icons_path' => array('lang' => 'UPLOAD_ICONS_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true), @@ -1001,4 +1002,51 @@ class acp_board $cache->destroy('sql', FORUMS_TABLE); } + /** + * Option to enable/disable removal of 'app.php' from URLs + * + * Note that if mod_rewrite is on, URLs without app.php will still work, + * but any paths generated by the controller helper url() method will not + * contain app.php. + * + * @param int $value The current config value + * @param string $key The config key + * @return string The HTML for the form field + */ + function enable_mod_rewrite($value, $key) + { + global $user, $config; + + // Determine whether mod_rewrite is enabled on the server + // NOTE: This only works on Apache servers on which PHP is NOT + // installed as CGI. In that case, there is no way for PHP to + // determine whether or not the Apache module is enabled. + // + // To be clear on the value of $mod_rewite: + // null = Cannot determine whether or not the server has mod_rewrite + // enabled + // false = Can determine that the server does NOT have mod_rewrite + // enabled + // true = Can determine that the server DOES have mod_rewrite_enabled + $mod_rewrite = null; + if (function_exists('apache_get_modules')) + { + $mod_rewrite = (bool) in_array('mod_rewrite', apache_get_modules()); + } + + // If $message is false, mod_rewrite is enabled. + // Otherwise, it is not and we need to: + // 1) disable the form field + // 2) make sure the config value is set to 0 + // 3) append the message to the return + $value = ($mod_rewrite === false) ? 0 : $value; + $message = $mod_rewrite === null ? 'MOD_REWRITE_INFORMATION_UNAVAILABLE' : ($mod_rewrite === false ? 'MOD_REWRITE_DISABLED' : false); + + // Let's do some friendly HTML injection if we want to disable the + // form field because h_radio() has no pretty way of doing so + $field_name = 'config[enable_mod_rewrite]' . ($message === 'MOD_REWRITE_DISABLED' ? '" disabled="disabled' : ''); + + return h_radio($field_name, array(1 => 'YES', 0 => 'NO'), $value) . + ($message !== false ? '<br /><span>' . $user->lang($message) . '</span>' : ''); + } } |
