BUGFIX: i18n::include_by_locale() should skip check the web root level and ../webroot level for language file, this is not only "not necessary" but also "must" because some server configuration prevent from any file access above the site root folder.

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.3@71499 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Normann Lou 2009-02-09 01:55:42 +00:00 committed by Sam Minnee
parent f5e4a4aca8
commit 3778a67274

View File

@ -1068,6 +1068,9 @@ class i18n extends Object {
static function include_by_locale($locale) {
$topLevel = scandir(Director::baseFolder());
foreach($topLevel as $module) {
//$topLevel is the website root, some server is configurated not to allow excess website root's parent level
//and we don't need to check website root's parent level and websit root level for its lang folder, so we skip these 2 levels checking.
if($module == ".." || $module == ".") continue;
if (file_exists(Director::getAbsFile("$module/_config.php")) &&
file_exists($file = Director::getAbsFile("$module/lang/$locale.php"))) {
include_once($file);