mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-09 18:26:32 +02:00
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
This commit is contained in:
@@ -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>' : '');
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user